jueves, 16 de enero de 2014

Nmap - Sondeo de puertos


Como ya dijimos en el anterior post, vamos a ver las distintas técnicas de sondeo de puertos de las que disponemos con Nmap.

Pongamos un ejemplo para entender por qué se disponen de diferentes tipos.

Imaginemos que nuestro reproductor de mp3 no enciende, por lo que cogemos nuestras herramientas y nos ponemos manos a la obra para intentar arreglarlo.
Como es normal, necesitaremos principalmente un destornillador para poder abrirlo, un martillo no nos valdría...
Quitamos todos los tornillos, lo abrimos, y nos damos cuenta que ha simple vista, tenemos un condensador que se ha partido la patilla.
El destornillador evidentemente aquí no nos vale de nada, por lo que cogemos un poquito de estaño, un soldador y procedemos a soldar la patilla.
Una vez enfriada la soldadura, volvemos a poner los tornillos con su correspondiente destornillador y probamos que funcione. Hemos tenido suerte, ya enciende.

Con la técnica de sondeo de puertos pasa lo mismo, se debe elegir el típo de sondeo más apropiado en cada situación si queremos tener los resultados deseados.

Los resultados que genera Nmap se basan en la respuesta del objetivo o del firewall que se encuentre por delante, pero puede que se hayan configurado para intentar confundir a Nmap en su intento por conseguir, por ejemplo, la versión del sistema operativo.
Es decir, que es posible que al intentar escanear un objetivo con Windows, nos saque el resultado indicando que es Linux. Evidentemente cualquier ataque que lanzasemos para ese sistema operativo, no tendría ningún efecto ya que no es el sistema operativo que corre la máquina víctima.

Tan importante es utilizar la herramienta adecuada como manejarla adecuadamente.

Por tanto, vamos a explicar los tipos de sondeo que hay:
  •  -sS (sondeo TCP SYN): Este sondeo es el utilizado por defecto, y puede realizar un sondear miles de puertos por segundo en una red rápida que no disponga de Firewall. Suele ser sigiloso ya que no llega a completar las conexiones TCP. También nos mostrará si un puerto está en estado abierto/cerrado/filtrado.
  • -sT (sondeo TCP connect()): Este sondeo es el que se suele utilizar cuando no se usa el SYN ya sea porque el usuario no tiene suficientes privilegios para enviar paquetes en crudo o porque se esté sondeando redes IPv6. Este tipo suele ser menos sigiloso.
  •  -sU (sondeos UDP): Este tipo de sondeo puede combinarse con sondeos TCP. Si se obtiene un error ICMP que indica que el puerto no es alcanzable (tipo 3, código 3) entonces se marca el puerto como cerrado. Si se recibe cualquier error ICMP no alcanzable (tipo 3, códigos 1, 2, 9, 10, o 13) se marca el puerto como filtrado. En algunas ocasiones se recibirá una respuesta al paquete UDP, lo que prueba que el puerto está abierto. Si no se ha recibido ninguna respuesta después de algunas retransmisiones entonces se clasifica el puerto como abierto|filtrado. Esto significa que el puerto podría estar abierto o que hay un filtro de paquetes bloqueando la comunicación. Puede utilizarse el sondeo de versión (-sV) para diferenciar de verdad los puertos abiertos de los filtrados.
  • -sN, -sF, -sX (sondeos TCP Null, FIN, y Xmas): Estos 3 sondeos aprovechan una indefinición en la RFC de TCP que diferencia los puertos abiertos y cerrados.
    La ventaja fundamental de este tipo de sondeos es que pueden atravesar algunos cortafuegos que no hagan inspección de estados o encaminadores que hagan filtrado de paquetes. Otra ventaja es que este tipo de sondeos son algo más sigilosos que, incluso, un sondeo SYN.
  • -sA (sondeo TCP ACK): Se utiliza para mapear reglas de cortafuegos, y para determinar si son cortafuegos con inspección de estados y qué puertos están filtrados.
  • -sW (sondeo de ventana TCP): Este tipo es exactamente igual al sondeo ACK que se aprovecha de un detalle de implementación de algunos sistemas que permite diferenciar puertos abiertos de los cerrados, en lugar de imprimir no filtrado cuando se devuelve un RS.
  • -sM (sondeo TCP Maimon): Esta técnica es exactamente la misma a los sondeos Null, FIN, y Xmas, pero en los que se envía una sonda FIN/ACK.
  • --scanflags (Sondeo TCP a medida): La opción --scanflags permite diseñar nuestro propio sondeo mediante la especificación de banderas TCP arbitrarias.
  • -sI <sistema zombi [:puerto_sonda]> (Sondeo ocioso): Este es un método de sondeo avanzado que permite hacer un sondeo de puertos TCP a ciegas de verdad (lo que significa que no se envía ningún paquete al sistema objetivo desde su dirección IP real). En lugar de ésto se utiliza un ataque con un canal alternativo que se aprovecha de la generación de la secuencia de los identificadores de fragmentación IP del sistema zombi para obtener información de los puertos abiertos en el objetivo. Los sistemas IDS mostrarán que el sondeo lo está realizando el sistema zombi (que debe estar vivo y cumplir algunos requisitos).
  • -sO (sondeo de protocolo IP): Este sondeo permite determinar qué protocolos (TCP, ICMP, IGMP, etc.) soportan los sistemas objetivo.
  • -b <sistema de rebote ftp> (sondeo de rebote FTP): Este sondeo permite utilizar conexiones FTP de pasarela.
Como hemos podido ver disponemos de muchas disponibilidades para que nuestro escaneo tenga éxito, sólo hay que distinguir cuando debemos utilizar el tipo de sondeo para obtener el resultado que esperamos.

Saludos.

Referencia: http://nmap.org/man/es/man-port-scanning-techniques.html


No hay comentarios:

Publicar un comentario