Warsztaty Hardening Windows – LAPS, Restricted Groups, Compliance Toolkit (1 dzień)
John the Ripper to jedno z najpopularniejszych narzędzi do łamania haseł. rogram ten wspiera wiele algorytmów haszujących.
W dzisiejszym artykule skupimy się na łamaniu haseł używając John the Ripper. Friendly reminder, że materiał jest wyłącznie edukacyjny, nie zachęcamy do hakowania swoich kolegów i koleżanek :)
John the Ripper to narzędzie stworzone do łamania haseł, które działa na różnych systemach operacyjnych. Program ten wspiera wiele algorytmów haszujących, w tym popularne metody takie jak MD5, SHA-1, SHA-256 oraz bcrypt. Jego głównym celem jest odkrywanie słabych haseł poprzez próby ich odgadnięcia lub złamania za pomocą różnych technik ataku. Wspomnę w formie ciekawostki, że jest bardzo "dojrzałym" oprogramowaniem i prawdopodobnie jest dużo starszy od wielu z nas.
Pomimo dojrzałego wieku, ma rozbudowaną dokumentację dostępną online oraz można go swobodnie używać w chmurze np. AWS.
Początkowo zaprojektowane do łamania haseł UNIX. Jednak JtR rozwinęło swoje możliwości i obecnie obsługuje wiele innych formatów, w tym pliki ZIP. JtR działa poprzez próbę różnych kombinacji haseł aż do znalezienia prawidłowego. Narzędzie stosuje dwie metody łamania haseł, pierwszą jest typowy brute force, czyli łamanie haseł na siłę. A drugim sposobem jest dictionary attack czyli tzw. atak słownikowy. Na końcu artykułu znajdziecie wyjaśnienie obu tych metod.
W zależności od używanego systemu operacyjnego, instalacja JtR może się różnić:
john w terminalu.sudo apt install john
brew install john
Po instalacji warto skorzystać z listy opcji wpisując polecenie john do terminalu, która wyświetli nam pełną listę funkcjonalności John the Ripper.
Warto również zastosować john --list=formats, która wylistuje wszystkie obsługiwane formaty hashy, które mogą być złamane z użyciem JtR.
Odzyskać prawdopodobnie się da, ale można również je złamać przy użyciu John the Ripper.
Musimy pamiętać, że JtR nie obsługuje bezpośrednio plików ZIP i musimy je przekonwertować . Należy więc użyć komendy zip2john, który jest częścią pakietu narzędzia.
Komenda do konwersji wygląda następująco:zip2john secured_file.zip > zip_hash.txt
Komenda ta generuje plik zip_hash.txt zawierający skróty (hash) pliku ZIP, które JTR będzie próbował złamać.
John the Ripper jest efektywnym sposobem łamania haseł, szczególnie gdy masz dostęp do dobrego słownika. Słowników jest dużo, warto również pamiętać, że JtR ma możliwość łączenia słowników ze sobą.
Dla przykładu zastosowałam jeden z popularnych słowników rockyou.txt
Słownik rockyou.txt to zbiór popularnych haseł, który jest często używany w takich przypadkach. Jeśli używasz Kali Linux, słownik ten jest dostępny pod ścieżką /usr/share/wordlists/rockyou.txt.
Załóżmy, że mamy hash hasła w pliku zip_hash.txt i chcemy go złamać.Teraz, gdy masz już plik, możemy przystąpić do łamania hasła przy użyciu ataku słownikowego.
W takim wypadku komenda wygląda następująco:john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha1 zip_hash.txt
--format= , który określa jaki format hasha mamy złamać. Jednak nie jest to konieczne ponieważ JtR świetnie identyfikuje hash i sam wykryje jego format. Mój hash to SHA1 , więc zastosowałam raw-sha1 , gdyby była mowa o innym. formacie np MD5 to zapytanie wyglądałoby analogicznie : --format=raw-md5 zip_hash.txt
john --show passwd
--fork=N pozwala na uruchomienie wielu procesów równoległych, co znacząco przyspiesza prace. JtR może również wykorzystać OpenMP do równoległego przetwarzania na wielu rdzeniach CPU.Brute Force przekształca hasło "klucz" na jego różne formy i testuje jedno po drugim. Załóżmy, że słowem "klucz" będzie Net Complex więc brute force będzie wymyślał jego różne formy. W skrócie, jest to metoda oparta na "siłowym" podejściu, gdzie każda możliwa opcja jest testowana jedna po drugiej. Np:
Czas złamania zależy od długości hasła, stąd też słynne powiedzenie "używaj silnych - czyli długich haseł"
Atak słownikowy, jak sama nazwa wskazuje, polega na korzystaniu ze słownika, czyli listy popularnych haseł, fraz lub kombinacji znaków, które ludzie często stosują jako hasła. W przeciwieństwie do ataku brute force, nie próbuje on wszystkich możliwych kombinacji, ale raczej te, które mają największe prawdopodobieństwo bycia używanymi.
Internet aż kipi od dostępnych słowników haseł po wyciekach, które można wykorzystać np. w narzędziach takich jak John the Ripper.
Podrzucam również parę ciekawych artykułów od naszej redakcji:
Wiedza i świadomość na temat aktualnych cyberzagrożeń to podstawa dobrej taktyki bezpieczeństwa. Chcesz być na bieżąco z wydarzeniami ze świata cybersecurity? A może szukasz wskazówek jak zapewnić wyższy poziom cyberbezpieczeństwa w swojej firmie? Chcesz poznać topowe rozwiązania? Dobrze trafiłeś.