Tips en Trucs 2023

Hoe Wireshark te gebruiken voor het vastleggen en analyseren van netwerkpakketten

Wireshark (voorheen Ethereal) is een FOSS (free and open-source software) voor netwerkprotocolanalyse. Je kunt het gebruiken om netwerkproblemen op te lossen en communicatieprotocollen zoals TCP, DNS, HTTP enz. te analyseren. Er zijn veel functies waardoor Wireshark zich onderscheidt van veel van zijn tegenhangers:

Wireshark installeren

Wireshark is beschikbaar in de standaard softwarebronnen van Debian Bookworm en installeer je als volgt:

Pakketten vastleggen met Wireshark

Na het starten van Wireshark zie je een lijst met apparaten waarvan je pakketten kunt vastleggen.

Netwerkapparaten

Selecteer een apparaat om te beginnen met het vastleggen van pakketten door te dubbelklikken op de naam ervan. Laten we in ons geval de interface wlp4s0 selecteren.

Bevoegdheden

Oeps, dit gaat fout, blijkbaar hebben we onvoldoende rechten om alle netwerkpakketten op het apparaat te registreren. Sluit dit dialoogvenster en sluit Wireshark af. Start een terminalvenster (Konsole).

Het Wireshark installatiepakket bevat een script waarmee je jouw systeem kunt configureren voor Wireshark. Dit voeren we uit met de opdracht:

dany@pindabook:~$ sudo dpkg-reconfigure wireshark-common
[sudo] wachtwoord voor dany:
Configureren

Druk na het lezen van de tekst op Enter.

Beantwoord de vraag Moet het voor niet-systeembeheerders mogelijk zijn om pakketjes te onderscheppen? met <Ja> door met de Tab-toets de knop <Ja> te selecteren en te bevestigen met Enter.

Daarna zorgen we dat de gebruiker (hier dany) wordt toegevoegd aan de groep Wireshark waardoor deze gebruiker de rechten krijgt om Wireshark volop te gebruiken.

dany@pindabook:~$ sudo usermod -a -G wireshark dany

Log uit en terug in of herstart de computer.

Start Wireshark terug op en dubbelklik op een netwerkverbinding die je wilt bekijken. Zoals je kunt zien na het selecteren van het apparaat, beginnen er pakketten op het scherm te verschijnen.

Netwerkpakketten

In de promiscuous modus zal Wireshark ook pakketten tonen die niet aan onze netwerkinterface zijn geadresseerd. Om te controleren of deze modus actief is, moet je het registreren van pakketten stoppen door op de rode werkbalkknop te klikken. Start via het menu Capture de opdracht Options en activeer indien nodig het selectievakje Enable promiscuous mode on all interfaces (onderin het venster).

Options

Promiscuous

Als je je opnames later wilt inspecteren, kun je ze gewoon opslaan door op File > Save te klikken. Op dezelfde manier kun je capturebestanden downloaden en openen om ze te inspecteren door te klikken op File > Open. Zoek jouw bestand en open het.

Kleurcodering Wireshark

Wireshark gebruikt verschillende kleurenschema's om verschillende soorten netwerkverkeer aan te duiden. Lichtblauwe kleuren worden bijvoorbeeld gebruikt voor UDP, paars voor TCP en zwart voor pakketten met fouten. Om de betekenis te zien en deze kleuren aan te passen ga je naar View > Coloring Rules....

Pakketten filteren met Wireshark

Wireshark heeft een filterfunctie om netwerkverkeer uit te filteren dat specifiek voor jou van belang is. De eenvoudigste manier om deze functie te gebruiken is door gebruik te maken van de zoekbalk aan het begin van de pakketlijst of de tabel met het netwerkverkeersoverzicht. Als je bijvoorbeeld het TCP verkeer wilt filteren, voer dan TCP in in de zoekbalk. We zullen dit proces later in deze tip verder bekijken.

Wireshark bevat ook standaardfilters in de sectie Analyze > Display Filters.... Je kunt er hier één kiezen en je kunt hier ook jouw eigen filters opslaan voor de toekomst.

Display filters

Naast het filteren van het verkeer, kun je ook volledige TCP conversaties tussen de client en de server bekijken. Klik hiervoor met de rechtermuisknop op een pakket en klik op de optie Follow > TCP Stream. Wanneer je dit venster sluit, verschijnt er automatisch een filter in de filterzoekbalk.

