Nmap

¿Qué es nmap?

nmap (Network Mapper) es una herramienta de código abierto utilizada para descubrir equipos y servicios en una red. Es ampliamente usada en pentesting, administración de redes y análisis de seguridad.

¿Para qué sirve?

  • Descubrir qué hosts están activos en una red.

  • Detectar qué puertos están abiertos en un equipo.

  • Identificar qué servicios están corriendo y en qué versiones.

  • Detectar el sistema operativo de un host.

  • Ejecutar scripts personalizados para detectar vulnerabilidades o realizar tareas automatizadas (usando el motor de scripts NSE).

Ejemplos de uso comunes

  • nmap 192.168.0.1 → escaneo básico de los 1000 puertos TCP más comunes.

  • nmap -sV 192.168.0.1 → detecta versiones de los servicios que corren en los puertos abiertos.

  • nmap -O 192.168.0.1 → intenta identificar el sistema operativo del host objetivo.

  • nmap -A 192.168.0.1 → escaneo agresivo: incluye servicios, versiones, OS detection, traceroute y scripts NSE.

  • nmap --script vuln 192.168.0.1 → usa scripts de vulnerabilidades para detectar fallos conocidos.

  • nmap -p- 192.168.0.1 → escanea todos los puertos TCP (de 1 al 65535).

  • nmap -Pn 192.168.0.1 → omite el ping inicial, útil cuando ICMP está bloqueado.

  • nmap -oN resultado.txt 192.168.0.1 → guarda la salida del escaneo en un archivo de texto plano.

  • nmap -T4 192.168.0.1 → acelera el escaneo (modo de velocidad agresivo).

Algunos parametros útiles de nmap

| Opción | Descripción                                          |
| ------ | ---------------------------------------------------- |
| `-sS`  | Escaneo SYN (rápido y discreto)                      |
| `-sV`  | Detección de versiones de servicios                  |
| `-O`   | Detección de sistema operativo                       |
| `-Pn`  | No realiza ping (útil si el host no responde a ICMP) |
| `-p-`  | Escanea todos los puertos (1 al 65535)               |
| `-T4`  | Aumenta la velocidad del escaneo                     |
| `-oN`  | Guarda el resultado en un archivo en formato normal  |

¿Qué son los scripts de nmap?

nmap incluye un motor de scripting llamado NSE (Nmap Scripting Engine) que permite ejecutar scripts escritos en Lua para automatizar tareas de escaneo avanzadas. Estos scripts permiten desde detección de servicios específicos hasta pruebas de vulnerabilidades y explotación básica.

Los scripts se agrupan en categorías como:

  • default → se ejecutan con -sC

  • vuln → scripts de detección de vulnerabilidades

  • auth, safe, intrusive, exploit, entre otros

Se encuentran por defecto en: /usr/share/nmap/scripts/

Cómo usarlos

nmap --script <script> → ejecuta un script específico nmap --script <categoría> → ejecuta todos los scripts de una categoría nmap --script-help <script> → muestra la descripción y uso del script

Ejemplos de uso de scripts NSE

nmap --script vuln 192.168.0.1 → ejecuta todos los scripts de la categoría "vuln" para detectar posibles vulnerabilidades conocidas nmap --script default 192.168.0.1 → ejecuta los scripts por defecto, útiles para reconocimiento general nmap --script http-title 192.168.0.1 → muestra el título de la página web (útil para identificar aplicaciones web) nmap --script ftp-anon 192.168.0.1 → detecta si el servidor FTP permite acceso anónimo nmap --script smb-os-discovery 192.168.0.1 → identifica información de sistemas operativos mediante SMB nmap --script http-enum 192.168.0.1 → enumera recursos en servidores HTTP nmap --script ssh-auth-methods 192.168.0.1 → enumera los métodos de autenticación soportados por SSH nmap --script dns-brute 192.168.0.1 → intenta descubrir subdominios mediante fuerza bruta nmap --script http-headers 192.168.0.1 → obtiene y muestra los encabezados HTTP de un servidor web nmap --script mysql-empty-password 192.168.0.1 → prueba si el servicio MySQL permite login con contraseña vacía

Para filtrar y buscar todas las categorias disponibles de los scripts de nmap podemos usar el siguiente comando

┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# locate .nse | xargs grep "categories" | grep -oP '".*?"' | sort -u
"auth"
"broadcast"
"brute"
"default"
"discovery"
"dos"
"exploit"
"external"
"fuzzer"
"info"
"intrusive"
"malware"
"safe"
"version"
"vuln"

Last updated