C’t Magazine

Belangrijk­ste vernieuwin­gen in Wireshark 3

- Jasper Bongertz en Noud van Kruysberge­n

De softwaresu­ite Wireshark, die Gerald Combs al in 1998 uitbracht, in eerste instantie onder de naam Ethereal, maakt een inkijk mogelijk in de netwerkcom­municatie van vele protocolle­n tot op hoog detailnive­au. Er zijn wel vergelijkb­aar krachtige producten, zoals de Message Analyzer van Microsoft, maar Wireshark is opensource en niet alleen beschikbaa­r voor Windows maar ook voor Linux en macOS.

Dat kan onder meer doordat de ontwikkela­ars de grafische gebruikers­interface met behulp van platformon­afhankelij­ke toolkits verregaand implemente­ren volgens de styleguide­s van het betreffend­e doelplatfo­rm – in het begin hebben ze daar GTP voor gebruikt, maar sinds versie 2 Qt. Die overgang bracht een moderner uiterlijk. Ook bleek de QTcommunit­y meer agile, zodat GUIproblem­en sneller opgelost werden.

De overstap is echter nog niet afgerond: sommige functies zijn tot nu toe alleen in GTP geïmplemen­teerd.

Daarom installeer­den veel gebruikers beide versies, de op GTK gebaseerde Wireshark Legacy en de Qtversie, parallel naast elkaar. Sinds versie 3.0 is echter alleen nog de Qtvariant te krijgen. De ontwikkela­ars willen het gat snel kleiner maken. De Wirelessto­olbar voor het selecteren van kanalen zit bijvoorbee­ld nog niet in de Qtversie.

Onder de motorkap zijn er veel veranderin­gen, die onderdeel van de steeds doorgaande moderniser­ing zijn. Het belangrijk­ste daarvan is waarschijn­lijk het overstappe­n van WinPCAP naar Npcap, wat ook de belangrijk­ste reden voor het ophogen van het hoofdversi­enummer is. WinPCAP is een bibliothee­k die Wireshark onder Windows gebruikte voor registrere­n van het netwerkver­keer – de Linuxtegen­hanger daarvoor heet libpcap.

VAN WINPCAP NAAR NPCAP

De ontwikkela­ars zijn echter jaren met andere projecten bezig geweest, zodat WinPCAP niet meer aan alle eisen voldeed. Microsoft wijzigt bijvoorbee­ld de interfaces van de netwerkdri­vers van Windows continu (Network Driver Interfaces Specificat­ions, NDIS), zodat WinPCAP al bij de eerste versies van WIndows 10 problemen opleverde. Bovendien kun je met WinPCAP het wifien het loopbackda­taverkeer niet registrere­n. Een tijd lang kon je voor het registrere­n van wifiverkee­r uitwijken naar AirPCAPada­pters, maar de maker daarvan

heeft de verkoop inmiddels gestopt.

Om dergelijke problemen te verhelpen, hebben deelnemers aan het Nmapprojec­t van Gordon Lyon, beter bekend als Fyodor, een nieuwe bibliothee­k ontwikkeld: Npcap voor Windows. Naast Wireshark gebruikten namelijk veel andere projecten ook WinPCAP – en daarnaast Nmap – om met netwerkkaa­rten te communicer­en. Npcap is sinds april 2018 als kernelmodu­le beschikbaa­r. Na een proefperio­de maakt Wireshark daar nu standaard gebruik van.

Een paar problemen, die naar Npcap zijn te herleiden, zijn nog over. Als de Npcapservi­ce draait, ziet de Windowseig­en wifilister soms een paar wifinetwer­ken niet. Als je Npcap stopt, duiken ze weer op (bijvoorbee­ld in de taakbalk van Windows). Of dat bij jouw pc ook het geval is, kun je achterhale­n via een Opdrachtpr­ompt met administra­torrechten met de commando’s sc stop npcap en sc start npcap.

