Zo krijg je inzicht in het dataverbruik in je thuisnetwerk
Ook aan jouw netwerk is ongetwijfeld een reeks apparaten gekoppeld die met het internet communiceren. Dat zijn vooral computers en mobiele apparaten, maar wellicht ook allerlei ‘slimme toestellen’, zoals een thermostaat, tv, IP-camera, misschien zelfs een koelkast of oven. Al die apparaten wisselen via je netwerk data uit met het internet. Met sluwe analysetools als Burp en Wireshark (en enige moeite) kun je dat netwerkverkeer bekijken.
In dit artikel beschrijven we een aantal technieken waarmee je het verkeer dat door je netwerk gaat, kunt opvragen en analyseren. Wellicht ben je daarbij vooral geïnteresseerd in data die – heimelijk? – je netwerk richting internet verlaten, en omgekeerd. Lees ook: 20 supertips voor het beste thuisnetwerk.
We beginnen met apparaten die draadloos met je netwerk zijn verbonden. In eerste instantie gaan we na hoe je al het http-verkeer en zelfs versleutelde https-traffic van draadloze toestellen kunt opvangen. Daarna bekijken we ook andere dataprotocollen van draadloze apparaten, waardoor we zowat het complete draadloze verkeer kunnen ontrafelen. Tot slot gaan we na hoe je ook het bekabelde netwerkverkeer van je eigen computer of van andere computers en apparaten binnen je netwerk op je scherm kunt krijgen. Je zult merken dat daarbij vooral pakketsniffer en protocolanalyzer Wireshark een prominente rol speelt.
(Draadloos) http-verkeer
Om uit te vissen welke gegevens een mobiele app (zoals een browser) effectief verstuurt naar de servers, kun je het best een proxy-server opzetten. Dat kan perfect op je Windows-laptop, waarbij je ervoor zorgt dat die zich in hetzelfde draadloze netwerk bevindt als het mobiele apparaat dat je wilt monitoren. Allereerst installeer je de gratis versie van Burp op je computer. Installeer het programma en start het op. Accepteer de standaardinstellingen en bevestig met Start Burp. Open het tabblad Proxy en klik op Options. Selecteer de (enige) interface en druk op de knop Edit. Selecteer hier de optie All interfaces. Bevestig met OK en met Yes. Open vervolgens het tabblad Intercept en klik op Intercept is on (zodat je nu Intercept is off leest). Tot slot open je het tabblad HTTP history.
Nu gaan we naar je mobiele apparaat. We nemen een Android-smartphone als voorbeeld. Ga hier naar Instellingen en kies Wifi. Druk een paar seconden op de naam van het verbonden netwerk en kies Netwerk aanpassen. Tik Geavanceerde opties aan en selecteer Proxy / Handmatig. Bij Hostnaam van proxy vul je het IP-adres van je Burp-machine in (dat adres vertelt Windows je wanneer je ipconfig typt op de opdrachtregel) en bij Proxy-poort stel je 8080 in. Bewaar deze instellingen (tijdelijk). Surf vervolgens naar enkele websites en houd op je laptop het tabblad HTTP Proxy in de gaten. Lukt het niet, schakel dan tijdelijk de firewall op je laptop uit.
©PXimport
(Draadloos) https-verkeer
Meer en meer webverkeer is echter standaard versleuteld met behulp van https, waarbij een SSL-certificaat moet garanderen dat de verbinding daadwerkelijk met de bewuste webserver tot stand is gekomen. Veel apps controleren dat helaas niet grondig en in die gevallen kun je je Burp-machine als MITM (man-in-the-middle) laten fungeren. Daarvoor moet je dan wel eerst even het CA-certificaat (certificate authority) van Burp op je mobiele apparaat accepteren. Op ons Android-toestel doen we dat door te surfen naar http://burp.cert, terwijl de Burp-proxy actief is. Hiermee download je het bestand cacert.der. Wijzig de bestandsnaam met een verkenner-app (zoals ES File Explorer) in cacert.cer. Importeer dit certificaat via Instellingen / Beveiliging / Installeren vanuit opslag (bij Opslag certificaatgegevens). Wanneer je vervolgens naar een https-site surft, zal Burp ook de inhoud van het versleutelde verkeer openbaren.
Android
In het artikel hebben we beschreven hoe je op je pc met behulp van proxy-server Burp verkeer van draadloze apparaten kunt opvragen. Op een Android-toestel (versie 4.0 of hoger) kan het nog eenvoudiger, dankzij de gratis app Packet Capture van Grey Shirts, verkrijgbaar via de Play Store. De app maakt sluw gebruik van een VPN-service waarlangs al het dataverkeer wordt geloodst. Wil je ook https-verkeer analyseren, kies dan na de installatie van de app voor Install certificate en bevestig met OK. De app toont de opgevangen data inclusief protocol, doeladres en tijdstip en je hoeft een pakket alleen maar aan te tikken voor meer details. Via het vergrootglaspictogram zal Packet Capture proberen de inhoud te herkennen en herkenbaarder voor te stellen.
(Ander) draadloos verkeer
Proxy-server Burp beperkt zich jammer genoeg wel tot het http- en https-verkeer, maar mobiele apps of draadloze apparaten bedienen zich ook vaak van andere communicatieprotocollen. Om ook dat af te vangen, moet je het dus over een andere boeg gooien. Wellicht de eenvoudigste manier is om je eigen computer (laptop) als een wifi-hotspot in te stellen, waarbij je er dan uiteraard wel voor zorgt dat je het apparaat dat je wilt monitoren via dat netwerk laat aanmelden. Daarna kun je op je laptop een pakketsniffer oftewel protocolanalyzer als Wireshark loslaten.
Beginnen we dus met het hotspot-gedeelte. Werk je met Windows 10 en heb je intussen de jubileum-update van Windows geïnstalleerd, dan heb je het makkelijk. Open het Windows-menu en kies Instellingen / Netwerk en internet. In het linkerpaneel klik je Mobiele hotspot aan. Vervolgens zet je de schuifknop bovenaan op Aan. Via de knop Bewerken kies je een geschikte Netwerknaam en Netwerkwachtwoord. In oudere Windows-versies is het eveneens mogelijk een mobiele hotspot op te zetten, maar deze procedure is iets bewerkelijker – tenzij je een externe tool te hulp roept, zie kader ‘Mobiele hotspot’. Als alles goed gaat, kun je het draadloze apparaat nu op dat netwerk aansluiten.
Mobiele hotspot
In de jubileumupdate van Windows 10 zijn voor het opzetten van een mobiele hotspot slechts een paar muisklikken nodig. In eerdere Windows-versies kost dat wel wat meer werk. In een notendop kan dat als volgt. Open de opdrachtprompt als administrator en voer achtereenvolgens de volgende twee commando’s uit: *netsh wlan set hostednetwork mode=allow ssid=
©PXimport
Installatie Wireshark
Tijd nu om een pakketsniffer in gang te zetten. Een van de beste en bovendien gratis tools is Wireshark, dat je voor diverse platformen kunt installeren (waaronder Windows 32 en 64 bit, portable en macOS). De installatie (voor Windows) behelst weinig meer dan een aantal (Next-)knoppen in te drukken. We raden je aan de standaardcomponenten geselecteerd te laten en ook WinPcap mee te laten installeren; dit onderdeel zorgt ervoor dat je live netwerkdata optimaal kunt opvangen.
Na de installatie mag je Wireshark opstarten. Open maar meteen het menu Capture en kies Options. Hier krijg je een overzicht van de beschikbare netwerkadapters en je ziet op welke interface verkeer wordt gegenereerd. Selecteer de interface die je aan je mobiele hotspot hebt gekoppeld (zie boven), laat het vinkje bij Enable promiscuous mode on all interfaces staan en druk op de Start-knop.
Je zult zien dat zowat alle netwerkverkeer dat je draadloze apparaat genereert, netjes door Wireshark wordt opgevangen, althans tot je in het menu Capture op Stop klikt. Door te dubbelklikken op een ingang krijg je meer details over (de inhoud van) het datapakket te zien. Uiteraard kun je op soortgelijke manier ook het verkeer van je eigen machine opvangen: het volstaat de netwerkinterface te selecteren waarlangs dat toestel het netwerk opgaat. Vanaf de paragraaf ‘Weergavefilters’ gaan we iets dieper in op pakketanalyse met Wireshark.
©PXimport
Promiscuous mode
Bij de installatie van Wireshark hadden we het al even over de ‘promiscuous mode’. Die zorgt er in principe voor dat ook datapakketten worden opgevangen die aan andere hosts binnen je netwerk zijn gericht. Is je Wireshark-machine echter via een switch met je netwerk verbonden, dan blijft dat beperkt tot broadcast- en multicast-verkeer – verkeer dus dat naar zowat alle hosts (en dus ook naar je Wireshark-machine) wordt gestuurd.
Hoe kun je dan toch ook unicast-verkeer, dat dus specifiek is bedoeld voor een andere host, in je Wireshark-machine inzichtelijk krijgen? De meest voor de hand liggende oplossing is dat je Wireshark op de beoogde host installeert, maar dat is lang niet altijd mogelijk (dat kan bijvoorbeeld niet op een tv of een IP-camera). Er zijn gelukkig eenvoudige oplossingen: een hub of – beter nog – een managed switch.
Hub
Mocht je toevallig nog een ‘hub’ in de kast hebben liggen of je tikt er één op de kop via Marktplaats of eBay, dan kun je die alvast – tijdelijk – inzetten. Immers, in tegenstelling tot een switch wordt het verkeer dat één poort binnenkomt door een (domme) hub altijd naar alle andere poorten gestuurd in plaats van alleen naar de bedoelde poort. Het komt erop neer dat je het gemonitorde toestel en je Wireshark-machine via die hub met de rest van je netwerk verbindt. Houd er wel rekening mee dat een dual-speed hub (10/100 Mb) geen unicast-verkeer tussen een 10Mb- en een 100Mb-poort verstuurt. Dat maakt dat je in dit geval de snelheid van de ethernetadapter op je Wireshark-machine op dezelfde snelheid zal moeten instellen als die van het gemonitorde apparaat. Dat kan eventueel via het Apparaatbeheer, waar je de Eigenschappen van de netwerkadapter oproept en het tabblad Geavanceerd opent.
©PXimport
Managed switch
Een makkelijker oplossing is een switch die over een functie beschikt waarbij alle data die naar een bepaalde switchpoort gaan, automatisch naar een andere poort worden gedupliceerd. Deze functie wordt gewoonlijk port mirroring, port monitoring of span (Cisco) genoemd. Je vindt zo’n ‘managed switch’ al vanaf circa 35 euro (zoals de TP-LINK Easy Smart 8-Port Gigabit Switch TL-SG108E). De manier van werken mag duidelijk zijn: je hangt het te monitoren apparaat aan de poort die wordt gespiegeld en aan de ‘spiegelpoort’ koppel je dan je Wireshark-machine. Klaar!
©PXimport
Hosts: alternatieven
Naast een hub of managed switch zijn er weliswaar nog andere mogelijkheden om dataverkeer van andere hosts te onderscheppen, maar die zijn minder voor de hand liggend. Het is bijvoorbeeld mogelijk je Wireshark-machine in een MITM-opzet op te nemen (zie ook boven, bij Burp). Dat kan zowel hardwarematig als softwarematig. In het eerste geval heb je twee netwerkadapters nodig die je als een transparante bridge configureert. Softwarematig kan dat op een eenvoudige manier met behulp van tools als Ettercap (een duidelijk stappenplan op basis van ‘ARP poisoning’ vind je onder meer hier). Tot slot kun je ook nog een (passieve) ‘netwerktap’ aanschaffen of er eventueel zelf een maken. Een prima startpunt voor een eigen, basaal ontwerp is dit filmpje, waarin heel mooi het onderliggende werkingsprincipe wordt toegelicht.
©PXimport
Weergavefilters
Je weet inmiddels hoe je met Wireshark het netwerkverkeer van willekeurige hosts kunt onderscheppen, zowel draadloos als bekabeld. We kunnen ons wel voorstellen dat je al snel verdwaald raakt in de talloze datapakketten die Wireshark in een niet-aflatend tempo op je scherm zet. We hebben hier niet de ruimte om alle mogelijkheden en functies van deze tool te bespreken – daar is een dik boek voor nodig – maar we geven je wel enkele tips mee om snel op interessante data in te zoomen.
Zo kun je in Wireshark weergavefilters (display filters) instellen. Het komt er dan op neer dat Wireshark weliswaar nog altijd alle datapakketjes onderschept, maar de ongewenste op het scherm wegfiltert. De snelste manier om zo’n weergavefilter in te stellen is via het balkje onder de knoppenbalk. Tik je hier bijvoorbeeld tcp in, dan kleurt het balkje groen (als indicatie dat de syntax correct is) en krijg je alleen nog pakketjes van het TCP-protocol te zien. Rechts op de statusbalk lees je af hoeveel pakketjes er zijn onderschept en hoeveel ervan worden weergegeven. Tik je tcp. in, dan kleurt het balkje rood doordat de syntax niet correct is. Of liever, niet volledig, want Wireshark verwacht bijkomende parameters; gelukkig krijg je hiervoor meteen tig suggesties aangereikt via een uitklapmenu. Rechts van het balkje tref je trouwens nog de knop Expression aan; hiermee kun je nog complexere filterregels samenstellen.
©PXimport
DNS resolutie
Bij het analyseren van het dataverkeer zul je wellicht vooral geïnteresseerd zijn in (TCP?-)connecties die met onbekende of verdachte servers zijn gelegd en komen de kolommen Source (met het IP-adres van je host) en Destination (met het IP-adres van de server) – of omgekeerd - in het vizier. Standaard toont Wireshark je de IP-adressen (IPv4 of IPv6). Nu kun je weliswaar zelf opzoeken welke hostnaam daarmee overeenstemt, maar je kunt dat ook Wireshark zelf laten doen: open het menu Edit, kies Preferences / Name Resolution en plaats een vinkje bij Resolve network (IP)addresses. Via het menu Statistics / Resolved Addresses krijg je dan een mooi overzicht van alle vastgestelde hostnamen.
©PXimport
Directe filters
Stel dat je alleen bent geïnteresseerd in de communicatie tussen je eigen apparaat en een bepaalde server. Dan kun je zo’n weergavefilter weliswaar handmatig invoeren, maar het kan ook eenvoudiger. Klik met de rechtermuisknop op het IP-adres of de host in de kolom Destination en kies Apply as Filter / Selected. Vervolgens klik je op de gewenste host of IP-adres in de kolom Source en kies je Apply as Filter / …and selected. In het filterveld wordt nu automatisch iets ingevuld als (ip.dst == 149.210.193.105) && (ip.src == 192.168.0.140). Wil je de communicatiestroom tussen twee machines volgen, dan kun je nog de gewenste ingang met de rechtermuisknop aanklikken en Follow / […] Stream selecteren.
En wil je weten welke protocollen er allemaal zijn aangesproken en hoe intensief die zijn gebruikt: open dan het menu Statistics en kies Protocol Hierarchy. Vind je hier verdachte protocollen tussen – zoals het Internet Relay Chat-protocol terwijl je zelf geen weet hebt van een chatsessie – klik die dan met de rechtermuisknop aan en kies Apply as Filter / Selected.
©PXimport
SmartSniff
Wireshark is een van de krachtigste pakketsniffers die er zijn te vinden. Wil je inderdaad wel het netwerkverkeer van een apparaat bekijken, maar voel je er weinig voor een complexe tool als Wireshark te doorgronden, dan vind je met het gratis SmartSniff alvast een behapbaarder alternatief (na het uitpakken van smsniff_dutch.zip ook in het Nederlands). Via Bestand / Capturing starten begint het programma met het onderscheppen van de datapakketjes. Kies (via F9) bij voorkeur voor de methode WinPcap Packet Capture Driver. Je hebt wellicht voldoende aan deze tool als het er vooral op aankomt snel verdachte internetconnecties bloot te leggen – al was het maar om na te gaan welke servers een standaardinstallatie van Windows 10 zoal (in het geniep) aanspreekt.