Wireshark netwerk analysetool vernieuwd: Npcap en meer

Noud van Kruysbergen
0

Inhoudsopgave

Wireshark is ongetwijfeld de meest gebruikte netwerk analysetool. Inmiddels is versie 3.0.1 van die opensource software beschikbaar. We laten je de belangrijkste vernieuwingen zien door de overstap naar Npcap. Daarnaast gaan we in op andere nieuwe functies en mogelijkheden van Wireshark.

De softwaresuite Wireshark, die Gerald Combs al in 1998 uitbracht, in eerste instantie onder de naam Ethereal, maakt een inkijk mogelijk in de netwerkcommunicatie van vele protocollen tot op hoog detailniveau. Er zijn wel vergelijkbaar krachtige producten, zoals de Message Analyzer van Microsoft, maar Wireshark is opensource en niet alleen beschikbaar voor Windows maar ook voor Linux en macOS (met pakketmanager MacPorts).

Dat kan onder meer doordat de ontwikkelaars de grafische gebruikersinterface met behulp van platform­onafhankelijke toolkits verregaand implementeren volgens de styleguides van het betreffende doelplatform – in het begin hebben ze daar GTP voor gebruikt, maar sinds versie 2 Qt. Die overgang bracht een moderner uiterlijk. Ook bleek de QT-community meer agile, zodat GUI-problemen sneller opgelost werden.

Wireshark netwerk analyse tool Npcap WinPCAP SYN flood IP mapping

De overstap is echter nog niet afgerond: sommige functies zijn tot nu toe alleen in GTP geïmplementeerd. Daarom installeerden veel gebruikers beide versies, de op GTK gebaseerde Wireshark Legacy en de Qt-versie, parallel naast elkaar. Sinds versie 3.0 is echter alleen nog de Qt-variant te krijgen. De ontwikkelaars willen het gat snel kleiner maken. De Wireless-toolbar voor het selecteren van kanalen zit bijvoorbeeld nog niet in de Qt-versie.

Onder de motorkap zijn er veel veranderingen, die onderdeel van de steeds doorgaande moderni­sering zijn. Het belangrijkste daarvan is waarschijnlijk het overstappen van WinPCAP naar Npcap, wat ook de belangrijkste reden voor het ophogen van het hoofdversienummer is. WinPCAP is een bibliotheek die ­Wireshark onder Windows gebruikte voor registreren van het netwerkverkeer – de Linux-tegenhanger daarvoor heet libpcap.

Wireshark met Npcap

De ontwikkelaars zijn echter jaren met andere projecten bezig geweest, zodat WinPCAP niet meer aan alle eisen voldeed. Microsoft wijzigt bijvoorbeeld de interfaces van de netwerkdrivers van Windows continu (Network Driver Interfaces Specifications, NDIS), zodat WinPCAP al bij de eerste versies van Windows 10 problemen opleverde. Bovendien kun je met WinPCAP het wifi- en het loopback-dataverkeer niet registreren. Een tijd lang kon je voor het registreren van wifiverkeer uitwijken naar AirPCAP-adapters, maar de maker daarvan heeft de verkoop inmiddels gestopt.

Om dergelijke problemen te verhelpen, hebben deelnemers aan het Nmap-project van Gordon Lyon, beter bekend als Fyodor, een nieuwe bibliotheek ontwikkeld: Npcap voor Windows. Naast Wireshark gebruikten namelijk veel andere projecten ook WinPCAP – en daarnaast Nmap – om met netwerkkaarten te communiceren. Npcap is sinds april 2018 als kernelmodule beschikbaar. Na een proefperiode maakt Wireshark daar nu standaard gebruik van.

Wireshark netwerk analyse tool Npcap WinPCAP installatie Npcap

Met de nieuwe bibliotheek Npcap kan Wireshark eindelijk ook het verkeer van loopback-interfaces en wifi-adapters loggen.

Een paar problemen, die naar Npcap zijn te herleiden, zijn nog over. Als de Npcap-service draait, ziet de Windows-eigen wifi-lister soms een paar wifinetwerken niet. Als je Npcap stopt, duiken ze weer op (bijvoorbeeld in de taakbalk van Windows). Of dat bij jouw pc ook het geval is, kun je achterhalen via een Opdrachtprompt met administratorrechten met de commando’s sc stop npcap en sc start npcap.

Afgezien daarvan loont Npcap wel degelijk. Daarmee zijn eindelijk captures mogelijk van de loopback-interface en kun je de draadloze wifilaag (Media Access Control) zonder speciale hardware registeren (Monitor Modus). De lijst van adapters die deze modus ondersteunen is vrij uitgebreid.

