• Nie Znaleziono Wyników

J OHN THE R IPPER - ATAK NA HASŁA

2. PRZEGLĄD NARZĘDZI ATAKU

2.2 J OHN THE R IPPER - ATAK NA HASŁA

Jednym z najpopularniejszych programów umoŜliwiającym łamanie haseł jest John the Ripper13 autorstwa Solar Designer. Dostępny jest on w wersji dla wielu

12William. R. Chestwick, Steven M. Bellovin, Aviel D. Rubin „Firewalle i bezpieczeństwo w sieci”

Helion 2003

13Źródła programu jak i pełna jego dokumentacja dostępna jest na stronie www.openwall.com/john

systemów operacyjnych (Unix, Linux, Windows, BeOS, OpenBSD, FreeBSD, IRIX, AIX, HP-UX) oraz dla róŜnych platform sprzętowych (Intel, AMD, RISC).

Niewątpliwie jego zaletą jest łatwość uŜycia, zatrzymywanie i wznawianie sesji oraz uŜywanie własnych, zoptymalizowanych modułów. John the Ripper potrafi łamać hasła dostarczone w jednym z kilku formatów. Hasła mogą być zapisane za pomocą algorytmów DES, Md5, Blowfish, NT LM. Program domyślnie potrafi odczytać informacje zawarte w plikach passwd, shadow oraz z pliku wyjściowego programu pwdump14. JeŜeli pliki zostały utworzone w inny sposób, naleŜy doprowadzić je do formatu wymienionych plików. Aby uruchomić aplikację z domyślnymi ustawieniami, wystarczy podać jako argument plik z haszami. Program automatycznie wybierze algorytm kodowania i rozpocznie pracę. Łamanie haseł nie polega na ich rozszyfrowywaniu, ale na szyfrowaniu losowo generowanych lub podanych w inny sposób ciągów znaków i porównywanie ich z zaszyfrowanym wzorcem. JeŜeli zaszyfrowana postać wygenerowanego ciągu jest identyczna jak poszukiwany wzorzec, wtedy hasło uznaje się za złamane. Program zapisuje wszystkie złamane hasła w pliku tekstowym „john.pot”. W zaleŜności od złoŜoności hasła, szybkości maszyny dokonującej porównań oraz przyjętej metody łamania hasła, program moŜe potrzebować od kilku sekund do wielu lat czasu na wykonanie zadania.

2.2.1 Atak słownikowy na hasło

PoniewaŜ losowe dopasowywanie haseł jest mało efektywne czasowo, John the Ripper pozwala na wykorzystanie przygotowanych wcześniej zestawów (słowników) zawierających najczęściej uŜywane hasła lub inne wyrazy (ciągi znaków). Aby skorzystać z pliku słownika, naleŜy podać parametr -wordfile: oraz jako argument nazwę pliku zawierającego ciągi wzorcowe (nazwę słownika). Siłą programu John the Ripper jest moŜliwość definiowania i stosowania reguł (opcja –rules). Reguły te pozwalają na dokonanie permutacji podstawowej zawartości pliku słownika. Definicja zasad (reguł) znajduje się w pliku john.ini (dla systemu Windows) lub john.conf (dla systemów UNIX/Linux).

14

W sytuacji, gdy administrator zdefiniował w systemie operacyjnym zasadę, według której wszystkie hasła mają się rozpoczynać (przykładowo) od cyfry, standardowy słownik, zawierający tylko ciągi znaków rozpoczynające się od litery będzie bezuŜyteczny. Korzystając jednak z mechanizmu wyraŜeń regularnych, moŜna zdefiniować regułę, dzięki której John the Ripper korzystając z zawartości słownika, doda do kaŜdego słowa cyfrę od 0 do 9. Na przykład dla jednego wzorca (z pliku słownika) „hasło”, utworzonych zostanie 10 nowych wzorców w postaci: „0haslo”,

„1haslo”, „2haslo”,itd. Przykład definicji powyŜszej reguły rozwiązującej powyŜszy problem i zamieszczonej w pliku konfiguracyjnym (john.conf lub john.ini) wygląda następująco:

# Dodaj cyfry do wzorca

^[0123456789]

Symbol „ ^ ” oznacza, Ŝe modyfikacja wzorca powinna mieć miejsce na jego początku.

W nawiasach kwadratowych zamieszczono symbole, które mają być po kolei wykorzystane.

Mechanizm wykorzystujący reguły, pozwala na tworzenie równieŜ skomplikowanych kombinacji. Przykładowo w pliku konfiguracyjnym programu znajduje się reguła:

