Network Reconnaissance – Mijn Tools en Commands
In deze post wil ik een vraag behandelen die ik regelmatig krijg. “Wat is het eerste dat je doet wanneer je toegang hebt tot een netwerk?”. Deze vraag is natuurlijk niet altijd hetzelfde te beantwoorden. Toch bestaat mijn basic netwerkverkenning (network reconnaissance) vaak uit dezelfde soortgelijke stappen. NMap heeft tijdens de reconnaissance een belangrijk aandeel maar ook andere tools worden gebruik. In deze post leg ik uit wat mijn basis network reconnaissance inhoud en hoe ik hier een vervolg aan geeft.
Om de scope af te bakenen moet ik eerst een aantal begrippen verduidelijken.
Netwerk:
De vraag in de intro luidde “Wat is het eerste dat je doet wanneer je toegang hebt tot een netwerk?”. Een netwerk wordt hier bedoeld als een connectie op het netwerk van de klant. Dit kan een bekabelde verbinding zijn, een WiFi verbinding en zelfs een stepping-stone met een netwerk verbinding. Kortom een apparaat welke me mogelijk meer inzicht geeft in de opbouw van het achterliggende netwerk, mogelijke hosts en diensten.
Network Reconnaissance:
Met “reconnaissance” ofwel verkenning bedoel ik het inzichtelijk maken van het betreffende netwerk en mogelijke hosts. Dit betreft een actieve reconnaissance wat betekend dat er fysiek toegang is en mogelijk digitale sporen kunnen worden achtergelaten van mijn aanwezigheid in het netwerk. Voordat je normaliter overgaat op een actieve reconnaissance heb je al een passieve reconnaissance uitgevoerd. Deze passieve reconnaissance kan mogelijk al goede inzichten hebben gegeven in mogelijk stepping stones, ip adressen, naam conventies etc.
Tools:
Als je op locatie bent is het belangrijk om je ogen en oren open te houden. Wat staat er op eventuele stikkertjes? Welke kabels kun je gebruiker (of misbruiken) en ben je in de gelegenheid om een implant achter te laten. Met een implant bedoel ik een stukje hardware die ook na vertrek meer informatie verzameld en hopelijk ongezien blijft. Met tools bedoel ik in deze post alleen de softwarematige tools waar ik de beschikking over heb. Dus tool die al aanwezig zijn op mijn notebook. Als je een hacking distributie zoals Kali of Parrot gebruikt zullen de meeste tools al standaard aanwezig zijn.
Ok, nu we dat opgehelderd hebben wordt het zaak om het netwerk te ontdekken. In dit voorbeeld heb ik een WiFi verbinding met als IP adres 192.168.43.169/24. Dit zijn de stappen zoals ik deze zou uitvoeren.
NetDiscover:
Netdiscover is een ARP (Address Resolution Protocol) scanner. De ARP database laat normaliter zien welk MAC adres toebehoord aan een host op het netwerk. Als je voldoende tijd hebt is het aan te raden om NetDiscover in passieve (-p) mode uit te voeren. Hiermee wordt geen data verstuurd maar vang je alleen informatie als een HOST een ARP request uitstuurt. Dit commando ziet er in de basis als volgt uit:
netdiscover –p -r 192.168.43.0/24 |
Met de “-r” flag geef ik een range aan om te scannen. Zonder het opgeven van de range zal NetDiscover de meest logische subnetten scannen. Wanneer je wat minder tijd hebt kun je een actieve NetDiscover scan uitvoeren. Deze scan is zonder de “-p” toevoeging. Nu stuur je zelf ARP requests uit en kun je wachten op een respons. Dit is minder stealthy maar wel sneller.
Bovenstaande voorbeeld maakt gebruik van de default NIC (de NIC met de laagste metric). We kunnen met de “-i” toevoeging ook een gedefinieerde interface opgeven:
netdiscover -i wlan0 -r 192.168.43.0/24 |

