10. Payload Generators
Vijftien generators. Het is alsof iemand een Zwitsers zakmes heeft gebouwd maar dan met gereedschappen die je niet aan de douane kunt uitleggen. “Nee mevrouw, deze tool genereert reverse shells in acht programmeertalen, het is voor mijn werk.” Veel succes met die uitleg.
Reverse Shells
IP en poort invullen, klikken, en je hebt shells in Bash, PowerShell, Python, PHP, Ruby, Perl, Netcat, Socat. Plus AMSI-bypass one-liners en download cradles. Het bespaart je het googelen van dezelfde commando’s die je vorige week ook al googelde en de week daarvoor ook. Je zoekgeschiedenis wordt er ook een stuk minder belastend van, en als je ooit in een forensisch onderzoek terechtkomt (als onderzoeker, niet als verdachte — nuance is belangrijk), zul je jezelf dankbaar zijn.
Office Macro
Genereert een Office-document met een VBA-macro die een Meterpreter-sessie opzet. Je opdrachtgever wil weten of zijn medewerkers op kwaadaardige bijlagen klikken? Hier krijgt hij zijn antwoord. Spoiler: ze klikken. Ze klikken áltijd. Het is de meest betrouwbare constante in de informatiebeveiliging. De zon komt op. De maan gaat onder. Mensen klikken op bijlagen.
Macro v2 (LURI)
URL-gebaseerde payload delivery. Minder detectie, meer plezier. De details zijn technisch. Het resultaat is dat je payload aankomt waar hij moet aankomen, en dat is alles wat je hoeft te weten.
Meterpreter
C#-executable met XOR-versleutelde shellcode. Het project heet “meth.” De broncode heet crystalmeth.cs. Ik ga hier niet doen alsof dit professionele naamgeving is. Het is de naamgeving van iemand die om drie uur ’s nachts code schreef en op dat uur andere regels hanteert voor variabelnamen. Jij doet dat ook. Ontken het niet. Je hebt bestanden op je computer waar je overdag niet over praat. Niet dát soort bestanden. Ik bedoel code met variabelnamen als dingetje en bla.
Meterpreter v2
Ander template, zelfde concept. Voor als je eerste poging niet werkte. Of voor als je gewoon graag keuze hebt. Keuze is goed. Keuze is menselijk.
PowerShell
Reverse shells met AMSI-bypass. Acht varianten. Omdat één manier om Windows te betreden nooit genoeg is.
Meth ASPX
ASP.NET reverse shell voor IIS. XOR-versleuteld. Voor als je een webserver tegenkomt die nog IIS draait en je een moment van pure, onversneden vreugde ervaart.
Invoke-Shellcode
Shellcode in het geheugen. Geen bestanden op schijf. In theorie onzichtbaar voor antivirus. In de praktijk is antivirus tegenwoordig slimmer dan je zou wensen, maar hoop is een strategie die in de beveiligingsindustrie verrassend vaak werkt. Niet gegarandeerd. Maar vaak.
PHP Webshell
Wachtwoordbeveiligde PHP webshell met optionele upload- en file browser functionaliteit. Het is het digitale equivalent van een huissleutel achterlaten onder de deurmat — behalve dat jíj de deurmat hebt gelegd, jíj de sleutel hebt gemaakt, en alleen jíj weet dat hij er ligt. De webserver draait PHP? Dan draait de webserver straks ook jouw commando’s.
ASPX Webshell
Dezelfde logica als de PHP-variant, maar dan voor IIS en ASP.NET. Wachtwoordbeveiliging, optionele upload, file browser. Het verschil met de Meth ASPX is dat deze géén msfvenom shellcode runt maar een interactieve command shell biedt. Soms wil je geen callback naar je listener. Soms wil je gewoon inloggen via de browser, een commando typen, en het resultaat zien. Ouderwets, misschien. Maar ouderwets werkt. Vraag het maar aan een hamer.
HTA Payload
HTML Application payload voor Windows initial access. Twee modi: download cradle (IEX) of embedded msfvenom shellcode. De gebruiker opent een .hta-bestand, Windows voert het uit, en ergens op jouw machine verschijnt een sessie. Het is social engineering verpakt in een bestandsformaat dat Microsoft nooit had moeten uitvinden maar dat er nu eenmaal is, als een gat in het hek waarvan iedereen weet dat het er is maar dat niemand repareert omdat “het is altijd al zo geweest.”
Linux ELF
Msfvenom-wrapper voor Linux ELF reverse shell binaries. Payload kiezen, IP invullen, klikken, en je hebt een binary die je op elke Linux-machine kunt draaien. Het is het simpelste van alle generators en juist daarom het meest gebruikte. Niet alles hoeft ingewikkeld te zijn. Soms is een knuppel effectiever dan een laserkanon.
Python Reverse Shell
Cross-platform Python reverse shell, plain of base64-geobfusceerd. Géén msfvenom nodig — pure Python. Linux of Windows, met of zonder PTY upgrade. Voor als de doelmachine Python heeft geïnstalleerd — en dat heeft hij, want Python is als onkruid: het groeit overal, het is niet weg te krijgen, en systeembeheerders doen alsof ze het niet zien. De obfuscated modus verpakt alles in een base64-oneliner die eruitziet als line noise maar die Python perfect begrijpt. Computers zijn niet kieskeurig.
MSI Payload
Windows MSI installer via msfvenom. Genereert een .msi-bestand dat eruitziet als een onschuldige software-update maar dat een reverse shell bevat. Bruikbaar voor twee dingen: social engineering (“installeer deze update”) en AlwaysInstallElevated privilege escalation (“bedankt dat de registry key aanstond, ik ben nu SYSTEM”). Het is het verschil tussen binnenkomen via de voordeur en binnenkomen via de installatiewizard. De installatiewizard vraagt minder vragen.
Agent Generator
Genereert standalone C2 agent scripts in Bash, PowerShell, Python, C#, Go, Rust of Ruby. De agent checkt in bij het dashboard, pollt voor commando’s en stuurt output terug. Geen afhankelijkheden, geen installatie — callback URL invullen, taal kiezen, klikken, en je hebt een script dat op elk systeem draait waar de betreffende interpreter of compiler beschikbaar is. De scripttalen (Bash, PowerShell, Python, Ruby) draaien direct. De compiled talen (C#, Go, Rust) lever je als broncode die je zelf compileert — geen eval-wrapper, geen base64-trucs, gewoon een binary die eruitziet als elke andere binary. En binaries stellen geen vragen.
AV Evasion
Alle text-based generators (PHP, ASPX, HTA, Python) hebben een AV evasion checkbox. Aanzetten en de output wordt door obfuscate_av.py gehaald: signature-aware string splitting, variable functions, base64 wrapping, Chr()-encoding — afhankelijk van de taal. De Office Macro generators hebben een VBA obfuscatie checkbox die API-namen als KERNEL32 en VirtualAlloc door Chr()-encoding haalt. De binary generators (Linux ELF, MSI, Meterpreter) bieden msfvenom encoder-opties (shikata_ga_nai, xor_dynamic) met configureerbare iterations. Het is geen onzichtbaarheidsmantel — het is een zonnebril en een snor. Maar je zou verbaasd zijn hoe vaak een zonnebril en een snor volstaan.
Downloads profiteren ook: in de Settings-modal kun je “AV obfuscatie bij downloads” aanzetten. Elk .ps1, .php, .aspx, .py, .hta of .txt bestand wordt on-the-fly geobfusceerd bij het downloaden. Of voeg ?obf=1 toe aan de URL voor een eenmalige obfuscatie zonder de globale setting te wijzigen.
Alle generators draaien in achtergrondthreads. Status pollen via API. Maximaal 600 seconden. Poortvalidatie: 1–65535. De applicatie is paranoide over input — wat bij een tool die exploits genereert niet paranoide is maar verstandig, want de enige persoon die een exploit-generator hackt is een andere pentester, en dat zou het meest gênante verhaal op de volgende vakconferentie zijn. “Mijn hackertool werd gehackt.” De zaal lacht. Jij lacht niet. Je wisselt van beroep. Loodgieter, misschien.