Pular para o conteúdo
Categoria: Pentest8 min de leitura

Nmap Avancado: Scripts NSE para Recon Interno em Lab Corporativo Simulado

Por Lucas Andrade ·

Como tirar proveito real do NSE para enumeracao autorizada em redes internas simuladas, com exemplos de scripts, parsing de saida e integracao com pipelines de pentest.

Nmap Avancado: Scripts NSE para Recon Interno em Lab Corporativo Simulado

Nmap nao morreu, e quem pensa o contrario nunca abriu /usr/share/nmap/scripts. A Nmap Scripting Engine (NSE) traz mais de 600 scripts em Lua, cobrindo desde fingerprint de servicos legados ate enumeracao de Active Directory via LDAP nao autenticado. Em um laboratorio corporativo simulado, montado por exemplo com GOAD ou Ludus, o NSE substitui dezenas de ferramentas pontuais e ainda devolve XML estruturado, o que torna o tooling reproduzivel. Este artigo apresenta um fluxo de recon confiavel em tres estagios: varredura ampla de portas, enumeracao por servico e validacao dirigida. Antes de qualquer flag exotica, o ponto inegociavel e escopo escrito: sem autorizacao formal, escanear esta tao errado quanto abrir caixa de correio alheia e, em muitas jurisdicoes, e crime. Aqui assumimos sempre um lab proprio, isolado e documentado.

Por que NSE em vez de dez ferramentas soltas

O valor real do NSE e a consolidacao. Em vez de rodar enum4linux, smbmap, ldapsearch e uma duzia de snippets Python um atras do outro, um unico motor orquestra as sondas e normaliza a saida. Os scripts carregam categorias como safe, discovery, intrusive, vuln e brute, entao voce governa o risco com granularidade. --script safe roda apenas checagens nao invasivas, --script vuln agrega verificacoes de vulnerabilidades conhecidas. Essa distincao nao e cosmetica: num ambiente parecido com producao, a categoria decide se seu scan derruba um servico. Antes de usar qualquer coisa, leia nmap --script-help <nome>, porque a doc detalha categoria, argumentos e efeitos colaterais de cada script.

O lab: GOAD, Ludus e isolamento de rede

Um lab de recon serio precisa de topologia realista. GOAD (Game of Active Directory) entrega um ambiente AD multidominio vulneravel, enquanto o Ludus automatiza o deploy de ranges de ataque inteiros sobre Proxmox. Ambos vivem num VLAN segregado sem rota para producao. O que importa e uma interface de gerencia separada para sua VM Kali ou Parrot e uma subrede alvo dedicada como 10.10.0.0/24. Se voce ainda nao tem lab montado, Pentest Web do Zero: Montando um Lab Seguro com DVWA, Juice Shop e Burp Suite e uma referencia enxuta e reproduzivel que serve de ponto de partida e evita que suas praticas de recon vazem para a rede aberta.

Estagio um: uma varredura de portas limpa

Comece pelo basico bem feito. Um sweep inicial com nmap -sS -p- --min-rate 5000 -oA full_tcp 10.10.0.0/24 te da inventario TCP completo em poucos minutos em /24 com latencia baixa. O scan SYN (-sS) e mais rapido e silencioso que um connect completo, -p- cobre as 65535 portas e --min-rate fixa um piso de taxa de pacotes. Um segundo passo focado, nmap -sV -sC -p$(cat ports.txt) -oA versioned -iL hosts.txt, executa os scripts default (categorias safe e discovery) sobre as portas reais. Esse fluxo de dois estagios evita o pecado classico do -A num /16 inteiro, que entope sondas, gera ruido em SIEM e ainda deixa voce sem dados confiaveis. Nao esqueca o UDP: nmap -sU --top-ports 50 acha SNMP, NetBIOS e IKE que ficam invisiveis num scan TCP.

Estagio dois: enumeracao SMB

Onde o NSE brilha de verdade e em enumeracao de servico especifico. Para SMB, scripts como smb-os-discovery, smb2-security-mode, smb-enum-shares, smb-enum-users e smb-vuln-ms17-010 reconstroem topologia Windows sem precisar de credencial valida em muitos casos. Uma chamada tipica e nmap -p445 --script 'smb-os-discovery,smb2-security-mode,smb-enum-shares' 10.10.0.0/24. smb2-security-mode revela se o signing e forcado, indicador direto da viabilidade de SMB relay. smb-enum-shares lista compartilhamentos com seus direitos, muitas vezes expondo diretorios legiveis de forma anonima cheios de scripts e backups. Fique de olho no acesso guest e em compartilhamentos como SYSVOL, que num dominio podem conter Group Policy Preferences com senhas cifradas de forma reversivel.

Estagio dois: LDAP e Active Directory

Para LDAP, ldap-search com o filtro (objectClass=user) revela conta de servico, descricoes com senha colada (mais comum do que admitem) e politicas de senha frouxas. A chamada nmap -p389 --script ldap-search --script-args 'ldap.base="dc=corp,dc=lab"' 10.10.0.10 ja extrai bastante sem bind. Scripts como ldap-rootdse devolvem contextos de nomes e niveis funcionais. Em ambiente AD montado tipo GOAD, esse reconhecimento alimenta diretamente o ataque descrito em Active Directory Pentest: Kerberoasting Passo a Passo em Lab GOAD, onde Kerberoasting depende de SPNs identificados ainda na fase de recon. Some krb5-enum-users para confirmar nomes de conta validos via respostas de preauth Kerberos sem gerar falha de login.

