Enviado por J3ss3SHL el Vie, 20/04/2018 - 18:32
Nmap

 

En un post anterior, explicamos algunas de las técnicas que utiliza Nmap para sacar información de un host a través de los puertos que este tenga, ya sean abiertos, cerrados o a la escucha. En este segundo post les mostraremos otras técnicas basadas en el escaneo de puertos que nos pueden resultar muy útiles al momento de realizar un análisis de seguridad a una red. · TCP ACK SCAN (-sA) También conocida como ACK Stealth, esta técnica se diferencia del resto porque sólo determina si los puertos del objetivo se encuentran filtrados o no, en lugar de  definir si están abiertos o cerrados. Por ello se utiliza para averiguar el conjunto de reglas que aplica una herramienta cortafuegos sobre el objetivo, determinando igualmente cuándo estas reglas son con estado y a qué puertos afectan. Esto se realiza enviando una sonda TCP con el flag ACK activo, por lo que un puerto no filtrado debería responder con un paquete RST. Según las respuestas recibidas, un puerto puede estar en estado no filtrado (si se recibe una respuesta RST), o filtrado (si se recibe un error ICMP inalcanzable o no se recibe ninguna respuesta, incluso tras varias retransmisiones). La siguiente figura muestra cómo el origen envía ACKs a cuatro puertos del objetivo, recibiendo sólo paquetes RST (del puerto 443, 444 y 3389). De este modo Nmap comprueba que al menos estos tres puertos no están siendo filtrados.

                 

· TCP Null, FIN, Xmas scans (-sN, -sF, -sX)

De manera similar a la anterior técnica, éstas se basan en enviar sondas TCP con  distintos flags activados, pero se aprovecha de una indefinición* en el estándar RFC 793 para provocar una respuesta en el objetivo que determine si un puerto está abierto o cerrado. El fundamento de estas técnicas reside en que los puertos cerrados de equipos compatibles con esta RFC responderán con un RST a cualquier paquete que no contenga un flag SYN, RST o ACK, mientras que no emitirán respuesta alguna si el puerto está abierto.

- * RFC 793, página 65: “Si el estado del puerto destino es CERRADO [...] un segmento entrante que no contenga un RST causará el envío de un RST como respuesta.” La siguiente página trata el caso del envío de paquetes a puertos ABIERTOS sin alguno de los bits SYN, RST o ACK activados, estableciendo que: “[...] no es probable que se reciba uno, pero si es el caso, se debe desechar el segmento y volver.”

La técnica Null Scan (-sN) envía una sonda sin ningún flag activado, la técnica FIN Scan (-sF) activa únicamente el flag FIN y, finalmente, la Xmas Scan (-sX) activa los flags FIN, PSH y URG. Estas técnicas son eficaces traspasando algunas herramientas cortafuegos sin estado y encaminadores con filtro de paquetes. Estas cuatro técnicas utilizan conjuntos de flags determinados, aunque cualquier combinación de flags TCP es posible si se utiliza el modificador --scanflags. Según las respuestas obtenidas, Nmap clasifica los puertos en:

abiertos/filtrados (si no se recibe ninguna respuesta), cerrados (si se recibe un paquete RST) o filtrados (si se recibe algún tipo de error ICMP inalcanzable). Además, son ligeramente más sigilosas que la técnica básica SYN Scan, aunque actualmente la mayor parte de las herramientas IDS/IPS sea posible configurarlas ara detectar estos tipos de escaneo. Sin embargo, los resultados no serán fiables en sistemas Windows, Cisco, BSDI y OS/400, debido a que no siguen al pie de la letra el RFC 793 y envían paquetes RST esté el puerto abierto o no. Los resultados en sistemas Unix si que suelen ser fiables y correctos. Los resultados obtenidos para las cuatro técnicas son prácticamente idénticos. A modo de ejemplo sólo se representa una de ellas, -sX. En esta figura se puede observar cómo el origen envía 5 paquetes TCP con los flags FIN, PSH y URG activados a los 5 puertos indicados del objetivo (del 21 al 25). De ninguno recibe un RST, por lo que Nmap sabe que están abiertos.

