Nmap Avance: Scripts NSE pour Recon Interne dans un Lab Corporatif Simule
Comment tirer vraiment parti du NSE pour l enumeration autorisee sur des reseaux internes simules, avec exemples de scripts, parsing de sortie et integration aux pipelines de pentest.
Nmap n est pas mort, et qui pense le contraire n a jamais ouvert /usr/share/nmap/scripts. La collection NSE embarque plus de 600 scripts Lua, du fingerprint de services legacy comme JD Edwards a l enumeration Active Directory via LDAP non authentifie. Dans un lab corporatif simule, monte par exemple avec GOAD ou Ludus, le NSE remplace des dizaines d outils ponctuels et renvoie du XML structure, ce qui rend tout le tooling reproductible. Avant toute option exotique, le point non negociable reste le perimetre ecrit: sans autorisation formelle, scanner est aussi grave que d ouvrir le courrier d autrui. On part ici d un lab possede, isole et documente.
Commence par les bases bien faites. Un sweep initial avec nmap -sS -p- --min-rate 5000 -oA full_tcp 10.10.0.0/24 te donne un inventaire TCP complet en quelques minutes sur un /24 a faible latence. Une deuxieme passe ciblee, nmap -sV -sC -p$(cat ports.txt) -oA versioned -iL hosts.txt, execute les scripts par defaut (categories safe et discovery) sur les ports reellement ouverts. Ce flux en deux etapes evite le peche classique du -A sur tout un /16, qui sature les sondes, enflamme le SIEM et te laisse sans donnees fiables. Si ton lab n est pas encore en place, jette un oeil a Pentest Web depuis Zero: Construire un Lab Sur avec DVWA, Juice Shop et Burp Suite pour un scenario serre et reproductible.
Le NSE excelle vraiment dans l enumeration par service. Pour SMB, des scripts comme smb-os-discovery, smb2-security-mode, smb-enum-shares et smb-vuln-ms17-010 reconstruisent la topologie Windows sans credentials valides dans bien des cas. Pour LDAP, ldap-search avec un filtre (objectClass=user) expose les comptes de service, des descriptions contenant des mots de passe colles (plus frequent qu on ne l admet) et des politiques de mots de passe laxistes. Dans un AD type GOAD, cette reconnaissance nourrit directement l attaque decrite dans Pentest Active Directory : Kerberoasting Pas a Pas dans un Lab GOAD, ou le Kerberoasting depend de SPNs reperes des le recon.
Une sortie utile est une sortie parseable. Utilise toujours -oA basename, qui produit nmap, gnmap et XML d un coup. Le XML alimente nmap-parse-output, dnmap, ou un script Python maison avec python-libnmap. Dans une grosse equipe, ingerer le XML dans Elasticsearch et croiser avec des regles Sigma transforme le recon offensif en intrant pour la blue team, bouclant le cycle decrit dans Purple Team en Pratique: Construire une Boucle de Feedback Red vs Blue. Evite de jeter la sortie brute dans un prompt LLM pour la resumer: au-dela du risque de fuite, tu perds des champs comme reason_ttl qui sont precieux pour detecter un IPS en ligne.
Les scripts personnalises sont le vrai bonus. Ecrire du NSE en Lua est plus simple qu il n y parait: un fichier dans ~/.nmap/scripts/ avec portrule, action et categories suffit. En red team autorise, ca vaut le coup de coder des verifications pour des CVE internes specifiques, comme des configurations Jenkins risquees ou des endpoints Spring Boot Actuator exposes. Combine avec http-enum, http-title et http-shellshock pour balayer des fermes d applications entieres en secondes. Pour la phase d apres, quand le foothold est acquis et que tu veux pivoter vers d autres VLAN, Pivoting avec Chisel et Ligolo-ng : Reseaux Segmentes en Lab de Pentest prend le relais en supposant le recon termine.
Attention au timing et aux firewalls statefuls. -T4 casse encore beaucoup de vieux IDS, mais aujourd hui il declenche facilement des alertes XDR modernes. Pour un lab realiste, regle --max-retries 2, --host-timeout 30m et --scan-delay 100ms face a un Suricata. Utilise --source-port 53 ou --data-length 24 pour eprouver des regles laxistes qui font confiance au port source, motif helas toujours present. Sur une mission longue, segmente les cibles par fenetre de maintenance et journalise tout, y compris les scans rates, car ils signalent souvent des ACL interessantes a auditer ensuite.
Au final, NSE ne remplace pas la reflexion. Nmap trouve des ports et devine des versions; correler les decouvertes, prioriser le chemin d exploit et respecter le scope reste un travail humain. Takeaway pratique: monte un pipeline en trois couches, sweep large avec -sS -p-, enumeration avec -sV --script "safe,discovery" et validation via NSE specifique par service, toujours en exportant le XML pour parsing ulterieur. En deux heures tu cartographies mieux un /24 corporatif que bien des scanners automatises payants. Et rappelle-toi, sans autorisation ecrite, ce n est pas un pentest, c est un delit.