![Page 1: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/1.jpg)
Automatizando o Nmap com NSE
Tiago Natel de Moura
![Page 2: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/2.jpg)
About Me
• Tiago Natel de Moura aka i4k• Co-Fundador do BugSec Security Team
• http://bugsec.googlecode.com/• Co-Fundador do OWASP Florianópolis.• Consultor de Segurança na SEC+
• www.secplus.com.br
![Page 3: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/3.jpg)
Porque automatizar?
• O processo do teste de penetração é repetitivo.
• Deixe a parte chata para a máquina e use seu tempo para estudar coisas novas ou fazer testes mais avançados.
• Diminui o tempo de pentest ...
![Page 4: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/4.jpg)
Porque automatizar?
• Rede• Levantamento de Informações
o Footprintingo Enumeration (dns-discover, network map)o Fingerprinting
• Análise de Vulnerabilidades• Análise de Vulnerabilidades em serviços.
![Page 5: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/5.jpg)
Porque automatizar?
• Aplicações Web• Levantamento de Informações
o Footprintingo Enumeration (spidering, brute directories and files)o Fingerprinting (Versão de tecnologias)
• Análise de Vulnerabilidades• Testes de Autenticação• Validação de entradas• Gerencia de Sessões• Testes da Regra de Negócio• Testes de WebService• outros
![Page 6: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/6.jpg)
Nmap
Nmap (Network Mapper) é uma ferramenta opensource para descobrimento e auditoria de
redes.
![Page 7: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/7.jpg)
Nmap
• Network Mapper• Port Scanner• OS Fingerprinter• Service Fingerprinter• Traceroute• Ping• Security
![Page 8: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/8.jpg)
NSE – Nmap Scripting Engine
• NSE é uma das funcionalidades mais poderosas do Nmap.
• Permite que usuários escrevam scripts em Lua para automatizar tarefas ou estender as funcionalidades do Nmap.
• Scripts executados em paralelo usando toda a eficiência e velocidade da API do Nmap.
![Page 9: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/9.jpg)
NSE
• NSE iniciou com o Nmap 5 e durante esse release foram criados 59 scripts homologados.
• O Nmap 6 foi lançado dia 21/05/2012 com 6x mais scripts, agora possui 348 homologados.
• Alguns scripts não criam nenhum tráfego, simplesmente consomem dados de outros scripts (address-info, creds-summary, etc).
![Page 10: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/10.jpg)
Nmap 6
• Adicionado a biblioteca “vulns”, que pode ser usada por scripts para reportar e armazenar vulnerabilidades num formato comum.
• Adicionado uma biblioteca “httpspider” para crawling de páginas web.
• Adicionado 54 scripts para web scanner (http-title, http-backup-finder, http-enum, http-grep, etc).
• Completo suporte ao IPv6 (Raw IPv6, OS IPv6 Detection, etc).
![Page 11: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/11.jpg)
Objetivos do NSE
• Sofisticadas técnicas de detecção.• Detecção de vulnerabilidades.• Detecção de backdoors.• Exploração de vulnerabilidades.
![Page 12: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/12.jpg)
Linguagem Lua
• Criada no Brasil (PUC-RJ)• Opensource (MIT License)• Programada em ISO C• Extensivel através de uma pequena API C.• Leve e Rápida. Versão 5.2.0 têm 241Kb com
docs e 20k LoC.• Multiparadigma (OOP, procedural, funcional,
etc).
![Page 13: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/13.jpg)
Categorias de Scripts
• Auth: x11-access, ftp-anon,oracle-enum-users• Broadcast: Scripts para descobrimentos de outros
hosts não passados na linha de comando.• Brute: http-brute, oracle-brute, snmp-brute• Default• Discovery: smb-enum-shares• Dos: Denial Of Service• Exploit: Explora vulnerabilidades
![Page 14: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/14.jpg)
Categorias de Scripts
• External: Scripts que enviam dados para um banco de dados de terceiros ou algum recurso remoto.
• Fuzzer: dns-fuzz• Intrusive: Scripts que não podem estar na categoria
“safe” pois possuem riscos de danos aos hosts ou a rede. (snmp-brute)
• Malware: Verifica se o alvo está infectado (smtp-strangeport).
• Safe: html-title, ssh-hostkey, etc• Version: skypev2-version, pptp-version, iax2-version.• Vuln: realvnc-auth-bypass, afp-path-vuln, etc.
![Page 15: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/15.jpg)
Tipos de Scripts e Fases
• Prerule Scripts: Estes scripts rodam antes da fase de scan do Nmap, então ele não tem nenhuma informação coletada sobre a rede. Ex.: Query DHCP ou DNS.
• Host Scripts: Scripts nesta fase rodam durante o processo normal de scaneamento. Depois do host discovery, port scanning, version detection e OS detection. Este tipo de script é invocado sempre que o host casa com algum valor em “hostrule”.
• Service Scripts: Estes scripts rodam contra serviços. Estes são os scripts mais comuns e são distinguidos por possuirem a função “portrule” para decidir contra qual serviço detectado o script deve rodar.
• Postrule Scripts: Estes scripts rodam depois que o Nmap scaneou todos os alvos.Eles são úteis para report e apresentação das informações.
![Page 16: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/16.jpg)
Linha de comando
• -sC• Utiliza o conjunto de scripts default
• --script <filename>|<category>|<directory>|<expression>[…]• Roda o scanner usando a lista de arquivos separados por virgula, categorias de
scripts e diretórios.
• --datadir• Diretório de dados (scripts, wordlists, executavel, etc)
• --script-args <args>• Argumentos para os scripts.
• --script-args-file• Passa um arquivo para o script.
• --script-help <filename>|<category>|<directory>|all[…]• Help about script.
![Page 17: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/17.jpg)
Linha de comando
• --script-trace• Debug script
• --script-updatedb• Atualiza o banco de scripts.
![Page 18: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/18.jpg)
![Page 19: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/19.jpg)
http-title
![Page 20: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/20.jpg)
Formato NSE
Um script NSE consiste em:• Campos de descrição:• Description• Categories• Author• License• Dependencies
![Page 21: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/21.jpg)
Formato NSE
• Rules:• Rules são usados pra decidir quando que o script pode
executar contra o alvo.• Deve conter um dos seguintes tipos:• prerule() : Roda 1x antes, antes de qualquer host
ser escaneado.• hostrule(host) : Recebe uma tabela de hosts e deve
verificar nessa tabela se pode executar.• portrule(host, port) : Utiliza uma tabela de hosts e
portas pra decidir se deve rodar.• postrule() : Roda 1x depois de todos os hosts
escaneados.
![Page 22: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/22.jpg)
Formato NSE
• Action: Todas as instruções que devem ser executadas quando alguma das rules for satisfeita.
![Page 23: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/23.jpg)
NSE Library
NSE Library é composta de módulos Lua e C/C++. Recomenda-se escrever todos os módulos em Lua, mas sempre há casos que se precise do C para otimização ou porque precisa-se linkar com alguma biblioteca externa.
![Page 24: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/24.jpg)
Scripts: http-headers
![Page 25: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/25.jpg)
Scripts: http-headers
![Page 26: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/26.jpg)
http-headers
![Page 27: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/27.jpg)
http-headers
![Page 28: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/28.jpg)
Use Nmap
O Nmap já tem toda a parte difícil pronta (TCP/UDP scan, Raw scan, bypass IDS/IPS, OS version detection, Advanced Service Version Detection, etc). Utilize todo esse poder com Lua e estenda o poder do seu pentest.
![Page 29: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/29.jpg)
Jboss Exploit
• Exploit que desenvolvi para explorar o CVE-2010-0738 do JBoss.
• Simplesmente reescrita em Lua/NSE do exploit daytona_bsh.pl do Kingcope.
• Retorna uma shell reversa na máquina alvo.• Mais informações:
https://github.com/tiago4orion/nmap-scripts
![Page 30: Automatizando o Nmap com NSE Tiago Natel de Moura](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc0f8497959413d8b4ee6/html5/thumbnails/30.jpg)
Jboss-vuln-CVE2010-0738