-c >2(?a!?Xc

Poszczególne znaki uŜyte w regule oznaczają:

-c – zastosuj tę regułę, jeśli hasło zawiera małe i wielkie litery

>2 – reguła dotyczy wzorców zawierających więcej niŜ 2 znaki

(?a – jeśli pierwszy znak wzorca nie naleŜy do klasy „a” (litery [a-z A-Z]) pomiń regułę

!?X – pomiń wzorzec, jeśli znajduje się on w klasie X (klasa ta zdefiniowana jest jako liczby i litery [a-z A-Z 0-9])

c – zamień na wielkie litery

Oprócz reguł pozwalających na umieszczanie znaków w istniejących juŜ wzorcach, istnieje moŜliwość zamieniania znaków we wzorcu na inne. Oto kilka przykładów:

s?v. – wszystkie samogłoski zostaną zastąpione znakiem kropki

@?v – wszystkie samogłoski zostaną usunięte

so0 – wszystkie litery ‘o’ zostaną zastąpione cyfrą ‘0’

Obszerny opis reguł wraz z przykładami dostępny jest w dokumentacji programu.

2.2.2 Metoda siłowa (brute force)

Wykorzystanie słownika pozwala na bardzo szybkie odgadywanie haseł. Jednak, gdy wszystkie zapisane i skonfigurowane kombinacje nie przyniosą rezultatu, John the Ripper rozpoczyna działanie w sposób najbardziej skuteczny i zarazem najbardziej czasochłonny, próbując kaŜdej kombinacji znaków. Zanim jednak wykorzystana zostanie metoda siłowa, zaleca się wypróbowanie metody single crack programu (opcja -single). Polega ona na generowaniu haseł na podstawie informacji wydobytych z pola login i GECOS15 pliku haseł, wraz ze zdefiniowanymi regułami.

Metoda ta jest bardzo szybka a biorąc pod uwagę, Ŝe wielu uŜytkowników stosuje hasła utworzone na podstawie swojego loginu, imienia lub nazwiska, moŜe okazać się niezwykle skuteczna. Jeśli jednak i ta metoda nie przyniesie rezultatów w postaci złamania zaszyfrowanego hasła naleŜy przejść do metody siłowej (opcja – incremental:), która polega na generowaniu haseł składających się z wszystkich moŜliwych kombinacji znaków. W pliku konfiguracyjnym programu zostały zdefiniowane cztery reguły (opcje), według których moŜna przeprowadzać atak brute forcea są to :

incremental:All– generowane hasła zawierają wszystkie znaki

incremental:Alpha- generowane hasła składają się tylko z małych liter

incremental:Digits– generowanie haseł z składających się z samych cyfr

15GECOS – pole komentarza, w którym mogą znajdować się informacje o uŜytkowniku np. imię i

incremental:LanMan– podobnie jak incremental:All, ale bez małych liter

MoŜna równieŜ tworzyć własne zestawy znaków, które będą wykorzystywane w trakcie łamania hasła. NaleŜy jednak mieć świadomość, Ŝe ilość moŜliwych kombinacji moŜe być ogromna. Dla przykładu, ilość kombinacji dla opcji LanMan w przypadku hasła składającego się z 6 znaków wynosi prawie 108 miliardów. Dla komputera, który potrafi sprawdzić 150000 kombinacji w ciągu sekundy, w najgorszym wypadku złamanie hasła będzie trwało prawie 9 dni. Zwiększając hasło o jeden znak (do 7), liczba kombinacji wzrasta do ponad 7 trylionów. W tym przypadku łamanie hasła zajmie w najgorszej sytuacji ponad półtora roku. Biorąc to wszystko pod uwagę, naleŜy dopasować ustawienia opcji oraz tworzyć własne reguły w celu maksymalnego uściślenia zasad, doprowadzając do maksymalnego skrócenia czasu potrzebnego na złamanie hasła.

W tabeli 2 przedstawiono faktyczny czas łamania przykładowych haseł programem John the Ripper w wersji 1.4, na komputerze z procesorem 1,7 GHz, na którym to średnia prędkość generowanych kombinacji znaków wynosi 135000 na sekundę (dla metody siłowej). Czas podano w formacie gg:mm:ss.

hasło Metoda łamania

login

Rozkodowane zakodowane słownikowa Siłowa

bartek bartek42 UFzylEoscmXEM - 00:00:01

bartek ketrab

(login pisany od końca) UFg2FXaM.sM7Y - 00:00:01

user 74826745 UFJy1w2tcyw3Q - 00:02:48

root Rower UfywEDmtVctfI 00:00:06 00:25:10

root H%7z@ UFOB/ald/ckWw - 14:37:02

Tabela 2 Czas łamania haseł w zaleŜności od jego skomplikowania (źródło: opracowanie własne)

Otrzymane wyniki wskazują, Ŝe hasła powstałe z loginu, cyfr lub pospolitych wyrazów są bardzo łatwe do złamania. Jedynie stosowanie wszystkich znaków klawiatury w haśle gwarantuje, Ŝe hasło będzie silne i trudne do złamania w rozsądnym czasie. W przykładzie, dla hasła pięcioznakowego potrzeba było ponad 14 godzin, aby je rozszyfrować. Wystarczy jednak zwiększyć hasło do 7 znaków, aby na jego złamanie potrzeba było około 17 lat.

Powiązane dokumenty