Automatizando o Nmap com NSETiago Natel de Moura
About Me• Tiago Natel de Moura aka i4k• Co-Fundador do BugSec Security Team     • http://bugsec.googlecode.com/• Co-Fundad...
Porque automatizar?• O processo do teste de penetração é  repetitivo.• Deixe a parte chata para a máquina e use seu  tempo...
Porque automatizar?• Rede  • Levantamento de Informações     o Footprinting     o Enumeration (dns-discover, network map) ...
Porque automatizar?• Aplicações Web   • Levantamento de Informações        o Footprinting        o Enumeration (spidering,...
Nmap Nmap (Network Mapper) é uma ferramentaopensource para descobrimento e auditoria de                   redes.
Nmap•   Network Mapper•   Port Scanner•   OS Fingerprinter•   Service Fingerprinter•   Traceroute•   Ping•   Security
NSE – Nmap Scripting Engine• NSE é uma das funcionalidades mais  poderosas do Nmap.• Permite que usuários escrevam scripts...
NSE• NSE iniciou com o Nmap 5 e durante esse  release foram criados 59 scripts homologados.• O Nmap 6 foi lançado dia 21/0...
Nmap 6• Adicionado a biblioteca “vulns”, que pode ser  usada por scripts para reportar e armazenar  vulnerabilidades num f...
Objetivos do NSE•   Sofisticadas técnicas de detecção.•   Detecção de vulnerabilidades.•   Detecção de backdoors.•   Explo...
Linguagem Lua• Criada no Brasil (PUC-RJ)• Opensource (MIT License)• Programada em ISO C• Extensivel através de uma pequena...
Categorias de Scripts• Auth: x11-access, ftp-anon,oracle-enum-users• Broadcast: Scripts para descobrimentos de outros  hos...
Categorias de Scripts• External: Scripts que enviam dados para um banco de  dados de terceiros ou algum recurso remoto.• F...
Tipos de Scripts e Fases• Prerule Scripts: Estes scripts rodam antes da fase de scan do Nmap,  então ele não tem nenhuma i...
Linha de comando• -sC   •    Utiliza o conjunto de scripts default• --script <filename>|<category>|<directory>|<expression...
Linha de comando• --script-trace   • Debug script• --script-updatedb   • Atualiza o banco de scripts.
http-title
Formato NSEUm script NSE consiste em:  • Campos de descrição:     • Description     • Categories     • Author     • Licens...
Formato NSE• Rules:   • Rules são usados pra decidir quando que o script pode     executar contra o alvo.   • Deve conter ...
Formato NSE• Action: Todas as instruções que devem ser  executadas quando alguma das rules for  satisfeita.
NSE LibraryNSE Library é composta de módulos Lua e C/C+ +. Recomenda-se escrever todos os módulos em Lua, mas sempre há ca...
Scripts: http-headers
Scripts: http-headers
http-headers
http-headers
Use NmapO Nmap já tem toda a parte difícil pronta (TCP/  UDP scan, Raw scan, bypass IDS/IPS, OS  version detection, Advanc...
Jboss Exploit• Exploit que desenvolvi para explorar o  CVE-2010-0738 do JBoss.• Simplesmente reescrita em Lua/NSE do  expl...
Jboss-vuln-CVE2010-0738
Fim     Obrigado!Perguntas & Respostas  natel@owasp.org
Automatizando Nmap com NSE
Upcoming SlideShare
Loading in...5
×

Automatizando Nmap com NSE

598

Published on

Introdução ao Nmap Scripting Engine para pentest.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
598
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Automatizando Nmap com NSE

  1. 1. Automatizando o Nmap com NSETiago Natel de Moura
  2. 2. 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
  3. 3. 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 ...
  4. 4. Porque automatizar?• Rede • Levantamento de Informações o Footprinting o Enumeration (dns-discover, network map) o Fingerprinting • Análise de Vulnerabilidades • Análise de Vulnerabilidades em serviços.
  5. 5. Porque automatizar?• Aplicações Web • Levantamento de Informações o Footprinting o 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
  6. 6. Nmap Nmap (Network Mapper) é uma ferramentaopensource para descobrimento e auditoria de redes.
  7. 7. Nmap• Network Mapper• Port Scanner• OS Fingerprinter• Service Fingerprinter• Traceroute• Ping• Security
  8. 8. 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.
  9. 9. 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).
  10. 10. 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).
  11. 11. Objetivos do NSE• Sofisticadas técnicas de detecção.• Detecção de vulnerabilidades.• Detecção de backdoors.• Exploração de vulnerabilidades.
  12. 12. 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).
  13. 13. 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
  14. 14. 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.
  15. 15. 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.
  16. 16. 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.
  17. 17. Linha de comando• --script-trace • Debug script• --script-updatedb • Atualiza o banco de scripts.
  18. 18. http-title
  19. 19. Formato NSEUm script NSE consiste em: • Campos de descrição: • Description • Categories • Author • License • Dependencies
  20. 20. 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.
  21. 21. Formato NSE• Action: Todas as instruções que devem ser executadas quando alguma das rules for satisfeita.
  22. 22. NSE LibraryNSE 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.
  23. 23. Scripts: http-headers
  24. 24. Scripts: http-headers
  25. 25. http-headers
  26. 26. http-headers
  27. 27. Use NmapO 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.
  28. 28. 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
  29. 29. Jboss-vuln-CVE2010-0738
  30. 30. Fim Obrigado!Perguntas & Respostas natel@owasp.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×