Pakketinspectie met Wireshark

Klik in de tabel met het netwerkverkeersoverzicht op een pakket om de verschillende details te zien. Hier is een andere manier om een aangepast filter te maken. Wanneer je met de rechtermuisknop klikt op een detail, zie je de optie Apply as Filter en het bijbehorende submenu. Selecteer een submenu om die filter te maken:

Wireshark praktijkvoorbeeld

Laten we nu een praktisch voorbeeld nemen om verkeer op een netwerkinterface vast te leggen en te inspecteren met behulp van Wireshark. In ons geval hebben we Wireshark geïnstalleerd op Debian Bookworm en werken we met de WiFi interface wlp4s0. Voer nu de volgende stappen uit:

  1. Nadat je Wireshark hebt gestart, selecteer je de interface in de apparatenlijst op de startpagina. Klik op het blauwe pictogram in de linkerbovenbalk of dubbelklik op de interfacenaam om de capture te starten.
  2. Start nu een webbrowser en open een webpagina zoals linux.pindanet.be. Zodra de pagina geladen is, stop je de capture door op het rode icoon naast de startknop te drukken.
  3. Het capture venster toont nu alle pakketten die van en naar je systeem zijn verzonden. Verschillende soorten verkeer worden weergegeven in verschillende kleurcodes zoals blauw, zwart, lichtgeel enz.
    Surf capture
  4. Als je op zoek bent naar pakketten van een specifiek protocol zoals TCP, gebruik dan de filterbalk om die verbindingen te filteren. Er draaien veel achtergrondprocessen op een systeem dat gebruik maakt van netwerktoegang en dus pakketten uitwisselt met een extern netwerk. We kunnen pakketten die bestemd zijn voor ons systeem filteren met de filterfunctie van Wireshark. Gebruik bijvoorbeeld het filter om ipv6 TCP-pakketten te filteren die voor ons systeem bestemd zijn:
    ipv6.dst == 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f && tcp
    Vervang het IP-adres 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f door het IP-adres van jouw systeem.
    Destination filter
    Laten we nu kijken naar de inhoud van deze pakketten, klik met de rechtermuisknop op een willekeurig pakket en ga in de optielijst naar: Follow > TCP Stream. Een nieuw venster zou er ongeveer zo uit moeten zien als hieronder:
    TCP stream

Als je Wireshark niet kunt gebruiken voor een realtime netwerkverbinding, kun je ook een gedownload pakkettracebestand gebruiken.

Wireshark verwijderen

Eerst gaan we terug de rechten voor Wireshark intrekken. We beginnen met de gebruiker (hier dany) te verwijderen uit de groep wireshark:

dany@pindabook:~$ sudo gpasswd -d dany wireshark
[sudo] wachtwoord voor dany:
Gebruiker dany wordt verwijderd uit groep wireshark

Daarna gebruikern we het wireshark configuratiescript om de extra wireshark rechten terug te verwijderen:

dany@pindabook:~$ sudo dpkg-reconfigure wireshark-common

En deze keer beantwoorden we de vraag Moet het voor niet-systeembeheerders mogelijk zijn om pakketjes te onderscheppen? met de knop <Nee>.

Nu we toch in de terminal werken, verwijderen we Wireshark van de computer met de opdracht:

dany@pindabook:~$ sudo apt purge wireshark
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende pakketten zullen VERWIJDERD worden:
  wireshark*
0 opgewaardeerd, 0 nieuw geïnstalleerd, 1 te verwijderen en 0 niet opgewaardeerd.
Na deze bewerking zal er 36,9 kB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n] 
(Database wordt ingelezen ... 174303 bestanden en mappen momenteel geïnstalleerd.)
wireshark (4.0.6-1~deb12u1) wordt verwijderd ...

Om ook de niet meer gebruikte afhankelijke pakketten te verwijderen, voer je de volgende opdracht uit:

dany@pindabook:~$ sudo apt autoremove
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.

Dit ging vlug.

Wireshark gebruikt een werkmap voor de gebruiker die je kunt verwijderen met de opdracht:

dany@pindabook:~$ rm -r .config/wireshark