Przejdź do treści

~/cyberbezpieczenstwo cat narzedzie-do-hackowania-offline-….md

Hashcat — narzędzie do audytu haseł offline. Jak działa i jak go używać

Hashcat to najszybszy łamacz skrótów haseł działający offline na GPU. Wyjaśniamy tryby ataku, składnię poleceń i legalne zastosowania w audycie bezpieczeństwa.

CZCzarek Zawolski--aktualizacja=--czas=7 min--dział=Cyberbezpieczeństwo
Audyt siły haseł przy użyciu Hashcata na karcie graficznej
tldr.txt — W skrócie

~ xad tldr narzedzie-do-hackowania-of…

  • Hashcat odzyskuje hasło na podstawie jego skrótu (hasha), licząc skróty kandydatów na haśle i porównując je z celem — robi to offline, lokalnie, bez kontaktu z atakowanym systemem.
  • Siłę bierze z GPU: dobra karta liczy miliardy skrótów MD5/NTLM na sekundę, dlatego słabe hasła padają w minuty, a mocne pozostają poza zasięgiem.
  • Podstawowe tryby to atak słownikowy (-a 0), maska/brute force (-a 3) i hybrydowy (-a 6/-a 7); reguły (-r) rozszerzają słownik o typowe modyfikacje.
  • Każdy typ skrótu ma swój numer w opcji -m (np. 0 = MD5, 1000 = NTLM, 22000 = WPA). Dobór właściwego trybu to połowa sukcesu.
  • Legalny jest tylko audyt własnych lub zleconych systemów. Łamanie cudzych haseł bez pisemnej zgody to przestępstwo.
$ tree --spis-tresci

Hashcat to otwarte narzędzie do odzyskiwania haseł metodą offline — odtwarza hasło na podstawie jego skrótu kryptograficznego (hasha). Działa lokalnie na Twoim sprzęcie, licząc skróty kolejnych kandydatów i porównując je z celem; nie łączy się z atakowanym systemem i nie „zgaduje” przez formularz logowania. Dzięki pełnemu wykorzystaniu GPU jest to jedno z najszybszych rozwiązań tego typu.

W praktyce używają go specjaliści od bezpieczeństwa do jednej rzeczy: sprawdzenia, czy hasła w audytowanym systemie są wystarczająco mocne. Poniżej wyjaśniam, jak Hashcat działa naprawdę, jakie ma tryby ataku, jak wygląda składnia poleceń i gdzie przebiega granica legalności.

Ważne: Hashcata używaj wyłącznie do audytu systemów, które są Twoje, albo na które masz pisemną zgodę właściciela. Łamanie cudzych haseł bez zgody jest w Polsce przestępstwem z art. 267 Kodeksu karnego. Ten tekst jest materiałem edukacyjnym dla administratorów i pentesterów.

Jak Hashcat łamie hasła offline

Systemy nie przechowują haseł jawnie — zapisują ich skróty. Funkcja skrótu (np. MD5, SHA-256, bcrypt) zamienia hasło w ciąg o stałej długości i jest jednokierunkowa: z samego skrótu nie da się „odwrócić” hasła. Hashcat obchodzi to prostym pomysłem: bierze kandydata na hasło, liczy jego skrót tą samą funkcją i sprawdza, czy pasuje do skrótu celu. Jeśli tak — kandydat jest hasłem.

Cała siła tkwi w liczbie prób na sekundę. Nowoczesne GPU liczy proste skróty w ogromnym tempie, bo operacje da się zrównoleglić na tysiącach rdzeni. Dla szybkich funkcji (MD5, SHA-1, NTLM) mówimy o miliardach, a nawet dziesiątkach miliardów skrótów na sekundę na jednej dobrej karcie. Dlatego hasła typu Lato2024 padają niemal natychmiast.

Kluczowy wniosek dla obrońcy: liczy się nie tyle sam algorytm, co jego koszt obliczeniowy. Funkcje projektowane specjalnie do haseł — bcrypt, scrypt, Argon2, PBKDF2 — są celowo wolne i pamięciożerne. Na takim skrócie Hashcat liczy nie miliardy, lecz tysiące lub setki prób na sekundę, co radykalnie podnosi koszt ataku.