· TCP Maimon scan (-sM)

Esta técnica se basa, como las anteriores, en enviar sondas con flags TCP activados (en este caso los flags FIN y ACK) a los objetivos. Del mismo modo que los escaneos NULL, FIN y Xmas, los puertos pueden encontrarse en estado abierto/filtrado, cerrado o filtrado. Este análisis surgió en 1996 de un problema detectado en la mayoría de sistemas derivados de BSD de la época, que no seguían el estándar RFC 793, y no devolvían nada si el puerto bajo análisis estaba abierto. El estándar indica que, ante pruebas como las que ejecuta este tipo de análisis, se debe devolver un paquete RST independientemente de si el puerto está abierto o cerrado. Aunque en 1996 fue bastante útil, actualmente este comportamiento es muy inusual, por lo que un análisis de este tipo probablemente mostrará todos los puertos como cerrados y por lo tanto no daremos explicación ni ejemplos.

· TCP Window scan (-sW)

Esta técnica es exactamente la misma que ACK scan, con la salvedad de que es capaz de diferenciar entre puertos abiertos y cerrados en lugar de sólo filtrados y no filtrados. Para ello, se basa en explotar una particularidad de algunas implementaciones de TCP/IP, las cuales responden a la sonda ACK con un paquete RST con valores del campo Window distintos, dependiendo de si el puerto está abierto o cerrado. Dependiendo de las respuestas obtenidas, Nmap clasifica los puertos analizados en: abiertos (si se recibe un paquete RST con valor de ventana distinto de cero), cerrados (si se recibe un paquete RST con valor de ventana igual a cero), o filtrados (si se recibe un error de tipo ICMP inalcanzable o no se recibe ninguna respuesta). Los resultados obtenidos con esta técnica no son siempre fiables, ya que dependen de detalles muy particulares no implementados en la totalidad de los sistemas existentes. Así, si todos los puertos aparecen como cerrados, muy probablemente el sistema no tendrá este comportamiento. Si obtenemos la mayoría de puertos cerrados, y unos pocos abiertos, es probable que el objetivo tenga este comportamiento y los resultados sean fiables. En algunos casos también se ha comprobado el efecto contrario, detectando Nmap la mayoría de puertos abiertos y unos pocos cerrados. En este caso, esos puertos que se detectan como cerrados son los que realmente están abiertos. Dada la relativa fiabilidad de esta técnica se ha decidido no incluir ningún ejemplo esta entrada. 

· SCTP INIT Scan (-sY)

El protocolo SCTP es una alternativa relativamente nueva a TCP y UDP, que se ha descrito brevemente en esta entrada. La técnica SCTP INIT Scan es el equivalente para el protocolo SCTP de la técnica TCP SYN Scan, ya que lanza sondas de inicio de conexión a los objetivos. Es poco intrusiva y sigilosa, ya que, al igual que la técnica TCP SYN Scan, nunca acaba de iniciar las conexiones que solicita. También es bastante rápida, permitiendo el análisis de miles de puertos por segundo en redes rápidas y que no estén limitadas por cortafuegos restrictivos. Esta técnica envía una sonda SCTP con un fragmento de tipo INIT, como en el inicio de una comunicación SCTP normal, y espera una respuesta. Una respuesta con un fragmento de tipo INIT-ACK indica que el puerto está abierto, mientras que un fragmento de tipo ABORT en la respuesta indica que el puerto está cerrado. Si no se recibe respuesta tras varias retransmisiones, o se recibe un código de error ICMP Inalcanzable, el puerto se considera filtrado.

Esperamos que este post haya sido de su utilidad, cualquier duda o sugerencia pueden dejarla en los comentarios. Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram y no olvides compartirnos en las redes sociales.

 

 

 

 

 

 

 

Etiquetas

Acerca del autor

Pentester. Estudiante de ingeniería informática, Twitter @j3ss3SHL