Teste de Invasão com o
Nmap Scripting Engine




       Henrique Soares
       Clavis Segurança da Informação
       henrique@clavis.com.br
$ whoami

  • Grupo Clavis
  • Analista de Segurança da Informação
  • Mestrando em Informática
  • Testes de invasão em redes, sistemas e
    aplicações
  • Detecção e resposta a incidentes de segurança
Agenda



  • Introdução
  • Utilizando os Scripts
  • Teste de Invasão com o NSE
  • Desenvolvimento de Scripts
  • Conclusão
Agenda



  • Introdução
  • Utilizando os Scripts
  • Teste de Invasão com o NSE
  • Desenvolvimento de Scripts
  • Conclusão
Introdução

 Nmap Security Scanner
  • Varredura de portas, detecção de serviços,
 versões e SOs, mapeamento de redes, etc...
  • Ferramenta livre e código aberto
  • Criado por Gordon “Fyodor” Lyon
  • Projeto ativo e mantido pela comunidade
Introdução

 Nmap Scripting Engine
  • NSE → funcionalidade poderosa e flexível
  • Automatização de diversas tarefas
  • Integrado à varredura tradicional do Nmap
  • Scripts desenvolvidos em Lua
  • Black Hat 2010: http://nmap.org/presentations/BHDC10/
Introdução

 Nmap Scripting Engine
Agenda



  • Introdução
  • Utilizando os Scripts
  • Teste de Invasão com o NSE
  • Desenvolvimento de Scripts
  • Conclusão
Utilizando os Scripts

 Documentação do NSE
Utilizando os Scripts

 Sintaxe de uso do NSE

  • Uso padrão do NSE
       -A ou -sC ou --script=default
  • Sintaxe de uso
       --script script|categoria|diretório|expressão|all
  • Uso de expressões
       --script "default or safe"' ou '--script "default,safe"
       --script "not intrusive"
       --script "http-* and not (brute or dos or exploit)"
Utilizando os Scripts

 Passando Parâmetros

  • Passando parâmetros para os scripts
      --script-args "[scr.]arg1=val1[,[scr.]argN=valN]"
      --script-args-file <arq>
  • Limitando escopo dos parâmetros
      --script-args 'user="foo",pass="bar"'
      --script-args 'smtp.domain="alvomail.com",
       domain="alvo.com"'
      --script-args 'userdb=user1.txt,passdb=pass1.txt,
       smtp-brute={userdb=user2.txt,passdb=pass2.txt}'
Agenda



  • Introdução
  • Utilizando os Scripts
  • Teste de Invasão com o NSE
  • Desenvolvimento de Scripts
  • Conclusão
Teste de Invasão com NSE

 Antes de Começarmos

  • Máquina alvo: Metasploitable
  • Fases do Teste de Invasão:
      Obtenção de Informação
      Identificação de Vulnerabilidades
      Análise e Exploração
  • Objetivo
      Mostrar funcionalidades do NSE úteis em TDIs
      Realizar um TDI completo só com Nmap e NSE
Teste de Invasão com NSE

 Varredura Padrão do Nmap
Teste de Invasão com NSE

 Obtenção de Informação

  • Tradicionalmente, o Nmap é usado nesta etapa
  • Etapa com maior quantidade de scripts
  • Objetivos desta etapa
      Obter informações relevantes sobre os alvos
      Descobrir vetores de ataque a explorar depois
  • Categorias de scripts úteis para esta etapa:
       broadcast, default, discovery, external, safe,
        version
Teste de Invasão com NSE

 Informações Interessantes

  • Arquivo "descoberta_01.nmap
Teste de Invasão com NSE

 Identificação de Vulnerabilidades

  • O Nmap já executa alguns ataques nesta etapa
  • Etapa com menos scripts disponíveis
  • Objetivos desta etapa
      Averiguar vetores de ataque a explorar depois
      Identificar vulnerabilidades conhecidas nos alvos
  • Categorias de scripts úteis para esta etapa:
       malware, vuln
Teste de Invasão com NSE

 Informações Interessantes

  • Arquivo "identificacao_01.nmap