Tryby ataku: słownik, maska, hybryda i reguły

Hashcat nie testuje „wszystkiego” naraz — podajesz mu strategię generowania kandydatów. Tryb wybierasz opcją -a.

Atak słownikowy (-a 0)

Najskuteczniejsza metoda w praktyce. Hashcat liczy skróty słów z gotowej listy (słownika). Ludzie masowo używają popularnych haseł i wyrazów ze słownika, więc dobrze dobrana lista — np. legendarny rockyou.txt albo listy zbudowane z wycieków — łamie większość słabych haseł w kilka sekund.

hashcat -m 0 -a 0 hashe.txt rockyou.txt

Tu -m 0 to typ skrótu (MD5), -a 0 to tryb słownikowy, hashe.txt to plik ze skrótami, a rockyou.txt to słownik.

Reguły (-r) — mnożnik słownika

Sam słownik nie złapie rockyou! ani R0ckyou2024. Od tego są reguły: przekształcenia doklejane do każdego słowa (zamiana liter na cyfry, dopisanie roku, wielka litera na początku, odwrócenie słowa). Jedna reguła potrafi rozmnożyć słownik wielokrotnie, nadal pozostając dużo szybsza niż brute force.

hashcat -m 1000 -a 0 ntlm.txt rockyou.txt -r rules/best64.rule

Dołączony do Hashcata zestaw best64.rule to dobry punkt startu — to 64 najczęściej skuteczne modyfikacje.

Atak maską / brute force (-a 3)

Gdy znasz lub podejrzewasz wzorzec hasła, definiujesz maskę z klas znaków:

  • ?l — małe litery, ?u — wielkie litery,
  • ?d — cyfry, ?s — znaki specjalne,
  • ?a — wszystkie powyższe.
hashcat -m 0 -a 3 hashe.txt ?u?l?l?l?l?d?d

Powyższa maska testuje hasła typu „wielka litera + cztery małe + dwie cyfry” (np. Kotek12). To celny, szybki atak. Czysty brute force bez wzorca (?a?a?a?a?a?a?a?a) rośnie wykładniczo z długością i przy mocnych hasłach jest nierealny.

Atak hybrydowy (-a 6 i -a 7)

Łączy słownik z maską. Tryb -a 6 dokleja maskę na końcu słowa (hasło + ?d?d?d → hasło123), a -a 7 na początku. To celuje w bardzo typowy ludzki nawyk dopisywania cyfr do wyrazu.

hashcat -m 0 -a 6 hashe.txt slownik.txt ?d?d?d?d

Jak wskazać właściwy typ skrótu (-m)

To najczęstsze źródło błędów u początkujących. Opcja -m musi dokładnie odpowiadać funkcji, którą policzono skrót — inaczej Hashcat nigdy nie trafi. Każdy format ma swój numer; pełną listę pokazuje hashcat --help. Kilka najczęstszych:

Typ skrótuNumer -mGdzie spotkasz
MD50starsze bazy danych, sumy kontrolne
SHA-1100starsze systemy, repozytoria
SHA-2561400nowsze aplikacje
NTLM1000hasła kont Windows / Active Directory
bcrypt3200nowoczesne aplikacje webowe
WPA-PBKDF2 / WPA322000uścisk dłoni (handshake) sieci Wi-Fi

Jeśli nie wiesz, z jakim formatem masz do czynienia, pomaga narzędzie rozpoznające skróty (np. hashid) albo analiza długości i struktury ciągu — ale pewność daje dopiero znajomość systemu, z którego pochodzi.

Przykładowy przebieg audytu haseł Active Directory

Typowe, legalne zadanie: administrator chce sprawdzić, ilu użytkowników w domenie ma słabe hasła. Skróty NTLM wyciąga się z kontrolera domeny (np. narzędziem do zrzutu bazy NTDS, za zgodą i w ramach audytu), a potem:

# 1. Szybki przegląd słownikiem z regułami
hashcat -m 1000 -a 0 ntlm_hashe.txt rockyou.txt -r rules/best64.rule

# 2. Dociśnięcie maską dla typowych wzorców firmowych
hashcat -m 1000 -a 3 ntlm_hashe.txt ?u?l?l?l?l?l?d?d

# 3. Podgląd złamanych haseł
hashcat -m 1000 ntlm_hashe.txt --show

Opcja --show czyta plik hashcat.potfile, gdzie Hashcat zapisuje już rozwiązane pary. Wynik audytu to nie lista haseł do nadużycia, lecz raport: które konta wymuszają zmianę hasła i gdzie wdrożyć silniejszą politykę. Jeśli dopiero porządkujesz zasady w domenie, pomoże przegląd najlepszych praktyk Group Policy Object (GPO).

Wskazówka: Przydatne flagi monitorujące pracę: --status włącza regularne raporty postępu, a wciśnięcie s w trakcie pokazuje bieżący status, p pauzuje, a q zapisuje sesję i wychodzi. Długie zadania uruchamiaj z --session nazwa, by móc je wznowić opcją --restore.

Co wpływa na czas łamania

Czas zależy od czterech rzeczy naraz: typu skrótu, mocy GPU, długości i losowości hasła oraz wybranej strategii. Szybki skrót na mocnej karcie liczy się w miliardach prób na sekundę, więc przestrzeń krótkich haseł wyczerpuje się błyskawicznie. Każdy dodatkowy znak hasła mnoży liczbę kombinacji o rozmiar alfabetu — i to jest cała różnica.

Praktyczny obraz skali: hasło 7-znakowe złożone tylko z liter i cyfr potrafi paść w minuty lub godziny na przeciętnym GPU. Hasło 16-znakowe, losowe, z pełnego zestawu znaków, policzone na bcrypcie, jest poza zasięgiem nawet dużych farm obliczeniowych na praktyczne lata. To dlatego długość hasła chroni lepiej niż egzotyczne znaki, a wolny algorytm (bcrypt, Argon2) chroni lepiej niż sam dobór hasła.

Dane producentów o „wydajności w TB/s” albo gotowe tabele „czasu złamania” traktuj ostrożnie — zależą od konkretnej karty, wersji sterownika, typu skrótu i trybu ataku, więc liczby z internetu rzadko odnoszą się do Twojego przypadku. Jedyny wiarygodny pomiar to benchmark na własnym sprzęcie:

hashcat -b -m 1000

Instalacja i wymagania sprzętowe

Hashcat jest darmowy i otwarty (licencja MIT), a binarki pobierzesz z oficjalnej strony hashcat.net. Działa na Windowsie, Linuksie i macOS. Na Windowsie to gotowy plik .exe w archiwum — wypakowujesz i uruchamiasz z wiersza poleceń. Na większości dystrybucji Linuksa znajdziesz go w repozytoriach (apt install hashcat), a w Kali Linuksie jest preinstalowany — jeśli wahasz się nad dystrybucją do takich zadań, pomoże porównanie Kali Linux vs ParrotOS.

Do pełnej wydajności potrzebujesz działających sterowników GPU z obsługą OpenCL lub CUDA (NVIDIA), względnie ROCm/OpenCL (AMD). Po instalacji sprawdź, czy Hashcat widzi urządzenia:

hashcat -I

Jeśli na liście jest tylko CPU, a masz dedykowaną kartę, prawie zawsze brakuje sterowników lub środowiska OpenCL — to pierwsza rzecz do naprawy, zanim zaczniesz liczyć cokolwiek poważnego.

Legalne zastosowania i granica prawa

Hashcat ma trzy uczciwe zastosowania. Pierwsze to testy penetracyjne i audyt — zweryfikowanie, czy hasła w organizacji opierają się realnemu atakowi. Drugie to odzyskanie dostępu do własnych danych, np. zaszyfrowanego archiwum, do którego zgubiłeś hasło. Trzecie to badania i nauka: zrozumienie, jak działają skróty i dlaczego polityki haseł wyglądają tak, a nie inaczej.

