¿Qué es Nmap?

Network Mapper (Nmap) es una herramienta de análisis de redes y auditoría de seguridad de código abierto escrita en C, C++, Python y Lua. Está diseñada para escanear redes e identificar qué hosts están disponibles en la red utilizando paquetes sin procesar, y servicios y aplicaciones, incluyendo el nombre y la versión, cuando sea posible. También puede identificar los sistemas operativos y versiones de estos hosts. Además de otras características, Nmap también ofrece capacidades de escaneo que pueden determinar si los filtros de paquetes, firewalls o sistemas de detección de intrusos (IDS) están configurados según sea necesario.

Casos de Uso

La herramienta es una de las más utilizadas por administradores de redes y especialistas en seguridad informática. Se utiliza para:

Arquitectura de Nmap

Nmap ofrece diferentes tipos de escaneos que pueden usarse para obtener varios resultados sobre nuestros objetivos. Básicamente, Nmap puede dividirse en las siguientes técnicas de escaneo:

Sintaxis

La sintaxis para Nmap es bastante simple y se ve de la siguiente manera:

Rodrigovil@htb[/htb]$ nmap <tipos de escaneo> <opciones> <objetivo>

Técnicas de Escaneo

Nmap ofrece muchas técnicas de escaneo diferentes, haciendo diferentes tipos de conexiones y utilizando paquetes estructurados de diferentes maneras. Aquí podemos ver todas las técnicas de escaneo que Nmap ofrece:

Rodrigovil@htb[/htb]$ nmap --help

TÉCNICAS DE ESCANEO:

Ejemplo de un Escaneo TCP-SYN

Por ejemplo, el escaneo TCP-SYN (-sS) es uno de los valores predeterminados, a menos que hayamos definido lo contrario, y también es uno de los métodos de escaneo más populares. Este método de escaneo permite escanear varios miles de puertos por segundo. El escaneo TCP-SYN envía un paquete con la bandera SYN y, por lo tanto, nunca completa el apretón de manos en tres etapas, lo que resulta en no establecer una conexión TCP completa con el puerto escaneado.

Si nuestro objetivo envía un paquete con la bandera SYN-ACK, Nmap detecta que el puerto está abierto.

Si el objetivo responde con un paquete con la bandera RST, es un indicador de que el puerto está cerrado.

Si Nmap no recibe un paquete de vuelta, lo mostrará como filtrado. Dependiendo de la configuración del firewall, ciertos paquetes pueden ser descartados o ignorados por el firewall.

Tomemos un ejemplo de este tipo de escaneo:

Rodrigovil@htb[/htb]$ sudo nmap -sS localhost

Salida:

Iniciando Nmap 7.80 ( https://nmap.org ) a las 2020-06-11 22:50 UTC
Informe de escaneo de Nmap para localhost (127.0.0.1)
El host está activo (latencia de 0.000010s).
No se muestran: 996 puertos cerrados
PUERTO   ESTADO SERVICIO
22/tcp   abierto ssh
80/tcp   abierto http
5432/tcp abierto postgresql
5901/tcp abierto vnc-1

Nmap terminado: 1 dirección IP (1 host activo) escaneado en 0.18 segundos
        

En este ejemplo, podemos ver que tenemos cuatro puertos TCP diferentes abiertos. En la primera columna, vemos el número del puerto. Luego, en la segunda columna, vemos el estado del servicio y el tipo de servicio.