Wifileaks Pt. II

Voor de technische voodoo begint, een kleine, maar nodige inleiding naar de wondere wereld van WPS. Het is ooit verzonnen om het makkelijk te maken nieuwe apparaten toe te voegen aan een netwerk met een onwijs lang WiFi wachtwoord, zonder dat elke keer in te hoeven tikken. Hiervoor zijn twee oplossingen bedacht.
De knop
Bij deze oplossing is het de bedoeling dat je een apparaat vraagt verbinding te maken met het netwerk, en als het apparaat het je héééél lief vraagt, of je dan alsje- alsje- alsjeblieft de knop op je router of accesspoint wil indrukken. Op de Linksys router die ik voor dit verhaaltje gebruik ziet die knop er zo uit:

In principe is dit gewoon "veilig". Iemand die daar misbruik van wil maken moet namelijk al in je huiskamer staan, en dan heb je grotere kopzorgen dan je draadloze netwerk

De PIN
Hier wordt het lachen geblazen. De tweede oplossing is namelijk het invoeren van de pincode die onderop je router / accesspoint staat, in het apparaat wat je wil verbinden. Een soort vervanging van je super lange wifi wachtwoord dus. Onderop mijn Linksys zit dan ook de volgende sticker:

Oké, super. Acht karakters, dat is dus 10x10x10x10x10x10x10x10 (Of 10^8 voor jullie wiskundefreaks) = 100.000.000 combinaties. Uit ervaring kan ik je vertellen dat in een real-life situatie, het brute forcen van de PIN je ongeveer 4 seconden van je leven kost, per poging. Dat komt uit op een bruto van 12,7 jaar. Niet echt de moeite.
Toen dacht iemand bij de implementatie, dit kan handiger. In plaats van gewoon alle acht getallen goed of fout keuren bij een transactie, krijg je een andere reactie terug van het accespoint of de router als de eerste 4 karakters fout zijn, dan als dat deze juist zijn. Daarmee wordt het aantal pogingen al 10x10x10x10 + 10x10x10x10 (10^4 + 10^4) = 20.000 pogingen.
Maar, dat was nog niet handig genoeg. Het laatste getal van de 8 is geen willekeurig getal, maar een checksum van de eerste 7. Hoe deze berekend wordt is voor jullie als aanvaller niet heel belangrijk, maar deze is dus te berekenen aan de hand van de eerste 7 karakters. Klinkt ingewikkeld, maar kijk even mee lieve kijkbuiskinders. De uiteindelijke formule voor het maximaal aantal pogingen (van 00000000 - 99999999) wordt dus 10x10x10x10 + 10x10x10 (10^4 + 10^3, het laatste getal van de 8 is namelijk voor elke combinatie te berekenen.) = 11.000.
Dat zijn zo'n 99.989.000 benodigde pogingen minder die nodig zijn om de juiste PIN te vinden. In tijd uitgedrukt wordt dat in plaats van 12,7 jaar, bij 4 seconden per pin, zo'n 12,2 uur. Dat is een aardig verschil, en gewoon in één dag te doen. Als je dan ook nog eens een net iets betere WiFi stick / antenne regelt, kan je de tijd bijna halveren naar 2 seconden per pin (6 uur). En dat is om van 00000000 naar 99999999 te gaan. Dus als jouw pincode 12344321 is, ben je aardig snel de spreekwoordelijke Sjaak.
Is het dan echt zo erg?
Ondertussen is het wel bekend dat ik een groot fan van plaatjes ben, dus dit is een screenshot van alle accesspoints die ik kan ontvangen, waar WPS ingeschakeld staat (Gemaakt met een tooltje genaamd "Wash", later meer daarover):

Of tenminste, dit is wat er op mijn scherm paste, de lijst gaat nog door. Al deze netwerken zijn met 95% zekerheid kwetsbaar voor deze aanval. Het enige belangrijke punt is dat het bereik goed genoeg is voor de WPS transacties.
Voor de tweakers onder ons, in Wireshark ziet een accesspoint met WPS ingeschakeld er zo uit:

