3. Installatie, of: Hoe Je een Omgeving Inricht die Je Niet aan Je Moeder Kan Uitleggen
Stap 0: De Broncode Bemachtigen
Voordat je iets kunt installeren, moet je het eerst hebben. Dat is geen filosofie, dat is logistiek. De broncode staat op GitHub, wat tegenwoordig de natuurlijke habitat is van alle software die te eigenwijs is voor een app store en te eerlijk voor een marketingbudget:
git clone https://github.com/jan-karel/incompetentbastard.git
cd incompetentbastard
Ja, je typt dat in een terminal. In zijn geheel. De URL bevat het woord “incompetentbastard” en dat verschijnt in je terminalgeschiedenis, je Git-configuratie, en als je niet oppast in je LinkedIn-activiteit. Geen paniek. Als iemand je browser-geschiedenis doorzoekt en dít de meest verdachte URL is, heb je een bewonderenswaardig rustig digitaal leven geleid. Wie het project liever eerst wil inspecteren voordat hij het zijn harde schijf binnenlaat — begrijpelijk, vertrouwen moet je verdienen — kan langsgaan op github.com/jan-karel/incompetentbastard en daar net zo lang naar de code staren als nodig is om je geweten te sussen.
Stap 1: Het Installatiescript
Er is een installatiescript. Het heet install.sh, en het installeert dingen. Veel dingen. Nmap, Metasploit, crackmapexec, pandoc, sshuttle, asciinema, nuclei, mono (voor C#-compilatie, want waarom niet), sqlmap, wfuzz, en nog een stuk of twintig pakketten waarvan je sommige nooit zult gebruiken. Ze horen er toch bij. Het is als die lade in je keuken met batterijen, elastiekjes, een zakje schroefjes en een sleutel waarvan niemand weet welk slot hij opent — maar die je niet durft weg te gooien. Want stel je voor.
bash install.sh
Het script detecteert of je op macOS of Linux werkt en past zich aan. Dat is al meer dan de meeste van je collega’s doen. Het maakt ook de complete mappenstructuur aan:
raw/
recon/ ← Reconnaissance output
nmap/ ← Nmap scans
loot/ ← Buitgemaakte bestanden (per IP)
screenshots/ ← Screenshots
tls/ ← TLS-certificaten
exploits/ ← Exploitatie-artefacten
local/ ← Lokale bestanden
debug/ ← Debug output
mirror/ ← Gespiegelde websites
spider/ ← Web spider output
wget/ ← Wget downloads
route/ ← Routing info
tooling/ ← Tool output
http/
payloads/ ← Gegenereerde payloads
commands/ ← Diverse command files
tools/ ← Exploitatietools
rapport/ ← Gegenereerde rapporten
meuk/logs/ ← Asciinema-opnames
meuk/wordlists/ ← Woordlijsten
Stap 2: Offensive Tools Downloaden
De repository bevat geen binaries — geen mimikatz, geen Rubeus, geen SharpHound. Ze horen niet in Git, en GitHub flagged ze sneller dan je “geautoriseerde pentest” kunt typen. In plaats daarvan:
bash download_tools.sh
Dit script haalt alle tools op van officiële GitHub-releases en repositories: mimikatz van gentilkiwi, SharpCollection van Flangvik voor de .NET-tools, PEASS-ng voor winPEAS/linpeas, PrintSpoofer van itm4n, PsExec64 van Sysinternals, PowerView en PowerUp van PowerSploit, en nog een stuk of veertig meer. Aan het einde heb je een gevulde http/tools/ directory en een samenvatting van wat wel en niet is gelukt. Tools die compilatie vereisen krijgen een waarschuwing met de bron-URL. Je kunt het script meerdere keren draaien — bestaande tools worden overgeslagen.
Stap 3: Python Dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
De database wordt automatisch aangemaakt bij de eerste start. SQLite. Eén bestand. meuk/flask/db/db.sqlite. Geen PostgreSQL. Geen Redis. Geen Docker. Geen Kubernetes. Geen microservices. Geen architectuurdiagram van acht vierkante meter dat je nodig hebt om je koffie op te zetten. Gewoon een bestand. Een enkel, solitair, bescheiden bestand dat alles bevat. Het is de minimalistische benadering van databasearchitectuur: werkt het? Ja. Volgende vraag.