Verkenning
“Elke ontdekkingsreiziger begint met een kaart. De goede ontdekkingsreiziger begint met de kaart van iemand anders.”
2.1 De plattegrond lezen
Stel je voor dat je in een onbekende stad aankomt. Je hebt een adres, een vaag idee van de wijk, en verder niets. Je kunt twee dingen doen: blind door straten lopen en hopen dat je iets vindt, of eerst even op een bankje gaan zitten met een plattegrond en uitzoeken waar de deuren zijn, de steegjes, de achteringangen. Verkenning – reconnaissance – is dat bankje. Het is het minst spectaculaire deel van een penetratietest en tegelijkertijd het belangrijkste.
De geschiedenis van poolexpedities leert een ontnuchterende les: de Britse ontdekkingsreizigers die de Zuidpool bereikten, deden dat door eerst jarenlang kaarten te bestuderen, terwijl anderen simpelweg vertrokken en stierven. In de wereld van penetratietesten geldt precies hetzelfde principe. Het verschil tussen een succesvolle test en een verspilde week zit niet in de exploit die je gebruikt, maar in de verkenning die eraan voorafgaat.
En toch – hier komt het cynische deel – behandelen veel organisaties hun netwerk alsof het een openbaar park is. Ze zetten diensten online met de mentaliteit van iemand die de voordeur open laat staan omdat het “zo’n leuke buurt is.” Verkenning is eigenlijk niets meer dan het systematisch documenteren van andermans nalatigheid.
In dit hoofdstuk lopen we door elke stap van de verkenningsfase: van de eerste poortscan met Nmap tot diepgaande service-enumeratie, DNS-verkenning, SMTP-misbruik, SNMP-wandelingen, NFS-shares, passieve OSINT en CMS-scanning. Bij elke stap laten we zien hoe Incompetent Bastard (IB) het proces stroomlijnt.
De twee smaken van verkenning
Verkenning kent twee fundamentele benaderingen:
Passieve verkenning raakt het doelwit niet aan. Je verzamelt informatie uit openbare bronnen: DNS-records, WHOIS-data, certificaat-transparantielogs, LinkedIn-profielen, Google-resultaten. Het doelwit weet niet dat je aan het kijken bent. Dit is legaal, onzichtbaar, en verrassend informatief.
Actieve verkenning raakt het doelwit wel. Poortscans, service-detectie, directory bruteforce – elk packet dat je stuurt laat een spoor achter. Dit is waar je expliciete toestemming voor nodig hebt, gedocumenteerd in je scope-overeenkomst.
De gouden regel: begin altijd passief. Actieve scans genereren verkeer, en verkeer genereert logs. Hoe meer je weet voordat je begint te scannen, hoe gerichter (en dus stiller) je actieve verkenning kan zijn.
2.2 Nmap: de Zwitserse zakmes van verkenning
2.2.1 Waarom Nmap?
Als er een tool is die elke penetratietester kent, is het Nmap. Gordon Lyon schreef het in 1997 – het jaar dat Titanic in de bioscoop draaide – en sindsdien is het uitgegroeid tot het onbetwiste standaardgereedschap voor netwerkverkenning. Het is het equivalent van een stethoscoop voor een arts: je kunt technisch gezien zonder, maar niemand neemt je serieus.
Nmap stuurt packets naar een doelwit en analyseert de antwoorden. Klinkt simpel. Is het ook. Maar de nuance zit in hoe je die packets stuurt, welke packets je stuurt, en wat je doet met de antwoorden.
2.2.2 De SYN scan: snel en stil
De standaard Nmap scan – de SYN scan – is het werkpaard van netwerkverkenning. Hij stuurt een SYN packet naar elke poort, wacht op een SYN-ACK (poort open) of RST (poort dicht), en gaat verder. De TCP handshake wordt nooit voltooid, waardoor de connectie niet in de logbestanden van veel systemen terechtkomt.
Om de SYN scan te begrijpen, helpt het om de TCP three-way handshake te kennen: 1. Client stuurt SYN: “Ik wil verbinden” 2. Server stuurt SYN-ACK: “Ik luister, ga je gang” 3. Client stuurt ACK: “Verbinding bevestigd”
De SYN scan stopt na stap 2. Hij stuurt een RST (reset) in plaats van de ACK. Het resultaat: je weet dat de poort open is, maar de server heeft nooit een volledige verbinding geregistreerd. Het is het digitale equivalent van aanbellen en wegrennen – je weet dat er iemand thuis is, maar ze hebben je gezicht niet gezien.
# Basis SYN scan op de top 1000 poorten
sudo nmap -sS 10.0.0.0/24
# Alle TCP poorten scannen (1-65535)
sudo nmap -sS -p- 10.0.0.5
# Specifieke poorten
sudo nmap -sS -p 21,22,80,443,445,3389 10.0.0.5
# Top 100 poorten met timing template 4 (agressief)
sudo nmap -sS -T4 --top-ports 100 10.0.0.0/24De -sS flag is technisch gezien optioneel als je als
root draait – Nmap gebruikt hem dan standaard. Maar het is goede
gewoonte om expliciet te zijn over wat je doet. Een pentester die niet
weet welk type scan hij draait, is als een chirurg die niet weet welk
scalpel hij vasthoudt.
Over de -T timing templates: Nmap kent zes templates,
van -T0 (paranoid) tot -T5 (insane). In de
praktijk gebruik je -T3 (normaal, de default) of
-T4 (agressief) voor de meeste pentesten. -T5
is snel maar mist poorten door packet loss. -T0 en
-T1 zijn bedoeld voor IDS-evasie en duren uren. Het is een
afweging tussen snelheid en nauwkeurigheid – en in een engagement met
een tijdslimiet wil je meestal -T4.
| Template | Naam | Gebruik |
|---|---|---|
-T0 |
Paranoid | IDS evasie, extreem langzaam |
-T1 |
Sneaky | IDS evasie, langzaam |
-T2 |
Polite | Minder bandbreedte, trager |
-T3 |
Normal | Standaard, goed compromis |
-T4 |
Aggressive | Sneller, goed voor pentests |
-T5 |
Insane | Zeer snel, kan poorten missen |
2.2.3 Service detection en versie-informatie
Weten dat poort 80 open is, is leuk. Weten dat er Apache 2.4.49 op
draait – dat is bruikbaar. De -sV flag activeert service
detection:
# Service versie detectie
sudo nmap -sV 10.0.0.5
# Agressievere versie detectie (meer probes)
sudo nmap -sV --version-intensity 5 10.0.0.5
# Combinatie: SYN scan, alle poorten, versie detectie
sudo nmap -sS -sV -p- -T4 10.0.0.5De --version-intensity flag loopt van 0 (snel, minder
accuraat) tot 9 (traag, zeer accuraat). De standaard is 7, wat voor de
meeste situaties prima werkt. Tenzij je haast hebt, en eerlijk gezegd:
als je haast hebt bij een pentest, heb je een groter probleem.
2.2.4 Nmap Scripting Engine (NSE)
De Nmap Scripting Engine is waar Nmap van een poortscan-tool verandert in een volwaardig verkenningsplatform. NSE scripts kunnen kwetsbaarheden detecteren, informatie verzamelen, en zelfs exploits uitvoeren. Er zitten honderden scripts bij de standaardinstallatie.
# Default scripts draaien (veilig, informatief)
sudo nmap -sC 10.0.0.5
# Specifiek script
sudo nmap --script smb-enum-shares 10.0.0.5
# Categorie: alle vuln scripts
sudo nmap --script vuln 10.0.0.5
# Meerdere scripts combineren
sudo nmap --script "smb-enum-* and not brute" 10.0.0.5
# De heilige combinatie: SYN, versie, scripts, OS detectie
sudo nmap -sS -sV -sC -O -T4 -p- 10.0.0.5De -sC flag is equivalent aan
--script=default. Het draait een verzameling scripts die
als veilig worden beschouwd – ze zullen geen denial-of-service
veroorzaken of data wijzigen. Maar “veilig” is een relatief begrip. Een
default script kan best een anonymous FTP login proberen.
Weet wat je draait.
Veelgebruikte NSE scripts voor penetratietesten:
| Script | Doel |
|---|---|
smb-enum-shares |
SMB shares opsommen |
smb-enum-users |
SMB gebruikers opsommen |
smb-vuln-ms17-010 |
EternalBlue detectie |
ftp-anon |
Anonymous FTP login testen |
http-enum |
Webserver directory enumeratie |
ssl-heartbleed |
Heartbleed kwetsbaarheid |
smtp-enum-users |
SMTP gebruiker enumeratie |
dns-zone-transfer |
DNS zone transfer poging |
2.2.5 UDP scanning
De meeste pentesters scannen alleen TCP. Dat is alsof je alleen de voordeur controleert en de achterdeur vergeet. UDP-diensten als SNMP (161), TFTP (69) en DNS (53) zijn notoir slecht beveiligd.
# UDP scan (langzaam maar belangrijk)
sudo nmap -sU --top-ports 50 -T4 10.0.0.5
# Combineer TCP en UDP
sudo nmap -sS -sU -p T:1-65535,U:53,69,111,123,161,500 10.0.0.5UDP scanning is traag. Ontzettend traag. Dat komt doordat UDP geen handshake kent – als een poort niet antwoordt, weet je niet of het pakket verloren is gegaan, of dat de poort gefilterd is. Nmap moet wachten op timeouts. Het is het digitale equivalent van bellen naar een nummer dat niet opneemt: je weet niet of er niemand thuis is, of dat ze je negeren.
2.2.6 Output formaten
Nmap-resultaten opslaan is geen luxe, het is een vereiste. Elke fatsoenlijke pentest vereist bewijs van wat je hebt gedaan, wanneer je het hebt gedaan, en wat je hebt gevonden.
# Normaal formaat (leesbaar)
sudo nmap -sS -sV -oN scan_results.nmap 10.0.0.5
# XML formaat (voor tools)
sudo nmap -sS -sV -oX scan_results.xml 10.0.0.5
# Grepable formaat (voor scripts)
sudo nmap -sS -sV -oG scan_results.gnmap 10.0.0.5
# Alle drie tegelijk
sudo nmap -sS -sV -oA raw/nmap/engagement_scan 10.0.0.5Het -oA formaat is het handigst – het genereert alle
drie de output-formaten in een keer. IB’s scan.sh gebruikt
dit standaard, en dat is niet toevallig.
IB Tip: IB slaat alle scan output op in
raw/nmap/met de-oAflag. Het gnmap formaat wordt doorsearch.shgebruikt om snel hosts per service te vinden. Sla je scans altijd op met een herkenbare naam.
2.3 Service enumeratie
Een poortscan vertelt je welke deuren open staan. Service enumeratie vertelt je wat er achter die deuren zit. Dit is waar de werkelijke verkenning begint.
2.3.1 FTP (poort 21): het fossiel dat weigert te sterven
FTP dateert uit 1971. Dat is ouder dan de meeste kantoorgebouwen, de meeste wetten over computermisdaad, en de meeste mensen die die wetten moeten handhaven. En nog steeds staan er FTP-servers open op het internet. Met anonymous login. In 2026.
Het testen op anonymous FTP-toegang is triviaal:
# Nmap script voor anonymous FTP
nmap -T5 -sV -sC -p21 --script ftp-anon \
--script-args ftp-anon.maxlist=-1 10.0.0.5
# Handmatig testen
ftp 10.0.0.5
# Username: Anonymous
# Password: AnonymousIB Tip: IB heeft een geautomatiseerde FTP anonymous check. De
ftp_anontaak in de Task Runner zoekt alle hosts met poort 21 open in je nmap scan en test ze automatisch op anonymous login. Start hem via het Tasks dashboard met de naam van je scan.
IB’s ftp_anon.sh werkt als volgt: het gebruikt
search.sh om alle hosts met FTP uit je nmap scan te
filteren, loopt er doorheen, en draait per host een gerichte Nmap scan
met het ftp-anon script:
# Wat ftp_anon.sh intern doet:
result=$(./search.sh engagement-name ftp)
for xhost in $result; do
nmap -T5 -sV -sC -p21 --script ftp-anon \
--script-args ftp-anon.maxlist=-1 $xhost
doneEn als je anonymous toegang vindt? Dan kijk je wat er staat. Configuratiebestanden, back-ups, soms zelfs SSH-sleutels. Het is verbazingwekkend wat mensen op een anoniem toegankelijke FTP-server achterlaten. Het is het digitale equivalent van je dagboek op een bankje in het park laten liggen.
2.3.2 SSH (poort 22)
SSH is de veilige manier om op afstand in te loggen. Tenminste, dat is de theorie. In de praktijk vinden we regelmatig SSH-servers met wachtwoordauthenticatie aan, standaard credentials, of – in het ergste geval – zwakke Debian SSH-sleutels uit 2008.
# SSH versie detectie
nmap -sV -p22 10.0.0.5
# Banner grabbing
nc -nv 10.0.0.5 22
# SSH audit (controleer configuratie)
ssh-audit 10.0.0.5De versie van OpenSSH is belangrijk: oudere versies hebben bekende kwetsbaarheden. Maar vaker is het probleem niet de software, maar de configuratie. Wachtwoordauthenticatie zonder rate limiting is een uitnodiging voor brute force (meer daarover in hoofdstuk 3).
2.3.3 SMB (poort 445)
SMB – Server Message Block – is het protocol waarmee Windows-systemen bestanden delen. Het is ook een van de meest aangevallen protocollen in de geschiedenis van computerbeveiliging. EternalBlue (MS17-010), dat de basis vormde voor WannaCry, maakte misbruik van SMB.
# SMB versie en shares enumereren
nmap --script smb-enum-shares,smb-enum-users -p445 10.0.0.5
# smbclient: shares bekijken
smbclient -L //10.0.0.5 -N
# smbmap: permissies controleren
smbmap -H 10.0.0.5
# smbmap met credentials
smbmap -H 10.0.0.5 -u gebruiker -p wachtwoord
# enum4linux: alles-in-een
enum4linux -a 10.0.0.5
# CrackMapExec: null session enum
crackmapexec smb 10.0.0.5 -u '' -p '' --sharesNull sessions – SMB-verbindingen zonder credentials – zijn zeldzamer geworden, maar bestaan nog steeds. En zelfs zonder null session is SMB een goudmijn aan informatie: domeinnaam, computernaam, werkgroep, en soms zelfs een lijst van gebruikersaccounts.
Het is de moeite waard om altijd te controleren op EternalBlue (MS17-010). Ja, het is een exploit uit 2017. Ja, de patch bestaat al jaren. Nee, niet iedereen heeft hem geinstalleerd:
# EternalBlue check
nmap -p445 --script smb-vuln-ms17-010 10.0.0.5
# Of via CrackMapExec
crackmapexec smb 10.0.0.0/24 -u '' -p '' --gen-relay-list smb_targets.txtSMB signing is ook relevant: als SMB signing niet is afgedwongen, zijn relay-aanvallen mogelijk. Dat is een onderwerp voor latere hoofdstukken, maar het begint hier, bij de verkenning.
2.3.4 RDP (poort 3389)
Remote Desktop Protocol is Windows’ ingebouwde remote access oplossing. Het staat standaard aan op veel Windows Servers en is regelmatig het eerste dat wordt opengesteld voor beheer op afstand.
# RDP versie en configuratie
nmap -sV -p3389 --script rdp-enum-encryption 10.0.0.5
# Screenshot nemen van het loginscherm
nmap -p3389 --script rdp-ntlm-info 10.0.0.5Het rdp-ntlm-info script is bijzonder nuttig: het haalt
de domeinnaam, computernaam en DNS-naam op uit de NTLM-authenticatie,
zonder dat je inlogt. Gratis informatie, gewoon door te kloppen op de
deur.
2.3.5 HTTP/HTTPS (poort 80/443)
Webservers zijn de etalage van elke organisatie. En net als bij een echte etalage: wat je ziet is interessant, maar wat er achter de schermen staat is veel interessanter.
# Webserver identificatie
whatweb http://10.0.0.5
# Nikto vulnerability scan
nikto -h http://10.0.0.5
# Directory bruteforce
gobuster dir -u http://10.0.0.5 -w /usr/share/wordlists/dirb/common.txt -t 50
# Wfuzz (flexibeler)
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
--sc 200,301,302,403 http://10.0.0.5/FUZZ
# Nuclei (vulnerability templates)
nuclei -u http://10.0.0.5IB Tip: IB’s
scan.shdraait automatischwhatweb,wfuzzennucleitegen elke host met HTTP-poorten open. De resultaten komen inraw/recon/. Je hoeft dit niet handmatig te doen.
IB’s scan flow voor webservers werkt zo: na de initiële nmap scan
filtert scan.sh alle hosts met HTTP-gerelateerde services,
en draait per host drie tools in volgorde:
# Uit scan.sh -- voor elke host met HTTP:
whatweb ${host} > raw/recon/whatweb-${host}.txt
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
--sc 200,202,204,301,302,307,403 ${host}/FUZZ > raw/recon/wfuzz-${host}.txt
nuclei -u ${host} > raw/recon/nuclei-${host}.txt2.4 DNS verkenning
2.4.1 Waarom DNS belangrijk is
DNS – het Domain Name System – is het telefoonboek van het internet. Het vertaalt namen naar adressen. En net als een telefoonboek kan het verrassend veel onthullen over een organisatie: welke servers ze hebben, welke diensten ze draaien, soms zelfs hoe hun interne netwerk is opgebouwd.
DNS-verkenning is als het doorbladeren van iemands telefoonboek: technisch gezien is alle informatie “openbaar”, maar je leert er meer van dan de eigenaar zich realiseert.
2.4.2 Zone transfers
Een DNS zone transfer is de nucleaire optie van DNS-verkenning. In een zone transfer stuurt een DNS-server zijn volledige database naar de aanvrager – elke hostname, elk IP-adres, elke record. Het is bedoeld als replicatiemechanisme tussen primaire en secundaire DNS-servers. Het is niet bedoeld voor jou. Maar als niemand het heeft uitgeschakeld…
# Zone transfer proberen met dig
dig axfr target.com @ns1.target.com
# Zone transfer met host
host -l target.com ns1.target.com
# dnsrecon zone transfer
dnsrecon -d target.com -t axfrZone transfers slagen tegenwoordig zelden op externe DNS-servers. Maar op interne DNS-servers – met name Active Directory-geintegreerde DNS – is het een ander verhaal. Veel beheerders gaan ervan uit dat het interne netwerk “vertrouwd” is en beperken zone transfers niet.
Als een zone transfer lukt, heb je in een klap een compleet overzicht van het netwerk. Elke server, elk alias, elk service record. Het is alsof iemand je een plattegrond overhandigt met alle geheime gangen erin getekend.
2.4.3 Subdomain enumeratie
Als zone transfers niet werken – en dat doen ze meestal niet – is subdomain enumeratie de volgende stap. Het idee is simpel: probeer duizenden mogelijke subdomeinnamen en kijk welke bestaan.
# dnsrecon brute force
dnsrecon -d target.com -t brt \
-D /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
# Standaard enumeratie (alle record types)
dnsrecon -d target.com
# dnsenum (combineert meerdere technieken)
dnsenum target.com
dnsenum --dnsserver ns1.target.com target.com
# gobuster DNS mode
gobuster dns -d target.com \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -t 50Subdomeinen onthullen vaak meer dan de organisatie beseft:
dev.target.com, staging.target.com,
jenkins.target.com, vpn.target.com. Elk
subdomein is een potentieel aanvalsoppervlak. Ontwikkelomgevingen hebben
zelden dezelfde beveiligingsmaatregelen als productie.
2.4.4 DNS record types
Niet alle DNS records zijn gelijk. Elk type onthult andere informatie:
# Individuele record types opvragen
host target.com # A record (IPv4)
host -t MX target.com # Mail servers
host -t TXT target.com # TXT records (SPF, DKIM, etc.)
host -t NS target.com # Nameservers
host -t AAAA target.com # IPv6 adressen
# dig varianten
dig target.com ANY # Alle records (vaak geblokkeerd)
dig target.com MX # Mail servers
dig target.com TXT # TXT recordsTXT records zijn bijzonder interessant. Ze bevatten vaak SPF-records die onthullen welke mailservers de organisatie gebruikt, DKIM-sleutels, en soms verificatietokens voor diensten als Google Workspace of Microsoft 365.
2.4.5 Reverse DNS sweep
Een reverse DNS lookup doet het omgekeerde van een normale lookup: je geeft een IP-adres en krijgt de hostname terug. Door een heel subnet te sweepen ontdek je hosts die je via forward lookups nooit zou vinden.
# dnsrecon reverse sweep
dnsrecon -r 10.0.0.0/24
# Handmatig (langzaam maar leerzaam)
for ip in $(seq 1 254); do
host 10.0.0.$ip
done | grep -v "not found"IB Tip: Het
recon_dnscommandobestand bevat alle DNS-verkenningscommando’s die je nodig hebt. Open het via de Commands pagina in IB voor snel kopieerbare referenties. Het bevat zone transfers, subdomain brute force, reverse sweeps en handmatige record queries.
2.5 SMTP enumeratie
2.5.1 Het postkantoorgesprek
SMTP – Simple Mail Transfer Protocol – is het protocol waarmee e-mail wordt verstuurd. En SMTP-servers zijn praatgraag. Ontzettend praatgraag. Met de juiste vragen vertellen ze je precies welke gebruikersaccounts bestaan.
Dit heet SMTP user enumeration, en het werkt via drie methoden:
VRFY, EXPN en RCPT TO.
2.5.2 VRFY en EXPN
Het VRFY-commando vraagt de mailserver of een gebruiker
bestaat. Het EXPN-commando vraagt de server om een
mailinglist uit te vouwen. Beide zijn bedoeld voor diagnostiek. Beide
zijn goud voor aanvallers.
# Handmatig via netcat
nc -nv 10.0.0.5 25
# VRFY root
# VRFY admin
# VRFY postmaster
# EXPN (mailinglijst leden)
# EXPN all-users
# RCPT TO (als VRFY uitgeschakeld is)
# MAIL FROM:<test@test.com>
# RCPT TO:<admin@target.com> # 250 = bestaat, 550 = nietDe responsecodes zijn veelzeggend: - 250: gebruiker bestaat - 252: ik kan het niet bevestigen, maar ik ga het proberen (vaak ook een positief signaal) - 550: gebruiker bestaat niet
2.5.3 Geautomatiseerde enumeratie
Handmatig VRFY-commando’s typen is leerzaam maar niet schaalbaar. Daar zijn tools voor:
# smtp-user-enum met VRFY methode
smtp-user-enum -M VRFY \
-U /usr/share/seclists/Usernames/Names/names.txt \
-t 10.0.0.5
# RCPT TO methode (als VRFY uitgeschakeld)
smtp-user-enum -M RCPT -U users.txt -D target.com -t 10.0.0.5
# EXPN methode
smtp-user-enum -M EXPN -U users.txt -t 10.0.0.5
# Nmap NSE scripts
nmap -p 25 --script smtp-enum-users 10.0.0.5
nmap -p 25 --script smtp-commands 10.0.0.5
nmap -p 25 --script smtp-open-relay 10.0.0.5IB Tip: IB’s
recon_smtpcommand file bevat alle SMTP enumeratie methoden: handmatig via netcat, smtp-user-enum met VRFY/RCPT/EXPN, en Nmap NSE scripts. Check ook poorten 465 (SMTPS) en 587 (submission) naast de standaard poort 25.
Die open relay check (smtp-open-relay) is ook de moeite
waard. Een open relay laat je e-mails versturen via andermans
mailserver. In de jaren negentig was dat normaal. Nu is het een
beveiligingsincident. Maar je vindt het nog steeds. Sommige systemen
veranderen nooit.
2.6 SNMP enumeratie
2.6.1 De community string: een wachtwoord dat geen wachtwoord wil zijn
SNMP – Simple Network Management Protocol – is ontworpen om
netwerkapparatuur te beheren. Het gebruikt “community strings” als
authenticatiemechanisme. Een community string is eigenlijk gewoon een
wachtwoord, maar dan verstuurd in cleartext. De standaard community
string is public. Voor leestoegang. De standaard
schrijf-community string is private.
Laat dat even bezinken. Het standaard leeswachtwoord is letterlijk “public”. Het standaard schrijfwachtwoord is “private”. En miljoenen apparaten wereldwijd gebruiken nog steeds deze standaardwaarden. Het is alsof je je kluiscode instelt op “kluis”.
2.6.2 Community strings brute forcen
# onesixtyone: snelle community string brute force
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt \
-i targets.txt
# Nmap brute force
nmap -sU -p 161 --script snmp-brute 10.0.0.5Die woordenlijst met community strings is treurig kort. De meeste
staan erin: public, private,
community, manager, cisco,
default. Het feit dat deze lijst zo klein is en nog steeds
zo effectief, zegt alles over de staat van SNMP-beveiliging.
2.6.3 MIB walking
Eenmaal een werkende community string gevonden, is het tijd voor een MIB walk. MIB staat voor Management Information Base – een hierarchische database van alle informatie die het apparaat bereid is te delen. En dat is veel. Ongezond veel.
# Volledige SNMP walk
snmpwalk -c public -v1 -t 10 10.0.0.5
# Specifieke OIDs voor Windows:
# Windows gebruikers:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.4.1.77.1.2.25
# Draaiende processen:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.2.1.25.4.2.1.2
# Open TCP poorten:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.2.1.6.13.1.3
# Geinstalleerde software:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.2.1.25.6.3.1.2
# Systeem beschrijving:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.2.1.1.1
# Hostnaam:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.2.1.1.5
# Network interfaces:
snmpwalk -c public -v1 10.0.0.5 1.3.6.1.2.1.2.2.1.2
# Alles in een keer met snmp-check:
snmp-check 10.0.0.5 -c publicVia SNMP kun je op een Windows-systeem de volledige gebruikerslijst
ophalen, alle draaiende processen zien, alle open poorten, alle
geinstalleerde software. Zonder ook maar een wachtwoord in te voeren.
Met alleen de community string public. Op een protocol dat
data in cleartext verstuurt.
Dit is niet zomaar een beveiligingsprobleem. Dit is een openbare bibliotheek van vertrouwelijke informatie, aangeboden met een glimlach.
IB Tip: IB’s
recon_snmpcommandobestand bevat de essentiële OID-paden voor Windows enumeratie. Onthoud: SNMP v1 en v2c versturen community strings in cleartext. Als je SNMP-verkeer op het netwerk ziet, heb je misschien al een community string.
2.7 NFS enumeratie
2.7.1 Network File System: delen is leuk
NFS – Network File System – is het protocol waarmee Unix/Linux-systemen bestanden delen. Het stamt uit 1984, het jaar van de Macintosh en George Orwell. De beveiliging voelt nog steeds alsof het in 1984 is ontworpen.
NFS-beveiliging is primair gebaseerd op IP-adressen. Het idee is: als je op het juiste netwerk zit, mag je bij de bestanden. Dat is hetzelfde beveiligingsmodel als “iedereen in het kantoorgebouw mag bij de kluizen.” Het werkt totdat er iemand binnenkomt die niet bij het bedrijf hoort.
2.7.2 NFS exports ontdekken
# Ontdek NFS exports via Nmap
nmap -sV -p 111 --script=rpcinfo 10.0.0.5
nmap -p 111 --script nfs* 10.0.0.5
# showmount: bekijk beschikbare shares
showmount -e 10.0.0.5
# RPC info
rpcinfo -p 10.0.0.5Het showmount -e commando laat zien welke directories
geexporteerd worden en wie er toegang toe heeft. Als daar *
staat, betekent het “iedereen”. En dat komt vaker voor dan je zou
hopen.
2.7.3 NFS shares mounten
# Mount NFS share
mkdir /mnt/nfs
mount -o nolock 10.0.0.5:/share /mnt/nfs
# Met specifieke NFS versie
mount -t nfs -o vers=3,nolock 10.0.0.5:/share /mnt/nfs
# Bestanden bekijken
ls -la /mnt/nfs/
find /mnt/nfs/ -type f \
-name "*.txt" -o -name "*.conf" -o -name "id_rsa" 2>/dev/null
# Na gebruik unmounten
umount /mnt/nfs2.7.4 UID spoofing
NFS-authenticatie is gebaseerd op UID-nummers. Als een bestand eigendom is van UID 1000 op de server, en jij maakt een gebruiker met UID 1000 op je aanvalsmachine, dan ben je plotseling de eigenaar van dat bestand. Het is een identiteitsdiefstal zo simpel dat een kind het kan:
# Als bestanden owned zijn door UID 1000:
useradd -u 1000 fakeuser
su fakeuser
cat /mnt/nfs/secret.txtDe no_root_squash optie maakt het nog erger: als die
actief is, betekent het dat root op de client ook root is op de server.
Je kunt dan bestanden aanmaken, wijzigen en verwijderen als root. Op
andermans server. Via een netwerkshare.
IB Tip: IB’s
recon_nfscommand file bevat de volledige NFS enumeratie flow: van discovery via nmap/showmount tot mounten en UID spoofing. Let op deno_root_squashinstelling – die maakt het verschil tussen “read access” en “volledige controle.”
2.8 OSINT: passieve verkenning
2.8.1 Kijken zonder aanraken
OSINT – Open Source Intelligence – is verkenning zonder het doelwit aan te raken. Geen packets versturen, geen poorten scannen, geen verbindingen maken. Alleen informatie verzamelen uit openbare bronnen. Het is het digitale equivalent van door iemands LinkedIn-profiel scrollen: je leert er veel van, en ze weten niet dat je kijkt.
De reden om met OSINT te beginnen – voor je ook maar een poort scant – is tweeledig. Ten eerste: het vertelt je wat je kunt verwachten. Als je weet dat een organisatie Microsoft 365 gebruikt, Apache webservers draait, en hun IT-afdeling bestaat uit drie man, heb je al een behoorlijk beeld. Ten tweede: het genereert nul netwerkverkeer naar het doelwit, waardoor het legaal en onzichtbaar is.
2.8.2 Tools en technieken
# theHarvester: e-mailadressen, subdomeinen, IPs
theHarvester -d target.com -b google,bing,linkedin -l 500
theHarvester -d target.com -b all
# Shodan: internet-wide scan database
shodan search hostname:target.com
shodan host 10.0.0.5
shodan search "Apache" net:10.0.0.0/24
# Whois
whois target.com
whois 10.0.0.5
# Certificate Transparency logs
curl -s "https://crt.sh/?q=%25.target.com&output=json" \
| jq '.[].name_value' | sort -u2.8.3 Google Dorks
Google Dorks zijn geavanceerde zoekopdrachten die Google gebruiken als een soort kwetsbaarheidenscanner. Het is legaal – je zoekt alleen in de Google-index – maar de resultaten kunnen verbluffend onthullend zijn.
site:target.com filetype:pdf
site:target.com filetype:xlsx
site:target.com ext:php inurl:admin
site:target.com intitle:"index of" "parent directory"
site:target.com inurl:login
site:target.com ext:sql | ext:db | ext:bak
Die laatste – zoeken naar database-backups – levert soms letterlijk complete databases op. In de publieke Google-index. Laat dat even bezinken. Iemand heeft een database-back-up op een webserver gezet, die webserver is geindexeerd door Google, en nu kan iedereen die de juiste zoekopdracht kent die back-up downloaden. Het is als het achterlaten van je complete boekhouding op de stoep met een briefje “gratis mee te nemen.”
2.8.4 Certificate Transparency
Certificate Transparency (CT) is een onverwachte goudmijn voor
pentesters. Elke SSL/TLS-certificaat dat wordt uitgegeven, wordt
geregistreerd in openbare logs. Door deze logs te doorzoeken vind je
subdomeinen die de organisatie misschien liever geheim had gehouden:
internal.target.com, vpn-test.target.com,
dev-api.target.com.
# Certificate Transparency via crt.sh
curl -s "https://crt.sh/?q=%25.target.com&output=json" \
| jq '.[].name_value' | sort -u
# Netcraft (via browser)
# https://searchdns.netcraft.com/?restriction=site+contains&host=target.comHet mooie aan CT-logs is dat ze historisch zijn. Je vindt niet alleen huidige certificaten, maar ook verlopen certificaten voor servers die misschien nog steeds draaien – alleen zonder geldig certificaat. En als er iets is dat beheerders vergeten te decommissionen, dan is het die ene testserver van drie jaar geleden.
2.8.5 Recon-ng framework
Recon-ng is een OSINT-framework dat werkt als een modulaire verkennings-workbench:
# Recon-ng starten
recon-ng
# Modules zoeken en installeren
# marketplace search github
# marketplace install recon/domains-hosts/google_site_web
# modules load recon/domains-hosts/google_site_web
# options set SOURCE target.com
# runIB Tip: IB’s
recon_osintcommand file bevat de volledige OSINT toolkit: recon-ng, theHarvester, Shodan, Google Dorks, Netcraft en Certificate Transparency queries. Begin altijd met passieve recon voordat je scant – het is gratis, onzichtbaar, en levert verrassend veel op.
2.9 CMS scanning: WordPress onder het mes
2.9.1 Waarom WordPress?
WordPress draait op een aanzienlijk deel van alle websites ter wereld. Het is het meest gebruikte CMS, en daarmee ook het meest aangevallen. Niet omdat het inherent onveilig is, maar omdat het ecosysteem – duizenden plugins, duizenden themes, miljoenen beheerders die niet updaten – een aanvallers paradijs creëert.
WPScan is de gespecialiseerde tool voor WordPress-beveiliging:
# Basis scan met enumeratie
wpscan --url http://target --enumerate ap,at,cb,dbe
# Gebruiker enumeratie
wpscan --url http://target --enumerate u
# Plugin enumeratie (agressief)
wpscan --url http://target --enumerate ap --plugins-detection aggressive
# Theme enumeratie
wpscan --url http://target --enumerate at
# Password brute force
wpscan --url http://target -U admin \
-P /usr/share/wordlists/rockyou.txt
# Met meerdere users via XML-RPC (sneller)
wpscan --url http://target -U users.txt \
-P /usr/share/wordlists/rockyou.txt --password-attack xmlrpc
# Met API token voor CVE-details
wpscan --url http://target --api-token YOUR_TOKEN --enumerate vp,vtDe --enumerate flags vertellen WPScan wat hij moet
zoeken: - ap – alle plugins - at – alle themes
- u – gebruikers - cb – config back-ups -
dbe – database exports - vp – kwetsbare
plugins (vereist API token) - vt – kwetsbare themes
(vereist API token)
2.9.2 Handmatige WordPress checks
Soms wil je het met de hand doen – of WPScan werkt niet:
# WordPress versie
curl -s http://target/readme.html
# Gebruikers via REST API
curl -s http://target/wp-json/wp/v2/users
# XML-RPC endpoint (bruikbaar voor brute force)
curl -s http://target/xmlrpc.php
# Standaard paden
# Login: http://target/wp-login.php
# Admin: http://target/wp-admin/
# Uploads: http://target/wp-content/uploads/Die REST API (/wp-json/wp/v2/users) is standaard
ingeschakeld en openbaar. Het geeft gebruikersnamen terug. Zonder
authenticatie. WordPress noemt dit een “feature.” Aanvallers noemen het
een cadeautje.
2.9.3 Na het vinden van een kwetsbaarheid
WPScan met een API token koppelt gevonden plugins en themes aan bekende CVEs. De output ziet er dan zo uit:
[!] Title: Plugin X < 3.2.1 - Unauthenticated SQL Injection
Fixed in: 3.2.1
References:
- https://wpscan.com/vulnerability/...
- https://nvd.nist.gov/vuln/detail/CVE-2024-...
Dit is waar verkenning overgaat in exploitatie. Je hebt nu een specifieke kwetsbaarheid, met een CVE-nummer en referenties naar exploits. De vraag is niet meer “is dit systeem kwetsbaar?” maar “hoe snel kan ik dit exploiteren?”
Een veelgebruikte post-login techniek in WordPress is de Theme Editor. Als je admin-toegang hebt:
- Navigeer naar Appearance -> Theme Editor
- Selecteer het actieve theme
- Bewerk
404.php(minst verdacht) - Voeg PHP-code toe (reverse shell, webshell)
- Browse naar
http://target/wp-content/themes/theme-naam/404.php
Het is elegant in zijn eenvoud. Je misbruikt een legitieme functie –
theme editing – voor een illegitiem doel. En het wordt zelden
gedetecteerd, want wie controleert er nu de 404.php van een
WordPress-theme?
IB Tip: IB’s
recon_wpscancommandobestand bevat zowel geautomatiseerde WPScan commando’s als handmatige checks. Na succesvolle login: ga naar Appearance, Theme Editor, bewerk404.php– dat is de snelste weg naar een webshell op een WordPress-installatie.
2.10 De IB Task Runner: verkenning vanuit het dashboard
2.10.1 Hoe de Task Runner werkt
De IB Task Runner is een web-gebaseerde interface om
voorgedefinieerde taken te starten, monitoren en de output te bekijken.
Het is geen generieke command executor – het werkt uitsluitend met een
allowlist van taken die in tasks.py zijn gedefinieerd. Geen
willekeurige commando’s, geen shell injection, geen verrassingen.
Elke taak heeft: - Een label (wat je ziet in de interface) - Een group (categorie: Recon, Brute Force, etc.) - Een cmd (het exacte commando dat wordt uitgevoerd) - Optionele args (parameters met input-validatie)
De argumenten worden gevalideerd tegen regex-patronen voordat ze aan
het commando worden toegevoegd. Geen shell=True, geen
string concatenatie, alleen een lijst van strings die aan
subprocess.Popen worden gegeven.
2.10.2 Beschikbare recon taken
De Task Runner heeft de volgende verkennings-gerelateerde taken:
| Taak | Groep | Wat het doet |
|---|---|---|
scan |
Recon | Nmap TCP/UDP scan + nuclei + whatweb + wfuzz |
search |
Recon | Zoek hosts per service in nmap resultaten |
ftp_anon |
Recon | Test anonymous FTP login |
kerberos |
Recon | Kerberos user enum + LDAP query |
2.10.3 Walkthrough: een scan starten
Om een network scan te starten via de Task Runner:
- Open het IB dashboard op
http://127.0.0.1:5000 - Navigeer naar Tasks
(
/dashboard/tasks) - Zoek de scan taak onder de groep “Recon”
- Vul de parameters in:
- Interface / IP: het netwerkinterface om te scannen
(bijv.
tun0) - Scan naam: een herkenbare naam (bijv.
pentest-2026) - Hosts / range: het te scannen bereik (bijv.
10.0.0.0/24)
- Interface / IP: het netwerkinterface om te scannen
(bijv.
- Klik op Start
De Task Runner start het commando op de achtergrond. Je kunt de voortgang live volgen – de output wordt gestreamed naar de browser. Het commando dat wordt uitgevoerd is:
bash scan.sh tun0 pentest-2026 10.0.0.0/242.10.4 Wat scan.sh doet onder de motorkap
IB’s scan.sh is meer dan een wrapper om nmap. Het doet
het volgende:
- Directory structuur aanmaken: maakt
raw/recon,raw/nmap,raw/looten andere mappen aan - Lokale configuratie loggen: slaat
id,uname,ifconfigen publiek IP op inraw/local/ - TCP poortscan: nmap met output in alle formaten
(
-oA) - UDP poortscan: dezelfde scan voor UDP
- Resultaten omzetten: converteert nmap output naar CSV-formaat
- Per-host deep scan: voor elke host met open poorten wordt een volledige nmap scan gestart in een screen-sessie
- Web recon: voor elke host met HTTP worden
whatweb,wfuzzennucleigedraaid
# De kern van scan.sh:
# 1. Quick scan
nmap -e $localnic $NMAP_OPDRACHT_TCP $NMAP_HOST \
-oA raw/nmap/${naam}_quick_scan_tcp
# 2. Parse resultaten, start deep scans
for host in $(grep "open" raw/nmap/${naam}_quick_scan_tcp.gnmap | ...); do
screen -dmS nmap_${host} nmap -A ${host} \
-oA raw/nmap/${host}_full_scan_tcp
done
# 3. Web recon per HTTP host
for host in $(grep "http" raw/nmap/${naam}_quick_scan_tcp.gnmap | ...); do
whatweb ${host} > raw/recon/whatweb-${host}.txt
wfuzz ... ${host}/FUZZ > raw/recon/wfuzz-${host}.txt
nuclei -u ${host} > raw/recon/nuclei-${host}.txt
done2.10.5 Zoeken in resultaten
Na de scan kun je de search taak gebruiken om specifieke services te vinden:
- Open de Task Runner
- Start de search taak met:
- Scan naam:
pentest-2026 - Zoekterm:
ftp,ssh,http,3389, of elke andere service/poort
- Scan naam:
- De output toont alle hosts met die service
Dit is wat search.sh intern doet – het parsed de gnmap
output en filtert op jouw zoekterm:
# search.sh zoekt in het grepable nmap formaat
cat raw/nmap/${naam}_quick_scan_tcp.gnmap \
| grep "${zoekterm}" \
| awk '{print $2}' \
| sort -u2.10.6 Beveiliging van de Task Runner
De Task Runner is opzettelijk beperkt:
- Allowlist only: alleen taken die in de
_TASKSdictionary staan, kunnen draaien - Input validatie: alle argumenten worden gevalideerd
tegen regex patronen (
^[a-zA-Z0-9_\-]+$voor namen,^[a-zA-Z0-9._:/%\-]+$voor IPs) - Geen shell=True: commando’s worden als een lijst
doorgegeven aan
subprocess.Popen, niet via een shell - Pad traversal bescherming:
..in argumenten wordt geweigerd - Timeout: taken worden na 600 seconden (10 minuten) automatisch beëindigd
- Output limiet: maximaal 500 regels output worden bewaard
# Uit tasks.py -- hoe argumenten worden gevalideerd:
_RE_SAFE_NAME = re.compile(r"^[a-zA-Z0-9_\-]+$")
_RE_IP_OR_IFACE = re.compile(r"^[a-zA-Z0-9._:/%\-]+$")
def _validate_arg(value, arg_def):
if len(value) > 512:
return f"{arg_def['label']} is te lang"
if ".." in value:
return f"Pad traversal niet toegestaan in {arg_def['label']}"
regex = _PATTERN_MAP.get(pattern_name, _RE_SAFE_NAME)
if not regex.match(value):
return f"Ongeldig karakter in {arg_def['label']}"
return NoneDit is hoe een task runner hoort te werken: niet door gebruikersinput in een shell te plakken, maar door voorgedefinieerde commando’s uit te voeren met gevalideerde parameters.
2.10.7 Output bekijken
De Task Runner slaat de output van elke taak op in het geheugen (maximaal 500 regels per taak). Je kunt de output in real-time volgen via de web-interface, of opvragen via de API:
# Output opvragen van een specifieke run (via curl)
curl http://127.0.0.1:5000/api/tasks/runs/<run_id>Het JSON-antwoord bevat: - status: running,
success, of failed - cmd: het
uitgevoerde commando - output: een array van output-regels
- started_at / finished_at: timestamps -
return_code: de exit code van het proces
De scan-resultaten zelf staan in de raw/ directory. Na
een succesvolle scan vind je: -
raw/nmap/{naam}_quick_scan_tcp.* – initiële TCP scan (nmap,
xml, gnmap) - raw/nmap/{naam}_quick_scan_udp.* – initiële
UDP scan - raw/nmap/{naam}_tcp-poorten.txt – geformatteerde
poortlijst - raw/nmap/{naam}_tcp-versies.txt – service
versies - raw/{naam}_scope.csv – scope overzicht met
FQDN/rDNS/IP - raw/nmap/{host}_full_scan_tcp.* – deep scans
per host - raw/recon/whatweb-{host}.txt – web
fingerprinting - raw/recon/wfuzz-{host}.txt – directory
bruteforce resultaten - raw/recon/nuclei-{host}.txt –
vulnerability scan resultaten
Alles netjes georganiseerd, klaar voor je rapportage.
2.11 De ongemakkelijke waarheid: over verkenning en nalatigheid
Weet je wat het mooiste is aan verkenning? Het onthult geen kwetsbaarheden in software. Het onthult kwetsbaarheden in mensen. Elke open poort is een beslissing die iemand heeft genomen – of vergeten te nemen. Elke default credential is iemand die dacht “dat veranderen we later wel.” Elke zone transfer die slaagt is een beheerder die het checkbox-security-model volgt: als het werkt, is het klaar.
SNMP community string public? Dat is niet eens een
kwetsbaarheid, dat is een keuze. Iemand heeft bewust besloten
dat public prima was. Of – en dit is erger – niemand heeft
er uberhaupt over nagedacht. Het apparaat kwam uit de doos met
public als community string, en niemand heeft de moeite
genomen om het te veranderen.
Hetzelfde geldt voor anonymous FTP. Het is 2026. Anonymous FTP is geen vergissing meer, het is een traditie. Het wordt doorgegeven van systeembeheerder op systeembeheerder, als een soort digitale folklore. “Zo hebben we het altijd gedaan.” Ja, en vroeger rookten artsen ook in de operatiekamer.
NFS-beveiliging op basis van IP-adressen is misschien wel het mooiste voorbeeld. Het hele model is: “als je op ons netwerk zit, vertrouwen we je.” Geweldig plan. Totdat iemand op je netwerk komt die er niet hoort te zijn. En hoe komt die persoon op je netwerk? Via de FTP-server met anonymous login. Het is een vicieuze cirkel van incompetentie.
2.12 Praktische tips: de verkenningschecklist
Voor elke engagement zou je deze stappen moeten doorlopen, in volgorde:
Fase 1: Passief (geen verkeer naar doelwit) - [ ] Whois lookups (domein en IP) - [ ] DNS records opvragen (A, MX, TXT, NS) - [ ] Certificate Transparency logs doorzoeken - [ ] theHarvester draaien voor e-mailadressen en subdomeinen - [ ] Shodan doorzoeken op IP-bereik - [ ] Google Dorks uitvoeren - [ ] LinkedIn doorzoeken voor medewerkersnamen en technologie-hints
Fase 2: Actief (met toestemming) - [ ] Nmap SYN scan (TCP) op volledig bereik - [ ] Nmap UDP scan op top 50 poorten - [ ] Per-host deep scan met versie-detectie en scripts - [ ] DNS zone transfer proberen - [ ] Subdomain bruteforce - [ ] FTP anonymous login testen - [ ] SMB null session en share enumeratie - [ ] SNMP community string brute force - [ ] NFS showmount - [ ] HTTP: whatweb, directory bruteforce, nuclei - [ ] SMTP user enumeration (als poort 25 open) - [ ] WordPress scan (als WordPress gedetecteerd)
Fase 3: Documentatie - [ ] Alle resultaten
opgeslagen in raw/ - [ ] Scope CSV aangemaakt - [ ]
Screenshots van relevante bevindingen - [ ] Gevonden credentials en
gevoelige informatie gelogd
IB automatiseert een groot deel van fase 2 via de Task Runner en
scan.sh, maar de checklist helpt om niets over het hoofd te
zien.
2.13 Samenvatting
Verkenning is het fundament van elke penetratietest. Het bepaalt wat je aanvalt, hoe je het aanvalt, en of je uberhaupt iets vindt om aan te vallen. De belangrijkste lessen uit dit hoofdstuk:
- Begin passief: OSINT en publieke bronnen eerst, actief scannen daarna – het is gratis, onzichtbaar, en verrassend informatief
- Scan systematisch: Nmap met
-oAvoor bewijs, scan zowel TCP als UDP – vergeet UDP niet, daar zitten SNMP en DNS - Enumereer elke service: FTP, SSH, SMB, RDP, HTTP – elk protocol heeft zijn eigen verkenningstools en eigen veelgemaakte configuratiefouten
- DNS is een goudmijn: zone transfers, subdomain enumeration, reverse sweeps – DNS onthult meer dan beheerders beseffen
- SNMP is een ramp: default community strings in combinatie met cleartext transport onthullen alles – gebruikerslijsten, processen, geinstalleerde software
- NFS vertrouwt blindelings: IP-gebaseerde authenticatie is geen authenticatie, en UID spoofing maakt het triviaal te omzeilen
- CMS-scanning: WordPress plugins en themes zijn het laaghangende fruit van webapplicatie-beveiliging – een verouderde plugin is een open deur
- Documenteer alles: IB slaat resultaten
gestructureerd op in
raw/– gebruik het voor je rapportage en als bewijs - Gebruik de IB Task Runner: het automatiseert de saaie, herhalende delen van verkenning zodat jij je kunt richten op analyse en strategie
De verkenningsfase eindigt niet met een lijst van open poorten. Het eindigt met een beeld – een mentale kaart van het netwerk, de diensten, de gebruikers en de zwakke plekken. Dat beeld is wat je meeneemt naar het volgende hoofdstuk, waar we de stap zetten van verkenning naar daadwerkelijke toegang.
2.14 Referentietabel
| Onderwerp | Tool/Commando | IB Component |
|---|---|---|
| Poortscan TCP | nmap -sS -sV -sC -p- |
Task Runner: scan |
| Poortscan UDP | nmap -sU --top-ports 50 |
Task Runner: scan |
| Zoek hosts per service | search.sh naam zoekterm |
Task Runner: search |
| FTP anonymous | nmap --script ftp-anon |
Task Runner: ftp_anon |
| SMB enumeratie | smbclient, enum4linux,
crackmapexec |
Command: handmatig |
| DNS zone transfer | dig axfr, dnsrecon -t axfr |
Commands: recon_dns |
| DNS subdomain enum | gobuster dns, dnsrecon -t brt |
Commands: recon_dns |
| SMTP user enum | smtp-user-enum,
nmap --script smtp-enum-users |
Commands: recon_smtp |
| SNMP walk | snmpwalk, snmp-check |
Commands: recon_snmp |
| NFS enumeration | showmount -e, mount |
Commands: recon_nfs |
| OSINT | theHarvester, shodan,
recon-ng |
Commands: recon_osint |
| WordPress scan | wpscan --enumerate ap,at,u |
Commands: recon_wpscan |
| Web recon | whatweb, wfuzz, nuclei |
Automatisch via scan.sh |
| Kerberos enum | kerbrute, crackmapexec |
Task Runner: kerberos |
| Deep scan output | raw/nmap/{host}_full_scan_tcp |
Automatisch via scan.sh |
| Web recon output | raw/recon/whatweb-{host}.txt |
Automatisch via scan.sh |
Volgende hoofdstuk: Hoofdstuk 3 – Initiële Toegang