7,540
edits
Changes
→Szimpla szótárár alapú keresés
{{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 , saját hálózatokon kísérletezzünkmert más hálózatának feltörése törvénysértő és etikátlan! 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.}}
<br>
<br>
=Bevezető=
==Mit is fogunk csinálni==
https://medium.com/@brannondorsey/crack-wpa-wpa2-wi-fi-routers-with-aircrack-ng-and-hashcat-a5a5d3ffea46<br>
A WPA titkosítással rendelkező WiFi hálózatokat kizárólag hash visszafejtéssel lehet törni, és csak akkor ha nem túl bonyolult és túl hosszú a jelszó, különben már több áram és idő kéne hozzá, mintsem hogy megérje. Különösen akkor van esélyünk feltörni egy WPA vagy WPA2 jelszót, ha az 10 karakternél nem hosszabb és szótári szavak kombinációjaként áll elő. Ha teljesen random a sorozat, akkor már viszonylag rövidebb jelszó esetén is (10 karakter) már hetekbe telhet a törés (GPU rig-en). A törésre mindenképpen GPU rigre van szükség, ez CPU-ban, különösen laptopon biztos hogy nem végezhető el. Sőt, egy darab GPU-val sem jutunk messzire. Minél nagyobb a rig, úgy nyerhetünk napokat. Két szoftvercsomagot fogunk használni: * '''aircrack-ng''': teljes körű WiFi manipuláló, monitorozó, és törő (WEP esetén) parancssori eszköz. :[[File:ClipCapIt-180726-125040.PNG]]* '''hashcat''': Az egyik legnépszerűbb GPU jelszó visszafejtő eszköz. Képes GPU rig-en is futni. :[[File:ClipCapIt-180726-125053.PNG]] A WEP titkosítással védett hálózatokat ennél sokkal egyszerűbb feltörni, mert ott ki lehet használni az algoritmus hibáit. WEP esetén a legegyszerűbb az '''airgeddon''' szoftvercsomag használata, amihez a legideálisabb a '''Keli Linux''' disztribúció, mert abban már minden benne van ami az '''airgeddon''' futtatásához szükséges. A WPA töréséhez is használhatjuk az airgeddon-t (https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Installation-&-Usage), de az '''airgeddon''' -al készült handshake fájlt nem tudtam hashcat formátumra konvertálni. Az airgeddon igazából nem csinál mást, mint összefogja a különböző WiFi manipuláló/törő eszközöket, és egy egységes, felhasználó barát interfészt húz feléjük, így a használata nagyon kezesbárány (pl. a hascat-et is használja CPU üzemmódban). A WPA jelszó törésekor 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 1db 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. :[[File:ClipCapIt-180726-111131.PNG]] Nem minden WiFi kártya alkalmas hálózat monitorozásra vagy manipulációra. Állítólag léteznek direkt erre a célra különösen jól megfelelő (külső) kártyák. Nekem a laptop-ba épített kártyával is ment. (Qualcomm Atheros AR9485) 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. A hash visszafejtés valójában "random" próbálkozás. Fogunk egy jelszó jelöltet, a megfelelő hash módszerrel elkészítjük a hash lenyomatát (az esetünkben WPA hash-t kell használni) majd a hash lenyomatot összehasonlítjuk a handshake-ben található hash-el. Ha nem talált, akkor veszünk egy új jelöltet és kezdjük elölről. A siker kulcsa igazából azon múlik, hogy milyen módszerrel határozzuk meg a következő jelöltet. * '''brute-force:''' egy megadott hosszban, a karakter készlet univerzum összes variációját végig próbálgatjuk sorban, mindig egy karaktert kicserélve. (pl. kis és nagy betűk, számok, speciális karakterek) Ezzel a módszerrel biztos rá akadunk a jelszóra (ha jó hosszúságon próbálkozunk) viszont akár hónapokba is telhet. * '''szótár alapú''': léteznek előre gyártott szó készletek, amiben több 10 ezer szó is össze lehet gyűjtve. Egy ilyen gyűjtemény szavait végigpróbálgatni még 10 ezres nagyságrend esetén is csak a töredéke a brute force módszernek. * '''kombinált módszerek''': szótárakat kombinálunk egymással, vagy pl számokkal. Ezzel nagyban kibővíthetjük a keresési univerzumot, de még midig csak a töredéke az elvégzendő munka a brute-force-nak. ==Hogyan működik a WPA titkosítás==<br><br>
=Installáció=
==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.
A github-rol tudjuk letölteni: https://github.com/hashcat/hashcat-utils
A fordításhoz csak egy make kell:
# git clone https://github.com/hashcat/hashcat-utils.git
# make
<br>
<br>
==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).
A hashcat binárist csak le kell tölteni és ki kell telepíteni (7z-vel):
<pre>
# yum install p7zip
# wget https://hashcat.net/files/hashcat-4.1.0.7z
...
# 7za x hashcat-4.1.0.7z
</pre>
Próbáljuk ki az alábbi teszt paranccsal hogy jól fut e:
<pre>
# ./hashcat64.bin -m 1000 -b
<br>
===Monitor mode bekapcsolása===
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')
<br>
===Ú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.
{{worningwarning|Az összes kliens meg fogja szakítani a kapcsolatot egy pillanatra az AP-val, így történthet történhet adatvesztés}}
Szintaxis: aireplay-ng -0 2 -a <bssid> <interfész név>
...
</pre>
{{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(pl este, mikor nagyobb az AP-n a forgalom, olyankor garantált a siker}}
===Mi jött létre===
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)
===Monitor kikapcsolása===Ha megvan a handshake, fontos, hogy kikapcsoljuk a monitor üzemmódot a WiFi kártyán, mert addig nem tudjuk internetezésre használni. <pre>airmon-ng stop wlp3s0mon</pre>A kikapcsoláshoz nem a kártya nevét kell megadni, hanem a monitor interfész nevét. <br><br> ===Konvertálás===
A '''.cap''' fájlt konvertálni kell '''.hccapx''' formátumra, hogy fel tudjuk dolgozni a '''hashcat''' programmal. A konverziót a '''cap2hccapx''' eszközzel végezhetjük el (vagy online, keressünk rá)
<pre>
cd ...../hashcat-utils-master/src/
</pre>
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.}}
<br>
=Hash visszafejtése=
Az itt leírtakat bármilyen jelszó feltörésére használhatjuk, nem csak WPA, mindösszesen a '''haschat''' paraméterezésén kell változtatni, ha nem WPA hash-t akarunk törni.
==GPU rig használata==
Első lépésként a konvertált hash fájlt (psk3-03.hccapx) a rig-re kell másolni.
<pre>
{{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: <br> ./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 És egy nagyon részletes help: ./hashcat64.bin --help<br><br>===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. <pre>wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt</pre> Majd '''-a''' után adjuk meg a 0-át (egy szótár alapján törünk) és a parancs végére tegyük oda a szótár fájlt: <pre># ./hashcat64.bin -m 2500 -a 0 -o cracked.txt psk3-03.hccapx rockyou.txt...Session..........: hashcatStatus...........: CrackedHash.Type........: WPA/WPA2Hash.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:1Speed.Dev.#2.....: 85771 H/s (7.25ms) @ Accel:32 Loops:16 Thr:1024 Vec:1Speed.Dev.#3.....: 85478 H/s (7.80ms) @ Accel:32 Loops:16 Thr:1024 Vec:1Speed.Dev.#*.....: 262.3 kH/s...</pre> A végeredmény a '''cracked.txt'''-be kerül. A Státusz mezőbe azt kell lássuk hogy '''Cracked'''. <pre># cat cracked.txt bba17692f1d2b32ef68f4b34f037d9a2:0012c9317a28:acc1ee9717ef:TEST_NETWORK:33333333</pre>A jelszó az utolsó mező, előtte van a hálózat neve. <br>Mivel nagyon sokáig is futhat a hashcat, célszerű a screen programmal futtatni. A háttérben fog futni, de bármikor rá tudunk újra csatlakozni a konzolra: # /usr/bin/screen -d -m -S minerscreen ./hashcat64.bin ...paraméterek ... # /usr/bin/screen -d -m -S minerscreen /home/adam/hashcat/hashcat64.bin -m 2500 -a 1 -o cracked.txt myhash.hccapx rockyou.txt Visszacsatlakozás a konzolra: # screen -r Majd a Crtl+a+d-vel tudunk lecsatlakozni a konzolról. <br><br> ===Kombinált szótár alapú keresés===https://www.4armed.com/blog/hashcat-combinator-attack/ Nagyon egyszerű dolgunk van. A '''-a''' után '''1'''-et kell írni (kombinált szótárak) és a parancs végén a második szótár fájlt is meg kell adni, ami akár ugyan az is lehet mint az első. Az első fájl összes szavához hozzá fogja illeszteni a második fájl összes szavát. <pre>./hashcat64.bin -m 2500 -a 1 -o cracked.txt psk3-03.hccapx rockyou.txt dictionary2.txt</pre> Ha csak 1 szótárat adunk meg, de '''-a 1''' -et adunk meg, akkor magától permutálni fogja a szótár szavait. <pre>./hashcat64.bin -m 2500 -a 1 -o cracked.txt psk3-03.hccapx rockyou.txt</pre> {{warningnote|Fontos, Gyakran tudjuk hogy a szálloda neve nyilván benne van a jelszóban vagy hogy minden más GPU tevékenységet leállítsunk a rig-enjelszó végén egy évszám van. Ezért csinálhatunk olyan szótárakat amiben az utolsó 10 éve évszámait soroljuk fel, és ezt adjuk meg második szótár fájlnak, tehát NE bányásszunkvagy csinálhatunk olyan fájlt, amíg jelszó visszafejtésre akarjuk használni amiben a gépet :szálloda neve van variálva, és ezt kombináljuk össze egy ismert szó gyűjteménnyel. (persze ezt csak hipotetikusan írtam le, sose próbáltam ki) }}<br><br> ===Kombinált szótár alapú keresés számokkal==={{tip|A rockyou.txt szótárban sok szó megtalálható számokkal kombinálva}}Ezt nem próbáltam ki, de ezt írták rá: <br>''Easiest way is using combinator from hashcat utils, pipe that to hashcat and use rules to append the numbers.'' combinator word1.txt word2.txt | hashcat -m2500 -r append_digit.rule -r append_digit.rule -r append_digit.rule test.hccapx depending on how small your word lists are etc, you could also think of an alternative like this:# first precompute and store a modified 2nd word list: combine the second word list word2 with the digits already combined# run -a 1 with word1 and word2_combined_with_3_digits you could for instance use hashcat --stdout -a 6 -o word2_combined_with_3_digits word2 ?d?d?d" --> to combine the dictionary file word2 with 3 digits.Of course an approach like this only makes sense if:# the word list word2 is not too huge (but a too huge word list would anyways be a problem of infeasibility for -a 1 attacks)# the storage is not too much of a problem (fast I/O) etc# the resulting speed is acceptable The speed of course depends also a lot on your GPU/CPU setup and most importantly on the hash mode (in your case it is -m 2500 = WPA/WPA2).A small advantage of this pre-computation approach is that the ETA would be more accurate and the status display of hashcat will show more info (because no pipe is involved in this case).... but of course for most users the speed is more important than just some displayed values. <br><br>
===Brute-force===
Szintaxis:
./hashcat64.bin -m 2500 -a 3 <saját karakter definíciók> -o cracked psk3-03.hccapx <maszk>
* Annyi eltérés van a szótár alapú kereséshez képest, hogy a parancs végén meg kell adni egy maszkot, amivel egyrészt megmondjuk, hogy (maximum) milyen hosszú a jelszó, másrészt megjósoljuk minden egyes pozícióra, hogy ott milyen karakter halmazból kerülhet ki karakter.
* A maszk-ban minden egyes pozícióra vagy konkrétan odaírjuk azt a betűt/számot amit az adott pozíción várunk (ez akkor lehet érdekes, ha van vmi infónk a jelszóról) vagy a ?<típus>-al megadjuk a karakterhalmazt.
* A karakter halmaz típusként vagy a gyári, beépített típusokat használhatjuk, vagy egyedieket is megadhatunk. Ezek a beépített típusok:
<pre>
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?h = 0123456789abcdef
?H = 0123456789ABCDEF
?s = «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 - 0xff
</pre>
* Összesen 4 különböző egyedi típust definiálhatunk. Ekkor a ? után 1-4 ig kell megadni egy számot, és a típust külön kell definiálni a -1 <definíció> vagy -2 <definíció> .. stb módon. A definícióban vagy a beépített elemeket használhatjuk ugyan úgy a ? után megadva a típust, vagy megadhatunk konkrét karaktereket is. Viszont nagy különbség, hogy itt a pozíció nem számít, itt egy szumma halmazt definiálnunk, amik a szóba jöhető karakterek a maszkban azon a pozíción, ahol ezt a számot használtuk. Pl: Ezt írjuk a maszkba:
<pre>
... ?l?1?2?u</pre>Ezzel azt mondtuk meg, hogy a jelszó 4 hosszú és az első helyre az angol ABC kisbetűi közül lehet csak választani. A második helyen a -'''1''' -el definiált karakter halmazból kerülhet ki a győztes, a 3. helyre a '''-2'''-vel definiált karakter halmazból, míg a 4. helyre csak az angol ABC nagy betűi közül lehet választani. Fontos, hogy megadjuk az 1-es és 2-es karakter halmazok definícióját is: <pre>... -1 ?u?l ...</pre>Ezzel megadtuk, hogy az 1-es karakter halmazt az angol ABC kis és nagybetűi alkotják. Tehát a 2. karaktere a jelszónak az angol ABC kis és nagybetűi közül kell hogy kikerüljön. .. -2 ?d@&# hashcat...Ezzel azt mondtuk meg, hogy a 2-4es karakter készletbe a számok tartoznak bele valamint a @,& és #. Tehát a jelszó 3. karaktere vagy egy szám vagy a @,& vagy #. <br>A következőkben feltételezzük, hogy a jelszó első 5 karakter kisbetű, és csak az utolsó 3 lehet szám is vagy betű (l ill 1)<pre># .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...
..
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
</pre>
A státusz háromféle lehet: * -m -el meg kell mondani a hash tipusát. Ez WPA esetén mindig 2500'''running''': még fut. * '''cracked''': Megtalálta a jelszót. A -a o-val a támadás fajtájátmegadott fájlba rakta. 3= brute force (maskos brute force)* - aztán ami utána jön'''exhausted''': végig ment a teljes megadott karakter univerzumon, az a maszk. A ? után mindig de nem találta meg a character készletre hivatkozunk. Itt pont egy 8 hosszú jelszót adtunk meg. vannak a beépített karakter készletek:
==GPU hash szolgáltatók==
===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. <br>Képes brute-force törésre is, de az sokkal többe kerül, kb 0.005 BTC.
:[[File: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.
<br>
=WEP hálózat feltörése=
https://www.aircrack-ng.org/doku.php?id=simple_wep_crack