Funkcja skrótu to ogólna nazwa dla rodzaju funkcji. Wejściem tego typu funkcji są dowolne dane binarne, a wyjściem są dane binarne o stałej długości, ten typ funkcji ma następujące cechy:
Jednokierunkowość: Obliczenie wyjścia z wejścia jest proste i szybkie, ale odwrócenie wejścia z wyjścia jest matematycznie niemożliwe
Ograniczenie kolizji: Niezwykle trudno jest znaleźć dwa różne wejścia o tym samym wyjściu
Funkcje spełniające te cechy można nazwać funkcjami skrótu. Pewne dane są wykorzystywane jako dane wejściowe funkcji skrótu w celu obliczenia danych wyjściowych. To wyjście jest zwyczajowo nazywane wartością skrótu danych.
Główną funkcją funkcji skrótu jest bezpieczne przechowywanie haseł. Zamiast zapisywać hasła bezpośrednio (to znaczy nie przechowywać haseł w zwykłym tekście), zapisuje wartość skrótu hasła. Podczas weryfikacji wystarczy ponownie obliczyć wprowadzone hasło. Porównaj wartość skrótu z wartością skrótu zapisanego hasła, aby dowiedzieć się, czy hasło jest prawidłowe. Ze względu na jednokierunkowość funkcji skrótu i ograniczenia kolizji, nawet jeśli atakujący uzyskuje wartość skrótu hasła, trudno jest poznać samo hasło.
Atakujący uzyskał wartość skrótu hasła. Czy naprawdę nie ma możliwości poznania samego hasła? Oczywiście, że nie. Chociaż bezpośrednie obliczenie samego hasła na podstawie jego wartości skrótu jest matematycznie niemożliwe, wiemy, że funkcja skrótu jest prosta i szybka do obliczenia wyjścia na podstawie danych wejściowych. W najgorszym przypadku możesz spróbować. Jedyne hasła, które ludzie mogą ustawić, to te, wypróbuj je jedno po drugim, jeśli masz szczęście, nadal możesz spróbować. Operacja ciągłej próby uzyskania danych wejściowych odpowiadających wartości skrótu nazywana jest wybuchem.
W oparciu o ten pomysł powstał hashcat. Mówi się, że hashcat powstał, aby udowodnić, że eksplozja hash jest bardzo prosta. hashcat twierdzi, że jest najszybszym na świecie narzędziem do wybuchu skrótu, a nawet obsługuje procesory graficzne i FGPA, jeśli masz je.
hashcat jest nie tylko szybki, ale także profesjonalnie obsługuje ponad dwieście funkcji hash. Użyj poleceń:
hashcat - -help
Możesz zobaczyć listę wszystkich funkcji hash obsługiwanych przez hashcat. Jest ich zbyt wiele i nie zamieszczę ich tutaj.
hashcat jest domyślnie zainstalowany w Kali i można go używać bezpośrednio. Ale mój Kali jest zainstalowany w VirtualBox i zawsze mam wrażenie, że maszyna wirtualna jest wolniejsza, więc chcę używać Hashcata w hoście fizycznym. Najpierw przejdź do oficjalnej strony internetowej hashchat, aby pobrać hashcat. Jak dotąd najnowsza wersja to wersja 3.5.0, wydana 05.04.2017. Z daty aktualizacji widać, że hashchat jest pełen witalności. Uoszczędzając kłopotów z kompilacją, pobierz bezpośrednio pakiet binarny, który ma zaledwie 2,7 miliona, co jest bardzo małe w porównaniu z grami, które często kosztują dziesiątki gigabytów.
Po zakończeniu pobrania rozpakuj hashcat i zobacz:
Takie pliki to 32-bitowe i 64-bitowe pliki wykonywalne w systemie linux i windows. Wybierz jeden z nich w zależności od sytuacji swojego komputera. Wybrałem hashcat64.bin. Dla piękna dodałem wiersz do pliku ~ /. bashrc:
alias hashcat = ' ścieżka do hashcat64.bin '
Po zapisaniu otwórz ponownie terminal wirtualny, aby plik ~ /. bashrc zaczął działać. W ten sposób, bez względu na to, gdzie się znajdujesz, po prostu wprowadź polecenie hashcat bez zmiany katalogów lub wprowadzania brzydkiego „ 64.bin ", jak pokazano na poniższym rysunku.
OK, teraz możesz zacząć używać Hashcata do wysadzania różnych skrótów.
MD5 powinno być jedną z najsłynniejszych i najczęściej używanych funkcji skrótu. Najpierw użyj Pythona, aby wygenerować kilka wartości MD5 do wybuchu. Kod jest następujący:
import hashlib Hasła = [' 123123 ', ' bond007 ', ' xxxxxx ', ' *H@ & (NT*@BR#^ '] dla hasła w hasłach: MD5 = hashlib.MD5 () MD5.update (hasło) print MD5.hexdigest ()
Powyższy kod oblicza wartości skrótu czterech ciągów, a wynik wyjściowy to:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
Zapisz wynik wyjściowy w pliku MD5.hash, po jednej wartości hahs na wiersz. Następnie użyj hashcat, aby wysadzić te wartości skrótu. Polecenie jest następujące:
hashcat -w 3 -a 0 -m 0 - -Usuń -o MD5.out MD5.hash wordlist.dic
Parametr-w służy do określenia trybu pracy. Istnieją cztery typy, jak pokazano w poniższej tabeli:
| N | Wydajność | Czas wykonywania | Zużycie energii | Wpływ na pulpit |
|---|---|---|---|---|
| 1 | Niski | 2 ms | niska | minimalna |
| 2 | domyślna | 12 ms | ekonomiczna | zauważalna |
| 3 | wysoka | 96 ms | Wysoki | Nie odpowiada |
| 4 | Koszmar | 480 ms | Szalony | Bez głowy |
Parametr-a służy do określenia trybu ataku. Znaczenie 0 jest bezpośrednie i ciągłe, co oznacza, że słownik haseł służy do eksplozji. Istnieje pięć wartości-a, jak pokazano w poniższej tabeli:
| N | tryb |
|---|---|
| 0 | proste |
| 1 | kombinacja |
| 3 | brutal-force |
| 6 | Hybrydowa lista słów + maska |
| 7 | Hybrydowa maska + lista słów |
-m służy do określenia skrótu do wybuchu Funkcja skrótu wartości, 0 oznacza, że funkcją skrótu jest MD5. Pozostałe wartości pokazano w poniższej tabeli:
| N | nazwa | kategoria |
|---|---|---|
| 0 | MD5 | Surowy skrót |
| 300 | MySQL4.1/MySQL5 | Serwer bazy danych |
| 1000 | NTLM | Systemy operacyjne |
| 1800 | sha512crypt $6$, SHA512 (Unix) | Systemy operacyjne |
| 2611 | vBulletin < v3.8.5 | Fora, CMS, handel elektroniczny, Frameworks |
Ta tabela jest zbyt długa. Pokażę tylko kilka funkcji skrótu wymienionych w tym artykule. Wszystkie można zobaczyć za pomocą parametru – pomoc.
Parametr – Usuń oznacza, że jeśli wartość skrótu zostanie pomyślnie rozbita, wartość zostanie usunięta z MD5.hash.
Po parametrze-o następuje nazwa pliku wskazująca miejsce zapisania wyników strzału.
Ostatnie dwa parametry MD5.hash i wordlist.dic to odpowiednio wartość skrótu i słownik haseł, które mają zostać wysadzone. Wartość skrótu i słownik haseł są po jednym wierszu. Zawartość w MD5.hash została obliczona przez Python. Jeśli nie masz pod ręką odpowiedniego słownika haseł, możesz użyć polecenia:
wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Prawdopodobnie brakuje jakiegoś środowiska operacyjnego, więc po prostu go zainstaluj. W sumie zainstalowałem te rzeczy:
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
Jeśli prędkość sieci jest dobra, zostanie zainstalowana w krótkim czasie. Pierwsze polecenie zgłasza błąd:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 jest nie a symboliczny link /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 jest nie a symboliczny link
Ale wydaje się, że to na nic nie wpływa, po prostu zignoruj to. Po ich zainstalowaniu ponownie naciśnij nacisk Enter i uruchom polecenie, które pierwotnie zgłosiło błąd. Stwierdzono, że błąd nie został ponownie zgłoszony, a wykonanie zostało zakończone w mgnieniu oka. Po wykonaniu polecenia sprawdź zawartość plików MD5.hash i MD5.out i okaże się, że w MD5.hash pozostał tylko jeden skrót. Trzy skróty, które zostały pomyślnie wysadzone, zostały przeniesione do pliku MD5.out. w MD5.out są trzy wartości skrótu i ich wartości oryginalne, jak pokazano na poniższym rysunku:
Wartość skrótu hasła logowania w systemie Windows jest zapisana w pliku SAM, SAM to skrót od „security account manager ". Zazwyczaj znajduje się w
C: \Windows\system32\config\SAM
Plik SAM jest chroniony przez system Windows i nie można go odczytać bezpośrednio. Wymaga narzędzia, takiego jak SAMInside. Znajdź maszynę wirtualną z systemem Windows 7, utwórz nowego użytkownika administratora o imieniu hashcat i ustaw hasło. Pobierz i rozpakuj SAMInside w systemie Windows 7, uruchom ją z uprawnieniami administratora, a następnie kliknij Plik- > Importuj użytkowników lokalnych vis Scheduler, jak pokazano poniżej Jak pokazano na rysunku:
Potem SAMInside może „nie odpowiadać ", ale to nie ma znaczenia, cierpliwie poczekaj kilka sekund, a SAMInside spełni oczekiwania i odczyta hash, który chcemy, jak pokazano na poniższym rysunku:
Wybierz użytkownika „hashcat", którego hasło chcemy wybuchnąć, naciśnij Ctrl +5, aby skopiować NT-hash, a następnie wróć do Ubuntu z zainstalowanym hashcatem, użyj następującego polecenia, aby zapisać skopiowaną wartość hash w pliku win7.hash:
echo 356CEAE0C89FB65ED6D6AA7A445C4CE5 > win7.hash
356ceae0c89fb65ed6d6aa7a445c4ce5: rush2112
Jak uzyskać plik SAM, zapoznaj się z „Jak eksportować serię hash systemu Windows 1 ". Poniżej znajduje się proces odczytu pliku SAM z maszyny wirtualnej Windows 7.
Jeśli jest to maszyna fizyczna, użyj Win PE, aby uruchomić maszynę i przeczytać plik SAM na dysku. Moja jest maszyną wirtualną. Mocowanie plików dysku wirtualnego do systemu plików może odczytać pliki na dysku wirtualnym. Maszyna wirtualna, której używam, to VirtualBox i można to zrobić za pomocą polecenia vdfuse. Jeśli nie masz vdfuse, musisz najpierw zainstalować virtualbox-fuse:
sudo apt-get install virtualbox-fuse
Możesz także pobrać pakiet instalacyjny virtualbox-fuse i zainstalować go samodzielnie.
Po zakończeniu instalacji pojawia się polecenie vdfuse, które może rozpocząć mapowanie i montaż dysku wirtualnego:
mkdir -p ~ /vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~ /vmdisk/
Po wykonaniu tego kroku sprawdź katalog ~ /vmdisk, w którym znajdują się trzy pliki: EntireDisk, Partition1 i Partition2, nowy katalog:
mkdir -p ~ /vmdisk_en mkdir -p ~ /vmdisk_1 mkdir -p ~ /vmdisk_2
Użyj polecenia mount, aby zamontować odpowiednio trzy pliki EntireDisk, Partition1 i Partition2:
sudo mount ~ /vmdisk/EntireDisk ~ /vmdisk_en sudo mount ~ /vmdisk/Partition1 ~ /vmdisk_1 sudo mount ~ /vmdisk/Partition2 ~ /vmdisk_2
Stwierdzono, że mocowanie całego dysku nie powiodło się, a zawartość w Partition1 nie była tym, czego chciałem. Partition2 to plik z maszyny wirtualnej Windows 7, dokładnie tego, czego chciałem. Skopiuj nasz docelowy plik SAM z vmdisk_fs:
cp ~ /vmdisk_2/Windows/System32/config/SAM . /
Przy okazji skopiuj także plik systemowy:
cp ~ /vmdisk_2/Windows/System32/config/SYSTEM . /
Sprawdzając zawartość pliku SAM, jak pokazano na poniższym rysunku, okazuje się, że nie jest to plik zwykłego tekstu. Rzeczywiście jest to styl systemu Windows.
Cóż, chociaż plik SAM został pomyślnie otwarty, ale nadal nie otrzymujemy skrótu, co powinniśmy zrobić, jeśli go zmienimy dalej? Możesz użyć jedynie narzędzi do analizy zawartości pliku SAM. Umieść zarówno plik sam, jak i plik SYSTEM w Kali i uruchom polecenie:
samdump2 -o sam.hash SYSTEM sam
Następnie sprawdź sam.hash, a także możesz zobaczyć wartość skrótu hasła logowania każdego użytkownika. Każdy wiersz w pliku sam.hash to użytkownik, a format każdego wiersza to:
Nazwa użytkownika: RID:LM-hash value: NTLM-hash value
Należy pamiętać, że ten format jest formatem wyjściowym polecenia samdump2, a nie „formatem hasła skrótu w systemie Windows ".
Przede wszystkim musisz mieć komputer z systemem linux. Łatwo to powiedzieć, wystarczy maszyna wirtualna. Następnie uruchom następujące polecenie, aby dodać nowego użytkownika i ustawić hasło do wybuchu:
sudo adduser justforfun
Wartość skrótu hasła logowania użytkownika w systemie linux jest przechowywana w pliku/etc/shadow (uwaga: nie/etc/passwd), użyj następującego polecenia, aby wyświetlić wartość skrótu hasła logowania nowego użytkownika:
test@test-VirtualBox: ~ $ sudo tail -n 1 /etc/shadow justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
Polecenie tail służy do odczytu ostatnich wierszy pliku, domyślnie 10 wierszy, określ liczbę wierszy za pomocą parametru-n. Użytkownik, który właśnie utworzyliśmy, znajduje się naturalnie w ostatnim wierszu, dlatego używamy tail-n 1 do odczytu. Wyniki odczytu to dane podzielone na „:”. Pierwsza część to nazwa użytkownika „justforfun”, druga część to wartość skrótu hasła, a pozostałe części nie muszą się martwić w tym artykule. Skoncentrujemy się na drugiej części.
„$6$ "na początku oznacza, że typ użytej funkcji skrótu to SHA512. Oprócz „$6$" w systemie linux „$1$ "odnosi się do MD5, „$2a$" odnosi się do Blowfish, „$2y$ "odnosi się do Blowfish (Prawidłowe obsługa znaków 8-bitowych), „$5$" Odnosi się do SHA256, szczegóły w Wikipedii: passwd. Ponadto plik/etc/login.defs opisuje również algorytm skrótu.
Część „0fokwg59 "od początku „$6$" do następnego „$ "to sól. Co to jest sól? Baidu wie, że odpowiedź CNB2009 na pytanie „ Jaka jest wartość soli MD5 "jest prosta i łatwa do zrozumienia:
Mówiąc najprościej, jest to sposób, aby to samo hasło miało różne wartości skrótu, czyli solenie. Sam MD5 jest nieodwracalny, ale obecnie w Internecie istnieje wiele baz danych obsługujących odwrotne zapytania. Jeśli baza danych haseł użytkownika przypadkowo wycieka, hakerzy mogą uzyskać hasło użytkownika za pomocą odwrotnego zapytania lub wykorzystać kod haszowy, który często pojawia się w bazie danych (tj. używany przez wiele osób) do łamania brute force (ponieważ zwykle jest to słabe hasło). Wartość soli to dodatkowa losowa wartość dodana podczas procesu skrótowania hasła. Na przykład mój identyfikator to epilepsja, a hasło to 123456. Gdy jest przechowywane w bazie danych, mogę skrótować ciąg „123456/epilepsja ". Podczas weryfikacji hasła używa się również ciągu „ (hasło do weryfikacji) /epilepsja ④" do weryfikacji. W ten sposób, gdy hasło innego idiota to 123456, nadal można skonstruować różne wartości skrótu i pomyślnie je zweryfikować. W tym momencie mój identyfikator jest wykorzystywany jako wartość soli do złożonego haszowania hasła. Więc co?. Rolą wartości soli jest zmniejszenie strat spowodowanych naruszeniem bazy danych. Jeśli Twój RP jest bardzo dobry i zgadniesz, że moje hasło to 123456, nie mogę Cię powstrzymać
Ta odpowiedź dotyczy MD5 i to samo dotyczy innych funkcji skrótu. Część po soli to wartość skrótu. Teraz skopiuj całą drugą część do pliku linux.hash, zawartość w linux.hash powinna brzmieć:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0
Następnie wysadź hasło logowania do Linuksa za pomocą następującego polecenia:
hashcat -w 3 -a 0 -m 1800 - -remove -o linux.out linux.hash wordlist.dic
Po chwili wybuch jest zakończony, zobacz wynik:
werner@Yasser: ~ /hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
Widać, że wybuch zakończył się sukcesem.
Najpierw musisz mieć Mysql. Tak się składa, że mam to na mojej maszynie wirtualnej. Baidu wie, że wartość skrótu hasła logowania Mysql jest zapisana w pliku user.MYD. Gdzie jest plik user.MYD? Ja też nie wiem, po prostu szukam:
test@test-VirtualBox: ~ $ sudo find / -name Użytkownik.myd /var/lib/mysql/mysql/user.MYD
Znaleziono to w/var/lib/mysql/mysql/user.MYD. Zobacz zawartość pliku:
sudo cat /var/lib/mysql/mysql/user.MYD
Nie jest to zwykły plik tekstowy, więc ma to niewiele wspólnego. Nadal widać, że wartość skrótu hasła logowania root użytkownika to:
6B825255FB466413D6B1B724644E23428C94BBCB
Zapisz tę wartość w pliku mysql.hash, użyj następującego polecenia, aby wysadzić hasło logowania mysql hash:
hashcat -w 3 -a 0 -m 300 - -usunąć -o mysql.out mysql.hash wordlist.dic
Po chwili wybuch zakończył się, zobacz wynik:
werner@Yasser: ~ /hashcat$ kot mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb: viper
Widać, że wybuch zakończył się sukcesem.
Discuz! Jest to dobrze znany program forum php w Chinach i jest szeroko stosowany. Teraz wysadźmy Discuz! Wartość skrótu hasła użytkownika. Najpierw musisz znaleźć wartość skrótu. Gdzie ją znaleźć? Oczywiście z Discuz! w bazie danych.
Można to zdyskuzować! Gdzie jest baza danych? Tak to rozwiązałem, pobierz najnowszą wersję Discuz z oficjalnej strony internetowej! Kod źródłowy, uruchom i zainstaluj, a otrzymasz Discuz! Baza danych
Discuz! Domyślna nazwa bazy danych to ultrax, a tabela pre_ucenter_members przechowuje wartość skrótu hasła logowania. „pre_ "to domyślny prefiks, który można zmienić podczas instalacji, ale „ucenter_members" się nie zmieni. Użyj następującej instrukcji sql, aby wyszukać wartość skrótu hasła logowania:
select password,salt from pre_ucenter_members;
Zapisz wartość skrótu i wartość soli do pliku:
echo 69bcba126b93c6f397983629a0f70553: c13fd9 > discuz.hash
Wartość skrótu i wartość soli są w tym samym wierszu, podzielone na ":". Na koniec użyj następującego polecenia, aby rozbić hasz hasła logowania Discuz:
hashcat -w 3 -a 0 -m 2611 - -Usuń -o discuz.out discuz.hash wordlist.dic
Po chwili wybuch zakończony, zobacz wynik:
werner@Yasser: ~ /hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553: c13fd9:winter
Widać, że wybuch zakończył się sukcesem.
Jak dotąd używamy małego słownika zawierającego zaledwie 500 słów. Za każdym razem pomyślne rozbicie różnych skrótów zajmuje tylko chwilę. Czy to nie jest dziwne? Dzieje się tak dlatego, że celowo ustawiłem słabe hasło w słowniku, aby ćwiczyć korzystanie z Hashcata, w przeciwnym razie nie byłoby źle, gdyby nie udało mi się go ujawnić. W praktyce nie można mieć takiego szczęścia. Obliczmy od niechcenia wartość MD5 mniej słabego hasła, wysadźmy dużym słownikiem, spróbujmy szczęścia z jednej strony, a zobaczmy, jak szybki może być hashcat z drugiej.
Najpierw oblicz wartość MD5:
import hashlib
MD5 = hashlib.MD5 ()
MD5.update (" werner123456!!! ")
print MD5.hexdigest () Wyjście to:
b17133f9abff287ed0546c1af2b171f7
Następnie wybierz słownik o rozmiarze 10,5G zawierający 940 milionów haseł i zacznij eksplodować:
hashcat -w 3 -A 0 -m 0 - -Usuń -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Należy pamiętać, że jeśli istnieje tylko jedna wartość skrótu, nie trzeba jej zapisywać w pliku i można ją zapisać bezpośrednio w parametrach wiersza poleceń. Zacząłem wybuchać przed pójściem spać. Następnego dnia obudziłem się, żeby zobaczyć wyniki i stwierdziłem:
Rozpoczęto: Śr Lip 26 22:55:27 2017 Zatrzymano: Śr Lip 26 23:02:28 2017
Okazało się, że zajęło to tylko 7 minut! Myślałem, że zajmie to 7 godzin, 60 razy szybciej niż się spodziewałem! Niestety wartość skrótu nie została pomyślnie wysadzona. Wygląda na to, że „werner123456!!! "nie znajduje się w słowniku haseł. Wygląda na to, że muszę przygotować słownik haseł 100G, ale zapisywanie i przenoszenie tak dużego słownika jest bardzo niewygodne. Czy nie ma innego sposobu? Oczywiście, pamiętasz tryb ataku? Używaliśmy trybu „prostego ". Następnie przyjrzyjmy się kilku innym trybom.
Aby użyć hashcat do wybuchu skrótu, pierwszym krokiem jest znalezienie właściwego skrótu. Różne systemy i różne oprogramowanie mają różne lokalizacje przechowywania skrótu, dlatego konieczne jest dokładne znalezienie wartości skrótu; Drugim jest prawidłowe określenie typu skrótu, ustalenie, czy hashcat obsługuje ten rodzaj skrótu i wybranie właściwego parametru-m, w przeciwnym razie sukces będzie prawie niemożliwy; Po trzecie, słownik haseł jest lepszy. To, czy ostatecznie uda się wybuchnąć, zależy od słownika. Chociaż większy słownik haseł nie jest lepszy, większy jest nadal lepszy. hashcat słynie również ze swojej szybkości. Duży słownik nie stanowi problemu dla Hashcata. Tutaj jest lepszy słownik: Poprzednie bramy wycieku + zbiór słowników słabych haseł powszechnie używanych. 7Z , hasło do dekompresji to: anywlan. Ponadto, jeśli zebrałeś wiele małych słowników, możesz połączyć, posortować i usunąć duplikaty małych słowników, aby uzyskać duży słownik, który będzie łatwy do eksploatacji hashcat. Jeśli mały słownik znajduje się w tym samym katalogu, możesz to zrobić za pomocą jednego polecenia:
cat * | sort | uniq > Merge.dic
Co jeśli mały słownik jest uporządkowany według kategorii i rozmieszczony w wielowarstwowym katalogu? Oczywiście użycie samego polecenia cat nie zadziała, ale w rzeczywistości wystarczy tylko jedno polecenie. Zakładając, że wszystkie małe słowniki są przechowywane w katalogu MyDictionary, polecenie można napisać w następujący sposób:
find . /MyDictionary -type f -exec cat {} \; | sortuj | uniq > Merge.dic