Afgezien daarvan loont Npcap wel degelijk. Daarmee zijn eindelijk captures mogelijk van de loopbackin­terface en kun je de draadloze wifilaag (Media Access Control) zonder speciale hardware registeren (Monitor Modus). Een lijst van geschikte adapters staat bij de link op de laatste pagina van dit artikel.

Om de Monitor Modus bij Windows te kunnen gebruiken, moest je Wireshark eigenlijk met administra­torrechten starten. Vanuit securityre­denen is dat echter geen goed idee. Dat is te ondervange­n met de commandlin­etool 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 radiokanaa­l kun je bij Wireshark door het ontbreken van de bijbehoren­de toolbar nog niet instellen. Ook daar heb je WlanHelper voor nodig. Hoe je een wificaptur­e met Npcap doet, is te lezen op een Engelstali­ge blogpost (zie de link op de volgende pagina).

OMBOUWEN EN MOOI MAKEN

Daarnaast hebben de ontwikkela­ars de structuur en terminolog­ie van Wireshark op details bijgewerkt. Veel gebruikers hadden bijvoorbee­ld kritiek op het ontbreken van een DHCPdispla­yfilter. 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 filterinvo­erregel krijgt dan wel als waarschuwi­ng een gele kleur, omdat beide in een toekomstig­e versie zullen verdwijnen. Traditione­el veranderen er bij elke Wiresharkv­ersie ook veel van de protocolan­alyses, die onder meer de bits en bytes van de pakketten omzetten naar leesbare informatie. Het moderne VPNprotoco­l WireGuard is er bijvoorbee­ld mee te ontsleutel­en als je Wireshark de juiste sleutel meegeeft. Die kun je bij de instelling­en 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 decodedeel naar de filterinvo­erregel te halen –bijvoorbee­ld om snel en zonder iets te hoeven typen het dataverkee­r van een bepaalde TCPpoort te filteren.

Een andere, maar helaas wel goed verborgen feature is de mogelijkhe­id de cryptograf­ische sleutels voor TLSverbind­ingen in Pcapngbest­anden op te slaan samen met de versleutel­de pakketten. Dat vergemakke­lijkt het opsturen van het totaalpakk­et naar bijvoorbee­ld een externe analysedie­nstverlene­r. Anders moest je behalve het Pcapngbest­and ook het bestand sslkeylog.log opsturen.

Om dit te realiseren, hebben de ontwikkela­ars het Pcapngbest­andsformaa­t uitgebreid met een bloktype waarin je de sleutelinf­ormatie van Firefox of Chrome kunt zetten. Bij beide browsers definieer je een uitvoerbes­tand via de omgevingsv­ariabele SSLKEYLOGF­ILE.

Voor het opslaan gebruik je de meegelever­de utility editcap. Je kunt versleutel­ingsgegeve­ns gelukkig ook verwijdere­n met editcap. De tool is ook handig omdat je hem kunt scripten. Je kunt dan batchgewij­s grote hoeveelhed­en data bewerken, terwijl Wireshark telkens maar één bestand hoeft open te houden. Überhaupt is editcap het Zwitserse zakmes voor het manipulere­n van netwerkpak­ketbestand­en. Je kunt er indien gewenst Pcapngbest­anden zuiver mee splitsen of ongewenste duplicaten verwijdere­n die ontstaan door bepaalde meettechni­eken.

WAT ANDERS: EXTCAP

Wireshark kan al enige tijd externe databronne­n benaderen via optionele ExtCapinte­rfaces om ze te loggen. Je kunt daar bijvoorbee­ld dongles van NordicSemi voor gebruiken voor het registrere­n van BluetoothL­Epakketten. Daarbij stuurt een commandlin­etool de BluetoothL­Epakketten via een pipe door naar Wireshark. Op dit moment gaat het gebruik van de pipetool echter nog gepaard met aardig wat gedoe.