Om eventueel een snellere scan uit te voeren kun je de -f (fast) flag gebruiken. Deze is veel sneller maar niet altijd volledig.
netdiscover -f -i wlan0 -r 192.168.43.0/24 |
Het mooie van een ARP scan is dat ARP in tegenstelling tot ICMP niet geblokkeerd kan worden. Wanneer men ARP zou blokkeren zou het hele netwerk niet meer functioneren. NetDiscover is dus een dikke aanrader om te gebruiken. Laat deze desnoods op de achtergrond lopen terwijl je zelf aan de slag gaat met de volgende tool, NMap.
NMap:
NMap is in het stadium van netwerk reconnaissance heer en meester. NMap ken namelijk zo veel verschillende scanmethodes dat er in dit stadium eigenlijk altijd een geschikte scanoptie is. Neem voor meer informatie eventueel een kijkje naar mijn NMap post: https://jarnobaselier.nl/nmap-commandos-en-scripts/. NMap is een uitgebreide tool met veel schackelmogelijkheden. Een aantal van die schakelmogelijkheden zijn:
- -sC = default scripts
- -sP = ping scan
- -sS = TCP Syn / Stealth
- -sU = UDP scan
- -sI = Idle ofwel zombie scan. Zeer stealthy maar traag en complex
- -t0 – t5 = tijd – slow to fast
- -pN = Skip pingtest en scan elke poort
- -v = Verbose scan
- -sN = Null scan
- -O = Detect remote OS
- -A = Detect OS en Services
- -sV –version-intensity 5 = Service detection aggressive
- -sA = is host protected by firewall
- -6 = Nmap ipv6 scan
- –open = Show only open ports
- -PU = UDP ping
- -f = Packet fragmentation
- -D = Decoy scan
- -S = Spoof source IP
Genoeg keuze om een NMap scan te doen. Afhankelijk van de schakeloptie zal NMap je een inzicht geven in de hosts op het netwerk. Welke hosts zijn er, staan er poorten open, welk besturingssysteem draait er op de host en welke services zijn er live. Net zoals met NetDiscover is de ene scan wel duidelijk meer stealty dan de andere. Een relatief stealty scan is de “Host Discovery” scan. Dit is een snelle scan en zal alleen laten zien welke hosts er in het netwerk te vinden zijn. De “-sL” schakeloptie activeerd de host scan en de “-v” optie schakelt verbose logging in. Dit geeft dus meer inzicht in de gevonden resultaten en schakel ik in bij de meeste scans.
nmap -v -sL 192.168.1.0/24 |
Een “gewone” nmap scan zonder toevoeging zal de eerste 1000 poorten (1-1001) scannen van een host. In deze range bevinden zich de meest gebruikte poorten en NMap zal dan ook retourneren welke van deze poorten opten staan. Een gewone NMap scan kan wel een tijdje duren. Daarom kent NMap een “Fast” scanoptie waarbij alleen de 100 meest gebruikte poorten van een host gescand worden:
nmap -v -F 192.168.1.0/24 |
Wil je nog meer stealth dan kun je een –sS ofwel “Syn” scan uitvoeren. De Syn scan noemen we ook weleens een half-open port scan omdat NMap geen laatste ACK retourneerd van de 3-way handshake. Deze methode van scannen duurt wel een stuk langer:
nmap -v -sS -p 1-1001 192.168.1.0/24 |
Wil je echter alle 65535 poorten scannen dan kun je deze allemaal opgeven in de scanpoort range “-p”. Let wel, hoe meer poorten des te langer een scan duurt.
nmap -v -p- 192.168.1.0/24 |
NMap zal standaard eerst een ICMP ping sturen naar de host. Als deze een reply stuurt dan zal NMap de open poorten proberen te achterhalen. Dit betekend dat wanneer “ICMP ping” op de host dicht staat NMap de host ook niet verder zal onderzoeken. Je kunt NMap alle hosts laten scannen zonder eerst een ping reply nodig te hebben. Dit is de zogenaamde NoPing “-Pn” methode. Deze methode is niet stealthy en duurt ontzettend lang:
nmap -v -Pn -sU -p 1-1001 192.168.1.0/24 |
En heb je echt het lak aan stealth dan zijn er nog diverse andere scans die je kunt uitvoeren. Zo kun je de scan intensiteit op het maximum (–version-intensity 5) zetten, NMap scripts inzetten (sC), UDP poorten ook scannen (-sU hier heb je root rechten voor nodig) en services detecteren (-A). De “-f” schakeloptie geeft aan dat dit een gefragmenteerde scan moet zijn en dus de scan payloads over meerdere pakketjes verdeeld. Dit is een zeer complete maar complexe en lange scanmethode:
nmap -v -A -sC -O -sV -sU --version-intensity 5 -f -p 1-1001 192.168.1.0/24 |
Afhankelijk van de wensen zal ik meestal in eerste instantie een hostscan uitvoeren, een lijst samenstellen van beschikbare hosts en vervolgens een syn scan uitvoeren. Het gebeurt echter ook geregeld dat ik gewoon een normale NMap scan (connect scan) uitvoer, zeker als stealth een minder groot probleem is.
SNMP Scan
Een andere scan die ontzettend veel informatie op kan leveren is een SNMP scan. Heel veel randapparatuur verstuurd telemetrische / statistische gegevens over SNMP (Simple Network Management Protocol) t.b.v. management en beheertaken. SNMP is niet alleen zenden maar SNMP kan ook gebruikt worden om apparaten te beheren. In dit stadium gaat het echter alleen over de informatie die deze apparaten retourneren. Netwerk topologieen, wachtwoorden, verborgen subnetten… I’ve seen it all. Dat maakt SNMP zo waardevol. Een SNMP scan voer ik alleen uit op de hosts waarvan NMap aangeeft dat SNMP open staat (standaard is poort 161).
SNMP-Check is een van deze tools. Een voorbeeld SNMP check ziet er als volgt uit:
snmp-check 192.168.1.101 -c public |
De “-c” flag in deze is de “”community” string. Default is deze altijd “public”. SNMP V1 en V2 maken gebruik van community strings welke feitelijk gezien kunnen worden als een gebruikers ID of als wachtwoord. V.a. SNMP V3 is dit mechanisme verbeterd en wordt authenticatie gedaan d.m.v. een geldige gebruikersnaam en wachtwoord combinatie.
Wireshark PCAP dump
Wat vervolgens ontzettend interessant kan zijn is om even met Wireshark een dump te maken het netwerkverkeer. Je dumpt al het netwerkverkeer van het netwerk waarmee je verbonden bent naar een PCAP bestand zodat je deze later kun analyseren. Hierin kun je services ontdekken die op het netwerk gebruikt worden, SNMP informatie, verborgen hosts, bezochte URL’s etc. Een PCAP dump kan zeer waardevolle informatie opleveren. Als er de tijd voor is raad ik aan om een PCAP dump van +/- 10 minuten (indien mogelijk langer) te maken. Dit kun je uiteraard doen met Wireshark of de TShark CLI tool.
sudo tshark -i wlan0 -w /tmp/capture1.pcap -F pcap |