Granica jest ostra i nie zależy od narzędzia, lecz od uprawnień. Zrzucanie skrótów haseł z cudzego systemu, łapanie handshake’u obcej sieci Wi-Fi czy łamanie haseł kolegi „dla żartu” to nie szara strefa — to czyn zabroniony, nawet jeśli nigdy nie użyjesz wyniku. Zawsze miej pisemne zlecenie lub własność systemu.

Z perspektywy obrońcy wnioski z działania Hashcata są prostsze niż się wydaje: wymuszaj długie hasła (albo frazy), przechowuj je w wolnej funkcji skrótu z solą, włącz uwierzytelnianie wieloskładnikowe i blokuj znane, wyciekłe hasła. Więcej o samej budowie dobrego sekretu znajdziesz w poradniku jak stworzyć i zapamiętać bezpieczne hasło, a o roli dodawania soli — w tekście o algorytmie hashowania z solą.

Kiedy sięgnąć po Hashcata, a kiedy nie

Hashcat jest właściwym wyborem, gdy masz zrzut skrótów i chcesz ocenić ich odporność — szczególnie masowo, na GPU. Nie jest narzędziem do „włamywania się na konta online”: ataki offline wymagają, byś najpierw legalnie zdobył skróty, a przeciw systemom logowania działają zupełnie inne mechanizmy obronne (limity prób, blokady, MFA).

Jeśli dopiero zaczynasz, przećwicz Hashcata na własnych, celowo wygenerowanych skrótach słabych haseł — zobaczysz na żywo, jak szybko padają i dlaczego długość ma takie znaczenie. To najlepsza lekcja higieny haseł, jaką można sobie zafundować, i robisz ją w pełni legalnie na własnym sprzęcie.

~/narzedzia/password

$ ./password --interaktywnie

Siła hasła i generator haseł

Oszacuj entropię hasła i czas łamania w różnych scenariuszach albo wygeneruj losowe hasło. Wszystko liczone lokalnie.

Zacznij pisać, aby zobaczyć ocenę.

~ man faq

Najczęściej zadawane pytania

Czy Hashcat jest legalny?

Samo narzędzie jest legalnym, otwartym oprogramowaniem używanym w testach penetracyjnych i audytach. Nielegalne jest użycie go do łamania haseł w systemach, do których nie masz uprawnień — wtedy łamiesz prawo, a nie tylko regulamin.

Czym różni się Hashcat od Johna the Rippera?

Hashcat jest zoptymalizowany pod GPU i zwykle szybszy przy masowym liczeniu skrótów. John the Ripper bywa wygodniejszy przy automatycznym rozpoznawaniu formatu i pracy na CPU. W praktyce audytorzy używają obu.

Czy Hashcat potrafi złamać każde hasło?

Nie. Hashcat nie „odgaduje” hasła z powietrza — testuje kandydatów, których mu podasz. Długie, losowe hasło (np. 16 znaków z menedżera haseł) jest praktycznie nie do złamania brute force nawet na mocnym sprzęcie.

Jaka karta graficzna jest potrzebna do Hashcata?

Hashcat działa na dowolnym GPU NVIDII, AMD lub Intela z obsługą OpenCL/CUDA, a nawet na CPU. Im mocniejsza karta i więcej pamięci, tym szybciej — ale do nauki wystarczy przeciętny sprzęt.

Co to jest plik potfile w Hashcacie?

To plik hashcat.potfile, w którym narzędzie zapisuje już złamane pary skrót:hasło. Dzięki niemu Hashcat nie liczy ponownie tego, co zna, a wynik odczytasz poleceniem z opcją --show.

Ten artykuł jest częścią tematu

CZ

$ whoami

Czarek Zawolski

Założyciel i redaktor XAD.pl. Pisze o sieciach, bezpieczeństwie IT, administracji systemami Windows i Linux oraz o sprzęcie, który sprawia ludziom problemy na co dzień.

~ ls ../podobne