/* Variable definitions ==================== */ /* Use this with templates/template-twocol.html */ -->

Chat-Kasper MH

[ Fingerprinting ]

Posted by kasp3r11 12:29, under |

 El fingerprinting es basicamente determinar que sistema operativo corre
una computadora, diferenciando las distintas respuestas que tiene un
sistema a un pedido que hacemos. Asi comparando la respuesta de un
sistema con respecto de otro, y de otro, podemos ubicar cual es el sistema
que corre. Vale decir que el fingerprinting no es 100% seguro con ningun
programa que utilisemos, pero segun cual fuese nos puede acercar lo
suficiente como para ubicar el sistema, yo personalmente recomiendo el
Nmap(www.insecure.org/nmap). A continuacion veremos las tecnicas mas
representativas del fingerprinting que muchos programas utilizan:

- El FIN probe: mandamos un paquete FIN, o cualquiera que no mande un
flag SYN o ACK, a un puerto abierto y esperamos por una respuesta. Segun
el RFC 793 no deberiamos obtener ninguna respuesta pero muchas malas
implementaciones como el MS Windows, CISCO, BSDI, HP/UX, MVS e IRIX
mandan un RESET de respuesta.

- El BOGUS flag probe: la idea es marcar un flag TCP indefinido (64 o
128) en la cabezera de un paquete SYN. Algunos Linux anteriores al
2.0.35 dejan marcado este flag en la respuesta; y algunos sistemas
resetean la coneccion cuando reciben un paquete SYN+BOGUS.

- TCP ISN sampling: la idea aqui es encontar patrones en el ISN(Initial
Sequence Number) en aplicaciones TCP ante un pedido de coneccion. Osea
hay distintos grupos de Sistemas Operativos que usan diferentes formas
de generar los ISN, de esta manera podemos ubicar al sistema.

- Don't fragment bit: muchos sistemas comienzan seteando el "Don't
fragment" bit en el IP, en algunos de los paquetes que envian. Y muchos
otros sistemas lo hacen pero solo en algunos casos. Osea que si vemos
como va marcado este bit podemos obtener informacion interesante.

- TCP initial window: aqui lo unico que hacemos es chequear el tama~o
del window de los paquetes que nos devuelven. Algunos sistemas tienen
un window unico, por lo que esta tecnica muchas veces es por la unica
forma en que los podemos detectar.

- ACK value: mas alla de que supongamos que el valor del ACK va a ser
siempre estandar, en algunas implementaciones este valor varia. Por
ejemplo supongamos que mandamos un FIN|PSH|URG a un puerto TCP cerrado,
la mayoria de las implementaciones van a setear el ACK como el mismo
numero de ISN que nosotros enviamos, pero no Windows claro, que manda
nuestro ISN + 1.

- ICMP error message quenching: esta tecnica consiste en ver la cantidad
de menasjes de error que se nos devuelve ante un pedido. Muchos sistemas
limitan la cantidad de mensajes de error usando un ratio por segundo o
otros formulas. Esta tecnica no es muy usada porque se hace muy lento el
tener que estar esperando a que nos devuelva los mensajes de error.

- ICMP message quoting: segun los RFC los mensajes ICMP de error deben
seguir una constante, sin embargo algunos sistemas no lo hacen asi y
varian en las respuestas. Este es un gran punto con el cual podemos
identificar algunos sistemas.

- Exploit chronology: esta tecnica es muy divertida. Dado que no se
puede distinguir entre el TCP stack de Windows 95, 98 y NT, porque no
lo han actualizado en lo mas minimo, osea el NT sigue teniendo el mismo
stack que el 95 y que el 98, surgio esta tecnica que todos seguramente
hemos usado alguna vez. Consiste en hacer un ataque de DOS (Denial of
Service) para tirar al Windows, podemos empezar con un Nuke, o un Ping
de la Muerte, y luego vamos usando tecnicas un poco mas avanzadas como
Teardrop y Land; entonces despues de cada ataque hacemos un PING a la
victima y segun con que tecnica haya caido podemos deducir que sistema
es y hasta que Service Pack o Hotfix tiene instalado.

- SYN flood resistance: muchos sistemas paran de aceptar conexiones
cuando uno les envia varios paquetes SYN; algunos solo aceptan 8
paquetes. simplemente podemos determinar el sistema por la cantidad de
paquetes que puede aceptar.

Tags

Labels

Blog Archive

Blog Archive