Wi-Fi Sniffing De mogelijkheden van het afluisteren van Wi-Fi
Abstract Wegens verontrustende berichten over winkels die continu Wi-Fi signalen opvangen om klanten te meten, hebben wij besloten te onderzoeken welke informatie te achterhalen valt en in hoeverre dit legaal mag. Tevens hebben wij onderzocht of het automatiseren van een dergelijk afluisterproces eenvoudig te produceren is en wat er vervolgens mogelijk is.
Introductie Wi-Fi signaal wordt momenteel bijna altijd omnidirectioneel uitgezonden. Dit betekend dat het signaal alle kanten op gestuurd wordt, hopende dat het apparaat waarvoor het signaal bedoeld is, het ook daadwerkelijk opvangt. Dit betekent ook dat feitelijk alle Wi-Fi ontvangers dit signaal kunnen opvangen, zelfs wanneer deze niet voor hen bedoeld was. Het opvangen van alle zogenaamde ‘pakketten’ die verstuurd worden via Wi-Fi wordt ook wel ‘sniffing’ genoemd. Om dit mogelijk te maken, dient de Wi-Fi
ontvanger in ‘monitor mode’ te worden geplaatst. ‘Promiscuous mode’ is tevens mogelijk, maar dan kan de ontvanger enkel pakketten ontvangen binnen één netwerk.
Monitor mode Voor het uitvoeren van onderzoek naar de werking en het mogelijk maken van de eerder genoemde ‘monitor mode’ hebben we een Wi-Fi ontvanger aangeschaft van het merk TP-LINK van het type TL-WN821N. Dit type is gekozen omdat het belangrijk is om niet alleen B en G signaal op te vangen maar ook N signaal, aangezien het overgrote deel draadloze signalen bestaat uit N signaal. Het volledig activeren van ‘monitor mode’ op een apparaat is niet altijd even makkelijk. Maar het OS Kali Linux maakte dit een stuk eenvoudiger. Kali Linux is een distributie van Linux speciaal ingericht voor het testen van penetratiemogelijkheden bij alle soorten applicaties. Kali Linux heeft het hulpprogramma aircrack-ng standaard meegebakken in de distributie. Dit programma is tevens te installeren op Windows en op Mac, maar in beide gevallen werken niet alle onderdelen. De ‘monitor mode’ van aircrack-ng werkt zelfs alleen maar op bepaalde Linux distributies (waaronder Kali).
Pakketten Het kostte vervolgens zeer weinig moeite om via verscheidene programma’s waaronder Wireshark, alle pakketten in de omgeving op te vangen. Het simpelweg opvangen van deze pakketten geeft over het algemeen niet veel informatie. De pakketten zijn, wanneer de gebruiker verbinding heeft met een WEP/WPA beveiligde verbinding, volledig versleuteld. Zonder te knoeien met deze versleuteling is het echter al wel mogelijk om te achterhalen van wat voor soort apparaat de verbinding komt. Zo konden we direct al vele verschillende mobiele apparaten identificeren waaronder van HTC en Apple. Het identificeren van het type toestel is wat ons betreft echter niet voldoende.
Versleuteling ontwijken Er zijn verschillende manieren om de versleuteling op een pakket te verbreken. Maar in de plaats van het verbreken van een versleuteling, kunnen we ook proberen deze te ontwijken. Dit is mogelijk door een zogenaamde ‘man-in-themiddle attack’. Het eerder genoemde aircrack-ng pakket heeft de mogelijkheid om in de plaats van ‘monitor mode’ een zogenaamde ‘evil twin AP’ aan te maken.
Dit betekend dat je het signaal van de router waar de gebruiker mee probeert te verbinden, nabootst en prioriteit geeft over de originele verbinding. De eindgebruiker zal dan verbinding maken met jouw nagebootste router en jij zorgt er vervolgens voor dat zijn verzoek wordt doorgestuurd naar de router en geeft de gebruiker zijn antwoord. Doordat je er nu tussen zit, heb je de mogelijkheid om de communicatie tussen jouw ‘namaak router’ en de eindgebruiker onversleuteld te laten. Het is redelijk schokkend hoe eenvoudig te realiseren en vrijwel ontraceerbaar dit is.
Versleuteling verbreken Maar wat als we alsnog ook de versleuteling willen verbreken? Hoe eenvoudig is dit? Dit blijkt helaas ook schokkend eenvoudig tot op een bepaalde hoogte. Het verbreken van een beveiligde WEP verbinding is doodeenvoudig. Om de encryptiecode te achterhalen, waarmee alle toekomstige pakketten op deze verbinding kunnen worden uitgelezen, duurt hooguit drie minuten en kan volledig worden geautomatiseerd. Wat betreft WPA/WPA2 verbindingen, ook dit kan geautomatiseerd worden en is redelijk eenvoudig. Hier is echter meer computerkracht voor nodig en duurt iets langer. Doch, wanneer de code is achterhaald, kunnen alle toekomstige pakketten wederom worden ontsleuteld. Enkel de zogenaamde WPA Enterprise verbindingen zijn bijna niet te kraken. Deze verbindingen zijn versleuteld met een dermate ingewikkeld certificaat, dat het breken van de beveiliging een doorsnee PC jaren kost.
Pakketten zonder versleuteling Wanneer het dan eindelijk gelukt is om een pakket zonder versleuteling te bemachtigen, dan zijn de volgende gegevens in ieder geval bekend; • • •
De oorsprong van het pakket Het doel van het pakket De inhoud van het pakket (de body)
De body van het pakket kan echter wederom een versleuteling bevatten die er voor zorgt dat het niet uit te lezen is. Websites die via het https protocol werken versleutelen de inhoud d.m.v. een SSL certificaat. Het breken van deze beveiliging is bij een hoge bit waarde vrijwel onmogelijk.
Automatiseren van het proces D.m.v. Node.js is het voor ons mogelijk om het hele proces van opvangen en het breken van versleuteling te automatiseren. Vervolgens zou het heel eenvoudig zijn om de gegevens opnieuw en onversleuteld uit te zenden. Het simpelweg opvangen van signalen en opnieuw uitzenden is vrijwel gelijk aan wat een radio doet en volgens de wet legaal. Het breken van een versleuteling is dit echter niet. Dit betekend dat alle signalen die niet versleuteld zijn daadwerkelijk uitgelezen mogen worden. Zolang deze geen privacy schenden door de gegevens op te slaan, en het enkel direct weer opnieuw wordt uitgezonden, dan is er niets aan de hand. Daarmee kan men wel bewust worden gemaakt van het feit dat gegevens zonder versleuteling, d.m.v. een SSL certificaat, eenvoudig kan worden uitgelezen. Het is derhalve nimmer verstandig om via Wi-Fi een website zonder HTTPS protocol te bezoeken en te gebruiken.
Conclusie Het is schokkend eenvoudig om WEP verbindingen en zwakke WPA verbindingen te kraken en alle gegevens af te luisteren. En zelfs wanneer men niet de moeite wilt nemen om de wachtwoorden te achterhalen, dan zijn er nog verscheidenen andere redelijk eenvoudige manieren om Wi-Fi af te luisteren. Het is echter hoe dan ook illegaal om versleutelingen te verbreken. Ten alle tijden strijd dit tegen de wet. Dit betekend echter niet dat het eenvoudig te achterhalen is dat dit gebeurd en dat dit kan worden gehandhaafd. Het is voor ons mogelijk, via een geautomatiseerd proces, eenvoudige data en onversleutelde gegevens de wereld in te sturen om mensen bewust te maken van de gevaren. De schaal waarop deze onversleutelde data te verkrijgen valt is echter vrij klein en zal geen schokkende resultaten leveren.
Referenties: Bauer, K., Gonzales, H., & McCoy, D. (2008, December). Mitigating evil twin attacks in 802.11. In Performance, Computing and Communications Conference, 2008. IPCCC 2008. IEEE International (pp. 513-516). IEEE. Li, M., Claypool, M., & Kinicki, R. (2005). Wireless Sniffing by Example How to Build and Use an IEEE 802.11 Wireless Network Sniffer. Song, Y., Yang, C., & Gu, G. (2010, June). Who is peeping at your passwords at Starbucks?—To catch an evil twin access point. In Dependable Systems and Networks (DSN), 2010 IEEE/IFIP International Conference on (pp. 323-332). IEEE. Wong, S. (2003). The evolution of wireless security in 802.11 networks: WEP, WPA and 802.11 standards. URL: http://www. sans. org/rr/whitepapers/wireless/1109. php Retrieved, 28(7), 05.
Voorbeeld bronnen: • • • • • • • • •
http://www.tomshardware.com/reviews/beamforming-wifi-ruckus,23902.html http://null-byte.wonderhowto.com/how-to/hack-wi-fi-creating-evil-twinwireless-access-point-eavesdrop-data-0147919/ http://www.kali.org/ http://www.aircrack-ng.org/ http://wiki.wireshark.org/HowToDecrypt802.11 http://wiki.wireshark.org/CaptureSetup/WLAN http://dare.uva.nl/document/180758 http://index-of.es/Sniffers/Sniffers_pdf/52463601-packet-sniffing-forautomated-chat-room-74909.pdf http://207.228.3.42/Sniffer.Detectors/snifferdetection.pdf