¿cómo funciona el escáner Nmap?
Nmap es un escáner de puertos muy efectivo, conocido como la herramienta de facto para encontrar puertos y servicios abiertos.
Nmap realiza varias fases para lograr su propósito:
Nmap host discovery
la primera fase de una exploración de puertos es host discovery. Aquí el escáner intenta comprobar si el host de destino está activo antes de sondear los puertos abiertos., Esta fase es necesaria principalmente cuando se escanea una amplia gama de direcciones IP con el fin de optimizar el tiempo para todo el escaneo. No tiene sentido perder tiempo buscando puertos abiertos en un host «muerto»(ej. no hay servidor en una IP determinada).
sin embargo, esta fase a veces puede llevar a no encontrar algunos puertos abiertos porque el ‘liveness’ del host no siempre se puede detectar correctamente(ej. debido a los cortafuegos que permiten el acceso solo a un determinado puerto y dejar todo lo demás)., En este caso, tiene la opción «no ping host» (o Nmap-Pn) que omite la fase de descubrimiento de host y solo hace el escaneo de puertos.
detección de puertos abiertos
para determinar si un puerto TCP está abierto, Nmap aprovecha el mecanismo de enlace de tres vías utilizado por TCP para establecer una conexión entre un cliente y un servidor.
Hay dos métodos principales para detectar puertos TCP abiertos:
Connect-Scan (Nmap-sT)
en este caso Nmap hace un apretón de manos completo de tres vías con el servidor de destino, estableciendo una conexión TCP completa., La secuencia de los paquetes para este tipo de análisis es: SYN
, SYN-ACK
, ACK
, RST
.la ventaja de este método es que no requiere acceso root/administrador en la máquina cliente, mientras que la desventaja es que es bastante ruidoso y el servidor puede registrar las conexiones intentadas desde otros hosts.
SYN-Scan (nmap-sS)
este es el método de escaneo predeterminado, también habilitado en nuestro escáner., En este método, Nmap hace una conexión TCP medio abierta, sabiendo que el puerto está abierto inmediatamente después de que el servidor responda con SYN-ACK
. La secuencia de los paquetes en este caso es: SYN
, SYN-ACK
, RST
.
La ventaja de este método es que es más sigiloso que un Connect-Scan, pero requiere que Nmap se ejecute con privilegios de root/administrador (porque necesita crear sockets raw de bajo nivel para enviar los paquetes individuales, en lugar de dejar la pila del núcleo para hacer la conexión).,
Nmap service detection
después de que Nmap haya encontrado una lista de puertos, puede realizar una comprobación más detallada para determinar el tipo exacto de servicio que se está ejecutando en ese puerto, incluida su versión. Esto es necesario porque es posible que los servicios comunes se ejecuten en puertos no estándar(ej. un servidor web que se ejecuta en el puerto 32566). La detección de servicios está habilitada con el comando Nmap -sV
.
Nmap realiza la detección de servicio enviando una serie de sondas predefinidas para varios protocolos al puerto de destino para ver si responde en consecuencia., Por ejemplo, envía:
- SSL CLIENT HELLO-para comprobar los servicios SSL
- HTTP GET request-para comprobar el servicio HTTP
- SIP OPTIONS-para comprobar el protocolo SIP/RTSP
- y muchos otros
puede encontrar más detalles sobre Nmap y su funcionalidad interna en nuestra entrada de blog dentro de Nmap, el escáner de puertos más famoso del mundo.
A brief history of nmap Port Scanner
Nmap se introdujo por primera vez en septiembre de 1997 en el artículo The Art of Scanning, en la conocida revista Phrack, por su autor – Fyodor (Gordon Lyon)., desde que obtuvo mucha notoriedad, Nmap ha sido referenciado en varios libros y también fue utilizado en varias películas artísticas como una herramienta de hacking(ex. matriz).
ha evolucionado mucho con el tiempo (la versión actual es 7.70) de un simple escáner de puertos a una herramienta robusta que contiene capacidades avanzadas de huellas dactilares y un motor de scripting complejo. Actualmente, Nmap tiene más de 500 scripts que se pueden ejecutar después de que se haya desactivado la detección de servicios, cubriendo aspectos como el descubrimiento avanzado de servicios, el forzamiento bruto y alguna identificación de vulnerabilidades.