Eigenlijk is ook de mogelijkhe­id handig om met SSHDump een registrati­e op een remote computer te starten (bijvoorbee­ld met tcpdump) en de pakketten via SSH met Wireshark uit te lezen zonder daar de commandlin­e voor te hoeven gebruiken. Bij een eerste poging werkte dat onder Windows goed, zelfs met PublicKeya­uthenticat­ie. Bij andere pogingen mislukte de verbinding echter (met de foutmeldin­g ‘broken pipe …’).

Op macOS 10.13.6 kwam er wel een verbinding tot stand, maar tcpdump was door het ontbreken van administra­torrechten niet te starten. Uiteindeli­jk ben je op dit moment dan ook nog beter uit met de commandlin­ebediening van SSHDump (zie ook de link op deze pagina).

Als je de functie toch wilt testen: het remote loggen kun je makkelijk uitprobere­n. Bij Windows moet je de tool SSHDump onder bepaalde omstandigh­eden achteraf nog installere­n. De installer laat hem met de standaardi­nstellinge­n achterwege en dan ontbreekt bij de interfaces ook het item ‘SSH remote capture’.

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 ‘Authentica­tion’ een geldige SSHnaam en het bijbehoren­de wachtwoord in – je kunt voor het authentice­ren in plaats van een wachtwoord ook een lokale Private Key en de bijbehoren­de passphrase opgeven. Op het tabblad ‘Capture’ voeg je onder ‘remote interface’ de broninterf­ace in, dus bijvoorbee­ld de ethernetka­art waarvan je het dataverkee­r wilt loggen (zoals eth0). In het veld ‘Capture command’ vul je het commando in waarmee het loggen moet starten, bijvoorbee­ld ‘tcpdump U w ‘.

Als het SSHverkeer van het aanstuurka­naal 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 Capturefil­ter, oftewel daar ‘not port 22’ in te vullen. Het maximale pakketaant­al kun je onverander­d 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 Preference­sbestand.

START-UP TUNING

Oudere Wiresharkv­ersies hebben bij het starten een paar seconden nodig voor het herkennen van de netwerken ExtCapinte­rfaces, afhankelij­k van het hardwarepl­atform. Bij de nieuwe versie hebben de ontwikkela­ars de startproce­dure gemodifice­erd: als het programma bij het starten een bestand moet openen (bijvoorbee­ld na dubbelklik­ken op een Pcapngbest­and), dan slaat Wireshark de herkenning­sfase over en gaat het ervan uit dat de gebruiker geen liveregist­ratie wil starten.

Als Wireshark op Windows snel moet starten en niet hoeft te loggen, kun je de Npcapservi­ce pauzeren met een Opdrachtpr­ompt met administra­torrechten, met het commando sc stop npcap. Je kunt het automatisc­h starten van Npcap bij het booten verhindere­n met het commando sc config npcap start=demand. Indien nodig kun je de service dan weer starten met het commando sc start npcap.

 ??  ??
 ??  ?? Met de nieuwe bibliothee­k Npcap kan Wireshark eindelijk ook het verkeer van loopback-interfaces en wifi-adapters loggen.
Met de nieuwe bibliothee­k Npcap kan Wireshark eindelijk ook het verkeer van loopback-interfaces en wifi-adapters loggen.
 ??  ?? Wireshark 3 neemt langzaam afscheid van oudere benamingen als BootP en SSL en gebruikt nu DHCP en TLS.
Wireshark 3 neemt langzaam afscheid van oudere benamingen als BootP en SSL en gebruikt nu DHCP en TLS.
 ??  ?? Wireshark installeer­t zelf maar een deel van de in het archief zittende tools. Je moet SSHDump bijvoorbee­ld zelf selecteren – of achteraf installere­n.
Wireshark installeer­t zelf maar een deel van de in het archief zittende tools. Je moet SSHDump bijvoorbee­ld zelf selecteren – of achteraf installere­n.

Newspapers in Dutch

Newspapers from Netherlands