Escaneos básicos
Objetivos del escaneo
nmap 192.168.1.1 # single host nmap 192.168.1.0/24 # entire subnet nmap 192.168.1.1-50 # IP range nmap -iL targets.txt # hosts from file
Especificación de objetivos
192.168.1.1Dirección IP individual
192.168.1.0/24Notación CIDR (256 hosts)
192.168.1.1-254Rango de IPs
example.comNombre de host (resuelto a IP)
-iL file.txtLeer objetivos desde archivo
--exclude 192.168.1.1Excluir hosts específicos
--excludefile skip.txtExcluir hosts desde archivo
Escaneo de puertos
Tipos de escaneo
-sSEscaneo TCP SYN (por defecto, sigiloso, requiere root)
-sTEscaneo TCP connect (handshake completo, sin root)
-sUEscaneo UDP (lento, frecuentemente filtrado)
-sAEscaneo TCP ACK (detectar firewalls)
-sNEscaneo TCP NULL (sin flags)
-sFEscaneo TCP FIN (solo flag FIN)
-sXEscaneo Xmas (flags FIN+PSH+URG)
Selección de puertos
nmap -p 80,443 target # specific ports nmap -p 1-1000 target # port range nmap -p- target # all 65535 ports nmap --top-ports 100 target # most common 100 ports
Estados de puerto
openLa aplicación acepta conexiones
closedPuerto accesible pero sin servicio
filteredFirewall bloqueando, no se puede determinar estado
unfilteredPuerto accesible, abierto/cerrado desconocido
open|filteredNo se puede determinar si abierto o filtrado
Descubrimiento de hosts
Métodos de descubrimiento
-snSolo escaneo de ping (sin escaneo de puertos)
-PnOmitir descubrimiento (tratar todos como activos)
-PS 80,443Descubrimiento TCP SYN en puertos
-PA 80Descubrimiento TCP ACK
-PU 53Descubrimiento UDP
-PEPetición de echo ICMP
-PRDescubrimiento ARP (red local)
Barrido de red
nmap -sn 192.168.1.0/24 # ping sweep subnet nmap -sn -n 10.0.0.0/24 # sweep, skip DNS nmap -sn -PR 192.168.1.0/24 # ARP scan (fastest)
Detección de servicios
Detección de versiones
nmap -sV target # detect service versions nmap -sV --version-intensity 5 target # deeper probing nmap -sV --version-all target # try every probe (slow) nmap -A target # OS + version + scripts + traceroute
Flags de servicio
-sVSondear puertos abiertos para servicio/versión
--version-intensity 0-9Intensidad de sondeo (7 por defecto)
--version-lightSondeo ligero (intensidad 2)
--version-allProbar todas las sondas (intensidad 9)
-AAgresivo: -sV -O --script=default -traceroute
-sCEjecutar scripts NSE por defecto
Detección de SO
Fingerprinting de SO
nmap -O target # OS detection (needs root) nmap -O --osscan-limit target # only scan promising hosts nmap -O --osscan-guess target # aggressive OS guessing nmap -A target # includes OS detection
Flags de detección de SO
-OHabilitar detección de SO
--osscan-limitOmitir hosts sin puertos TCP abiertos+cerrados
--osscan-guessAdivinar SO de forma más agresiva
--max-os-tries NMáximo de intentos de detección de SO por host
Scripts (NSE)
Uso de scripts
nmap --script=default target # default category nmap --script=vuln target # vulnerability scripts nmap --script=http-headers target nmap --script="http-*" target # wildcard match
Categorías de scripts
defaultScripts seguros y útiles (atajo -sC)
vulnVerificar vulnerabilidades conocidas
safeScripts no intrusivos
intrusivePuede crashear objetivos o activar IDS
discoveryDescubrimiento de red y servicios
authVerificaciones de autenticación
brutePrueba de credenciales por fuerza bruta
exploitIntentos de explotación activa
Scripts útiles
http-titleObtener títulos de páginas web
ssl-certMostrar detalles del certificado SSL
ssh-hostkeyMostrar huellas de clave de host SSH
dns-bruteEnumerar subdominios DNS
smb-os-discoveryDetectar SO Windows via SMB
vulnEjecutar todas las verificaciones de vulnerabilidades
Formatos de salida
Opciones de salida
nmap -oN scan.txt target # normal text output nmap -oX scan.xml target # XML output nmap -oG scan.gnmap target # grepable output nmap -oA scan_all target # all formats at once
Flags de salida
-oN fileSalida normal a archivo
-oX fileSalida XML (para herramientas/parsing)
-oG fileSalida grepable (un host por línea)
-oA basenameLos tres formatos (basename.nmap/xml/gnmap)
-vAumentar verbosidad (-vv para más)
-dSalida de depuración (-dd para más)
--openMostrar solo puertos abiertos
--reasonMostrar razón del estado del puerto
Temporización y rendimiento
Plantillas de temporización
-T0 (paranoid)Muy lento, evasión de IDS (5 min entre sondas)
-T1 (sneaky)Lento, evasión de IDS (15 seg entre sondas)
-T2 (polite)Velocidad reducida, menos ancho de banda
-T3 (normal)Temporización por defecto
-T4 (aggressive)Rápido, asume red confiable
-T5 (insane)Más rápido, puede perder resultados
Ajuste fino
--min-rate 1000Enviar al menos 1000 paquetes/seg
--max-rate 500Limitar a 500 paquetes/seg
--max-retries 2Máximo de retransmisiones de sonda
--host-timeout 30mOmitir host si el escaneo supera 30 min
--scan-delay 1sRetraso entre sondas
--min-parallelism 10Mínimo de grupos de sondas en paralelo
Evasión de firewall
Técnicas de evasión
-fFragmentar paquetes (trozos de 8 bytes)
-D RND:5Escaneo señuelo con 5 IPs aleatorias
-S spoof_ipFalsificar IP de origen (requiere paquetes raw)
-e eth0Usar interfaz de red específica
--source-port 53Usar puerto de origen específico (p. ej. DNS)
--data-length 25Agregar datos aleatorios a los paquetes
--spoof-mac 0Aleatorizar dirección MAC
Ejemplos de evasión
nmap -f -D RND:3 target # fragments + decoys nmap --source-port 53 target # DNS port (often allowed) nmap -T1 --scan-delay 5s target # slow to evade IDS
Patrones comunes
Reconocimiento rápido
nmap -T4 -F target # fast common ports nmap -T4 -A -v target # OS + service detection nmap -sV --top-ports 1000 target # top 1000 + versions
Escaneo exhaustivo
# Full TCP + service + OS + scripts nmap -sS -sV -O -sC -p- -T4 -oA full target # UDP scan on common ports nmap -sU --top-ports 50 target
Auditoría de servidor web
nmap -p 80,443 --script=http-title,http-headers,\ ssl-cert,http-methods target # Check for open proxies and vulns nmap -p 80,443,8080 --script=http-open-proxy,vuln target
Inventario de red
# Discover all live hosts with OS info nmap -sn 192.168.1.0/24 -oG - | grep "Up" # Service inventory for subnet nmap -sV -T4 192.168.1.0/24 -oX inventory.xml