Durante la etapa de descubrimiento, se suelen realizar pruebas de ping de diferente naturaleza sobre los puertos de los sistemas objetivos. Esta tarea se lleva a cabo para identificar cuales sistemas están activos para luego identificar aquellos puertos abiertos en búsqueda de posibles vulnerabilidades.

El concepto de escaneo se vincula directamente con el reconocimiento de aplicaciones que pudieran poseer vulnerabilidades que luego serán comprobadas en la etapa de explotación. Sin embargo, si el descubrimiento no se realiza conociendo explícitamente los resultados e interpretándolos correctamente, podría dejarse de lado ciertos sistemas y no contemplarse durante las etapas posteriores del test de penetración.

En esta publicación, explicaremos como realizar un reconocimiento de sistemas activos y no activos a partir de la herramienta más utilizada para el escaneo de puertos, Nmap. Este reconocimiento solo implica detectar aquellos sistemas “vivos” para luego realizar un escaneo más profundo en búsqueda de potenciales servicios u aplicaciones vulnerables. Si esta etapa no se lleva a cabo considerando todos los factores posibles, podría dejarse fuera del análisis algunos sistemas que en principio se suponían que no estaban activos cuando en realidad si lo estaban.

TCP SYN ping

Este tipo de escaneo es el preferido de muchos pentesters debido a que es rápido. Para  comprobar si un sistema se encuentra activo, Nmap envía un paquete del tipo SYN al puerto 80 (puerto por defecto pero puede modificarse en el archivo nmap.h o especificando los puertos por consola). Si el servidor responde con un paquete con el flag RST activado significa que el puerto se encuentra cerrado, pero el equipo está activo. Si el sistema responde con un paquete del tipo SYN/ACK, significa que el puerto se encuentra abierto, y naturalmente, el sistema está activo.

En el caso de que no exista respuesta, esto puede deberse a que los paquetes han sido filtrados por algún tipo de dispositivo, cómo por ejemplo, un firewall o que el sistema no se encuentra activo.

Por lo tanto mediante el siguiente comando obtenemos una respuesta como la que se detalla a continuación:

Nmap -PS [dirección IP o rango]

Ping -PS

TCP ACK Ping

Este tipo de escaneo es similar al TCP SYN Ping. La diferencia reside en que en este caso se envía un paquete con el flag TCP ACK activado. Este tipo de paquete se utiliza para generar una conexión previo al envío de un paquete SYN y luego un SYN/ACK. De esa manera, el sistema objetivo responderá con un paquete del tipo RST si es que se encuentra activo. Esto se debe a que el sistema no espera este tipo de paquete debido a que no se ha generado la conexión de forma correspondiente (three way handshake). De todas formas, esto basta para comprobar que el sistema se encuentra activo.

Por defecto, Nmap realiza las pruebas sobre el puerto 80. Esto también puede modificarse de la misma forma que en el caso de un TCP SYN Scan.

El comando por consola es el siguiente:

Nmap -PA [dirección IP o rango]

Ping -PA

Desactivar Ping

En  la etapa de descubrimiento,  en ciertos casos, algunos sistemas no responden al ping tradicional debido a una configuración particular o la presencia de algún dispositivo que descarta este tipo de paquetes.

Para estos casos, es posible configurar Nmap para que deshabilite las pruebas utilizando ping. De esta manera se realiza un escaneo forzado sobre las direcciones IP de los sistemas objetivos más allá de que estos no respondan al ping. Para habilitar esta opción solo basta con incluir -PN en el comando.

Conclusión

Las diferentes opciones que se explicaron permiten brindar más confiabilidad en los resultados de una auditoría realizada por un pentester. Es importante recordar que aquellos sistemas que no sean identificados durante la etapa de descubrimiento podrían ser ignorados en las futuras etapas y, de esa manera, no contemplar las posibles vulnerabilidades presentes en los mismos.

Cada una de estas técnicas amplía las probabilidades de obtener resultados fidedignos frente a diferentes configuraciones en la infraestructura que se está analizando. Con esto nos referimos a la presencia de diferentes configuraciones sobre los sistemas objetivos así como también la presencia de Firewalls, IDS/IPS, balanceadores de carga, entre otras alternativas. En ciertos casos pueden existir filtros sobre un determinado tipo de paquetes por lo que, utilizar otras técnicas, ayuda a obtener resultados verídicos.

Finalmente recomendamos la lectura de nuestro post titulado "Pruebas de penetración para principiantes: 5 herramientas para empezar" donde explicamos un conjunto de herramientas para comenzar a explorar el mundo de las pruebas de penetración.

En futuras publicaciones explicaremos otras técnicas de descubrimiento así como también como realizar un escaneo de puertos de forma eficiente.