Teste de Invasão com NSE

 Análise e Exploração

  • Etapa dos ataques
  • Alguns scripts são os mesmos da etapa anterior
  • Objetivos desta etapa:
      Executar vetores de ataque encontrados nas
       etapas anteriores
      Explorar vulnerabilidades conhecidas encontradas
  • Categorias de scripts úteis para esta etapa:
       auth, brute, dos, exploit, fuzzer, intrusive (malware,
        vuln)
Teste de Invasão com NSE

 Informações Interessantes

  • Arquivo "exploracao_01.nmap
Agenda



  • Introdução
  • Utilizando os Scripts
  • Teste de Invasão com o NSE
  • Desenvolvimento de Scripts
  • Conclusão
Desenvolvimento de Scripts

 Lua
  • Criada pelo TecGraf/PUC-Rio em 1993
  • Características da Linguagem
         Sintaxe simples e fácil de aprender
         Pequena e Extensível
         Portável para diversas plataformas
         Gerenciamento de memória
  •   Muito usada pela industria dos jogos
  •   É usada em outras ferramentas de segurança
         Exemplos: Wireshark, Snort 3.0
Desenvolvimento de Scripts

 Adições do Nmap

  • Bibliotecas de protocolo ou de suporte
         Facilitam o uso de protocolos mais usados
         Oferecem suporte a diversas operações
  •   Módulos de força bruta
         Manipulação de wordlists
  •   Suporte a SSL
  •   Sistema de dependências de scripts
         Utilização da saída de um script em outro
Desenvolvimento de Scripts

 Exemplo de Script
Desenvolvimento de Scripts

 Exemplo de Script
Agenda



  • Introdução
  • Utilizando os Scripts
  • Teste de Invasão com o NSE
  • Desenvolvimento de Scripts
  • Conclusão
Conclusão

 NSE como ferramenta de TDI

  • O NSE não é uma solução completa
         Base de Vulnerabilidades pequena
         Poucos Exploits
  •   Lado positivo
         Melhora da fase Obtenção de Informação
  •   Mas foi divertido!!!
Dúvidas?


           Perguntas?
            Críticas?
           Sugestões?
Siga a Clavis



      http://clav.is/slideshare


      http://clav.is/twitter


      http://clav.is/facebook
