Nmap: Escaneo de Red y Reconocimiento
Introducción
Section titled “Introducción”Nmap (Network Mapper) es una herramienta de código abierto para exploración de redes y auditoría de seguridad. Se utiliza para descubrir hosts y servicios en una red, enviando paquetes y analizando las respuestas. Es esencial en fases de reconocimiento de pentesting.
Modos de Escaneo
Section titled “Modos de Escaneo”TCP SYN Scan (-sS)
Section titled “TCP SYN Scan (-sS)”Escaneo predeterminado. Completo y rápido, no completa la conexión TCP (half-open). Requiere privilegios root.
nmap -sS 192.168.1.1TCP Connect Scan (-sT)
Section titled “TCP Connect Scan (-sT)”Escaneo que completa la conexión TCP. Útil sin privilegios root.
nmap -sT 192.168.1.1UDP Scan (-sU)
Section titled “UDP Scan (-sU)”Escaneo de puertos UDP. Lento pero necesario para servicios DNS, DHCP, etc.
nmap -sU 192.168.1.1Otros Modos
Section titled “Otros Modos”- Null Scan (
-sN): No setea ningún flag (solo para sistemas UNIX). - FIN Scan (
-sF): Envía paquete FIN. - Xmas Scan (
-sX): Envía paquete con flags FIN, PSH y URG.
Técnicas de Evasión de Firewalls
Section titled “Técnicas de Evasión de Firewalls”Fragmentación de Paquetes (-f)
Section titled “Fragmentación de Paquetes (-f)”Divide los paquetes en fragmentos pequeños para evadir filtros.
nmap -f 192.168.1.1Modificación de MTU (--mtu)
Section titled “Modificación de MTU (--mtu)”Especifica un tamaño de paquete personalizado para evadir filtros. El valor debe ser múltiplo de 8.
nmap --mtu 24 192.168.1.1Spoofing de MAC (--spoof-mac)
Section titled “Spoofing de MAC (--spoof-mac)”Enmascara la dirección MAC del escáner para evadir filtros basados en MAC.
nmap --spoof-mac 0 192.168.1.1 # MAC aleatorianmap --spoof-mac Cisco 192.168.1.1 # Prefijo de fabricante específicoEscaneo Lento (--scan-delay, --max-rate)
Section titled “Escaneo Lento (--scan-delay, --max-rate)”Regula el tiempo entre paquetes para evadir IDS/IPS.
nmap --scan-delay 1s 192.168.1.1 # 1 segundo entre paquetesnmap --max-rate 10 192.168.1.1 # Máximo 10 paquetes por segundoTécnicas de Evasión Avanzadas
Section titled “Técnicas de Evasión Avanzadas”Longitud de Datos Aleatoria (--data-length)
Section titled “Longitud de Datos Aleatoria (--data-length)”Añade datos aleatorios a los paquetes para evadir IDS.
nmap --data-length 100 192.168.1.1Uso de Puerto Fuente Específico (--source-port)
Section titled “Uso de Puerto Fuente Específico (--source-port)”Engaña firewalls que permiten tráfico de puertos conocidos (ej: 53).
nmap --source-port 53 192.168.1.1Escaneo con Decoys (-D)
Section titled “Escaneo con Decoys (-D)”Oculta la IP real entre direcciones falsas.
nmap -D RND:10 192.168.1.1 # 10 decoys aleatoriosnmap -D decoy1,decoy2,ME 192.168.1.1 # Decoys específicosScripts NSE (Nmap Scripting Engine)
Section titled “Scripts NSE (Nmap Scripting Engine)”Categorías Principales
Section titled “Categorías Principales”- safe: Scripts no intrusivos
- vuln: Detección de vulnerabilidades
- exploit: Intentos de explotación
- auth: Bypass de autenticación
- brute: Fuerza bruta
Categorías de Scripts
Section titled “Categorías de Scripts”- safe: Scripts no intrusivos (default)
- auth: Bypass de autenticación
- brute: Ataques de fuerza bruta
- discovery: Descubrimiento de servicios
- dos: Denegación de servicio
- exploit: Explotación de vulnerabilidades
- vuln: Detección de vulnerabilidades
Ejemplos Prácticos
Section titled “Ejemplos Prácticos”# Escaneo con scripts segurosnmap --script safe 192.168.1.1
# Detectar vulnerabilidades comunesnmap --script vuln 192.168.1.1
# Fuerza bruta en servicio SSHnmap --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1Ejemplos Avanzados
Section titled “Ejemplos Avanzados”# Escanear vulnerabilidades comunesnmap --script vuln 192.168.1.1
# Fuerza bruta en FTPnmap --script ftp-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1
# Detectar servidores VNC sin autenticaciónnmap --script realvnc-auth-bypass 192.168.1.1
# Escanear vulnerabilidades de SMBnmap --script smb-vuln* 192.168.1.1Interpretación de Resultados
Section titled “Interpretación de Resultados”Estados de Puertos
Section titled “Estados de Puertos”- open: Accesible y con servicio activo
- closed: Accesible pero sin servicio
- filtered: Bloqueado por firewall
- unfiltered: Accesible pero estado indeterminado
- open|filtered: No se pudo determinar (UDP)
- closed|filtered: No se pudo determinar (UDP)
Análisis de Servicios
Section titled “Análisis de Servicios”# Versión exacta de serviciosnmap -sV 192.168.1.1
# Sistema operativonmap -O 192.168.1.1
# Traceroutenmap --traceroute 192.168.1.1Integración con Herramientas
Section titled “Integración con Herramientas”ncat (herramienta de red)
Section titled “ncat (herramienta de red)”# Escuchar en puerto (netcat mejorado)ncat -lvp 4444
# Conectar a servidorncat 192.168.1.1 80ndiff (comparar escaneos)
Section titled “ndiff (comparar escaneos)”# Comparar dos escaneosndiff scan1.xml scan2.xmlEnumeración de Puertos con Descriptores de Archivo
Section titled “Enumeración de Puertos con Descriptores de Archivo”Alternativa para sistemas Linux usando /proc:
# Listar puertos abiertos TCPcat /proc/net/tcp | awk '{print $2}' | grep -v 'local_address' | awk '{print $1}' | cut -d ':' -f2 | sort -nu
# Listar puertos UDPcat /proc/net/udp | awk '{print $2}' | grep -v 'local_address' | awk '{print $1}' | cut -d ':' -f2 | sort -nuDescubrimiento de Equipos en Red Local
Section titled “Descubrimiento de Equipos en Red Local”ARP Scan (-PR)
Section titled “ARP Scan (-PR)”Escaneo ARP para redes locales. Rápido y fiable en LAN.
nmap -PR 192.168.1.0/24ICMP Scan (-PE, -PP, -PM)
Section titled “ICMP Scan (-PE, -PP, -PM)”- Echo Request (
-PE): Ping tradicional. - Timestamp Request (
-PP): Solicitud de marca de tiempo. - Netmask Request (
-PM): Solicitud de máscara de red.
nmap -PE 192.168.1.0/24Tips para Pentesting
Section titled “Tips para Pentesting”-
Escaneo Sigiloso:
Terminal window nmap -T1 -f --data-length 50 --max-parallelism 1 192.168.1.1 -
Identificación de Servicios y Versiones:
Terminal window nmap -sV 192.168.1.1 -
Detección de SO:
Terminal window nmap -O 192.168.1.1 -
Guardar Resultados:
Terminal window nmap -oN resultado.txt 192.168.1.1 # Formato normalnmap -oX resultado.xml 192.168.1.1 # Formato XML -
Escaneo Completo:
Terminal window nmap -A 192.168.1.1 # Combina detección OS, versión, scripts y traceroute
Ejemplos Prácticos en Auditorías
Section titled “Ejemplos Prácticos en Auditorías”Escaneo Inicial de Red
Section titled “Escaneo Inicial de Red”nmap -sn 192.168.1.0/24 # Descubrimiento de hostsEscaneo Profundo de Equipo
Section titled “Escaneo Profundo de Equipo”nmap -p- -sV -sC -O -T4 192.168.1.100 # Todos los puertos, versión, scripts, detección OSEvasión de Firewall Corporativo
Section titled “Evasión de Firewall Corporativo”nmap -sS -f --source-port 53 -D 10.0.0.1,10.0.0.2,ME -T2 192.168.1.1Ejemplos de Auditoría Completa
Section titled “Ejemplos de Auditoría Completa”Escaneo de Red Completo
Section titled “Escaneo de Red Completo”nmap -T4 -A -v -oA full_scan 10.0.0.0/24Escaneo Sigiloso
Section titled “Escaneo Sigiloso”nmap -T1 -sS -f --data-length 50 -D RND:5 --source-port 53 -g 53 --spoof-mac 0 -oN stealth_scan.txt 192.168.1.1Escaneo de Vulnerabilidades
Section titled “Escaneo de Vulnerabilidades”nmap -Pn -sV --script vulners 192.168.1.1Nota: Siempre obtener permiso por escrito antes de escanear redes ajenas.
Tip: Usa
-vo-vvpara aumentar el nivel de verbosidad y ver detalles en tiempo real.