Nmap Avanzado: Scripts NSE para Recon Interno en Lab Corporativo Simulado
Como aprovechar el NSE para enumeracion autorizada en redes internas simuladas, con ejemplos de scripts, parseo de salida e integracion en pipelines de pentest.
Nmap no esta muerto, y quien lo crea nunca abrio /usr/share/nmap/scripts. El conjunto NSE incluye mas de 600 scripts en Lua, desde fingerprint de servicios legados como JD Edwards hasta enumeracion de Active Directory via LDAP sin autenticar. En laboratorio corporativo simulado, armado por ejemplo con GOAD o Ludus, el NSE reemplaza decenas de herramientas puntuales y devuelve XML estructurado, lo que hace el tooling reproducible. Antes de cualquier flag exotica, el punto innegociable es alcance por escrito: sin autorizacion formal, escanear esta tan mal como abrir el buzon ajeno. Aqui asumimos lab propio, aislado y documentado.
Empieza por lo basico bien hecho. Un sweep inicial con nmap -sS -p- --min-rate 5000 -oA full_tcp 10.10.0.0/24 te entrega inventario TCP completo en pocos minutos sobre un /24 con latencia baja. Despues un segundo paso enfocado, nmap -sV -sC -p$(cat ports.txt) -oA versioned -iL hosts.txt, corre scripts default (categoria safe y discovery) sobre los puertos reales. Este flujo en dos etapas evita el pecado clasico del -A en /16 entero, que satura sondas, genera ruido en el SIEM y te deja sin datos confiables. Si aun no tienes lab armado, vale repasar Pentest Web desde Cero: Montando un Lab Seguro con DVWA, Juice Shop y Burp Suite para un escenario reproducible.
Donde el NSE realmente brilla es en enumeracion de servicios especificos. Para SMB, scripts como smb-os-discovery, smb2-security-mode, smb-enum-shares y smb-vuln-ms17-010 reconstruyen topologia Windows sin credenciales validas en muchos casos. Para LDAP, ldap-search con filtros (objectClass=user) revela cuentas de servicio, descripciones con contrasenas pegadas (mas comun de lo que admiten) y politicas de password debiles. En entornos AD tipo GOAD, este reconocimiento alimenta directamente el ataque descrito en Pentest de Active Directory: Kerberoasting Paso a Paso en Lab GOAD, donde Kerberoasting depende de SPNs identificados aun en la fase de recon.
Salida util es salida parseable. Usa siempre -oA basename, que genera nmap, gnmap y XML simultaneamente. El XML alimenta herramientas como nmap-parse-output, dnmap, o un script Python propio con python-libnmap. En equipos grandes, ingerir XML en Elasticsearch y cruzarlo con reglas Sigma convierte el recon ofensivo en insumo del blue team, cerrando el ciclo descrito en Purple Team en la Practica: Construyendo Ciclo de Feedback Red vs Blue. Evita pegar salida cruda en un prompt de LLM para resumir: ademas del riesgo de fuga, pierdes campos como reason_ttl que son oro para detectar un IPS en el camino.
Los scripts personalizados son el truco maestro. Escribir NSE en Lua es mas simple de lo que parece: un archivo en ~/.nmap/scripts/ con portrule, action y categories ya corre. En red team autorizado vale crear chequeos para CVEs internos especificos, como configuraciones inseguras de Jenkins o endpoints de Spring Boot Actuator expuestos. Combina con http-enum, http-title y http-shellshock para barrer granjas enteras de aplicaciones en segundos. Para el ciclo posterior, cuando ya tienes foothold y quieres pivotar a otras VLAN, el material de Pivoting con Chisel y Ligolo-ng: Redes Segmentadas en Lab de Pentest encaja porque asume reconocimiento ya consolidado.
Cuidado con timing y firewall stateful. -T4 rompe muchos IDS viejos, pero hoy genera alerta facil en XDR moderno. Para lab realista, ajusta --max-retries 2, --host-timeout 30m y --scan-delay 100ms en redes con NIDS Suricata. Usa --source-port 53 o --data-length 24 para probar reglas laxas que confian en puerto origen, patron lamentablemente aun comun. En pentest largo, segmenta objetivos por ventana de mantenimiento y registra todo, incluso las varreduras fallidas, porque suelen senalar ACLs interesantes que merecen revision manual posterior.
Al final, NSE no reemplaza el pensamiento. Nmap encuentra puertos y adivina versiones; correlacionar hallazgos, priorizar exploit path y respetar limites del scope sigue siendo trabajo humano. Takeaway practico: arma un pipeline de tres capas, sweep amplio con -sS -p-, enumeracion con -sV --script "safe,discovery" y validacion con NSE especifico por servicio, siempre exportando XML para parseo posterior. En dos horas mapeas mejor un /24 corporativo que muchos escaneos automatizados de pago. Y recuerda, sin autorizacion escrita, nada de esto es pentest, es delito.