Muito Obrigado!
   henrique@clavis.com.br

   @hrssoares




  Henrique Soares
  Clavis Segurança da Informação

Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13

  • 1.
    Teste de Invasãocom o Nmap Scripting Engine Henrique Soares Clavis Segurança da Informação henrique@clavis.com.br
  • 2.
    $ whoami • Grupo Clavis • Analista de Segurança da Informação • Mestrando em Informática • Testes de invasão em redes, sistemas e aplicações • Detecção e resposta a incidentes de segurança
  • 3.
    Agenda •Introdução • Utilizando os Scripts • Teste de Invasão com o NSE • Desenvolvimento de Scripts • Conclusão
  • 4.
    Agenda •Introdução • Utilizando os Scripts • Teste de Invasão com o NSE • Desenvolvimento de Scripts • Conclusão
  • 5.
    Introdução Nmap SecurityScanner • Varredura de portas, detecção de serviços, versões e SOs, mapeamento de redes, etc... • Ferramenta livre e código aberto • Criado por Gordon “Fyodor” Lyon • Projeto ativo e mantido pela comunidade
  • 6.
    Introdução Nmap ScriptingEngine • NSE → funcionalidade poderosa e flexível • Automatização de diversas tarefas • Integrado à varredura tradicional do Nmap • Scripts desenvolvidos em Lua • Black Hat 2010: http://nmap.org/presentations/BHDC10/
  • 7.
  • 8.
    Agenda •Introdução • Utilizando os Scripts • Teste de Invasão com o NSE • Desenvolvimento de Scripts • Conclusão
  • 9.
    Utilizando os Scripts Documentação do NSE
  • 10.
    Utilizando os Scripts Sintaxe de uso do NSE • Uso padrão do NSE  -A ou -sC ou --script=default • Sintaxe de uso  --script script|categoria|diretório|expressão|all • Uso de expressões  --script "default or safe"' ou '--script "default,safe"  --script "not intrusive"  --script "http-* and not (brute or dos or exploit)"
  • 11.
    Utilizando os Scripts Passando Parâmetros • Passando parâmetros para os scripts  --script-args "[scr.]arg1=val1[,[scr.]argN=valN]"  --script-args-file <arq> • Limitando escopo dos parâmetros --script-args 'user="foo",pass="bar"'  --script-args 'smtp.domain="alvomail.com", domain="alvo.com"'  --script-args 'userdb=user1.txt,passdb=pass1.txt, smtp-brute={userdb=user2.txt,passdb=pass2.txt}'
  • 12.
    Agenda •Introdução • Utilizando os Scripts • Teste de Invasão com o NSE • Desenvolvimento de Scripts • Conclusão
  • 13.
    Teste de Invasãocom NSE Antes de Começarmos • Máquina alvo: Metasploitable • Fases do Teste de Invasão:  Obtenção de Informação  Identificação de Vulnerabilidades  Análise e Exploração • Objetivo  Mostrar funcionalidades do NSE úteis em TDIs  Realizar um TDI completo só com Nmap e NSE
  • 14.
    Teste de Invasãocom NSE Varredura Padrão do Nmap
  • 15.
    Teste de Invasãocom NSE Obtenção de Informação • Tradicionalmente, o Nmap é usado nesta etapa • Etapa com maior quantidade de scripts • Objetivos desta etapa Obter informações relevantes sobre os alvos  Descobrir vetores de ataque a explorar depois • Categorias de scripts úteis para esta etapa:  broadcast, default, discovery, external, safe, version
  • 16.
    Teste de Invasãocom NSE Informações Interessantes • Arquivo "descoberta_01.nmap
  • 17.
    Teste de Invasãocom NSE Identificação de Vulnerabilidades • O Nmap já executa alguns ataques nesta etapa • Etapa com menos scripts disponíveis • Objetivos desta etapa Averiguar vetores de ataque a explorar depois  Identificar vulnerabilidades conhecidas nos alvos • Categorias de scripts úteis para esta etapa:  malware, vuln
  • 18.
    Teste de Invasãocom NSE Informações Interessantes • Arquivo "identificacao_01.nmap
  • 19.
    Teste de Invasãocom NSE Análise e Exploração • Etapa dos ataques • Alguns scripts são os mesmos da etapa anterior • Objetivos desta etapa: Executar vetores de ataque encontrados nas etapas anteriores  Explorar vulnerabilidades conhecidas encontradas • Categorias de scripts úteis para esta etapa:  auth, brute, dos, exploit, fuzzer, intrusive (malware, vuln)
  • 20.
    Teste de Invasãocom NSE Informações Interessantes • Arquivo "exploracao_01.nmap
  • 21.
    Agenda •Introdução • Utilizando os Scripts • Teste de Invasão com o NSE • Desenvolvimento de Scripts • Conclusão
  • 22.
    Desenvolvimento de Scripts Lua • Criada pelo TecGraf/PUC-Rio em 1993 • Características da Linguagem  Sintaxe simples e fácil de aprender  Pequena e Extensível  Portável para diversas plataformas  Gerenciamento de memória • Muito usada pela industria dos jogos • É usada em outras ferramentas de segurança  Exemplos: Wireshark, Snort 3.0
  • 23.
    Desenvolvimento de Scripts Adições do Nmap • Bibliotecas de protocolo ou de suporte  Facilitam o uso de protocolos mais usados  Oferecem suporte a diversas operações • Módulos de força bruta  Manipulação de wordlists • Suporte a SSL • Sistema de dependências de scripts  Utilização da saída de um script em outro
  • 24.
    Desenvolvimento de Scripts Exemplo de Script
  • 25.
    Desenvolvimento de Scripts Exemplo de Script
  • 26.
    Agenda •Introdução • Utilizando os Scripts • Teste de Invasão com o NSE • Desenvolvimento de Scripts • Conclusão
  • 27.
    Conclusão NSE comoferramenta de TDI • O NSE não é uma solução completa  Base de Vulnerabilidades pequena  Poucos Exploits • Lado positivo  Melhora da fase Obtenção de Informação • Mas foi divertido!!!
  • 28.
    Dúvidas? Perguntas? Críticas? Sugestões?
  • 29.
    Siga a Clavis http://clav.is/slideshare http://clav.is/twitter http://clav.is/facebook
  • 30.
    Muito Obrigado! henrique@clavis.com.br @hrssoares Henrique Soares Clavis Segurança da Informação