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. Dane, ten typ funkcji ma następujące cechy:
Jednokierunkowość: Obliczenie wyjścia z danych wejściowych jest proste i szybkie, ale odwrócenie danych wejściowych z danych wejściowych jest matematycznie niemożliwe
Ograniczenie kolizji: Niezwykle trudno jest znaleźć dwa różne dane wejściowe 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 zdobył 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 obliczania 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 wybuch hash jest bardzo prosty. 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 polecenia:
hashcat - -help
Możesz zobaczyć listę wszystkich funkcji hash obsługiwanych przez hashcat, jest ich zbyt wiele, żeby ich tutaj nie zamieścić.
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ą, możesz bezpośrednio pobrać 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:
Pliki takie jak 32-bitowe i 64-bitowe pliki wykonywalne w systemie linux i windows. Wystarczy wybrać 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 hash.
md5 powinna być jedną z najsłynniejszych i najczęściej stosowanych 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 - -remove -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 | niski | minimalny |
| 2 | domyślny | 12 ms | ekonomiczny | zauważalny |
| 3 | Wysoki | 96 ms | Wysoki | Nie odpowiada |
| 4 | Koszmar | 480 ms | Szalony | Bezgłowy |
Parametr-a służy do określenia trybu ataku, znaczenie 0 jest bezpośrednie i ciągłe, to znaczy użyj słownika haseł do eksplozji. Istnieje pięć wartości-a, jak pokazano w poniższej tabeli:
| N | Tryb |
|---|---|
| 0 | Prosto |
| 1 | Kombinacja |
| 3 | Brute-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, a pozostałe wartości pokazano w poniższej tabeli:
| N | nazwa | kategoria |
|---|---|---|
| 0 | MD5 | Raw Hash |
| 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żę tutaj tylko kilka funkcji skrótu, o których mowa w tym artykule. Możesz je zobaczyć za pomocą parametru – help.
Parametr – remove oznacza, że jeśli wartość skrótu zostanie pomyślnie wysadzona, wartość zostanie usunięta z md5.hash. Po parametrze
-o następuje nazwa pliku wskazująca, gdzie zapisane są wyniki wybuchu.
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 ona 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 użycia narzędzia, takiego jak SAMInside. Znajdź maszynę wirtualną z systemem Windows 7, utwórz nowego użytkownika administratora o nazwie hashcat i ustaw hasło. Pobierz i rozpakuj SAMInside w systemie Windows 7, uruchom ją z uprawnieniami administratora, a następnie kliknij Plik- > Import Local Users vis Scheduler, jak pokazano poniżej Jak pokazano na rysunku:
Po tym SAMInside może „nie odpowiedzieć ", ale to nie ma znaczenia, cierpliwie poczekaj kilka sekund, a SAMInside spełni nasze oczekiwania i odczyta hash, 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 {> hashcat -w 3 -a 0 -m 1000 - -remove -o win7.out win7.hash wordlist.dic
Wykonanie zakończyło się po chwili. Sprawdziłem plik win7.out i okazało się, że wybuch zakończył się pomyślnie. Hasło logowania użytkownika hashcat to rush2112:
werner@Yasser: ~ /hashcat$ cat win7.out
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 odczytać 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 pojawi 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ę, zawartość w Partition1 nie była tym, czego chciałem, Partition2 to plik z maszyny wirtualnej z systemem Windows 7, dokładnie tego, czego chciałem. Skopiuj nasz docelowy plik SAM z vmdisk_fs:
cp ~ /vmdisk_2/Windows/System32/config/SAM . /
Nawiasem mówiąc, skopiuj także plik systemowy:
cp ~ /vmdisk_2/Windows/System32/config/SYSTEM . /
Zobacz zawartość pliku SAM, jak pokazano na poniższym rysunku, nie jest to zwykły plik tekstowy. Rzeczywiście jest to w stylu systemu Windows,
Cóż, chociaż plik SAM został pomyślnie otwarty, nadal nie uzyskaliśmy skrótu. Co powinniśmy zrobić, jeśli go zmienimy dalej? Możesz użyć jedynie narzędzi do analizy zawartości pliku SAM. Załóż zarówno plik sam, jak i plik SYSTEM do Kali i uruchom polecenie:
samdump2 -o sam.hash SYSTEM sam
Następnie sprawdź sam.hash, możesz również 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
Uwaga Ten format jest formatem wyjściowym polecenia samdump2, a nie „formatem hasła haszowego w systemie Windows ".
3. Wybuch hasła logowania do Linuksa hash
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 Linuksie 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, więc użyj 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$ "zaczynające się od oznacza, że typ użytej funkcji skrótu to SHA-512. Oprócz „$6$" w systemie linux „$1$ "odnosi się do MD5, „$2a$" odnosi się do Blowfish, a „$2y$ "odnosi się do Blowfish (prawidłowe obsługa znaków 8-bitowych), „$5$" Odnosi się do SHA-256, 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, a inne funkcje skrótu to samo. 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 użyj następującego polecenia do wybuchu hasła logowania do Linuksa:
hashcat -w 3 -a 0 -m 1800 - -remove -o linux.out linux.hash wordlist.dic
Po chwili wybuch zakończył się, zobacz wynik:
werner@Yasser: ~ /hashcat$ cat linux.out
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
Widać, że wybuch zakończył się sukcesem.
4. Wybuch hasła logowania Mysql hash
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 user.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 i ma to niewiele wspólnego. Nadal widać, że wartość skrótu hasła logowania użytkownika root to:
6B825255FB466413D6B1B724644E23428C94BBCB
Zapisz tę wartość w pliku mysql.hash i użyj następującego polecenia, aby wysadzić hasz hasła logowania mysql:
hashcat -w { Po chwili wybuch zakończył się, zobacz wynik:
werner@Yasser: ~ /hashcat$ cat mysql.out
6b825255fb466413d6b1b724644e23428c94bbcb:viper
Widać, że wybuch zakończył się sukcesem.
5. Wybuch Discuz! Hasło forum
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 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 znajdują się w tym samym wierszu, podzielone przez ":". Na koniec użyj następującego polecenia, aby rozbić hasz hasła logowania Discuz:
hashcat -w 3 -a 0 -m 2611 - -remove -o discuz.out discuz.hash wordlist.dic
Po chwili wybuch zakończył się, zobacz wynik:
werner@Yasser: ~ /hashcat$ cat discuz.out
69bcba126b93c6f397983629a0f70553:c13fd9:winter
Widać, że wybuch zakończył się sukcesem.
6. Test dużego słownika
Jak dotąd używamy małego słownika zawierającego zaledwie 500 słów. Za każdym razem pomyślne wybuchnięcie 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 - -remove -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Zauważ, że jeśli istnieje tylko jedna wartość skrótu, nie musisz jej zapisywać w pliku, możesz 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
Stopped: Ś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.
7. Podsumowanie
Aby użyć hashcat do wybuchu skrótu, pierwszym krokiem jest znalezienie dokładnego skrótu. Różne systemy i różne oprogramowanie mają różne lokalizacje przechowywania skrótu i muszą dokładnie znaleźć wartość 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: Poprzednia brama wycieku + zbiór słowników powszechnie używanych słabych hasł.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