LLMNR Responder
Wat altijd leuk is om mee te laten draaien is de LLMNR Responder. De LLMNR Responder is een Python-based scantool om het LLMNR, NBT-NS en MDNS verkeer te poisonen en om op die manier credentials te achterhalen. Let op, gebruik LLMNR Responder nooit als stealth een belangrijke zaak is. LLMNR Responder is niet stealthy! Zie voor een uitgebreide uitleg van de LLMNR Responder mijn vorige post: https://jarnobaselier.nl/llmnr-responder-poinsoner/.

Omgeving specifieke scans
Tot zover de algemene scans. Op dit punt heb je voldoende informatie om stepping stones in het netwerk te ontdekken en om potentiele zwakke hosts verder te “benutten”. Het kan echter zijn dat je in een speciaal netwerk bent waarbij een extra scan waardevol kan zijn. In een PA/PI netwerk kan een Modbus of Profibus scan een waardevolle aanvulling zijn. Deze scan’s kun je b.v. uitvoeren met Metasploit.
msfconsole use auxiliary/scanner/scada/modbusdetect |

Let overigens in dit soort omgevingen altijd op, Niet alle PA/PI apparatuur is even stabiel en kan vastlopen of onverwachts rebooten als je de foute scans op het netwerk uitvoert. Weg stealth… en weg klant!
Heb je nog iets meer tijd dan kan het waardevol zijn om een vulnerability scan te draaien op het netwerk. Dit kan mogelijk vulnerable hosts / services aan het licht brengen maar is zeker niet stealthy.
Als je al een gebruikersnaam en wachtwoord op het netwerk hebt achterhaald kan het ook zinvol zijn om een SMB scan te doen om te achterhalen of je al een share kunt openen. Shares kunnen zeer waardevolle informatie bevatten. SMBMap is een tool die hier uitermate geschikt voor is. SMBMap is een Python based tool en werkt als volgt:
python smbmap.py -u administrator -p password -d workgroup -H 192.168.1.0 |
In een netwerk met databases kun je misschien databases vinden welke vatbaar zijn voor een SQL Injectie. Hier is “SQLMap” weer een ideale tool voor.
Kortom, het is erg afhankelijk van het netwerk welke scan’s het meest effectief zijn. Om alleen het netwerk te mappen zijn NetDiscover, NMap, WireShark en de LLMNR Responder voor mij echt de top 3 tools om te gebruiken.
Ken je zelf nog betere of handigere tools om network reconnaissance uit te voeren dan ben ik altijd benieuwd naar jouw tips & tricks voor het uitmappen van een netwerk!!
Belangrijk is om naast de “default” mapping scans altijd je ogen goed de kost te geven. Door goed te kijken en te luisteren kun je zeer waardevolle informatie achterhalen over het netwerk. Op basis daarvan kun je weer specifieke scans of andere pentest oplossingen bedenken.
Dus, sorry folks… er is geen standaard antwoord mogelijk voor elk scenario. Maar ik hoop dat ik met deze post een richting heb kunnen geven aan de vraag “Wat is het eerste dat je doet wanneer je toegang hebt tot een netwerk?”. Het antwoord is dus eigenlijk “inzicht krijgen in het netwerk”. Nogmaals, alle tips zijn welkom want ik weet zeker dat mijn methode ook weer verbeterd kan worden.
Vond je dit een interessante post laat dan gezellig even een berichtje achter of deel dit bericht op je website en/of sociale kanalen. Leuke (re)acties zorgen voor nieuwe arbeidsvitaminen en dus voor nieuwe posts 🙂 Thanks a million!