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.
La herramienta es una de las más utilizadas por administradores de redes y especialistas en seguridad informática. Se utiliza para:
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:
La sintaxis para Nmap es bastante simple y se ve de la siguiente manera:
Rodrigovil@htb[/htb]$ nmap <tipos de escaneo> <opciones> <objetivo>
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:
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.