Om de Monitor Modus bij Windows te kunnen gebruiken, moest je Wireshark eigenlijk met administratorrechten starten. Vanuit security-redenen is dat echter geen goed idee. Dat is te ondervangen met de commandline-tool WlanHelper.exe, die staat in de map C:\Windows\System32\npcap. Daarmee is de Monitor Modus van de wifikaart handmatig te activeren, zodat die informatie levert van de radiolaag en zelf niet actief deelneemt aan het wifi (Receive Only).

Het radiokanaal kun je bij Wireshark door het ontbreken van de bijbehorende toolbar nog niet instellen. Ook daar heb je WlanHelper voor nodig. Hoe je een wifi-­capture met Npcap doet, is te lezen op een Engelstalige blogpost.

Wireshark interface en opbouw

Daarnaast hebben de ontwikkelaars de structuur en terminologie van Wireshark op details bijgewerkt. Veel gebruikers hadden bijvoorbeeld kritiek op het ontbreken van een DHCP-display-filter. In plaats daarvan moest je de functie zoeken onder het trefwoord ‘bootp’, ook al is het Bootstrap Protocol al lang opgevolgd door DHCP. Wireshark 3 houdt daar nu eindelijk rekening mee en heeft het filter ‘dhcp’.

Hetzelfde geldt voor ‘ssl’, dat vervangen is door ‘tls’. Beide oude filters – zowel bootp als ssl – kun je echter nog gebruiken. De filterinvoerregel krijgt dan wel als waarschuwing een gele kleur, omdat beide in een toekomstige versie zullen verdwijnen.

Wireshark netwerk analyse tool Npcap Wireshark 3 TLS DHCP

Wireshark 3 neemt langzaam afscheid van oudere benamingen als BootP en SSL en gebruikt nu DHCP en TLS.

Traditioneel veranderen er bij elke Wireshark-versie ook veel van de protocol-analyses, die onder meer de bits en bytes van de pakketten omzetten naar lees­bare informatie. Het moderne VPN-protocol WireGuard is er bijvoorbeeld mee te ontsleutelen als je Wireshark de juiste sleutel meegeeft. Die kun je bij de instellingen invullen.

Als je Wireshark alleen maar af en toe gebruikt, is het heel handig dat je filters nu met drag&drop kunt aanmaken door elementen uit het decode-deel naar de filterinvoerregel te halen –bijvoorbeeld om snel en zonder iets te hoeven typen het dataverkeer van een bepaalde TCP-poort te filteren.

Een andere, maar helaas wel goed verborgen fea­ture is de mogelijkheid de cryptografische sleutels voor TLS-verbindingen in Pcapng-bestanden op te slaan samen met de versleutelde pakketten. Dat vergemakkelijkt het opsturen van het totaalpakket naar bijvoorbeeld een externe analyse-dienstverlener. ­Anders moest je behalve het Pcapng-bestand ook het bestand sslkey-log.log opsturen.

Om dit te realiseren, hebben de ontwikkelaars het Pcapng-bestandsformaat uitgebreid met een bloktype waarin je de sleutelinformatie van Firefox of Chrome kunt zetten. Bij beide browsers definieer je een uitvoerbestand via de omgevingsvariabele SSLKEYLOGFILE.

Voor het opslaan gebruik je de meegeleverde utility editcap. Je kunt versleutelingsgegevens gelukkig ook verwijderen met editcap. De tool is ook handig omdat je hem kunt scripten. Je kunt dan batch-­gewijs grote hoeveelheden data bewerken, terwijl Wireshark telkens maar één bestand hoeft open te houden. Überhaupt is editcap het Zwitserse zakmes voor het mani­puleren van netwerkpakketbestanden. Je kunt er indien gewenst Pcapng-bestanden zuiver mee splitsen of ongewenste duplicaten verwijderen die ontstaan door bepaalde meettechnieken.

Wat anders: ExtCap

Wireshark kan al enige tijd externe databronnen benaderen via optionele ExtCap-interfaces om ze te loggen. Je kunt daar bijvoorbeeld dongles van NordicSemi voor gebruiken voor het registreren van Bluetooth-LE-­pakketten. Daarbij stuurt een commandline-tool de Bluetooth-LE-pakketten via een pipe door naar Wire­shark. Op dit moment gaat het gebruik van de pipe-­tool echter nog gepaard met aardig wat gedoe.

