Metasploit Hands On Rafael Soares Ferreira Clavis Segurança da Informação rafael@clavis.com.br
$ whoami Grupo Clavis Sócio Diretor Técnico Análise forense computacional Detecção e resposta a incidentes de segurança Testes de invasão em redes, sistemas e aplicações.
Contatos rafaelsoaresferreira@gmail.com rafaelsoaresferreira @rafaelsferreira www.facebook.com/rafaelsoaresferreira
Agenda Introdução Ambiente de Teste Utilização Varreduras Mantendo Acesso Módulos Auxiliares
Introdução Definição Solução livre para Testes de Invasão Open Source Mantido pela comunidade (& Rapid7) Também possui Versões Comerciais
Introdução Versões for Security Professionals for IT Professionals for Security Researches and Developers
Introdução Objetivo Desenvolvimento de Exploits Customização e Lançamento Exploits Testados e Reescritos
Introdução Arquitetura
Introdução Sistema de Arquivos lib: A base dos códigos do framework data: Arquivos editáveis tools: utilitários modules: Base de 'exploits' plugins: Carregáveis em run-time scripts: Meterpreter e outros scripts external: Códigos e libs de terceiros
Introdução Bibliotecas Rex Principais Tarefas sockets, protocolos, textos e etc SSL, SMB, HTTP, XOR, Base64, Unicode Msf::Core API 'básica' Msf::Base API 'amigável'
Introdução Módulos Exploits Módulo + Payload Modúlos Auxiliares Payloads Código remoto Encoders Protege o payload Nops Mantém o payload injetável
Introdução Módulos - Localização Primários $install/modules/ Privados ~/.msf3/modules/
Introdução Plugins Trabalham direto com a API Manipulam todo o framework Automatizam tarefas Adicionam funcionalidades Suportados apenas na msfconsole
Utilização Interfaces - msfcli Linha de Comando Apenas uma sessão por vez Útil para scripts e automatizações
Utilização Interfaces - msfcli
Utilização Interfaces - msfcli Variáveis definidas através do = Comandos úteis O Visualiza opções para o módulo P Visualiza payloads para o módulo -h Menu de ajuda
Utilização Interfaces - msfcli
Utilização Interfaces - msfcli
Utilização Interfaces msfweb Point-and-Click Retirada do desenvolvimento Proposta de Substituição: Armitage
Utilização Interfaces msfweb Armitage
Utilização Interfaces - msfconsole Suporte a todas as features do MSF Completa e Interativa Execução de comandos externos
Utilização Interfaces - msfconsole
Utilização Interfaces - msfconsole Comandos Básicos help use / back info / show check exploit / run
Utilização Interfaces - msfconsole Comando connect Similar ao netcat ou telnet Suporte a SSL
Utilização Interfaces - msfconsole Comando irb Interpretador Ruby Testes e criação de scripts on-the-fly
Utilização Interfaces - msfconsole Comando jobs Módulos em background
Utilização Interfaces - msfconsole Comando load/unload/loadpath Carrega plugins ou adiciona paths
Utilização Interfaces - msfconsole Comando resource / -r Carrega rotinas pré-prontas
Utilização Interfaces - msfconsole Comando set / unset / setg
Utilização Interfaces - msfconsole Comando sessions Interação com sessões abertas
Utilização Interfaces - msfconsole Comando search Busca por expressão regular
Utilização Exploits Busca por módulos Configuração de parâmetros Escolha de alvo(s) Podem ser ativos ou passivos
Utilização Exploits Ativos Sinais de Sucesso (Shell) Força Bruta Não tolerante a erros Podem rodar em background (-j)
Utilização Exploits Ativos
Utilização Exploits Passivos Geralmente focado em clientes Aguarda conexão da vítima
Utilização Exploits Passivos
Utilização Payloads Inline Payload simples e completo Staged Dividido em 2 agentes: Stager - responsável pelo canal Stage - execução de código remoto
Utilização Payloads Meterpreter Opera via dll injection Reside em memória (não deixa rastros) PassiveX Utiliza o ActiveX control Comunicação através de HTTP
Utilização Payloads NoNX Visa burlar DEP Ord Payloads genéricos para Windows Funciona com configurações default Tamanho reduzido
Utilização Payloads IPv6 Payloads para redes Ipv6 Reflective DLL injection Injeção feita em processo em execução Não afeta o disco rígido
Utilização Payloads Customização de opções Pode ser extraído o shellcode
Utilização Payloads
Utilização Meterpreter Gestão de sessões Informações de processos Manipulação de arquivos Execução de Comandos
Utilização Meterpreter
Utilização Meterpreter
Utilização Meterpreter
Utilização Meterpreter
Utilização Meterpreter
Utilização Meterpreter
Obtenção de Informação Port Scanning Identificação de Serviços Captura de Senhas SNMP Sweeping
Obtenção de Informação Sugestão: Dradis Framework para organizar informações Presente no Backtrack 5 Importa o output de várias ferramentas
Obtenção de Informação Sugestão: Dradis
Obtenção de Informação Port Scanning Importando resultados
Obtenção de Informação Port Scanning Visualizando
Obtenção de Informação Port Scanning Visualizando (no Dradis)
Obtenção de Informação Port Scanning Também pode ser feito via Módulo Auxiliar Resultado semelhante ao Nmap Lançado via msfconsole
Obtenção de Informação Port Scanning
Obtenção de Informação SMB Version Scanning Detecta versão de Windows Ou versão do Samba (Linux) Busca por serviço na porta 445
Obtenção de Informação SMB Version Scanning
Obtenção de Informação SMB Version Scanning Importação de dados automática
Obtenção de Informação Idle Scanning Localiza hosts ociosos Auxilia no Idle Scan do Nmap Scan sub-reptício
Obtenção de Informação Idle Scanning
Obtenção de Informação Idle Scanning
Obtenção de Informação Servidores MSSQL Porta TCP aleatória Informações úteis em 1434/UDP Execução de Comandos
Obtenção de Informação Servidores MSSQL
Obtenção de Informação Servidores MSSQL
Obtenção de Informação Identificação de Serviços Diversos utilitários específicos Identifica versões Tunning de performance
Obtenção de Informação Identificação de Serviços
Obtenção de Informação Identificação de Serviços Exemplo SSH:
Obtenção de Informação Identificação de Serviços Exemplo FTP:
Obtenção de Informação Captura de Senhas Módulo psnuffle Similar ao dsniff Suporta pop3, imap, ftp, HTTP GET
Obtenção de Informação Captura de Senhas
Obtenção de Informação SNMP Sweeping Scan Ativo Community Scanning Força Bruta
Obtenção de Informação SNMP Sweeping
Obtenção de Informação SNMP Sweeping
Identificação de Vulnerabilidades Busca por vulnerabilidades conhecidas Integração com outras ferramentas MSF Database
Identificação de Vulnerabilidades SMB Login Check
Identificação de Vulnerabilidades Open X11
Identificação de Vulnerabilidades WMAP Web Scanner Plugin nativo Focado em Aplicações Web Originalmente baseada no SQLmap
Identificação de Vulnerabilidades WMAP Web Scanner
Identificação de Vulnerabilidades WMAP Web Scanner
Identificação de Vulnerabilidades Integração com outras Ferramentas Nexpose Nessus QualysGuard Etc...
Identificação de Vulnerabilidades Integração com outras Ferramentas
Identificação de Vulnerabilidades Integração com outras Ferramentas
Identificação de Vulnerabilidades MSF Database hosts notes services vulns creds
Mantendo Acesso Keylogging Backdoor Escalada de Privilégio Captura de Tela etc...
Mantendo Acesso Keylogging
Mantendo Acesso Backdooring
Mantendo Acesso Escalada
Mantendo Acesso Captura de Tela
Estudos de Caso Exploração default Módulos Auxiliares Pós Invasão
Conclusão Excelente Ferramenta para TDI Auxilia em várias etapas Open-source
Dúvidas? Perguntas? Críticas? Sugestões?
Muito Obrigado! rafael@clavis.com.br Rafael Soares Ferreira Clavis Segurança da Informação