Automatisch WiFi Wachtwoorden Hacken met WiFite
Linux Kali kent diverse mogelijkheden om WiFi (WEP / WPA / WPA2) wachtwoorden te kraken auditen. Dit voornamelijk met de Aircrack-NG suite. De WPS (WiFi Protected Setup) functie op veel oudere routers (pre 2013) is nog gemakkelijker te kraken omdat deze pincode slechts uit 8 numerieke karakters bestaat en er een seintje gegeven wordt wanneer de eerste 4 cijfers goed zijn. Na maximaal 11.000 pogingen is de cracker dus in het bezit van je pincode en WiFi wachtwoord. Een bekende tool die de WPS zwakheden exploit is Reaver. Hoe deze tools te werk gaan leg ik graag in een andere post uit. But now there is a rather new guy in town…he is called “WiFite”!
WiFite (We Fight?)
WiFite is een python script die het hacken auditen van WPS / WEP / WPA / WPA2 beveiligde netwerken wel erg gemakkelijk maakt. WiFite is volledig geautomatiseerd. WiFite spooft je MAC adres, captured de WiFi handshakes, de-authenticate verbonden cliënts en kraakt de gevonden wachtwoorden. WiFite is een command line based “set-it-and-forget-it” audit tool welke slechts eenmalig goed opgezet moet worden. Een ander voordeel is dat WiFite niet alleen automatisch beveiligde draadloze netwerken hackt, maar dat ook doet op de best mogelijke manier. Zo zal WiFite voor WEP cracking gebruik maken van “fakeauth” en de ARP methode om flow van data pakketjes te versnellen.
Wat heb je nodig om WiFite te draaien
- Linux Kali
- Wireless netwerk adapter waarbij “packet injection” en “monitor mode” mogelijk zijn
- Aircrack-NG suite (default in Linux Kali)
- Reaver suite (voor WPS hacking, ook default in Linux Kali)
- Python 2.4.5 of 2.5.2 (default in Linux Kali)
WiFite starten en WiFite commando’s
De huidige versie van WiFite is V2 en is in Kali te vinden onder “Applications” – “Wireless Attacks” – “wifite”.
Mocht je nog niet beschikken over het nieuwste WiFite script dan is deze hier te downloaden.
Omdat WiFite een command line based script is moeten we de commando’s kennen alvorens we WiFite kunnen gebruiken. Tijdens het opstarten of het uitvoeren van het commando “wifite –help” krijgen we alle mogelijke commando’s te zien. De belangrijkste WiFite commando’s zijn:
-showb
Laat alle draadloze netwerken zien die te vinden zijn
-wep
Target en kraak alleen op WEP beveiligde netwerken
-wpa
Target en kraak alleen op WPA beveiligde netwerken
-all
Target en kraak alle beschikbare draadloze netwerken
-dict
Geef een dictionary op voor de WPA dictionary attack
-check
Geef een CAP bestand op met eerder gevonden handshakes
-cracked
Genereer een lijst met voorheen gekraakte netwerken
-i
Specificeer het draadloze netwerk welke gebruikt moet worden
-mac
Spoof MAC adres
-c
Geef een WiFi kanaal op om te scannen
-nodeauth
Deauthenticate clients niet tijdens het scannen (silent scan)
-wpa –wpadt
Met de –wpadt flag geeft je de tijd aan tussen het verzenden van de deauthentication pakketjes
-wpa –pyrit
Gebruik “pyrit” om de handshake te achterhalen (bij WPA)
-wep –pps
Geef het aantal pakketjes op welke per seconde geïnjecteerd moeten worden (bij WEP)
-wep –arpreplay
Gebruik de “arpreplay” attack (bij WEP)
-wep –chopchop
Gebruik de “chopchop” attack (bij WEP)
Om WiFite te draaien moet je “root” zijn binnen de Linux shell. Dit kun je doen door in te loggen als root of door het “su” commando te gebruiken.
Het is heel verleidelijk om de “wifite –all” aanval uit te voeren waarbij WiFite simpelweg alle draadloze netwerken probeert te kraken. Dit kan uiteraard wel maar duurt in de praktijk ontzettend lang waarbij netwerk B alweer weg kan zijn alvorens WiFite met netwerk A klaar is. Het is een beter scenario om WiFite op een specifiek netwerk te richten. Alle mogelijke netwerken kun je vinden met het commando:
wifite –showb |
De “wifite –showb” scan zal de netwerkkaart automatisch in monitor modus zetten (middels aircrack-ng) en begint met het scannen van draadloze netwerken. WiFite scant ook naar verborgen draadloze netwerken (door de deauthentication van cliënts te gebruiken). De scan zal iedere 5 seconden opnieuw loopen en een output genereren. Om de scan te stoppen gebruik je de toets combinatie “CTRL+C”.
De lijst in onze demo omgeving ziet er als volgt uit:
Het AccessPoint in mijn demo omgeving heeft een WPA beveiliging. Omdat WiFite bij een WPA crack ook een dictionary attack zal proberen moeten we opgeven dat we een WPA beveiligd netwerk targetten en waar het dictionary bestand zich bevind. Dit doe je door de commando’s “-wpa” en “-dict”. Het volledige commando ziet er dan als volgt uit:
wifite -wpa -dict /usr/share/wordlists/fern-wifi/rockyou.txt |
De default WiFi wordlist locatie in Kali Linux is “/usr/share/wordlists/fern-wifi/”. Kali komt standaard met de common.txt wordlist maar persoonlijk gebruik ik liever een custom lijst of de rockyou.txt wordlist. De rockyou.txt wordlist is groter en nog op diverse locaties te downloaden.
Na het uitvoeren van dit commando krijg je (net als met het “wifite –showb” commando) een lijst met alle WPA/WPA2 netwerken. Druk op CTRL+C en kies je targetnummer (in mijn geval 1) en druk op enter.
WiFite doet vervolgens de rest. WiFite deauthenticates de client zodat deze zich opnieuw aanmeld. Tijdens het aanmelden captured WiFite de handshake. De handshake wordt vervolgens gereplayed en gekraakt met de opgegeven dictionary file en opgegeven technieken.
Na wat tweaken heb ik uiteindelijk het volgende commando gebruikt:
wifite -wpa -mac –pyrit –wpadt 10 -dict /usr/share/wordlists/fern-wifi/rockyou.txt |
Conclusie
Ongeacht of je dit script geweldig vindt of dat je het haat… feit is dat het kinderspel wordt om een WiFi netwerk te kraken. Dit type tools worden door scriptkiddies gebruikt omdat echte kennis niet meer nodig is. Hoe werken draadloze netwerken? Wat is het verschil tussen WEP en WPA? Wat zijn de zwakheden in deze protocollen en hoe kunnen we deze uitbuiten? Hoe werkt Aircrack-NG? Geen van deze vragen hoeven beantwoord te worden bij gebruik van het WiFite script. Simpelweg 1 druk op knop en hop-hop, de computer doet de rest. De enige echte beveiliging is een sterk wachtwoord, WPA2 encryptie en het uitschakelen van WPS.
We zijn beland in de digitale middeleeuwen… en WiFite dames en heren… is een AK47!