Eigenlijk is ook de mogelijkheid handig om met SSHDump een registratie op een remote computer te starten (bijvoorbeeld met tcpdump) en de pakketten via SSH met Wireshark uit te lezen zonder daar de command­line voor te hoeven gebruiken. Bij een eerste poging werkte dat onder Windows goed, zelfs met Public-­Key-authenticatie. Bij andere pogingen mislukte de verbinding echter (met de foutmelding ‘broken pipe …’).

Op macOS 10.13.6 kwam er wel een verbinding tot stand, maar tcpdump was door het ontbreken van administratorrechten niet te starten. Uiteindelijk ben je op dit moment dan ook nog beter uit met de ­commandline-bediening van SSHDump.

Als je de functie toch wilt testen: het remote loggen kun je makkelijk uitproberen. Bij Windows moet je de tool SSHDump onder bepaalde omstandigheden achteraf nog installeren. De installer laat hem met de standaardinstellingen achterwege en dan ontbreekt bij de interfaces ook het item ‘SSH remote capture’.

Wireshark netwerk analyse tool Npcap WinPCAP installatie onderdelen SSHDump Android

Je moet bij Wireshark onderdelen zoals SSHDump zelf selecteren – of achteraf installeren.

Als SSHDump aanwezig is, klik je dubbel op het item ‘SSH remote capture’. Vul op het tabblad ‘Server’ het doeladres in waarvoor je het loggen wilt starten. Voeg op het tabblad ‘Authentication’ een geldige SSH-naam en het bijbehorende wachtwoord in – je kunt voor het authenticeren in plaats van een wachtwoord ook een lokale Private Key en de bijbehorende passphrase opgeven. Op het tabblad ‘Capture’ voeg je onder ‘remote interface’ de broninterface in, dus bijvoorbeeld de ethernetkaart waarvan je het dataverkeer wilt loggen (zoals eth0). In het veld ‘Capture command’ vul je het commando in waarmee het loggen moet starten, bijvoorbeeld ‘tcpdump -U -w -‘.

Als het SSH-verkeer van het aanstuurkanaal via dezelfde interface loopt (in dit geval dus eveneens eth0), dan is het aan te raden om het verkeer daarvan eruit te filteren met het Capture-filter, oftewel daar ‘not port 22’ in te vullen. Het maximale pakketaantal kun je onveranderd laten (0 = geen limiet) en het loggen later handmatig beëindigen. Je moet er alleen op letten dat Wireshark bij het selecteren van de optie om de parameters bij het starten van het loggen op te slaan je voorkeur vastlegt in het Preferences-bestand.

Start-up tuning

Oudere Wireshark-versies hebben bij het starten een paar seconden nodig voor het herkennen van de netwerk- en ExtCap-interfaces, afhankelijk van het hardwareplatform. Bij de nieuwe versie hebben de ontwikkelaars de startprocedure gemodificeerd: als het programma bij het starten een bestand moet openen (bijvoorbeeld na dubbelklikken op een Pcapng-­bestand), dan slaat Wireshark de herkenningsfase over en gaat het ervan uit dat de gebruiker geen live-registratie wil starten.

Als Wireshark op Windows snel moet starten en niet hoeft te loggen, kun je de Npcap-service pauzeren met een Opdrachtprompt met administratorrechten, met het commando sc stop npcap. Je kunt het automatisch starten van Npcap bij het booten verhinderen met het commando sc config npcap start=demand. Indien nodig kun je de service dan weer starten met het commando sc start npcap.

(Jasper Bongertz en Noud van Kruysbergen, c’t magazine)

Lees uitgebreide achtergrondinfo in c't 05/2024

Deel dit artikel

Noud van Kruysbergen
Noud van KruysbergenNoud heeft de 'American Dream' doorlopen van jongste bediende tot hoofdredacteur van c't, waar hij zo veel mogelijk de diepgang, betrouwbaarheid en diversiteit wil bewaken.

Lees ook

GitHub Copilot: dit moet je weten over deze AI-programmeerassistent

Benieuwd naar wat GitHub Copilot is en wat je er nou eigenlijk mee kunt doen? In dit artikel leggen we je uit wat je allemaal kunt doen met de AI-assi...

Chat GPT gebruiken: dit kun je allemaal doen met de chatbot van OpenAI

OpenAI heeft de ChatGPT-bot ontwikkeld als een taalmodel dat is getraind op een enorme hoeveelheid tekst op het internet. Je kunt ChatGPT gebruiken om...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er