Warsztaty internetowe: Narzędzia i techniki ataków na komputery w sieci
John the Ripper - reguły
W poprzednich artykułach zostały opisane: pobieranie, instalowanie (kopilowanie) oraz
podstawowe wykorzystanie programu. Teraz przyszła kolej na opis bardziej zaawansowanych
funkcji.
Na początku zacznijmy od słowników. Słowniki to pliki zawierające słowa (ciągi znaków), które są
najczęściej wykorzystywane przez użytkowników komputerów w charakterze haseł. W sieci
Internet można znaleźć znaczną liczbę słowników. W poprzedniej części zaprezentowano
podstawowy sposób wykorzystania słownika.
Jeżeli potrzebujesz pobrać pliki słowników, proponuję sprawdzić następujące lokalizacje:
www.openwall.com
coast.cs.purdue.edu
Można tam znaleźć małe pliki słownikowe zawierające kolekcje słów z różnych dziedzin czy też
tematów. Jest tam również kompilacja wszystkich słowników, na przykład "all.gz". Plik ten po
rozpakowaniu ma wielkość ponad 40 MB i jest bardzo potężnym narzędziem wspomagającym
łamanie haseł.
Podstawowe wykorzystanie pliku słownika zostało opisane w poprzednim artykule. Teraz, na bazie
przykładowego słownika password.lst skorzystamy z kolejnej opcji Johna: -rules. Zasady (rules)
pozwalają na dokonanie permutacji podstawowej zawartości pliku słownika. Definicja zasad
(reguł) znajduje się w pliku john.ini (Windows) lub john.conf (UNIX/Linux). Tak wygląda
przykładowy fragment pliku konfiguracyjnego:
[...]
# Wordlist mode rules
[List.Rules:Wordlist]
# Try words as they are
:
# Lowercase every pure alphanumeric word
-c >3!?XlQ
# Capitalize every pure alphanumeric word
-c >2(?a!?XcQ
[...]
Wiersze rozpoczynające się od znaku # to komentarze. Pozostałe definiują zasady, według
których John, korzystając z pliku słownika, kombinuje nowe ciągi znaków do wykorzystania
podczas łamania haseł. Format zapisu reguł został zaczerpnięty z programu crack, którego
autorem jest Alec Muffet.
Poniżej została zaprezentowana składnia polecenia wraz z opcją -rules:
Załóżmy, że w systemie operacyjnym administrator zdefiniował w systemie operacyjnym zasadę,
według której wszystkie hasła mają się rozpoczynać od jednej cyfry. W takim przypadku
standardowy słownik (zawierający np. tylko ciągi znaków rozpoczynające się od litery) będzie
bezużyteczny. Jednak i my możemy zdefiniować regułę, dzięki której John korzystając z
zawartości naszego słownika doda do każdego słowa cyfrę od 0 do 9. Na przykład dla jednego
wzorca (z pliku słownika) "haslo", John utworzy 10 nowych wzorców postaci: "0haslo", "1haslo",
"2haslo", "3haslo", "4haslo", "5haslo", "6haslo", "7haslo", "8haslo", "9haslo". A tak oto będzie
wyglądała definicja reguły rozwiązującej powyższy problem i zamieszczonej w pliku
konfiguracyjnym (john.conf lub john.ini):
# Dodaj cyfry do wzorca
^[0123456789]
Page 1 of 2
haker.pl Krzysztof Satoła
2008-06-30
http://www.haker.pl/haker_start.pl?warsztaty1_temat=45
Symbol ^ oznacza, że modyfikacja wzorca powinna mieć miejsce na jego początku. W nawiasach
kwadratowych zamieszczono symbole (u nas są to tylko cyfry), które mają być po kolei
wykorzystane.
Symbol $ oznacza, że modyfikacja wzorca powinna mieć miejsce na jego końcu. Na przykład
reguła $[!?.*] dla wzorca "haslo" da w efekcie: "haslo!", "haslo?", "haslo.", "haslo*".
Pozostał jeszcze jeden symbol, pozwalający na umieszczanie dowolnych znaków wewnątrz wzorca.
Reguła i[2][K3] spowoduje zmodyfikowanie wzorca i umieszczenie na pozycji 2 najpierw zanku
K, a potem cyfry 3. Na przykład dla wzorca "haslo", będą to: "hKaslo" oraz "h3aslo".
Mechanizm wykorzystujący reguły pozwala także na dokonywanie bardziej wymyślnych
kombinacji. Rozszyfrujmy dla przykładu reguły zacytowane wcześniej:
:
-
opis: (dwukropek) zastosuj wzorzec bez zmian (tak jak został zapisany w słowniku)
-c >3!?XlQ
----------
opis:
-c pomi
ń
t
ę
reguł
ę
, chyba
ż
e szyfr zawiera małe i wielkie litery
>3 reguła dotyczy wzorców zawieraj
ą
cych wi
ę
cej ni
ż
3 znaki
!?X pomi
ń
wzorzec je
ś
li znajduje si
ę
on w klasie X (klasa ta zdefiniowana
jest jako liczby i litery [a-zA-Z0-9])
l (litera l) zamie
ń
na małe litery
Q nie wykorzystuj nowego wzorca, je
ś
li jest taki sam jak pierwowzór
-c >2(?a!?XcQ
-------------
opis:
-c pomi
ń
t
ę
reguł
ę
, chyba
ż
e szyfr zawiera małe i wielkie litery
>2 reguła dotyczy wzorców zawieraj
ą
cych wi
ę
cej ni
ż
2 znaki
(?a pomi
ń
t
ę
reguł
ę
, chyba
ż
e pierwszy znak wzorca nale
ż
y do klasy a
(litery [a-zA-Z])
!?X pomi
ń
wzorzec je
ś
li znajduje si
ę
on w klasie X (klasa ta zdefiniowana
jest jako liczby i litery [a-zA-Z0-9])
c zamie
ń
na wielkie litery
Q nie wykorzystuj nowego wzorca, je
ś
li jest taki sam jak pierwowzór
Reguły pozwalają w bardzo znaczący sposób zwiększyć przydatność słowników. Dla słownika
zawierającego na przykład 1000 słów można utworzyć "wirtualny słownik" zawierający nawet
ponad 100.000 słów będących kombinacjami zawartości podstawowej pliku słownika.
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
se5 wszystkie litery e zostan
ą
zast
ą
pione cyframi 5
Bardzo dokładny (wyczerpujący) opis reguł znajduje się w pliku RULES w katalogu doc. Polecam
go wszystkim tym, którzy chcieliby na poważnie wykorzystać reguły programu John the Ripper.
Wykorzystanie słownika pozwala na bardzo szybkie odgadywanie haseł jednak, gdy wszystkie
zapisane i skonfigurowane kombinacje nie okażą się pomocne, John rozpoczyna działanie w
sposób najbardziej skuteczny i zarazem najbardziej czasochłonny próbując każdej kombinacji
znaków. Metoda ta nazywa się brute-force i jest jedyną w pełni skuteczną metodą. Metoda ta
zostanie omówiona w następnej części.
|
Strona główna
|
Projekty
|
Zagrożenia
|
Kontakt
|
© 2000-2007
Krzysztof
Satoła. Wszelkie prawa zastrzeżone.
odwiedzin:
698164
Page 2 of 2
haker.pl Krzysztof Satoła
2008-06-30
http://www.haker.pl/haker_start.pl?warsztaty1_temat=45