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>
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.
===Brute-force===
maszkos támadás a hashcat oldalárol: https://hashcat.net/wiki/doku.php?id=mask_attack<br>
egy remek példa: https://www.4armed.com/blog/perform-mask-attack-hashcat/<br><br>
{{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. }}
<br>
<br>
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.
* 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
?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 ezeket kombinálhatjuk összea 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, amiket elnevezhetünk 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''' -től 4el definiált karakter halmazból kerülhet ki a győztes, a 3. helyre a '''-2'''-igvel definiált karakter halmazból, ahogy azt láthatjuk míg a kommand végén4. helyre csak az angol ABC nagy betűi közül lehet választani. Fontos, ott van hogy megadjuk az 1-es definíciójaé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?u vagyis kis @&# ...Ezzel azt mondtuk meg, hogy a 2-es karakter készletbe a számok tartoznak bele valamint a @,& és nagybetűk + számok#. Tehát a jelszó 3. karaktere vagy egy szám vagy a @,& vagy #. De ide még többet is megadhattunk volna<br>A következőkben feltételezzük, pl ha hogy a tudjukjelszó első 5 karakter kisbetű, hogy és csak az eslő nagybetűutolsó 3 lehet szám is vagy betű (l ill 1)<pre># ./hashcat64. Bármilyen infó bin -m 2500 -a jelszóról drasztikusan csökkenti 3 -1 ?l?d -o cracked psk3-03.hccapx ?l?l?l?l?l?1?1?1hashcat (v4.1.0) starting.....Session..........: hashcatStatus...........: RunningHash.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: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:1Speed.Dev.#2.....: 133.8 kH/s (16.04ms) @ Accel:64 Loops:16 Thr:1024 Vec:1Speed.Dev.#3.....: 87386 H/s (7.85ms) @ Accel:32 Loops:16 Thr:1024 Vec:1Speed.Dev.#*.....: 355.1 kH/sRecovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) SaltsProgress.........: 1376256/554337478656 (0.00%)Rejected.........: 0/1376256 (0.00%)Restore.Point....: 0/21320672256 (0.00%)Candidates.#1....: mfvytane -> mmcjyoneCandidates.#2....: msefpone -> mzjmalllCandidates.#3....: carierin -> cgvytaneHWMon.Dev.#1.....: Temp: 59c Fan: 0% Util: 96% Core:1455MHz Mem:4428MHz Bus:1HWMon.Dev.#2.....: Temp: 55c Fan: 0% Util: 98% Core:1379MHz Mem:4428MHz Bus:1HWMon.Dev.#3.....: Temp: 51c Fan: 0% Util: 99% Core:1404MHz Mem:3903MHz Bus:1</pre> A státusz háromféle lehet: * '''running''': még fut. * '''cracked''': Megtalálta a töréstjelszót. A -o-val megadott fájlba rakta. * '''exhausted''': végig ment a teljes megadott karakter univerzumon, de nem találta meg a jelszót
==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