automatizando nmap com nse

31
Automatizando o Nmap com NSE Tiago Natel de Moura

Upload: tiago-natel-de-moura

Post on 18-Jul-2015

602 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Automatizando Nmap com NSE

Automatizando o Nmap com NSE

Tiago Natel de Moura

Page 2: Automatizando Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

Porque automatizar?

• Aplicações Web

• Levantamento de Informaçõeso 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 Nmap com NSE

Nmap

Nmap (Network Mapper) é uma ferramenta opensource para descobrimento e auditoria de

redes.

Page 7: Automatizando Nmap com NSE

Nmap

• Network Mapper• Port Scanner• OS Fingerprinter• Service Fingerprinter• Traceroute• Ping• Security

Page 8: Automatizando Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

Objetivos do NSE

• Sofisticadas técnicas de detecção.• Detecção de vulnerabilidades.• Detecção de backdoors.• Exploração de vulnerabilidades.

Page 12: Automatizando Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

Linha de comando

• --script-trace• Debug script

• --script-updatedb• Atualiza o banco de scripts.

Page 18: Automatizando Nmap com NSE
Page 19: Automatizando Nmap com NSE

http-title

Page 20: Automatizando Nmap com NSE

Formato NSE

Um script NSE consiste em:• Campos de descrição:• Description• Categories• Author• License• Dependencies

Page 21: Automatizando Nmap com NSE

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 Nmap com NSE

Formato NSE

• Action: Todas as instruções que devem ser executadas quando alguma das rules for satisfeita.

Page 23: Automatizando Nmap com NSE

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 Nmap com NSE

Scripts: http-headers

Page 25: Automatizando Nmap com NSE

Scripts: http-headers

Page 26: Automatizando Nmap com NSE

http-headers

Page 27: Automatizando Nmap com NSE

http-headers

Page 28: Automatizando Nmap com NSE

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 Nmap com NSE

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 Nmap com NSE

Jboss-vuln-CVE2010-0738

Page 31: Automatizando Nmap com NSE

Fim

Obrigado!

Perguntas & Respostas

[email protected]