John The Ripper

John The Ripper – narzędzie do łamania haseł

Każdy kto na poważnie interesuje się sprawami dotyczącymi cyberbezpieczeństwa, zapewne słyszał o narzędziu zwanym John The Ripper. A może nawet w większym lub mniejszym stopniu miał okazję tego narzędzia używać.

 

Akcja Wiosenna - Promocja na najnowsze kursy w naszej ofercie!

Do końca marca masz możliwość zakupić najnowsze kursy:

  • Wdrożenie Serwera NGINX w Chmurze
  • NGINX jako Ingress w K8s
  • Kurs Grafany

Dodatkowo odbierz za darmo godzinny wykład "K8s Pod, MultiContainer Pod, Init Containers" na hasło "freek8s"!

Promocja trwa do 31 marca do godziny 23:59. 

Chcesz wziąć udział w kursie? Kliknij w link: https://asdevops.pl/promocja-marzec-2024

 

 

 

 

 

John The Ripper – co to za narzędzie?

To narzędzie Open Source do audytu bezpieczeństwa haseł, a także do odzyskiwania haseł, które jest dostępne dla wielu systemów operacyjnych. Często używa się go w przedsiębiorstwach do wykrywania słabych haseł, które mogą zagrażać bezpieczeństwu sieci, a także do innych celów administracyjnych.

Może być również używany do testowania siły haseł w bazach danych. Bazy danych często przechowują wrażliwe informacje, takie jak numery kart kredytowych i hasła. Administratorzy systemów informatycznych mogą użyć tego narzędzia do przetestowania siły haseł w bazie danych. Po co? Aby upewnić się, że są one wystarczająco silne i trudne do złamania. Pierwotnie opracowano go dla systemów uniksowych, jednak w tym momencie jest dostępny dla większości popularnych platform.

Atak słownikowy

Warto wspomnieć, iż to narzędzie można wykorzystać do ataku słownikowego, brute force attack oraz z wykorzystaniem tęczowych tablic.

  • Atak słownikowy – W tym trybie narzędzie pobiera próbki ciągów tekstowych, szyfrując je w tym samym formacie co badane hasło. Następnie porównuje dane wyjściowe z zaszyfrowanym ciągiem.
  • Brute Force Attack – W ataku tego typu narzędzie przechodzi przez wszystkie możliwe teksty jawne, haszując każdy z nich, a następnie porównując go z hashem wejściowym. W tym procesie używa się tabel częstotliwości znaków, aby najpierw wypróbować teksty zwykłe zawierające częściej używane znaki. Proces ten może być skuteczny, jest jednak bardzo powolny, gdyż czasami zajmuje to nawet lata. Właśnie dlatego specjaliści od bezpieczeństwa sugerują, aby wybrać długie i złożone hasło, które składa się z kombinacji różnych typów znaków. Jednak warto wiedzieć, że ta metoda może identyfikować te hasła, które nie istnieją w słowniku.
  • Atak hybrydowy – Jest to połączenie ataku słownikowego z atakiem bruteforce. Polega on na testowaniu haseł z listy słów oraz na generowaniu kombinacji znaków. Jest to bardziej efektywna metoda niż sama lista słów lub sama metoda bruteforce.
  • Obsługa wielu algorytmów hashowania – Program John The Ripper obsługuje wiele algorytmów szyfrowania hasła, w tym MD5, SHA-1, SHA-2 czy też NTLM. Dzięki temu możliwe jest łamanie haseł z różnych źródeł, na różnych systemach operacyjnych czy też w aplikacjach.
  • Tęczowe tablice – W ten sposób wstępnie obliczona lista skrótów haseł, które pochodzą z powszechnie ustawionych haseł jest porównywana z istniejącym zrzutem danych, aby znaleźć poprawne hasło w postaci zwykłego tekstu. Ten sposób jest szybszy niż brute force, ale ten sposób będzie nieskuteczny, gdy skróty haseł są solone, a wartości soli są zbyt duże, co zwiększa ogólną złożoność.
  • Wsparcie dla sieciowych ataków haseł – John the Ripper obsługuje wiele protokołów sieciowych, takich jak SSH, Telnet, FTP, itp., co czyni go przydatnym narzędziem do testowania siły haseł w sieciach komputerowych.

W momencie, gdy chcemy sprawdzić możliwości John The Ripper, wystarczy zainstalować tą aplikację w sposób obowiązujący w danym systemie operacyjnym. John the Ripper ma bardzo rozbudowaną składnię i oferuje wiele opcji konfiguracji, które pozwalają na dostosowanie narzędzia do konkretnych potrzeb.

Strona praktyczna

