Você está na página 1de 94

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

Você também pode gostar