W etycznym hakowaniu i testach penetracyjnych łamanie haseł ma kluczowe znaczenie dla uzyskania dostępu do systemu lub serwera.
W systemach i bazach danych hasła rzadko są zapisywane w postaci zwykłego tekstu.
Hasła są zawsze haszowane przed zapisaniem w bazie danych, a hash jest porównywany podczas procesu weryfikacji.
W zależności od zastosowanego szyfrowania różne systemy przechowują skróty haseł na różne sposoby. A jeśli masz skróty, możesz łatwo złamać dowolne hasło.
W tym artykule dowiemy się, jak łamać skróty haseł za pomocą poręcznego i doskonałego narzędzia wiersza poleceń Hashcat.
Więc zacznijmy.
Ale przed tym…
Spis treści:
Co to jest funkcja skrótu?
Haszowanie to proces przekształcania zwykłego tekstu wejściowego w ciąg tekstowy o stałym rozmiarze za pomocą funkcji matematycznej znanej jako funkcja mieszająca. Dowolny tekst, niezależnie od długości, może zostać zamieniony w losową kombinację liczb całkowitych i alfabetów za pomocą algorytmu.
- Wejście odnosi się do wiadomości, która zostanie zaszyfrowana.
- Funkcja skrótu to algorytm szyfrowania, taki jak MD5 i SHA-256, który konwertuje ciąg na wartość skrótu.
- I wreszcie wynikiem jest wartość skrótu.
Co to jest haszysz?
haszysz to najszybsze narzędzie do odzyskiwania hasła. Został zaprojektowany do łamania bardzo złożonych haseł w krótkim czasie. A to narzędzie jest również zdolne do ataków z użyciem listy słów i brutalnej siły.
Hashcat ma dwa warianty. Oparte na CPU i GPU (Graphical Processing Unit). Narzędzie oparte na GPU może złamać skróty w krótszym czasie niż procesor. Możesz sprawdzić wymagania sterownika GPU na ich oficjalnej stronie internetowej.
Cechy
- Bezpłatne i open-source
- Można zaimplementować ponad 200 odmian typu hash.
- Obsługuje wiele systemów operacyjnych, takich jak Linux, Windows i macOS.
- Dostępne są wieloplatformy, takie jak obsługa procesorów CPU i GPU.
- W tym samym czasie można złamać wiele skrótów.
- Obsługiwane są pliki soli szesnastkowych i zestawów znaków szesnastkowych, wraz z automatycznym dostrajaniem wydajności.
- Dostępny jest wbudowany system testów porównawczych.
- Rozproszone sieci crackujące mogą być obsługiwane za pomocą nakładek.
Możesz zobaczyć inne funkcje również z ich strony internetowej.
Instalacja Hashcat
Najpierw upewnij się, że Twój system Linux jest na bieżąco z najnowszymi programami i narzędziami.
W tym celu otwórz terminal i wpisz:
$ sudo apt update && sudo apt upgrade
Hashcat jest zwykle preinstalowany w Kali Linux. Możesz znaleźć narzędzie w sekcji łamania haseł. Ale jeśli musisz zainstalować go ręcznie w dowolnej dystrybucji Linuksa, wpisz następujące polecenie w terminalu.
$ sudo apt-get install hashcat
Wykorzystanie narzędzi
Aby rozpocząć korzystanie z Hashcat, potrzebujemy kilku skrótów haseł. Jeśli nie masz skrótu do złamania, najpierw utworzymy kilka skrótów.
Aby utworzyć skróty za pomocą wiersza poleceń, postępuj zgodnie z poniższym formatem.
echo -n "input" | algorithm | tr -d "-">>outputfiename
Na przykład możesz zobaczyć, że zamieniłem niektóre słowa na skróty za pomocą algorytmu md5 poniżej.
┌──(root💀kali)-[/home/writer/Desktop] └─# echo -n "newsblog.pl" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt
A wynik zostanie zapisany w pliku crackhash.txt.
Teraz sprawdzimy hash, które zostały zapisane w podanym pliku.
┌──(root💀kali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
Widzisz, teraz mamy kilka skrótów do złamania. Jest to procedura tworzenia skrótu przy użyciu wybranego algorytmu.
Następnym krokiem jest uruchomienie narzędzia Hashcat na komputerze z systemem Linux. Wystarczy użyć następującego polecenia, aby użyć Hashcat.
$ hashcat --help
Wyświetli wszystkie opcje, które musisz znać, aby uruchomić narzędzie. Na terminalu znajdziesz wszystkie tryby ataku i haszowania.
Ogólna forma polecenia to
$ hashcat -a num -m num hashfile wordlistfile
Tutaj 'num’ reprezentuje konkretny atak i tryb skrótu do użycia. Przewijając terminal, możesz znaleźć dokładne liczby dla każdego ataku i trybu skrótu, jak dla md4 – liczba to 0, a dla algorytmu sha256 – liczba to 1740.
Lista słów, której zamierzam użyć, to lista słów rockyou. Możesz łatwo znaleźć tę listę słów w ścieżce /usr/share/wordlists.
Możesz nawet użyć polecenia zlokalizować, aby znaleźć tę ścieżkę listy słów.
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
I na koniec, aby złamać skróty za pomocą pliku listy słów, użyj następującego polecenia.
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
Po uruchomieniu tego polecenia może pojawić się błąd w czasie wykonywania (Błąd wyjątku długości tokena), który można łatwo rozwiązać.
Aby rozwiązać ten problem, zapisz każdy skrót osobno w innym pliku. Ten błąd występuje, jeśli masz niską prędkość procesora lub karty graficznej. Jeśli Twój komputer ma szybki procesor, możesz łatwo złamać wszystkie skróty w tym samym czasie, co sam plik.
Więc po naprawieniu błędu i wszystkiego wynik będzie taki.
┌──(root💀kali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021
W powyższym wyniku, po szczegółach pamięci podręcznej słownika, możesz zauważyć, że hash został złamany, a hasło zostało ujawnione.
Wniosek
Mam nadzieję, że lepiej zrozumiałeś, jak używać Hashcata do łamania haseł.
Możesz również zainteresować się różnymi narzędziami brute-force do testów penetracyjnych i niektórymi z najlepszych narzędzi do testów penetracyjnych.