Oke, en dan?
Enter reaver-wps. Een tooltje speciaal gemaakt om deze aanval uit te voeren. Gebundeld met reaver-wps is een tooltje genaamd "Wash", wat kan scannen naar netwerken met WPS ingeschakeld.
Voor deze demo heb ik zelf een Linksys E3000 ingesteld als accesspoint, met de laatste standaard firmware (Versie 1.0.0.4), netwerknaam "Henk" (Omdat waarom niet?). Die kan je in het screenshot hierboven ook terug vinden. Vervolgens gooi ik het volgende commando in mijn Ubuntu terminal:
reaver -b 00:25:9C:**:**:** -c 11 -vv --dh-small --no-nacks -i mon0
Huh, wasda?
- reaver - Naam van het programma
- -b 00:25:9C:**:**:** - MAC Adres van het accesspoint (Gewoon te zien in tooltjes als Wash en airodump-ng, geanonimiseerd voor dit verhaal
)
- -c 11 - Het kanaal van het accesspoint, in dit geval 11. Deze optie is niet nodig, maar kan de aanval wat versnellen als het accesspoint toch niet automatisch van kanaal wisselt.
- -vv - Geef me meer output! Ik wil zoveel mogelijk info terugzien.
- --dh-small - Gebruik een kleinere Diffie–Hellman key om de transactie te versleutelen. Verlaagt de CPU load op het aan te vallen accesspoint en verhoog de snelheid van de aanval
- --no-nacks - Stuur geen NACK pakketje terug als de volgorde van de pakketjes door elkaar loopt. Niet echt spannend om de precieze betekenis te weten, als je maar onthoud dat sommige accesspoints met deze optie veel sneller aangevallen kunnen worden.
- -i mon0 - De WiFi interface om te gebruiken voor de aanval, in mijn geval mon0.

Het belangrijke gedeelte heb ik hier even omcirkeld. Wat je hier ziet is dat na de "M4 Message" het accesspoint een "WSC Nack" terug stuurt. Wat dat is, is niet heel belangrijk, maar onthou even dat dat nu na M4 komt.
Na een paar uur proberen, gaat reaver uiteindelijk de eerste 4 cijfers goed raden. Dan ziet de uitkomst er opeens zo uit:

De oplettende lezer heeft het natuurlijk allang gezien, maar er is iets anders. Waar de "WSC Nack" net al na de "M4 Message" kwam, komt hij nu pas na de "M6 message". Hieraan is te zien of de eerste 4 cijfers van de PIN kloppen of niet.
Op dit punt zal het percentage van reaver naar 90% springen, en gaat hij proberen de rest goed te raden. Uiteindelijk worden alle 8 cijfers goed geraden en krijg je dit te zien:

De "M" messages lopen door tot 7, en het accesspoint geeft netjes de WPA sleutel af. Om Po maar eens te quoten: "Uh-oh".
Wat kan je nu dan?
Het eerste wat je te binnen schiet is natuurlijk gewoon aanmelden op dat netwerk. Maar ja, dan wat? Uit m'n hoofd, dit:
- Scannen in het netwerk om te kijken of er kwetsbare computers zijn om op in te breken.
- Dingen als ARP Spoofing gaan inzetten om al het verkeer om te leiden en af te luisteren.
- DHCP Instellingen aanpassen om al het verkeer via je eigen router te laten lopen.
- DNS Servers aanpassen naar eigen beheerde DNS servers.
- Etc.
Best een serieus lek dus, en al relatief oud. Ik heb er zelfs een jaar geleden al over geschreven. Maar het blijkt nog steeds onwijs makkelijk te misbruiken.
Boeiend, ik heb het uit staan.
Zeker weten? Bij oudere Linksys modellen (<e4200, en zelfs daar pas vanaf een nieuwere firmware), zijn de enige opties:

en

Je zou denken dat WPS bij optie twee uit staat, toch? Niet dus. Ik kan m'n aanval nog steeds draaien, en zelfs mijn telefoon weet me te vertellen dat WPS beschikbaar is:

