bitcoin prize

          "Te Conozco Mediante Tu TTL"
 mucho es el trabajo al hacer un information gathering en una auditoria o test de penetracion al tener delante de nosotros como si de un mounstruo se tratase nada mas ni nada menos que un FIREWALL o un IDS o IPS, que nos dificulta la tarea al enumerar el sistema operativo de la maquina victima.

aunque actualmente hay diversas tecnicas con el famoso nmap para evadir firewalls tales como la fragmentacion de paquetes para confundir a los sistemas defensivos de la red o generar un bad checksum con hping3 para ver como reaccionan tales defensas,  esta es una tecnica manual para "predecir" en cualquier circunstancia a que sistema operativo nos enfrentamos mediante si time to live o tiempo de vida, este contador es el que se genera desde la salida desde un nodo a otro nodo con el fin de que nuestros paquetes no esten dando vueltas alrededor de todo internet por la eternidad, este contador se auto-genera en cada router o salida hacia la red de redes,  el tiempo definido de este campo queda a criterio del tipo de red en que este establecida por ejemplo no sera el mismo time to live si estamos ante una gran infraestructura de red con sistemas criticos SCADA que una red de una empresa mediana, ya que sus valores varian desde la red interna, explicar el time to live ahora mismo seria un problema algo engorroso por lo cual solamente quedaria claro con la anterior definicion para el objetivo que nos toca cumplir en este articulo.

aunque las redes sean diferentes y los routers, protocolos y algoritmos cambien los valores, el host emisor o los clientes procesan los paquetes time to live de un modo "Estatico"  aunque algunas veces pueden cambiar (depende de los desarolladores de S.O) casi siempre eligen unos valores "Adecuados" que nos dan una pista de su sistema operativo, esto es como una "marca" para que podemos "Averiguar" que es lo que realmente hay detras del firewall.

dado que nuestro campo time to live ttl vale 8 bits , tenemos que elegir un valor arbitrario de 8, por ejemplo si deseamos modificar el valor con alguna herramienta como hping3, tenemos que escoger entre 8,16,32,64,128, etc, de lo contrario nos volcara un error.

 si el contador ttl llegase a 0 nuestro paquete se descarta y se elimina por completo de la red,  ademas el ttl varia en funcion de los algoritmos de enrutamiento que esten funcionando de la red en un preciso momento.

si hacemos un ping a algun lugar de "internet" y este valor se setea automaticamente a 128 significa que este nodo no deberia estar muy lejos, si en cambio observamos un valor de 54 significa que hay algunos nodos intermedios y este valor no esta muy cerca.



una practica sencilla es darle ping a una pagina o un host que sabemos que tiene que estar lejos para practicar un poco con estos valores del time to live; por ejemplo pensemos en un pais lejos de todos,  japon? buena idea,  japon esta muy lejos por lo que los paquetes enrutados tendrian que viajar a estados unidos y de este a europa o de estados unidos a centroamerica y volver hacia asia si la ruta esta congestionada o esta caida en este trazo, vamos a dar ping a la pagina web www.tokyoanime.jp  por el dominio raiz o TLD sabemos que jp deberia estar en japon,  damos entonces ping www.tokyoanime.jp y observamos su ttl que resultado nos da? mi resultado de ttl fue de 42 por lo que el marcador casi llegaba a cero entonces estamos en lo correcto, el paquete ha sido enrutado hacia japon, cabe destacar que este metodo tambien funciona para "rastrear algo" en la red.

cabe destacar que este metodo puede "fallar" como todo en el "hacking" y entonces tenemos que hacer una recogida de informacion de todos los valores posibles, el valor de las ventanas TCP, los valores que emite el ping en bytes, estadisticas de red, etc,  con estos valores entonces ya tendriamos una fiabilidad mas alta de que el sistema operativo es quien dice "Ser".

ahora nos haremos un ping a nosotros mismos con la direccion de loopback,  es decir a 127.0.0.1 hacemos entonces ping 127.0.0.1 y verificamos el valor inicial del ttl.  mi resultado fue de 128 y observando en la tabla tecnica del fingerprint pasivo el valor incial de los ttl con 128 son windows, en horabuena! acertamos!.

 la tabla tecnica del fingerprint pasivo es la siguiente:


















podemos crear un script en algun lenguaje de programacion para generar estos valores automaticamente o podemos usar una de las herramientas antes mencionados en este articulo tales como HPING3 o nmap para detectar el TTL inicial de alguna maquina remota.
la imaginacion lo dejo a criterio de cada uno,  sin mas por el momento me despido con un cordial saludo que esten bien, nos vemos en el proximo articulo.
Luis Angel F.  

0 comments:

Publicar un comentario

My Instagram

Uso cookies para darte un mejor servicio.
Mi sitio web utiliza cookies para mejorar tu experiencia. Acepto Leer más