__www.haker.pl_haker_start.pl_warsztaty1_temat=44(1).pdf

(179 KB) Pobierz
http://www.haker.pl/haker_start.pl?warsztaty1_temat=44
haker.pl Krzysztof Satoła
Page 1 of 4
Warsztaty internetowe: Narzędzia i techniki ataków na komputery w sieci
John the Ripper - proste þamanie haseþ
Jak dotąd udało nam się pobrać, skompilować (tam, gdzie to było konieczne), zainstalować i
uruchomić testowo Johna. Teraz przyszła kolej na pełne wykorzystanie jego moŜliwości. W
niniejszej części poznamy podstawy pracy z programem, natomiast w następnych skupimy się na
jego opcjach zaawansowanych.
John the Ripper potrafi łamać hasła dostarczone w jednym z kilku formatów. Hasła mogą być
zapisane w jednym z algorytmów, których nazwy wyświetlane sa podczas testowania szybkości
działania (DES, Md5, Blowfish, NT LM). Przypomnijmy sobie pierwsze uruchomienie Johna the
Ripper:
[root@localhost]# ./john -test
W poprzedniej części wykonaliśmy testowanie aplikacji w systemie Linux, teraz zobaczmy jak John
działa w Windows XP:
W systemach UNIX (Linux) hasła często zapisywane są w pliku /etc/passwd
(lub /etc/shadow ). Z kolei w systemach Windows, hasła wydobywa się zwykle za pomocą
narzędzia pwdump (narzędzie to zostanie niedługo omówione w odrębnym artykule). John
domyślnie potrafi odczytać informacje zawarte w plikach passwd, shadow oraz w wyjściowym z
programu pwdump, więc nie trzeba ich specjalnie przygotowywać. JeŜeli posiadamy pliki
utworzone w inny sposób, musimy doprowadzić je do jednego ze znanych Johnowi formatów:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FreeBSD - algorytm MD5 - plik /etc/shadow
-----------------------------------------
format zapisu w pliku:
root:$1$M9/GbSfv$sktn.4pDerd8zAwohiB6.1:11666:0:99999:7:-1:-1:1075919132
hasz:
$1$M9/GbSfv$sktn.4pDerd8zAwohiB6.1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mandrake Linux - algorytm DES - plik /etc/shadow
------------------------------------------------
format zapisu w pliku:
root:KhnGXiy.UxD.s:11668:0:99999:7:-1:-1:1075919132
hasz:
KhnGXiy.UxD.s
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
OpenBSD - algorytm Blowfish - plik /etc/master.password
-------------------------------------------------------
format zapisu w pliku:
root:$3d$06$v4KLiwwq0kX2M4iUnFEDsasDFYX14kiHJngtGSH4/dCqPHK7RysIe:0:0:::::
hasz:
http://www.haker.pl/haker_start.pl?warsztaty1_temat=44
2008-06-30
213808273.013.png 213808273.014.png 213808273.015.png 213808273.016.png 213808273.001.png 213808273.002.png
haker.pl Krzysztof Satoła
Page 2 of 4
$3d$06$v4KLiwwq0kX2M4iUnFEDsasDFYX14kiHJngtGSH4/dCqPHK7RysIe
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Solaris - algorytm DES - plik /etc/passwd
-----------------------------------------
format zapisu w pliku:
root:fr5V5.Vu35SuE:0:0::
hasz:
fr5V5.Vu35SuE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Windows 2000 - algorytm LAN Manager - plik \WINNT\repair\SAM
------------------------------------------------------------
(plik binarny)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
John the Ripper pozwala na łamanie haseł UNIXowych przy pomocy programu uruchomionego w
Windows i na odwrót, dlatego wszystkie poniŜsze przykłady moŜna wypróbować w wersji
programu dla wielu systemów operacyjnych. To co jest nam potrzebne, to doprowadzenie
przechwyconych haseł w postaci zaszyfrowanej (haszy) do jednej z powyŜszych postaci.
John the Ripper potrafi takŜe łamać hasła zabezpieczające aplikacje (a nie tylko dostęp do
systemów operacyjnych). Wtedy, zamiast słowa "root" (które oznacza nazwę konta administratora
systemu UNIX) naleŜy podać np. nazwę uŜytkownika (aplikacji) i zaszyfrowaną wartość hasła
(hasz). Gdybyśmy chcieli rozszyfrować hasło serwera WWW Apache zaszyfrowane algorytmem
DES (z pliku konfiguracyjnego .htaccess ), powinniśmy uŜyć następującej składni:
oryginalny wpis w pliku .htaccess user23:hJHGYhjKJ6s7a
argument podany dla Johna user23:hJHGYhjKJ6s7a::::
W dalszej części artykułu będziemy wykorzystywali zarówno wersję programu dla Windows jak i
dla Linuxa.
Aby uruchomić aplikację z domyślnymi ustawieniami, wystarczy podać jej jako argument plik z
haszami. Hasze (hashes) to hasła w postaci zaszyfrowanej, które chcemy złamać (odgadnąć).
John automatycznie wybierze algorytm kodowania i rozpocznie pracę.
W pliku "pass.txt" umieściłem następującą zawartość:
Na niebiesko zaznaczyłem ciąg znaków (hasz), który będzie łamany. Ł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 i wiemy jaka jest jego postać niezaszyfrowana.
Przystąpmy więc do łamania zakodowanego w pliku "pass.txt" hasła:
Podczas pracy programu, po naciśnięciu dowolnego klawisza, zostaje wyświetlona informacja o
aktualnym stanie pracy, w tym czas liczony od uruchomienia programu. Kombinacja klawiszy Ctrl
C kończy pracę programu. PoniewaŜ jestem juŜ znuŜony oczekiwaniem na odgadnięcie hasła, po
jednej godzinie, 7 minutach i 40 sekundach zakończyłem pracę Johna.
John zapisuje wszystkie złamane hasła w pliku tekstowym " john.pot ". W zaleŜności od złoŜoności
hasła i od szybkości maszyn(y) dokonującej porównywań, program moŜe potrzebować od kilku
minut do kilku miesięcy czasu na wykonanie zadania. Warto więc dopasować złoŜoność zadań do
moŜliwości ich wykonania.
http://www.haker.pl/haker_start.pl?warsztaty1_temat=44
2008-06-30
213808273.003.png 213808273.004.png 213808273.005.png
haker.pl Krzysztof Satoła
Page 3 of 4
PoniewaŜ losowe przypasowywanie haseł jest mało efektywne czasowo, John pozwala na
wykorzystanie przygotowanych wcześniej zestawów zawierających najczęściej uŜywane hasła lub
inne wyrazy (ciągi znaków). Pliki takie nazywane są słownikami. W katalogu " run " znajduje się
plik tekstowy " password.lst ", który jest takim przykładowym słownikiem. Inne słowniki moŜna
znaleźć w sieci Internet. W kolejnej części artykułu udostępnimy teŜ kilka dodatkowych
słowników, w tym jeden przystosowany do języka polskiego.
PoniewaŜ łamanie "prawdziwych" haseł moŜe trwać bardzo długo, dla celów prezentacji
utworzymy teraz trzy konta dla uŜytkowników: user5, user6 i user7. KaŜdemu z nich
przyporządkowano hasło (w takiej samej kolejności): password, Michelle, ncc1701d. Nie
przypadkowo hasła te znajdują się w słowniku " password.lst ".
PoniŜej znajduje się zawartość pliku /etc/shadow związana z dopiero co utworzonymi kontami
uŜytkowników:
Zwróćmy uwagę na fakt, Ŝe hasła zostały zaszyfrowane (algorytmem haszującym DES). Teraz
spróbujemy złamać te hasła oraz porównamy wyniki zwrócone przez Johna z naszą wiedzą o
postaci niezaszyfrowanej tych haseł.
Aby skorzystać z pliku słownika, naleŜy podać parametr -wordfile: oraz jako argument nazwę
pliku zawierającego ciągi wzorcowe (nazwę słownika).
Najpierw kopiujemy plik /etc/shadow do katalogu, gdzie skompilowaliśmy Johna. W moim
przypadku jest to katalog domowy ( ~ ) oraz podkatalog john/john-1.6.32/run . Skopiowany plik
będzie się nazywał " shadow " (tak samo jak oryginał). Aby dokonywać jakichkolwiek operacji na
pliku /etc/shadow trzeba być zalogowanym jako uŜytkownik root lub posiadać równorzędne
prawa w systemie.
Zanim uruchomimy program, usuńmy wszystkie niepotrzebne linie z pliku shadow . Niech plik ten
zawiera tylko trzy linie pokazane na obrazku powyŜej.
Patrząc na obrazek powyŜej zauwaŜ, Ŝe stosowanie słownika moŜe bardzo wydatnie skrócić czas
odgadywania haseł. Zobaczmy jeszcze zawartość pliku " john.pot " (poniŜej), który został
utworzony przez program. W pliku tym John zamieszcza wszystkie odgadnięte hasła.
Po zapoznaniu się z podstawową funkcjonalnością Johna czas najwyŜszy na zgłębienie tajników
tego programu. W następnej części artykułu zajmiemy się między innymi mechanizmem
permutowania zawartości plików słownikowych, typami pracy oraz tworzeniem reguł. Umiejętności
te okaŜą się bardzo przydatne w rzeczywistym świecie haseł, które aŜ proszą się, Ŝeby je złamać.
| Strona główna | Projekty | ZagroŜenia | Kontakt |
© 20002007 Krzysztof Satoþa . Wszelkie prawa zastrzeŜone.
odwiedzin: 698164
http://www.haker.pl/haker_start.pl?warsztaty1_temat=44
2008-06-30
213808273.006.png 213808273.007.png 213808273.008.png 213808273.009.png 213808273.010.png 213808273.011.png
haker.pl Krzysztof Satoła
Page 4 of 4
http://www.haker.pl/haker_start.pl?warsztaty1_temat=44
2008-06-30
213808273.012.png
Zgłoś jeśli naruszono regulamin