Maar ik gebruik MAC Filtering op mijn netwerk, en mijn SSID is verborgen, dus puh
Tja, dan zet ik airodump-ng een minuutje aan en zie ik welke clients er met jouw netwerk verbinden.
Dan weet ik welk MAC adres in ieder geval toegestaan is, en die client stuurt ook nog eens jouw netwerknaam mee zodat ik die ook gelijk weet. Vervolgens is een MAC adres veranderen onder linux een kwestie van 1 commando ( macchanger --mac 00:11:22:33:44:55, mocht je het willen weten

Argh, wat moet ik doen dan
Tja, je kán wachten tot de fabrikant een nieuwe firmware uitbrengt waar WPS helemaal uit kan, maar de echte tweaker zet natuurlijk gewoon een custom firmware op de router waar WPS helemaal niet in zit. Verder, hopen en bidden dat je provider het snel voor je oplost. Want op dit moment staat je draadloze netwerk gewoon zo goed als compleet open, ook met MAC filtering en een hidden SSID.
01-'13 Beperkt houdbaar
12-'12 Wifileaks
Reacties
Wordt dit ergens als mitigating factor geadviseerd?Maar ik gebruik MAC Filtering op mijn netwerk, en mijn SSID is verborgen, dus puh
MAC-filtering is sowieso toch al een achterhaalde 'beveiliging' lijkt, los van het WPS-gebeuren.
Ja, ik zou het ook nooit gebruiken, maar sommige mensen zweren erbij, dat moeten ze natuurlijk zelf weten. Als ze ook maar weten dat het totaal geen extra veiligheid is.Eagle Creek schreef op donderdag 03 januari 2013 @ 20:23:
[...]
Wordt dit ergens als mitigating factor geadviseerd?
MAC-filtering is sowieso toch al een achterhaalde 'beveiliging' lijkt, los van het WPS-gebeuren.

Heb vandaag een router aangeschaft, maar gelijk uitgezet ^^
Maar als ik het verder goed begrijp blijft WPS altijd "actief" en dus een zwak punt?
Afhankelijk van de router / firmware wel jahifiman schreef op donderdag 03 januari 2013 @ 21:26:
interessant om te lezen. Maar ja, een alternatieve firmware kan natuurlijk niet alijd. Op mn cisco - upc modem/router heb ik wifi uit staan. Op de linksys wrt160n die erachter zit (als AP) heb ik al de meest recente firmware (weet nog niet of dat op deze kan, fff uitzoeken). en op mn 2e AP , een WRT54G kan helemaal geen andere firmware.
Maar als ik het verder goed begrijp blijft WPS altijd "actief" en dus een zwak punt?

[Reactie gewijzigd op donderdag 3 januari 2013 21:41]
[Reactie gewijzigd op donderdag 3 januari 2013 22:46]
Wel gewoon als extra maatregel het houd misschien niet de echte hacker tegen maar iemand die net begint heeft weer wel een extra stap te nemen. Het kost niets extra's dus waarom zou je het niet gebruiken.Eagle Creek schreef op donderdag 03 januari 2013 @ 20:23:
[...]
Wordt dit ergens als mitigating factor geadviseerd?
MAC-filtering is sowieso toch al een achterhaalde 'beveiliging' lijkt, los van het WPS-gebeuren.
Hmm, bij mij stond dat vinkje er niet. Nu dus wel...woekele schreef op donderdag 03 januari 2013 @ 21:39:
Gelukkig staat onder advanced wifi settings in mijn WNDR3700 van Netgear een vinkje bij de optie 'Disable Router's PIN'.
Interessante blog, bedankt!

Als ik tijd heb ga ik hier mee aan de slag. Bedankt voor het posten!
Ik heb een ander WiFi-bak dat dienst doet als AP, ook opgelost

Volgens mij zijn er ook AP's met WPS functionaliteit hoorX-DraGoN schreef op vrijdag 04 januari 2013 @ 15:19:
Ik heb zo een router maar ik gebruik de WiFi er niet van, WiFi staat volledig af.
Ik heb een ander WiFi-bak dat dienst doet als AP, ook opgelost

Kuch kuch, weet je op welke routers de custom firmwares (OpenWRT en DD-WRT geloof ik) ooit begonnen zijn? Drie keer raden... De WRT54G!!!hifiman schreef op donderdag 03 januari 2013 @ 21:26:
en op mn 2e AP , een WRT54G kan helemaal geen andere firmware.
http://wiki.openwrt.org/toh/linksys/wrt54g
Aan de blogger: Waarom heb je je MAC adres eigenlijk onzichtbaar gemaakt? Wat heb je daar aan als 'buitenstaander'?
Ik heb trouwens lekker een WR1043ND met OpenWRT zonder WPS, lekker puh


Helaas voor mij dus

-> SSLSTRIP


[Reactie gewijzigd op zondag 6 januari 2013 18:55]
Technisch lezen met een grijns is al +1, bedankt voor dit inzicht!


Voor de Belgen(en evt sommige Nederlanders) zowat elke router geplaatst door telenet is door deze methode gewoon een "free passage".
[Reactie gewijzigd op maandag 7 januari 2013 11:14]

Heb meteen even opgezocht hoe het zit met m'n TP-Link TL-WR1043ND router. Daar hebben ze inmiddels wel een maximaal aantal pogingen ingebouwd, waarna gebruik van WPS sowieso uitgezet wordt. Goed bezig dus... maar zal het vanavond nog wel even controleren.
Je kunt QSS (TP-Links term voor WPS) toch gewoon uitzetten?Kaastosti schreef op maandag 07 januari 2013 @ 11:17:
Interessant leeswerk, leuke schrijfstijl
Heb meteen even opgezocht hoe het zit met m'n TP-Link TL-WR1043ND router. Daar hebben ze inmiddels wel een maximaal aantal pogingen ingebouwd, waarna gebruik van WPS sowieso uitgezet wordt. Goed bezig dus... maar zal het vanavond nog wel even controleren.
@slurpgeit: Je maakt me nog eens slim! Thanks voor dit smakelijke leesvoer.
[Reactie gewijzigd op maandag 7 januari 2013 11:37]
Vanavond eens kijken of WPS wel degelijk volledig uitstaat thuis. Ik had het gedisabled, maar ik denk niet dat het effectief volledig uit staat. Niet dat dit echt problematisch zou zijn voor mij, maar het kan zeker geen kwaad om het op veilig te spelen

Dat ongetwijfeld ook, maar ik lees links en rechts dat het uitzetten van die functionaliteit op andere routers niet altijd inhoudt dat deze ook echt uit is. Hoe dan ook de moeite om even alle settings na te lopen.albino71 schreef op maandag 07 januari 2013 @ 11:36:
[...]
Je kunt QSS (TP-Links term voor WPS) toch gewoon uitzetten?
(Daarin doel ik dus op bv mijzelf, uiteraard niet op de blogposter

[Reactie gewijzigd op maandag 7 januari 2013 12:19]
Trouwens wie gebruikt Smart Connect en wat zijn de beveiligingsimplicaties? Het lijkt mij niet wenselijk dat een derde partij controle heeft over jouw netwerken, of dat je door bij Cisco in te breken op andere netwerken je gang kan gaan.. Bovendien een Amerikaans bedrijf, patriot act dus, dus gewoon toegang tot jouw netwerk thuis in een klein dorpje in Nederland?

Heb hier een WRT54GL met Tomato firmware erop, en zover ik kan vinden ondersteund Tomato geen WPS, dus ik zit safe denk ik

Op mn Modem/Router van UPC kan ik (iirc) geen eigen FW flashen, maar zelfs al doet UPC dat, dan wil ik het wel testen. Gebruik deze namelijk wel als wifi accesspoint.
Daarnaast heb ik ergens anders nog een routertje waar inmiddels DD-WRT op draait, die schijnt WPS uit te kunnen zetten, maar graag test ik het natuurlijk.

Met Wash (of Walsh als je reaver 1.3 of eerder gebruikt) kan je kijken of WPS aan staat. Reaver gebruik je om de pin vervolgens te bruteforcen.Iceman B schreef op maandag 07 januari 2013 @ 15:00:
Is er een snelle manier om erachter te komen of mijn router deze leak heeft? Is het met alleen reaver al na te gaan?
Sommige AP's staan maar een aantal pogingen toe en locken dan WPS. Met een beetje puzzelen kan je er achter komen wat het aantal pogingen is en reaver daarop afstemmen, bijvoorbeeld om na elke 5 pogingen een minuut te pauzeren voeg je " -r 5:60" toe aan je opdracht. Om tussen elke poging wat langer te wachten dan de default 1 seconde kan je bijvoorbeeld " -d 3" toevoegen om 3 seconden tussen de pogingen te wachten. Uiteindelijk is nagenoeg elk AP met WPS te kraken alleen duurt het bij de ene wat langer dan de andere.
Het was tot voor kort mogelijk om een MAC adres op te zoeken in Google's locatie database. Dus als er een streetview wagen of Android gebruiker Slurpgeit's router ooit heeft gescand, konden we opzoeken waar hij woont.marcop23 schreef op vrijdag 04 januari 2013 @ 21:18:
[...]
Aan de blogger: Waarom heb je je MAC adres eigenlijk onzichtbaar gemaakt? Wat heb je daar aan als 'buitenstaander'?
Ga naar het ip adres van de router en zet er een config pagina achter, voorbeeld:
192.168.?.?/BasicCmState.asp, hé ik zit in de settings zonder login gegevens in te voeren.

Ontopic:
Ik heb trouwens wel heel wifi uitgezet op die ubee modemrouter.
Op mijn Sitecom router lukt het wel om wps uit te zetten, mijn telefoon geeft niet aan dat er een WPS mogelijkheid is.
[Reactie gewijzigd op dinsdag 8 januari 2013 23:45]
Ja, het heeft wel nut, maar in de link die je aanhaalt zet hij dus WPS niet uit, maar zet hij hem op manual, net zoals de OP hierboven schrijft:Stef42 schreef op maandag 07 januari 2013 @ 11:13:
Volgens mij heeft het uitschakelen van WPS weinig nut, als ik onderstaande link mag geloven. Daarin wordt gesteld dat zelfs met WPS off alsnog aanvallen mogelijk zijn. Er wordt echter dan weer beweerd dat enkel met MAC filtering het niet meer mogelijk is, wat de OP al heeft ontkracht. Link HIER
Then, I relaunched Reaver, figuring that surely setting the router to manual configuration would block the attacks at the door.
Je zou denken dat WPS bij optie twee uit staat, toch? Niet dus. Ik kan m'n aanval nog steeds draaien, en zelfs mijn telefoon weet me te vertellen dat WPS beschikbaar is:

Edit: Als Linux-noob Ubuntu geviritualiseerd en Wash/Reaver geinstalleerd.
Ik loop vast bij de interfaceparameter (voor Wash in dit geval) hoe kom ik er achter welke 'interface' Ubuntu gebruikt?

Thanks alvast

[Reactie gewijzigd op donderdag 10 januari 2013 20:38]
Erg hoe slecht het gesteld is met de beveiliging van draadloze netwerken. Dat fabrikanten hier ook niks mee doen verbaast mij echt! Het moet toch niet zo moeilijk zijn om een goed product uit te brengen, het liefst gewoon alleen 3 routers met dikke hardware (voor een router) die gewoon flink en lang ondersteund worden.

Dat is dan alweer 1 zorg minder, En ik ben al zo paranoïde over wifi

Zojuist even gecontroleerd of ik het aan kon passen. Gelukkig doet de "manual" setting wel wat (denk ik) bij mijn modem (Cicso EPC3925 van Ziggo), want m'n telefoon laat nu iig niet meer het bericht zien dat WPS beschikbaar is.
Voer in je terminal 'iwconfig' uit, en zoek de interface uit waarvan 'Mode:' op 'Monitor' staat.Torrentus schreef op donderdag 10 januari 2013 @ 20:24:
Eens met Martijndoes, mooi stuk, blijf je ook volgen!
Edit: Als Linux-noob Ubuntu geviritualiseerd en Wash/Reaver geinstalleerd.
Ik loop vast bij de interfaceparameter (voor Wash in dit geval) hoe kom ik er achter welke 'interface' Ubuntu gebruikt?
Thanks alvast
Staan er enkel interfaces met 'Mode:Managed', dan moet je eerst even 'airmon-ng start [deze tekst vervangen door je managed interface]' uitvoeren.
[Reactie gewijzigd op dinsdag 15 januari 2013 22:21]

Ga zo door met interessante posts, kijk al uit naar de volgende!

Reageren is niet meer mogelijk