A hash-funkció egy olyan funkciócsalád, ahol az input tetszőleges bináris adat, az output pedig egy rögzített hosszúságú bináris adat. Ezek a funkciók a következő tulajdonságokkal rendelkeznek:
Egyirányúság: az inputból az outputot könnyű és gyorsan kiszámítani, viszont az outputból az inputot matematikailag nem lehetséges visszaszámítani.
Ütközési korlátozás: két különböző inputot találni, amelyeknek ugyanaz az outputja, rendkívül nehéz.
Azok a funkciók, amelyek megfelelnek ezeknek a tulajdonságoknak, hash-funkcióknak nevezhetők. Ha egy adatot hash-funkcióként adunk meg inputként, és kiszámítjuk az outputot, akkor ezt az outputot általában az adatok hash-értékének nevezzük.
Ahash funkció egyik fő feladata a jelszavak biztonságos tárolása. A jelszavakat nem tárolják közvetlenül (vagyis nem tárolják a tiszta szöveges jelszavakat), hanem a jelszavak hash értékét tárolják. Az ellenőrzés során csak a bevitt jelszó hash értékét kell újra kiszámítani, és összevetni a tárolt jelszó hash értékével, hogy megtudjuk, a jelszó helyes-e. A hash funkció egyirányúsága és az ütközési korlátozások miatt a támadók még a jelszó hash értékét megszerezve is nehezen tudják meg a jelszót magát.
Ha a támadók megszerzik a jelszó hash értékét, tényleg nem tudják meg a jelszót magát? Nem feltétlenül. Bár matematikailag lehetetlen a jelszó hash értékéből közvetlenül kiszámítani a jelszót, tudjuk, hogy a hash funkció az inputból gyorsan kiszámítja az outputot. Csak ki kell próbálni. Az ember által beállított jelszavak csak annyian lehetnek, és egyesével kipróbálva még szerencsével ki lehet találni. A hash értéknek megfelelő input megtalálására irányuló folyamatot brute forcing-nak nevezzük.
Ezen az alapon jött létre a hashcat. Azt mondják, a hashcatot azért hozták létre, hogy bebizonyítsák, a hash brute forcing nagyon egyszerű dolog. A hashcat azt állítja magáról, hogy a világ leggyorsabb hash brute forcing eszköze, és támogatja a GPU-t és az FPGA-t is, ha van ilyened.
A hashcat nemcsak gyors, hanem több mint 200 különböző hash funkciót is támogat professzionálisan. A parancs:
hashcat --help
megmutatja a hashcat által támogatott összes hash funkciót, de túl sok van, nem fogom ide bemásolni.
A Kali alapértelmezésben telepíti a hashcatot, amelyet közvetlenül lehet használni. De a Kali-t a VirtualBox-ban telepítettem, és úgy gondolom, hogy a virtuális gép lassabb, ezért a hashcatot a fizikai gépen szeretném használni. Először töltse le a hashcatot a hashcat hivatalos weboldaláról. Jelenleg a legújabb verzió a v3.5.0, amelyet 2017.04.05-én adtak ki, a frissítési dátumból látható, hogy a hashcat nagyon aktív. A fordítási gondok elkerülése érdekében közvetlenül töltse le a bináris csomagot, amely csak 2,7 MB-os, szemben a több tíz gigabájtos játékokkal.
A letöltés befejezése után bontsa ki a hashcatot, és látni fogja:
Ezek a fájlok 32 és 64 bites Linux és Windows alatt futó végrehajtható fájlok. Válasszon az Ön számítógépének megfelelőt közülük. Én a hashcat64.bin-t választottam. A szép látvány kedvéért, adjon hozzá egy sort a ~/.bashrc fájlhoz:
alias hashcat='hashcat64.bin útvonala '
Mentse el és nyissa meg újra a virtuális terminált, hogy a ~/.bashrc fájl hatályba lépjen.Így, bárhol is van, közvetlenül a hashcat parancsot használhatja, anélkül, hogy mappát kellene váltania, vagy a csúnya „64.bin”-t kellene beírnia, amint az alábbi képen látható.
Most már elkezdheti használni a hashcat-et különféle hash-ek feltörésére.
Az md5 az egyik leginkább ismert és legszélesebb körűen használt hash függvény. Először generáljunk néhány md5 értéket a Python segítségével a feltöréshez, a kód a következő:
import hashlib jelszavak = ['123123', 'bond007', 'xxxxxx', '*H@&(NT*@BR#^'] a jelszó a jelszavak közül: md5 = hashlib.md5() md5.update(jelszó) print md5.hexdigest()
A fenti kód négy karakterlánc hashértékét számolja ki, az eredmény pedig a következő:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
A kimenetet az md5.hash fájlba menti, egy sorban egy hashértéket. Ezután a hashcat programmal feltöri ezeket a hashértékeket, a parancs a következő:
hashcat -w 3 -a 0 -m 0 --remove -o md5.out md5.hash wordlist.dic
A -w paraméter a munkamódot határozza meg, melyből négyféle létezik, az alábbi táblázatban láthatók:
| N | Teljesítmény | Futási idő | Áramfogyasztás | รันไทม์ { | }{} การใช้พลังงาน { | }Runtime {100000}{100001} Power Consumption {100002} | รันไทม์ {100000}{100001} การใช้พลังงาน {100002}border-bottom-width: 2px; border-left: 0px; border-top-color: rgb(235, 235, 235); border-bottom-color: rgb(235, 235, 235); font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0.75rem; vertical-align: bottom; text-align: left; line-height: 1.5;">Asztali hatás | |
|---|---|---|---|---|---|---|---|---|
| 1 | 2 ms | Alacsony | Minimal | |||||
| 2 | Default | 12 ms | Gazdasági | Észrevehető | ||||
| 3 | High | 96 ms | Magas | Nem reagál | ||||
| 4 | Rémálom | 480 ms | Insane | Fejnélküli |
paraméter - az -a opció a támadási módot határozza meg. A 0 érték azt jelenti, hogy közvetlenül, folyamatosan támad, azaz lefuttatja a jelszó-diccionáris támadást. Az -a opciónak öt lehetséges értéke van, melyeket az alábbi táblázat mutat be:
| N | Mód |
|---|---|
| 0 | Straight |
| 1 | Kombináció |
| 3 | Brute-force |
| 6 | Hibrid szavak listája + maszk |
| 7 | Hybrid Mask + Wordlist |
-m a feltörésre kijelölt hashértékek hashfunkcióját jelöli, 0 azt jelenti, hogy a hashfunkció md5, az egyéb értékek az alábbi táblázatban láthatók:
| N | Név | Kategória | |||
|---|---|---|---|---|---|
| 0 | MD5 | Nyers hash | |||
| 300 | MySQL4.1/MySQL5 | 1000 | NTLM | Operációs rendszerek | |
| 1800 | sha512crypt $6$, SHA512 (Unix) | Operációs rendszerek | |||
| 2611 | vBulletin < v3.8.5 | Fórumok, CMS-ek, e-kereskedelem, keretrendszerek |
Ez a táblázat túl hosszú, ezért csak a cikkben említett hash-funkciókat mutatom be. A –help paraméterrel láthatja az összeset.
A –remove paraméter azt jelenti, hogy ha sikerült feltörni egy bizonyos hash-értéket, akkor azt el kell távolítani az md5.hash-ból.
A –o paraméter egy fájlnevet ad meg, amely jelzi a feltörési eredmények tárolási helyét.
Az utolsó két paraméter, az md5.hash és a wordlist.dic a feltörésre váró hash-értéket és a jelszó-szótárt jelenti. A hash-érték és a jelszó-szótár egy-egy sort képeznek. Az md5.hash tartalmát a Python már kiszámolta. Ha nincs megfelelő jelszó-szótára, használja az alábbi parancsot:
wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Valószínűleg hiányzik valamilyen futtatási környezet, akkor telepítsük. Összesen ezeket telepítettem:
sudo apt-get install gcc make p7zip-full git lsb-core wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 sudo ./install.sh
Ha jó a netkapcsolat, akkor egy kis idő alatt települ. Az első parancs hibát ad:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 nem szimbolikus link /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 nem szimbolikus link szimbolikus link
De úgy tűnik, ez nem befolyásolja semmit, hagyjuk figyelmen kívül. A telepítés után nyomjuk le újra az Entert, futtassuk az eredetileg hibás parancsot, és látni fogjuk, hogy valóban nem ad hibát, és pillanatok alatt végrehajtja a műveletet. A parancs végrehajtása után nézzük meg az md5.hash és az md5.out fájlok tartalmát, és látni fogjuk, hogy az md5.hash fájlban csak egy hash maradt, a három sikeres feltörési hash át lett helyezve az md5.out fájlba, ahol három hash értéket és azok eredeti értékét látjuk, az alábbiak szerint:
A Windows bejelentkezési jelszó hashértéke az SAM fájlban tárolódik, ahol az SAM a „security account manager” rövidítése. Általában a
C:\windows\system32\config\SAM
fájlban található. Az SAM fájlt a Windows védi, és nem lehet közvetlenül olvasni, ehhez eszközökre, például a SAMInside-ra van szükség. Keressen egy Windows 7 virtuális gépet, hozzon létre egy új rendszergazdai felhasználót a „hashcat” néven, és állítson be jelszót. A Windows 7-ben töltse le és bontsa ki a SAMInside-ot, majd futtassa rendszergazdai jogosultságokkal, majd kattintson a Fájl - > Helyi felhasználók importálása a Helyi felhasználók ütemezőjén keresztül lehetőségre, amint az alábbi képen látható:
Ezután a SAMInside „nem fog reagálni”, de ne aggódjon, várjon türelmesen néhány másodpercig, a SAMInside nem okoz csalódást, és kiolvassa a kívánt hasht, amint az alábbi képen látható:
Válassza ki a „hashcat” felhasználót, akinek a jelszavát feltörni szeretnénk, majd nyomja le a Ctrl+5 billentyűkombinációt az NT-hash másolásához. Ezután térjen vissza a hashcatot telepített Ubuntu rendszerbe, és a következő paranccsal mentse a másolt hash értéket a win7.hash fájlba:
echo 356CEAE0C89FB65ED6D6AA7A445C4CE5 > win7.hash
Az NT-hash a Windows 7 által a bejelentkezési jelszavak tárolására használt hash függvény. Ezután az NT-hash feltöréséhez használja az alábbi parancsot:
hashcat -w 3 -a 0 -m 1000 --remove -o win7.out win7.hash wordlist.dic
Néhány pillanat múlva a folyamat befejeződik. Ellenőrizze a win7.out fájlt, és látni fogja, hogy a feltörés sikeres volt. A „hashcat” felhasználó bejelentkezési jelszava a „rush2112”:
werner@Yasser:~/hashcat$ cat win7.out 356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112
A SAM fájl megszerzésének módja a „Hogyan exportálhatjuk a Windows hash sorozatot 1. rész” című útmutatóban található. Az alábbiakban leírom, hogyan olvastam a SAM fájlt a Windows 7 virtuális gépben.
Ha fizikai gépünk van, indítsuk el a gépet Win PE-vel, és olvassuk ki a SAM fájlt a lemezről. Az én gépem virtuális, ezért a virtuális lemezt fájlrendszerbe kell mountolnom, hogy el tudjam olvasni a fájlokat. A VirtualBoxot használom, ahol a vdfuse paranccsal tudom ezt elvégezni. Ha nincs vdfuse, akkor először telepítenem kell a virtualbox-fuse csomagot:
sudo apt-get install virtualbox-fuse
A virtualbox-fuse telepítőcsomagot is letölthetem, és saját magam telepíthetem.
A telepítés után már rendelkezünk a vdfuse paranccsal, és elkezdhetjük a virtuális lemez leképezését és mountolását:
mkdir -p ~/vmdisk sudo vdfuse -t VMDK -f Win7Pro32.vmdk ~/vmdisk/
Miután ezt a lépést elvégeztük, nézzük meg a ~/vmdisk könyvtárat, ahol három fájl található: EntireDisk, Partition1 és Partition2. Hozzunk létre egy új könyvtárat:
mkdir -p ~/vmdisk_en mkdir -p ~/vmdisk_1 mkdir -p ~/vmdisk_2
Mountoljuk a három fájlt a mount paranccsal:
sudo mount ~/vmdisk/EntireDisk ~/vmdisk_en sudo mount ~/vmdisk/Partition1 ~/vmdisk_1 sudo mount ~/vmdisk/Partition2 ~/vmdisk_2
发现EntireDisk挂载失败,Partition1中的内容不是我想要的,Partition2中是Windows7虚拟机中的文件,正是我想要的。从vmdisk_fs中复制出我们的目标SAM文件:
cp ~/vmdisk_2/Windows/System32/config/SAM ./
顺便把SYSTEM文件也复制出来:
cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./
查看SAM文件的内容,如下图所示,竟然不是纯文本文件,果然是Windows的风格,
好吧,虽然成功打开了SAM文件,但我们还是没有得到hash,接下来改怎么办?只能借助工具解析SAM文件内容了。把SAM文件和SYSTEM文件都搞到Kali中,运行命令:
samdump2 -o sam.hash SYSTEM SAM
Ezután nézzük meg a sam.hash fájlt, ahol láthatjuk az egyes felhasználók bejelentkezési jelszavainak hash értékét. A sam.hash fájlban minden sor egy felhasználót jelent, és minden sor formátuma a következő:
Felhasználó neve: RID: LM-hash érték: NTLM-hash érték
Figyelem: ez a formátum a samdump2 parancs kimenetének formátuma, nem a „Windows alatti hash jelszó formátuma”.
Először is szükségünk van egy Linuxot futtató számítógépre, ami könnyen megoldható egy virtuális gép használatával. Ezután futtassuk a következő parancsot egy új felhasználó hozzáadásához és jelszó beállításához, amit feltörhetünk:
sudo adduser justforfun
A Linuxban a felhasználók bejelentkezési jelszavainak hash értékei a /etc/shadow fájlban tárolódnak (figyelem: nem a /etc/passwd-ben), és az alábbi paranccsal nézhetjük meg az újonnan létrehozott felhasználó bejelentkezési jelszavának hash értékét:
test@test-VirtualBox:~$ sudo tail -n 1 /etc/shadow Csak szórakozásból:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
A tail parancsot a fájl utolsó sorainak olvasására használjuk, alapértelmezetten 10 sort olvas, a -n paraméterrel megadhatjuk a sorok számát. Az újonnan létrehozott felhasználó természetesen az utolsó sorban van, ezért a tail -n 1 paranccsal olvassuk ki. Az eredmény „:”-val elválasztott adatok, az első rész a felhasználóneve „justforfun”, a második rész a jelszó hash értéke, a többi rész nem érdekes ebben a cikkben. A második részt fogjuk részletesebben tanulmányozni.
A „$6$” a „” elején azt jelenti, hogy a használt hash funkció típusa SHA-512. A „$6$”-on kívül a Linuxban a „$1$” az MD5-et jelenti, a „$2a$” a Blowfish-et, a „$2y$” a Blowfish-et (8 bites karakterek helyes kezelésével), a „$5$” pedig a SHA-256-ot. Részletek a Wikipédián: passwd. Ezenkívül a /etc/login.defs fájl is tartalmaz magyarázatot a hash algoritmusokról. A „$6$”-től a következő „$”-ig terjedő rész, „0fokwg59”, a só (SALT). Mi a só? A Baidu Zhidao CNB2009 válasza a „ Mi az MD5 sóérték? ” kérdésre egyszerű és érthető:
Röviden, ez egy mód a hasonló jelszavak különböző hash értékekkel történő ellátására, a sózással. Az MD5 önmagában nem visszafordítható, de jelenleg sok adatbázis támogatja a visszakeresést. Ha a felhasználói jelszavak adatbázisa véletlenül kiszivárgott, a hackerek visszakereséssel megszerezhetik a felhasználók jelszavait, vagy a gyakran előforduló hash kódokat (amelyeket sokan használnak) erőszakos támadással feltörhetik (mivel ezek általában gyenge jelszavak).A sóérték egy további véletlenszerű érték, amelyet a jelszó hash-elése során adnak hozzá. Például, ha az én azonosítóm „Epω倒④ゞ”, a jelszavam „123456”, akkor amikor az adatbázisban tároljuk, a „123456/Epω倒④ゞ” karakterláncot használjuk a hash-eléshez, és amikor a jelszót ellenőrizzük, a „(ellenőrizendő jelszó)/Epω倒④ゞ” karakterláncot használjuk. Ily módon, ha egy másik felhasználó ugyanazt a „123456” jelszót használja, mégis különböző hash-értékeket hozhat létre, és sikeresen hitelesítheti a jelszót. Ebben az esetben az én azonosítóm a sóérték, amelyet a jelszó komplex hash-eléséhez használok. Tehát... a sóérték csökkenti az adatbázis kiszivárgásából eredő károkat. Ha nagyon jó a szerencséd, és kitalálod a „123456” jelszót, akkor sem tudok ezt megakadályozni
. A válasz az md5-re vonatkozik, de más hash-funkciókra is ugyanígy érvényes. A hash-érték a második résztől kezdődik. Most másoljuk át az egész második részt a „linux.hash” fájlba. A „linux.hash” fájl tartalma a következő:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0
Ezután a következő paranccsal törhetjük fel a linuxos bejelentkezési jelszó hash-ét:
hashcat -w 3 -a 0 -m 1800 --remove -o linux.out linux.hash wordlist.dic
Pár pillanat múlva a támadás befejeződik, és megnézzük az eredményeket:
werner@Yasser:~/hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
Láthatóan a támadás sikeres volt.
Először is szükségünk van MySQL-re. Éppen van egy a virtuális gépemben. A Baidu szerint a MySQL bejelentkezési jelszó hash-ét a user.MYD fájlban tárolják. Hol van a user.MYD fájl? Nem tudom, keressük meg:
test@test-VirtualBox:~$ sudo find / -name user.MYD /var/lib/mysql/mysql/user.MYD
megtalálta, a /var/lib/mysql/mysql/user.MYD-ben, nézzük meg a fájl tartalmát:
sudo cat /var/lib/mysql/mysql/user.MYD
nem egy szöveges fájl, de nem gond, még mindig látható a root felhasználó bejelentkezési jelszavának hash értéke:
6B825255FB466413D6B1B724644E23428C94BBCB
Mentse ezt az értéket a mysql.hash fájlba, és használja az alábbi parancsot a MySQL bejelentkezési jelszó hash feltöréséhez:
hashcat -w 3 -a 0 -m 300 --remove -o mysql.out mysql.hash wordlist.dic
Pár perc múlva a feltörés befejeződik, nézzük meg az eredményt:
werner@Yasser:~/hashcat$ cat mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb:viper
Láthatóan a támadás sikeres volt.
A Discuz! Kína híres php fórumprogramja, melyet széleskörűen használnak. Most támadjuk meg a Discuz! felhasználók jelszavainak hash értékeit. Először meg kell találnunk a hash értékeket, de hol? Természetesen a Discuz! adatbázisából.
De hol van a Discuz! adatbázis? Én így oldottam meg: letöltöttem a legújabb Discuz! forráskódot a hivatalos weboldalról, futtattam a telepítést, és megkaptam a Discuz! adatbázist
A Discuz! alapértelmezett adatbázisának neve ultrax, ahol a pre_ucenter_members tábla tárolja a bejelentkezési jelszavak hash értékeit, a „pre_” az alapértelmezett előtag, melyet a telepítés során lehet módosítani, az „ucenter_members” pedig nem változik.A következő SQL-utasításokkal lekérdezheti a bejelentkezési jelszavak hash-értékeit:
select password,salt from pre_ucenter_members;
A hash-értékek és a sóértékek mentése fájlba:
echo 69bcba126b93c6f397983629a0f70553:c13fd9 > discuz.hash
A hash-értékek és a sóértékek ugyanabban a sorban vannak, „:”-val elválasztva. Végül a következő paranccsal törheti fel a Discuz bejelentkezési jelszavak hash-ét:
hashcat -w 3 -a 0 -m 2611 --remove -o discuz.out discuz.hash wordlist.dic
Röviddel később a feltörés befejeződik, és megtekintheti az eredményeket:
werner@Yasser:~/hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553:c13fd9:winter
Láthatóan a támadás sikeres.
Eddig csak egy 500 szavas kis szótárat használtunk, és minden alkalommal sikeresen feltörtünk különféle hasheket, nem furcsa ez? Ez azért van, mert a hashcat használatának gyakorlása közben szándékosan gyenge jelszavakat helyeztem a szótárba, különben nem lenne olyan jó a hangulat. A valóságban nem lehet ilyen jó szerencsénk. Számoljuk ki egy nem annyira gyenge jelszó md5 értékét, és támadjuk meg nagy szótárral, hogy kipróbáljuk a szerencsénket, és megnézzük, milyen gyors a hashcat.
Először számoljuk ki az md5 értéket:
import hashlib
md5 = hashlib.md5()
md5.update(" werner123456!!! ")
print md5.hexdigest() A kimenet:
b17133f9abff287ed0546c1af2b171f7
Ezután válasszon egy 10,5 GB-os méretű, ahol 940 millió jelszó van a szótárban, és kezdje el a feltörést:
hashcat -w 3 -a 0 -m 0 --remove -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Megjegyezte, hogy ha csak egy hash érték van, akkor nem kell a fájlba menteni, közvetlenül a parancssori paraméterekbe is be lehet írni. Azelőtt lefekvés előtt elkezdte a feltörést, másnap reggel megnézte az eredményeket, és azt látta, hogy:
Elkezdett: sze júl 26 22:55:27 2017 Leállt: sze júl 26 23:02:28 2017
Csak 7 percig tartott! Azt hittem, 7 óráig fog tartani, 60-szor gyorsabb volt, mint amire számítottam! Kicsit sajnálatos, hogy nem sikerült feltörni a hash értéket, úgy tűnik, hogy a „werner123456!!!” nem volt a jelszó szótárban.Úgy tűnik, hogy szükségem van egy 100 G-os jelszó-szótárra, de egy ilyen nagy szótár tárolása és áthelyezése nem túl praktikus. Van más mód is? Természetesen van. Emlékszik még a támadási módokra? Mindig a „Straight” módot használtuk. Most tanulmányozzuk a többi módot is.
A hashcat használatához először a hasht kell megtalálni. A különböző rendszerekben és szoftverekben a hashek eltérő helyen tárolódnak, ezért pontosan meg kell találni a hashet. Másodszor helyesen kell azonosítani a hashtípust, és meg kell bizonyosodni róla, hogy a hashcat támogatja-e ezt a hasht. A -m paramétert is helyesen kell kiválasztani, különben szinte lehetetlen a siker. Harmadszor a jelszó-szótár kell, hogy jó legyen. A sikeres támadás a szótáron múlik. Bár a jelszó-szótár nem lehet túl nagy, de jobb, ha nagyobb. A hashcat a sebességéről híres, és a nagy szótár nem jelent problémát a hashcat számára. Itt van egy jó szótár: Korábbi adatlopások + gyakori gyenge jelszavak gyűjteménye. 7Z , a tömörítési jelszó: anywlan. Ha sok kis szótárt gyűjtöttünk, egyesíthetjük, rendszerezhetjük és kiszűrhetjük a duplikátumokat egy nagyobb szótár létrehozásához a hashcat támadáshoz. Ha a kis szótárak ugyanabban a könyvtárban vannak, egy paranccsal el tudjuk intézni:
cat * | sort | uniq > Merge.dic
Ha a kis szótárak kategóriák szerint vannak rendezve, több könyvtárban is megtalálhatók? A cat parancs ezt nem teszi lehetővé, de valójában csak egy parancsra van szükség. Tegyük fel, hogy a kis szótárak a MyDictionary könyvtárban találhatók, akkor a parancs a következő lehet:
find ./MyDictionary -type f -exec cat {} \; | sort | uniq > Merge.dic