Enumeracao web e scripts HTTP

Para farms web, combine http-title, http-enum, http-headers e http-methods para mapear paisagens de aplicacao inteiras em segundos. http-enum sonda caminhos conhecidos (paineis admin, .git, arquivos de backup), enquanto http-methods --script-args http-methods.test-all expoe verbos perigosos como PUT. Uma chamada como nmap -p80,443,8080,8443 --script 'http-title,http-headers,http-enum' -iL web_hosts.txt basta para a primeira passada. Para stacks Java expostos, endpoints abertos de Spring Boot Actuator e configuracoes inseguras de Jenkins sao os achados mais rentaveis, porque frequentemente levam direto a execucao remota de codigo.

Scripts vuln e scans credentialed

Assim que voce tem credenciais validas de um foothold, o NSE fica bem mais poderoso. --script-args smbusername=svc_backup,smbpassword=... desbloqueia smb-enum-shares e smb-enum-sessions para a visao autenticada que fica escondida de forma anonima. A categoria vuln agrupa checagens como smb-vuln-ms17-010, http-vuln-cve2017-5638 (Struts) e ssl-heartbleed; combinado com --script-args vulns.showall voce ve tambem as verificacoes que nao dispararam. Importante: scripts vuln confirmam presenca, nao explorabilidade. Um positivo de ms17-010 no lab e o ponto de partida para uma exploracao controlada, nunca para disparar as cegas contra hosts desconhecidos. Documente cada positivo com nome do script, argumentos e timestamp para o relatorio seguir reproduzivel depois.

Saida parseavel e pipeline

Saida util e saida parseavel. Use sempre -oA basename, que gera .nmap, .gnmap e .xml simultaneamente. O XML alimenta nmap-parse-output, dnmap, ou um script Python proprio com python-libnmap. Em times maiores, ingerir XML em Elasticsearch e cruzar com regras Sigma transforma recon ofensivo em insumo de blue team, fechando o ciclo discutido em Purple Team na Pratica: Construindo Ciclo de Feedback Red x Blue. Evite jogar saida bruta em prompt de LLM para resumir: alem do risco de vazamento, voce perde campos como reason_ttl que sao ouro para detectar IPS no caminho.

Escrever NSE proprio em Lua

Scripts personalizados sao o pulo do gato. Escrever NSE em Lua e mais simples que parece: um arquivo em ~/.nmap/scripts/ com as tres partes obrigatorias, description, categories e portrule, mais uma funcao action, ja roda. Um script minimo define portrule = shortport.port_or_service(8080, "http-proxy") e chama a biblioteca http dentro de action para montar uma checagem de CVE interno. Depois de largar o arquivo, atualize a base com nmap --script-updatedb. Em red team autorizado vale criar checagens para CVEs internos nao publicos. Para o ciclo posterior, quando voce ja tem foothold e quer pivotar, o material de Pivoting com Chisel e Ligolo-ng: Redes Segmentadas em Lab de Pentest casa bem porque assume reconhecimento ja consolidado.

Timing, firewalls e deteccao

Cuidado com timing e firewall stateful. -T4 quebra muitos IDS antigos, mas hoje gera alerta facil em XDR moderno. Para lab realista, ajuste --max-retries 2, --host-timeout 30m e --scan-delay 100ms em redes com NIDS Suricata. Use --source-port 53 ou --data-length 24 para testar regras frouxas que confiam em porta de origem, padrao infelizmente ainda comum. Do lado do blue team, um scan SYN sobre todas as portas produz uma assinatura marcante de muitas conexoes semiabertas; Zeek e Suricata detectam com confiabilidade. Se voce trabalha em defesa, construa regras de deteccao exatamente sobre isso e meca sua propria taxa de deteccao contra os scans mostrados aqui.

Erros comuns e checklist

Os erros mais comuns: jogar -A contra faixas grandes demais, ignorar UDP por completo, nao salvar o XML e tratar as suposicoes de versao como fatos. Checklist antes de cada corrida: (1) autorizacao escrita e escopo em maos; (2) a subrede alvo esta isolada; (3) estagio um so -sS -p- com -oA; (4) estagio dois -sV --script "safe,discovery" so contra portas abertas; (5) estagio tres NSE especifico por servico, documentado por script; (6) top ports UDP conferidos; (7) toda a saida arquivada, inclusive falhas de varredura, porque elas frequentemente apontam ACLs interessantes que valem investigacao manual depois.

FAQ

-sV e seguro contra producao? Quase sempre, mas stacks SCADA e impressoras antigas sao frageis diante de sondas de versao. Reduza com --version-intensity 2 e exclua hosts frageis. O NSE pode derrubar um alvo? Sim, principalmente scripts das categorias intrusive e dos. Fique em safe e discovery a menos que um contrato explicito cubra mais, e teste cada script novo primeiro no lab.

Por fim, NSE nao substitui pensamento. Nmap encontra portas e adivinha versoes; o trabalho de correlacionar achados, priorizar exploit path e respeitar limites do escopo continua humano. Takeaway pratico: monte um pipeline de tres camadas, sweep amplo com -sS -p-, enumeracao com -sV --script "safe,discovery" e validacao com NSE especifico por servico, sempre exportando XML para parsing posterior. Em duas horas voce mapeia melhor um /24 corporativo do que muitos scans automaticos pagos. E lembre, sem autorizacao escrita, nada disso e pentest, e crime.

Leituras relacionadas

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly