Cyberzagrożenia,Główna,Uncategorized

Jak złamać hasło pliku ZIP lub PDF używając John The Ripper

Czas czytania: 4 min

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  🙂

Co to jest i jak działa John the Ripper?

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.

Instalacja John the Ripper

W zależności od używanego systemu operacyjnego, instalacja JtR może się różnić:

  • Kali Linux: JtR jest preinstalowany. Możesz sprawdzić instalację, wpisując john w terminalu.
  • Ubuntu/Debian: Instalacje najlepiej wykonać z repozytorium apt: sudo apt install john
  • macOS: Instalacja jest dostępna przez Homebrew: 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.

Jak odzyskać hasło do zaszyfrowanego pliku np. ZIP przy użyciu John the Ripper.

Odzyskać prawdopodobnie się da, ale można również je złamać przy użyciu John the Ripper.

Konwersja pliku ZIP do hashy

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ć.

Użycie Dictionary attack, czyli zastosowanie listy haseł.

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

Zastosowałam  --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
Złamane hasła są wyświetlane w terminalu oraz zapisywane w pliku $JOHN/john.pot.

 

Aby wyświetlić wszystkie złamane hasła, można użyć polecenia:john --show passwd

 

Ciekawą funkcjonalnością w JtR jest optymalizacja czasu łamania hasła. Opcja taka jak --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.

Jak działa brute force?

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:

  • neTComplex123
  • NETCOMPLEX11
  • !NeTComPleX123@
  • Netcomplex11 i tak dalej

Czas złamania zależy od długości hasła, stąd też słynne powiedzenie “używaj silnych – czyli długich haseł”

Jak działa Dictionary Attack?

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.

Podsumowując – już wiecie dlaczego warto stosować silne hasła?

Podrzucam również parę ciekawych artykułów od naszej redakcji:

Zapraszamy również na nasze webinaria w tematyce cyberbezpieczeństwa -> ZAPISZ SIĘ DO NEWSLETTERA 

 

 

 



Następny artykuł

Dodaj komentarz