Secciones
1. Introducción
Hoy desglosaremos Nmap con todos sus comandos esenciales y ejemplos prácticos. Aprenderás desde escaneos básicos hasta técnicas avanzadas de evasión. ¡Manos a la obra! 💻🔦
2. Descubrimiento de Hosts Activos
2.1 Escaneo de Rango de Red
Identifica todos los dispositivos en una subred sin escanear puertos:
sudo nmap -sn 10.129.2.0/24
- -sn: Desactiva el escaneo de puertos (solo descubre hosts).
- Ejemplo de salida:
Nmap scan report for 10.129.2.18
Host is up (0.087s latency).
MAC Address: DE:AD:00:00:BE:EF (Intel Corporate)
2.2 Escaneo desde una Lista de IPs
Usa un archivo hosts.lst
con direcciones IP:
sudo nmap -sn -iL hosts.lst
2.3 Escaneo de IPs Específicas
Para rangos pequeños:
sudo nmap -sn 10.129.2.18 10.129.2.19 10.129.2.20
O con sintaxis abreviada:
sudo nmap -sn 10.129.2.18-20
3. Escaneo de Puertos TCP
3.1 Escaneo SYN (Stealth Scan)
El más rápido y sigiloso (requiere root):
sudo nmap -sS 10.129.2.28
- Resultado típico:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3.2 Escaneo de los 10 Puertos Más Comunes
Ahorra tiempo enfocándote en puertos críticos:
sudo nmap --top-ports 10 10.129.2.28
3.3 Escaneo de Conexión Completa (-sT)
Ideal si no tienes permisos de root:
nmap -sT 10.129.2.28
3.4 Escaneo de un Puerto Específico
Verifica solo el puerto 443 (HTTPS):
sudo nmap -p 443 --packet-trace 10.129.2.28
- –packet-trace: Muestra paquetes enviados/recibidos.
4. Escaneo de Puertos UDP
4.1 Escaneo UDP Básico
Los puertos UDP suelen estar desprotegidos:
sudo nmap -sU -F 10.129.2.28 # "-F": 100 puertos principales.
- Ejemplo de salida:
53/udp open domain
161/udp open snmp
4.2 Detección de Versiones en UDP
Combina con -sV
para detalles:
sudo nmap -sU -sV -p 137 10.129.2.28
5. Enumeración de Servicios y Versiones
5.1 Detección de Versiones (-sV)
Descubre qué software corre en los puertos:
sudo nmap -sV 10.129.2.28
- Salida:
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3
5.2 Scripts Básicos (-sC)
Ejecuta scripts predeterminados para obtener más datos:
sudo nmap -sC 10.129.2.28
6. Uso de Scripts de Nmap (NSE)
6.1 Detección de Vulnerabilidades
Busca vulnerabilidades conocidas:
sudo nmap --script vuln 10.129.2.28
6.2 Fuerza Bruta en SSH
Prueba credenciales con un script de fuerza bruta:
sudo nmap --script ssh-brute --script-args userdb=usuarios.txt,passdb=contraseñas.txt 10.129.2.28
6.3 Extraer Metadatos de Servicios
Por ejemplo, en SMTP:
sudo nmap -p 25 --script banner,smtp-commands 10.129.2.28
- Resultado:
|_banner: 220 inlane ESMTP Postfix (Ubuntu)
|_smtp-commands: PIPELINING, STARTTLS, ENHANCEDSTATUSCODES
7. Optimización del Escaneo
7.1 Ajuste de Velocidad (-T)
Usa plantillas de tiempo para acelerar:
sudo nmap -T4 10.129.2.0/24 # -T4: Agresivo (más rápido).
7.2 Control de Paquetes
Limita reintentos y define tasa de envío:
sudo nmap --max-retries 2 --min-rate 500 10.129.2.0/24
8. Evasión de Firewalls e IDS/IPS
8.1 Señuelos (-D)
Envía tráfico desde IPs falsas para confundir:
sudo nmap -D RND:5,ME 10.129.2.28 # 5 IPs aleatorias + la tuya (ME).
8.2 Escaneo desde Puerto DNS (53)
Finge ser tráfico legítimo de DNS, esto ayuda a evadir una DMZ por ejemplo:
sudo nmap --source-port 53 -sS 10.129.2.28
8.3 Fragmentación de Paquetes
Divide los paquetes para evitar detección:
sudo nmap -f 10.129.2.28
8.4 Escaneo ACK (-sA)
Útil para mapear reglas de firewall:
sudo nmap -sA 10.129.2.28
- Resultado:
22/tcp unfiltered ssh # Puerto accesible.
80/tcp filtered http # Bloqueado por firewall.
9. Guardado de Resultados
9.1 Formatos de Salida
Guarda en múltiples formatos para análisis posterior:
sudo nmap -sS -oA scan_resultado 10.129.2.28 # Crea .nmap, .xml, .gnmap.
9.2 Exportar a HTML
Convierte XML a HTML con xsltproc
:
xsltproc scan_resultado.xml -o scan_resultado.html
10. Consejos de Seguridad
- Permisos: Siempre escanea redes propias o con autorización.
- Actualización: Usa la última versión de Nmap para mejores resultados.
- Pruebas: Combina comandos (Ej:
nmap -sS -sV -O -T4
) para escaneos rápidos y detallados.
11. Ejemplo Final: Escaneo Completo
Un comando que lo reúne todo:
sudo nmap -sS -sV -sC -O -T4 -p- -A --script vuln -oA full_scan 10.129.2.28
- -sS: Escaneo SYN.
- -sV: Detección de versiones.
- -A: Modo agresivo (incluye detección de OS y traceroute).
- -p-: Todos los puertos (1-65535).
12. Todos los comandos Importantes
12.1 Opciones de Escaneo
Opción de Nmap | Descripción |
---|---|
10.10.10.0/24 | Rango de red objetivo. |
-sn | Desactiva el escaneo de puertos (solo descubre hosts). |
-Pn | Desactiva las solicitudes ICMP Echo (ping scan). |
-n | Desactiva la resolución DNS. |
-PE | Realiza un ping scan usando solicitudes ICMP Echo. |
--packet-trace | Muestra todos los paquetes enviados y recibidos. |
--reason | Muestra la razón detrás de un resultado específico (ej: «syn-ack»). |
--disable-arp-ping | Desactiva las solicitudes ARP. |
--top-ports=<num> | Escanea los puertos más frecuentes (ej: --top-ports=100 para los 100 principales). |
-p- | Escanea todos los puertos (1-65535). |
-p22-110 | Escanea puertos del 22 al 110. |
-p22,25 | Escanea solo los puertos 22 y 25. |
-F | Escanea los 100 puertos más comunes. |
12.2 Tipos de Escaneo
Opción de Nmap | Descripción |
---|---|
-sS | Escaneo TCP SYN (sigiloso, requiere permisos de root). |
-sA | Escaneo TCP ACK (útil para detectar reglas de firewall). |
-sU | Escaneo UDP. |
-sV | Detecta versiones de servicios. |
-sC | Ejecuta scripts predeterminados de Nmap (categoría default). |
-O | Detección del sistema operativo del objetivo. |
-A | Escaneo agresivo (incluye detección de OS, servicios y traceroute). |
12.3 Opciones de Salida
Opción de Nmap | Descripción |
---|---|
-oA filename | Guarda resultados en todos los formatos (.nmap, .gnmap, .xml). |
-oN filename | Guarda en formato normal (.nmap). |
-oG filename | Guarda en formato grepable (.gnmap). |
-oX filename | Guarda en formato XML (.xml). |
12.4 Optimización de Rendimiento
Opción de Nmap | Descripción |
---|---|
--max-retries <num> | Define el número de reintentos para puertos específicos (ej: --max-retries 2 ). |
--stats-every=5s | Muestra el estado del escaneo cada 5 segundos. |
-v / -vv | Modo verboso (detalles extendidos durante el escaneo). |
--initial-rtt-timeout 50ms | Define el tiempo inicial de espera RTT. |
--max-rtt-timeout 100ms | Define el tiempo máximo de espera RTT. |
--min-rate 300 | Envía al menos 300 paquetes por segundo. |
-T <0-5> | Plantilla de tiempo (ej: -T4 para modo agresivo). |
12.5 Técnicas de Evasión
Opción de Nmap | Descripción |
---|---|
-D RND:5 | Usa 5 señuelos aleatorios para ocultar tu IP. |
--source-port 53 | Escanea desde el puerto 53 (finge tráfico DNS). |
-f | Fragmenta paquetes para evitar detección. |
¡Y listo! Con estos comandos, dominarás Nmap como un profesional. Si tienes dudas o quieres compartir tus propios tips, ¡escríbelo en los comentarios! 🚀