Mając za sobą trochę teorii i wiedząc wstępnie do czego służy narzędzie John The Ripper, nie zaszkodzi zająć się tematem od strony praktycznej. Nie jest to tak skomplikowane, jak mogłoby się wydawać. Komenda którą się posłużymy wygląda następująco:

john --format=Raw-MD5 --wordlist=rockyou.txt hash.txt

hash.txt to plik z hashem który chcemy złamać
–wordlist określa listę z hasłami której użyjemy w procesie łamania hasha
MD5 to funkcja skrótu której używamy

Formaty, które obsługuje John można wylistować za pomocą polecenia

john --list=formats
John The Ripper

Stworzymy w tym momencie plik hash.txt wraz z hashem, a następnie przy pomocy listy rockyou.txt złamiemy hash, aby pozyskać hasło:

John The Ripper

Jak widać udało się złamać hash i odkryć hasło **blink182**

Inne przykłady

Nie musimy wpisywać kompletnej opcji za każdym razem, gdy używamy Johna, gdyż programiści dali użytkownikom możliwość skrócenia opcji takich jak

–singiel można zapisać jako -si
–format można zapisać jako -form

john -si crack.txt -form=raw-md5

Warto również zwrócić uwagę na łamanie hasła z pliku shadow:

john --format=sha512crypt --wordlist=/path to wordlist.txt <path to shadow file>

W tym przypadku używamy składni `–format` do określenia formatu hasła, a `–wordlist` do podania ścieżki do pliku ze słownikiem haseł.

Innym ciekawym sposobem jest łamanie hasła z wykorzystaniem ataku hybrydowego:

john --wordlist=/path to wordlist.txt --mask=?d?d?d?d <path to hashed passwords>

W tym przypadku używamy składni `–wordlist` do ustawienia ataku słownikowego oraz `–mask` do ustawienia maski hasła, gdzie `?d` oznacza cyfrę.

Ciekawą opcją może być również dodawanie prefiksu oraz sufiksu do słowa:

$[prefix][word][suffix]

W poniższym przykładzie, składnia ta oznacza, że program John the Ripper będzie testował kombinacje haseł, które zaczynają się od `john1234`, a następnie mają dowolny prefiks z trzech znaków `!@$`, a kończą się dowolnym sufiksem z trzech znaków `$%^`:

$john1234$[!@$][password][$%^]

Zastępowanie liter cyframi i symbolami to kolejna ciekawa możliwość w arsenale Johna:

$[word]/[znak]/[liczba]

W tym przypadku, program John the Ripper będzie testował kombinacje haseł, w których litery zostały zastąpione znakiem dolara `$`, a następnie dodane zostało jedno losowe wygenerowane słowo:

$[password]/$/1

W sytuacji, gdy sami chcemy dodać jakiś znak do już istniejącego hasła i w ten sposób manualnie rozwijać potencjalne hasło, możemy tego dokonać za pomocą następującej składni:

$john1234$+M

W tym przypadku, program John the Ripper będzie testował kombinacje haseł, w których po słowie `john1234` zostanie dodana litera `M`.

Oczywiście powyższe przykłady to tylko namiastka możliwości, jakie daje John The Ripper. Składnia narzędzia jest bardzo rozbudowana i umożliwia wiele zaawansowanych konfiguracji.

Podsumowanie – John The Ripper

Program John The Ripper jest bardzo wszechstronnym narzędziem, które może być wykorzystane do różnych celów. Przede wszystkim, służy do łamania haseł, umożliwiając przeprowadzenie ataków słownikowych, bruteforce i hybrydowych. Program obsługuje wiele algorytmów szyfrowania hasła, co czyni go przydatnym w różnych środowiskach.

Kończąc ten artykuł chciałbym dodać, iż nie należy zapominać o tym, że łamanie haseł jest nielegalne. Chyba, że robimy to na potrzeby testów penetracyjnych lub za zgodą właściciela systemu. Warto mieć to na uwadze, aby przypadkiem nie stworzyć sobie niepotrzebnych problemów natury prawnej.

Chcesz wiedzieć więcej na temat bezpieczeństwa np. serwerów linux? Zapoznaj się z naszym kursem!

 

 

Akcja Wiosenna - Promocja na najnowsze kursy w naszej ofercie!

Do końca marca masz możliwość zakupić najnowsze kursy:

  • Wdrożenie Serwera NGINX w Chmurze
  • NGINX jako Ingress w K8s
  • Kurs Grafany

Dodatkowo odbierz za darmo godzinny wykład "K8s Pod, MultiContainer Pod, Init Containers" na hasło "freek8s"!

Promocja trwa do 31 marca do godziny 23:59. 

Chcesz wziąć udział w kursie? Kliknij w link: https://asdevops.pl/promocja-marzec-2024

 
 
 

Promocja na trzy najnowsze kursy w ofercie!

X