You are on page 1of 43

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

Anti-Hacker Tool Kit.


Edycja polska
Autorzy: Mike Shema, Bradley C. Johnson
Tumaczenie: Andrzej Grayski, Szymon Kobalczyk,
Mikoaj Szczepaniak
ISBN: 83-7361-478-8
Tytu oryginau: Anti-Hacker Tool Kit
Format: B5, stron: 808

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Pokonaj hakerw ich wasn broni


Zagroenie ze strony hakerw to ju nie temat ksiek i filmw fantastycznych,
ale rzeczywisto. Hakerzy atakuj nie tylko due firmy i organizacje, ale take sieci
lokalne i pojedyncze komputery poczone z internetem. Wiedza o metodach ich
dziaania i sposobach zapobiegania wamaniom jest niezbdna kademu
administratorowi sieci. Oczywicie, sama wiedza to za mao trzeba jeszcze umie
j wykorzysta w praktyce.
Ksika Anti-Hacker Tool Kit. Edycja polska zawiera omwienie narzdzi sucych
do zabezpieczania komputerw i sieci. Najwaniejsze jest jednak to, e poza opisami
narzdzi znajdziesz w niej rwnie informacj o tym, kiedy i dlaczego naley ich uy.
Dowiesz si, jak konfigurowa i stosowa skanery portw, amacze hase, narzdzia
do kontroli systemw, skanery sabych punktw usug WWW, szperacze oraz narzdzia
do usuwania i dokumentowania skutkw wama. Nauczysz si wykorzystywa
w walce z hakerami te same techniki, ktre stosuj oni podczas wama.
Dziki opisywanym w ksice narzdziom i technikom wykryjesz sabe punkty
komputera i sieci, zlikwidujesz je, a w razie ataku odpowiednio na niego zareagujesz.
Skanery portw
Narzdzia do enumeracji
Narzdzia do amania hase
Narzdzia do testowania systemw
Firewalle
Badanie sieci bezprzewodowych
Narzdzia do tworzenia kopii dowodowej

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

5RKUVTGEK


 




   



   
Netcat .....................................................................................................................................23
Implementacja .................................................................................................................24
101 zastosowa Netcata...................................................................................................29
Cryptcat..................................................................................................................................46



 ! "


Wybr menedera okien ........................................................................................................47
Model klient-serwer ...............................................................................................................47
Komunikacja zdalnych serwerw X z klientami ...................................................................48
Zabezpieczanie systemu X. Cz I: stosowanie narzdzi xhost i xauth...............................49
xhost.................................................................................................................................50
xauth ................................................................................................................................50
Zabezpieczanie systemu X. Cz II: tunelowanie komunikacji z serwerem X przez SSH .....53
Inne wane programy.............................................................................................................55
xdm ..................................................................................................................................55
xinit i startx......................................................................................................................55
xserver .............................................................................................................................56
Gdzie mona znale wicej informacji..........................................................................56
Co ju wiemy... ......................................................................................................................56



#$ %&
VMware .................................................................................................................................59
Pobieranie z internetu i instalacja....................................................................................60
Konfiguracja ....................................................................................................................61
Implementacja .................................................................................................................69
Alternatywne oprogramowanie o otwartym dostpie do kodu rdowego....................72
Cygwin...................................................................................................................................73
Pobieranie z internetu i instalacja....................................................................................73
Implementacja .................................................................................................................75
Struktura katalogw i uprawnienia dotyczce plikw.....................................................77
Uruchamianie aplikacji....................................................................................................79
XFree86 dla rodowiska Cygwin ....................................................................................81

Anti-Hacker Tool Kit. Edycja polska




      

!"

"

' (! )
nmap.......................................................................................................................................88
Implementacja .................................................................................................................88
THC-amap ...........................................................................................................................109
Implementacja ...............................................................................................................109
NetScanTools.......................................................................................................................114
Implementacja ...............................................................................................................114
SuperScan ............................................................................................................................117
Implementacja ...............................................................................................................118
IPEye....................................................................................................................................123
Implementacja ...............................................................................................................123
ScanLine ..............................................................................................................................124
Implementacja ...............................................................................................................124
WUPS ..................................................................................................................................129
Implementacja ...............................................................................................................129
udp_scan ..............................................................................................................................129
Instalacja........................................................................................................................130
Implementacja ...............................................................................................................130

%

  *!+ ,


Samba: implementacja protokou Server Message Block dla systemu Unix ......................133
smbclient........................................................................................................................134
rpcclient .........................................................................................................................135
nmblookup .....................................................................................................................136
Automatyzacja tego procesu..........................................................................................136
rpcinfo ..................................................................................................................................137
Implementacja ...............................................................................................................137
Problemy zwizane z usugami RPC.............................................................................139
showmount...........................................................................................................................139
Implementacja ...............................................................................................................139
Zdalne narzdzia (r-tools) ....................................................................................................140
Narzdzia rlogin, rsh oraz rcp........................................................................................141
Niebezpieczestwa wynikajce ze stosowania zdalnych narzdzi................................141
rwho ...............................................................................................................................141
rexec...............................................................................................................................142
finger....................................................................................................................................142
Implementacja ...............................................................................................................142
Po co uruchamiamy demona usugi finger? ..................................................................143
Narzdzia who, w oraz last ..................................................................................................145
who ................................................................................................................................145
w ....................................................................................................................................146
last..................................................................................................................................146

-

  *!


 ! "&
Narzdzia net .......................................................................................................................150
Implementacja ...............................................................................................................150
nbtstat...................................................................................................................................154
Implementacja ...............................................................................................................155
Uzyskiwanie adresu MAC.............................................................................................157
Winfingerprint .....................................................................................................................159
Implementacja ...............................................................................................................159
Uruchamianie najnowszej wersji kodu rdowego......................................................161

Spis treci

GetUserInfo .........................................................................................................................161
Implementacja ...............................................................................................................162
enum.....................................................................................................................................163
Implementacja ...............................................................................................................163
PsTools.................................................................................................................................167
Implementacja ...............................................................................................................168
HFNetChk............................................................................................................................185
Implementacja ...............................................................................................................185



 . /!(! )&


Skanery sabych punktw ....................................................................................................190
nikto ...............................................................................................................................190
Stealth ............................................................................................................................197
Narzdzia wielozadaniowe ..................................................................................................202
Curl ................................................................................................................................202
OpenSSL........................................................................................................................205
stunnel............................................................................................................................208
Inspekcja aplikacji ...............................................................................................................213
Achilles..........................................................................................................................213
WebSleuth .....................................................................................................................215
Paros ..............................................................................................................................218
wget ...............................................................................................................................222

)

0 
1 *2 !'3$!4  %
Narzdzie PassFilt.dll i strategie zarzdzania hasami w systemie Windows........................226
Implementacja ...............................................................................................................226
PAM oraz strategie zarzdzania hasami w systemach Unix ..............................................228
Implementacja dla systemu Linux.................................................................................228
Plik login.conf w systemie OpenBSD .................................................................................232
Implementacja ...............................................................................................................232
Kuba Rozpruwacz................................................................................................................234
Implementacja ...............................................................................................................235
L0phtCrack ..........................................................................................................................246
Implementacja ...............................................................................................................247
Zdobywanie zaszyfrowanych hase systemu Windows.......................................................251
pwdump .........................................................................................................................252
lsadump2........................................................................................................................253
Aktywne narzdzia atakujce metod penego przegldu ...................................................254
THC-Hydra....................................................................................................................255

&

5.  '(! %&


Titan .....................................................................................................................................259
Pobieranie z internetu i instalacja..................................................................................260
Implementacja ...............................................................................................................261
msec .....................................................................................................................................263
Implementacja ...............................................................................................................263

 6 7$ ! $ 8 -


VNC .....................................................................................................................................268
Implementacja ...............................................................................................................269
Netbus ..................................................................................................................................275
Implementacja ...............................................................................................................275
Back Orifice .........................................................................................................................279
Implementacja ...............................................................................................................279

Anti-Hacker Tool Kit. Edycja polska

SubSeven .............................................................................................................................284
Implementacja ...............................................................................................................285
Loki......................................................................................................................................289
Implementacja ...............................................................................................................291
stcpshell ...............................................................................................................................293
Implementacja ...............................................................................................................294
Knark ...................................................................................................................................295
Implementacja ...............................................................................................................296

 9 ' $*2 ':(! 6


Flawfinder............................................................................................................................303
Implementacja ...............................................................................................................304
RATS ...................................................................................................................................308
Implementacja ...............................................................................................................308

  5!  ! (!


Nessus ..................................................................................................................................314
Instalacja........................................................................................................................315
Implementacja ...............................................................................................................315
STAT ...................................................................................................................................329
Implementacja ...............................................................................................................330
Retina ...................................................................................................................................340
Implementacja ...............................................................................................................340
Internet Scanner ...................................................................................................................344
Implementacja ...............................................................................................................345
Tripwire ...............................................................................................................................354
Implementacja. Wydanie z otwartym dostpem do kodu rdowego..............................355
Implementacja. Wydanie komercyjne ...........................................................................364
Zabezpieczanie plikw za pomoc programu Tripwire ................................................370


      
  #$#
 ;!$$ %
Firewalle i filtry pakietw pojcia podstawowe .............................................................375
Czym jest firewall?........................................................................................................375
Jaka jest rnica pomidzy firewallem a filtrem pakietw?..........................................376
W jaki sposb firewalle chroni sieci komputerowe? ...................................................377
Jakiego typu waciwoci pakietw moemy filtrowa za pomoc zbioru regu? ........377
Co rni firewalle bezstanowe od firewalli stanowych? ...............................................378
Na czym polega tumaczenie adresw sieciowych i przekazywanie portw? ..............380
Czym s wirtualne sieci prywatne? ...............................................................................383
Jaka jest rola stref zdemilitaryzowanych? .....................................................................384
Kiedy przejdziemy do omawiania rzeczywistych firewalli?.........................................386
Darmowe firewalle ..............................................................................................................386
ipchains..........................................................................................................................386
Program iptables (Netfilter)...........................................................................................397
IPFW..............................................................................................................................407
Inne narzdzia................................................................................................................418
Firewalle komercyjne ..........................................................................................................418
Urzdzenia dla maych przedsibiorstw i uytkownikw domowych firmy Linksys...418
SonicWALL...................................................................................................................419
Cisco PIX.......................................................................................................................423
Inne narzdzia................................................................................................................425

Spis treci

 " '    "


Whois/fwhois .......................................................................................................................427
Implementacja ...............................................................................................................427
Host, dig i nslookup .............................................................................................................431
Implementacja ...............................................................................................................432
Ping ......................................................................................................................................435
Implementacja ...............................................................................................................435
Fping ....................................................................................................................................437
Implementacja ...............................................................................................................437
Traceroute ............................................................................................................................440
Implementacja ...............................................................................................................441
Hping ...................................................................................................................................443
Implementacja ...............................................................................................................444

 % 9'!! (! "%


Datapipe ...............................................................................................................................454
Implementacja ...............................................................................................................454
FPipe ....................................................................................................................................457
Implementacja ...............................................................................................................457
WinRelay .............................................................................................................................463
Implementacja ...............................................................................................................463

 -  << "-%


Przegld snifferw ...............................................................................................................465
BUTTSniffer........................................................................................................................467
Implementacja ...............................................................................................................467
Tryb zrzutu na dysk .......................................................................................................472
Tcpdump i WinDump ..........................................................................................................476
Instalacja........................................................................................................................476
Implementacja ...............................................................................................................477
Ethereal ................................................................................................................................489
Implementacja ...............................................................................................................489
Dsniff ...................................................................................................................................499
Instalacja........................................................................................................................499
Implementacja: narzdzia ..............................................................................................500
Niebezpieczne narzdzia ...............................................................................................506
Ettercap ................................................................................................................................507
Instalacja........................................................................................................................507
Implementacja ...............................................................................................................507
Katastrofalny potencja..................................................................................................510
Snort: system detekcji wama ............................................................................................510
Instalacja i implementacja .............................................................................................510
Moduy dodatkowe snorta .............................................................................................516
Jest tego duo wicej... ..................................................................................................517

  .!! %
NetStumbler .........................................................................................................................524
Implementacja ...............................................................................................................525
AiroPeek ..............................................................................................................................527
Implementacja ...............................................................................................................527
Wellenreiter .........................................................................................................................529
Implementacja ...............................................................................................................529
Kismet..................................................................................................................................530
Implementacja ...............................................................................................................530
Zwikszanie moliwoci programu Kismet ..................................................................535

10

Anti-Hacker Tool Kit. Edycja polska

 ) =$ % &


ToneLoc ...............................................................................................................................539
Implementacja: tworzenie pliku tl.cfg ...........................................................................540
Implementacja: przeprowadzenie skanowania ..............................................................543
Implementacja: poruszanie si w interfejsie ToneLoc ..................................................544
Przetwarzanie plikw .dat..............................................................................................545
THC-Scan ............................................................................................................................549
Implementacja: konfiguracja THC-Scan .......................................................................550
Implementacja: uruchamianie THC-Scan .....................................................................551
Implementacja: poruszanie si po interfejsie THC-Scan ..............................................553
Implementacja: przetwarzanie plikw .dat w THC-Scan..............................................554
acuch poczenia..............................................................................................................555

 & ! 79>?9 %%


Isic: kontroler integralnoci stosu IP ...................................................................................557
Implementacja ...............................................................................................................557
Wskazwki i porady ......................................................................................................562
Iptest.....................................................................................................................................564
Implementacja ...............................................................................................................564
Nemesis: 101 sposobw tworzenia pakietw ......................................................................566
Implementacja ...............................................................................................................567
Poza wierszem polece ........................................................................................................571

%


          

 &    "$#

6 7! 


 !84!'
! !8@3!*' *A %%
Trinux...................................................................................................................................575
Implementacja ...............................................................................................................576
Zestaw narzdziowy ywej reakcji dla Windows ............................................................580
cmd.exe..........................................................................................................................581
fport ...............................................................................................................................582
netstat.............................................................................................................................584
nbtstat.............................................................................................................................586
ARP ...............................................................................................................................586
pslist...............................................................................................................................587
kill..................................................................................................................................588
dir...................................................................................................................................589
auditpol ..........................................................................................................................590
loggedon ........................................................................................................................591
NTLast ...........................................................................................................................592
Zrzut dziennika zdarze (dumpel).................................................................................593
regdmp ...........................................................................................................................593
SFind..............................................................................................................................596
Md5sum .........................................................................................................................596
Zestaw narzdziowy ywej reakcji dla Uniksa ................................................................600
bash................................................................................................................................601
netstat.............................................................................................................................601
ARP ...............................................................................................................................603
ls ....................................................................................................................................603
w ....................................................................................................................................605
last i lastb .......................................................................................................................605

Spis treci

11

lsof .................................................................................................................................606
ps....................................................................................................................................607
kill..................................................................................................................................611
Md5Sum ........................................................................................................................611
Carbonite .......................................................................................................................612

 B *  2 '!!* - %


EnCase .................................................................................................................................616
Implementacja ...............................................................................................................616
Format: tworzenie wiarygodnej dyskietki startowej............................................................623
Implementacja ...............................................................................................................623
PDBlock: blokada zapisu na dyskach twardych ..................................................................624
Implementacja ...............................................................................................................625
SafeBack ..............................................................................................................................626
Implementacja ...............................................................................................................626
SnapBack .............................................................................................................................635
Implementacja ...............................................................................................................635
Ghost....................................................................................................................................638
Implementacja ...............................................................................................................638

 '8  


2 '!!* -"
DD: narzdzie do kopiowania plikw .................................................................................648
Implementacja ...............................................................................................................649
DD: czyszczenie dysku docelowego....................................................................................654
Implementacja ...............................................................................................................654
Losetup: transformacja regularnego pliku w urzdzenie w systemie Linux........................655
Implementacja ...............................................................................................................655
Ulepszone urzdzenie zwrotne dla Linuksa.........................................................................657
Implementacja ...............................................................................................................657
Vnode: transformacja regularnego pliku w urzdzenie w systemie FreeBSD ....................659
Implementacja ...............................................................................................................659
Md5sum i Md5: weryfikacja adekwatnoci sporzdzonej kopii .........................................661
Implementacja ...............................................................................................................661

  $'!!


--%
Forensic Toolkit ...................................................................................................................665
Implementacja ...............................................................................................................666
EnCase .................................................................................................................................676
Implementacja ...............................................................................................................676
The Coroners Toolkit .........................................................................................................689
Implementacja ...............................................................................................................690

" !8*2 ' ' *'! 4   !* 6


Outlook Express...................................................................................................................703
Implementacja ...............................................................................................................704
Outlook ................................................................................................................................705
Implementacja ...............................................................................................................705
Netscape Navigator/Communicator.....................................................................................706
Implementacja ...............................................................................................................706
Klient America Online.........................................................................................................710
Implementacja ...............................................................................................................710
Skrzynki pocztowe Uniksa ..................................................................................................714
Implementacja ...............................................................................................................714

12

Anti-Hacker Tool Kit. Edycja polska

E-mail Examiner ..................................................................................................................715


Implementacja ...............................................................................................................716
IE History.............................................................................................................................719
Implementacja ...............................................................................................................719
X-Ways Trace ......................................................................................................................721
Implementacja ...............................................................................................................722

% + !$ 8$2' &


Polecenie file........................................................................................................................729
Implementacja ...............................................................................................................729
Hexdump..............................................................................................................................731
Implementacja ...............................................................................................................731
Hexedit.................................................................................................................................735
Implementacja ...............................................................................................................736
Vi .........................................................................................................................................739
Implementacja ...............................................................................................................739
Frhed ....................................................................................................................................742
Implementacja ...............................................................................................................742
Xvi32 ...................................................................................................................................745
Implementacja ...............................................................................................................745
WinHex ................................................................................................................................746
Implementacja ...............................................................................................................747
Quick View Plus ..................................................................................................................751
Implementacja ...............................................................................................................751
Midnight Commander..........................................................................................................753
Implementacja ...............................................................................................................756

'  $(
='

9 .$8 -
Nagwki protokow ..........................................................................................................763
Nagwek Ethernetu ......................................................................................................763
Nagwek ARP ..............................................................................................................764
Nagwek IP ..................................................................................................................764
Nagwek TCP ..............................................................................................................764
Nagwek UDP..............................................................................................................765
Nagwek ICMP ............................................................................................................765
Tabela kodw ASCII ...........................................................................................................767

='C

9.$  $  *D+ 


'! &

Rozdzia 8.

 

   
  
Umiech, klucze, haso. Niezalenie od tego, czy chcesz si dosta do nocnego klubu, do
swojego domu, czy do komputera, zawsze potrzebujesz czego, czego nie ma nikt poza
Tob. Hasa uytkownikw sieci komputerowej powinny by na tyle trudne do odgadnicia, by aden uytkownik nie mg si domyli, jakie jest haso jego kolegi siedzcego przy ssiednim biurku (zakadamy przy tym, e kolega nie trzyma tego hasa na
kartce ukrytej pod klawiatur). Wad takiego rozwizania jest fakt, e odkrycie przez
hakera choby jednego hasa moe sprawi, e najlepsze zabezpieczenia komputerw,
najnowsze aktualizacje systemw operacyjnych i najbardziej restrykcyjne reguy firewalla
nie bd dla niego przeszkod.
Haker prbujcy ustali haso ma generalnie do wyboru dwie strategie. Moe sprbowa
przechwyci przesyane haso i, jeli transmisja bya szyfrowana, wykorzysta narzdzia testujce wszystkie moliwoci do jego odszyfrowania. Haker moe take podj
prb odgadnicia hasa. amanie hase jest jedn z najstarszych technik wykorzystywanych przez hakerw, a jej skuteczno wynika przede wszystkim z faktu, e ludzie
nie s zbyt dobrymi generatorami liczb losowych.
Wane jest, by dobrze rozumia, w jaki sposb (i gdzie) przechowywana jest wikszo
hase, dziki czemu bdziesz wiedzia, jak dziaaj narzdzia do amania hase i z jakich
korzystaj metod. Hasa w systemach Unix i Windows s przechowywane w postaci
jednostronnie zakodowanej, co oznacza, e nie mona ich odszyfrowa. Zamiast tego,
logowanie uytkownika polega na zaszyfrowaniu podanego przez niego cigu znakw
i porwnaniu go z cigiem przechowywanym w pliku hase. Przykadowo, haso uytkownika abc123 jest przechowywane w systemie Unix w postaci acucha kUge2g0BqUb7k
(pamitaj, e nie moemy odszyfrowa tego cigu). Wyobramy sobie, e kiedy uytkownik ten prbuje si zalogowa w systemie popenia bd i wprowadza cig znakw abc124.
System Unix wywouje funkcj  dla podanego hasa, aby wygenerowa tymczasowy zaszyfrowany acuch. Taki acuch dla hasa abc124 bdzie si rni od przechowywanego acucha dla hasa abc123, zatem system poinformuje uytkownika o tym, e
podane przez niego haso jest nieprawidowe. Zauwa, e podane haso (abc124) jest szyfrowane i porwnywane z przechowywanym zakodowanym acuchem (kUge2g0BqUb7k).

226

Cz II  Narzdzia do testowania i ochrony komputerw

acuch ten nie jest odszyfrowywany. Najprostsza metoda ataku, ktrego celem jest zamanie hasa, polega na stworzeniu zaszyfrowanych acuchw dla znanych sw i porwnywaniu ich z docelowymi zakodowanymi acuchami dla rzeczywistych hase.

         



  !
System Windows NT 4.0 udostpnia metod wymuszania tworzenia przez uytkownikw skomplikowanych hase. Narzdzie PassFilt.dll, ktre zostao wprowadzone w pakiecie Service Pack 2, umoliwia administratorom ustanawianie elementarnych regu dla
hase uytkownikw. Implementacja regu konstruowania hase jest w wielu przypadkach dobrym sposobem zabezpieczenia systemu. Moemy przecie instalowa najnowsze aktualizacje zabezpiecze i stworzy najsurowsz konfiguracj serwera, musimy
jednak pamita, e jedno sabe haso moe narazi nasz system na skuteczny atak.



Biblioteka PassFilt.dll moe znajdowa si w systemie NT, zanim jednak narzdzie to
zacznie prawidowo funkcjonowa, musimy wprowadzi kilka niezbdnych modyfikacji w Rejestrze:


Upewnij si, e plik PassFilt.dll znajduje si w katalogu C:\WINNT\System32


(lub dowolnym innym katalogu %SYSTEMROOT%).



Uyj edytora Rejestru (w tym przypadku program regedt32.exe sprawdza si lepiej


ni regedit.exe) do otwarcia lokalizacji HKEY_LOCAL_MACHINE\System\
CurrentControlSet\Control\Lsa.



W prawym panelu zaznacz (kliknij lewym przyciskiem myszy) klucz Notification


Packages.



Z menu Edycja wybierz opcj Modyfikuj.



Jeli ju istniej dane wartoci dla FPNWCLNT, usu je, chyba e w Twoim systemie
wymagana jest zgodno z systemem Novell.



Wpisz warto passfilt.


Pamitaj, e jeli zastosujesz narzdzie PassFilt.dll dla gwnego kontrolera domeny,
powiniene zastosowa to narzdzie take dla zapasowych kontrolerw.

Jeli wszystko poszo zgodnie z planem, kada zmiana hasa dokonywana od tego momentu przez kadego uytkownika z wyjtkiem administratora bdzie musiaa spenia
okrelone reguy. Ograniczenia narzucone przez narzdzie PassFilt.dll s jednak tylko
niewielkim krokiem na drodze do naprawd dobrych hase. System Windows bdzie od
tej pory sprawdza kade nowe haso pod ktem zgodnoci z nastpujcymi reguami:
 Haso nie moe by czci nazwy konta uytkownika.
 Haso musi si skada z co najmniej szeciu znakw.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

227

 Musi zawiera znaki z trzech z poniszych kategorii:


 wielkie litery (od A do Z),
 mae litery (od a do z),
 cyfry (od 0 do 9),
 znaki niealfanumeryczne (np. interpunkcyjne).

Powyszych regu nie mona zmodyfikowa. Z technicznego punktu widzenia, biblioteka


doczana dynamicznie (ang. Dynamic-Link Library DLL) moe oczywicie zosta
zastpiona napisanym przez nas plikiem zgodnym z odpowiednim interfejsem API systemu Windows, jednak jak si przekonamy w podrozdziale L0phtCrack schemat
szyfrowania systemu Windows NT moe okaleczy nawet najmocniejsze hasa. Narzdzie PassFilt.dll nie powinno wic by traktowane jak panaceum na wszystkie problemy zwizane z hasami w systemie Windows. Uytkownik nadal moe stworzy sabe
haso, ktre bdzie atwe do odgadnicia dla amacza hase lub dobrego skryptu testujcego wszystkie moliwoci. Rozwamy ponisze przykady sabych hase, ktre speniaj
warunki stawiane przez narzdzie PassFilt.dll:
 Passw0rd
 Password!
 p4ssw0rd!
 Pa55werd

Wyglda na to (przynajmniej na podstawie przebadanych przez nas ponad dziesiciu tysicy


zamanych hase), e uytkownicy lubi zastpowa samogoski cyframi (4 zamiast a,
3 zamiast e, 1 zamiast i, 0 zamiast o) i czsto dodaj na kocu swoich hase wykrzykniki,
aby obej tego typu ograniczenia i stworzy dobre hasa. Dobre sowniki hase, ktre
s w posiadaniu wikszoci amaczy hase, zawieraj permutacje najczciej spotykanych sw skadajcych si z liter i symboli. Hasa oparte na nazwach ulubionych klubw
sportowych, miast, na przeklestwach i imionach s zawsze najatwiejsze do zamania,
poniewa hakerzy doskonale zdaj sobie spraw z tego, e uytkownicy robi wszystko,
by ich hasa nie byy zbyt trudne do zapamitania. Powinnimy wic powica wiele
uwagi ochronie listy hase oraz usug (w tym poczty elektronicznej, Secure Shell, Windows NetBIOS) bazujcych na hasach.

 
  
     
W systemach wydanych po serii NT oddzielono ustawienia narzdzia PassFilt.dll od
Rejestru i stworzono dla nich specjalny graficzny interfejs uytkownika (GUI). Nie wprowadzono jednak ani dodatkowych regu, ani metod modyfikowania ju istniejcych. Aby
wczy wymuszanie zoonych hase, kliknij dwukrotnie ikon Local Security Policy
(Zasady zabezpiecze lokalnych) w folderze Administrative Tools (Narzdzia administracyjne) dostpnym w Control Panel (Panel sterowania). Okno Local Security Settings
(Ustawienia zabezpiecze lokalnych) przedstawiono na rysunku 8.1.

228

Cz II  Narzdzia do testowania i ochrony komputerw

4[UWPGM
Zwikszanie
zoonoci hasa

"#        



  $%
Cz popularnych dystrybucji systemu Unix, w tym FreeBSD, Linux i Solaris, zawiera
tzw. modu PAM (skrt pochodzi od ang. Pluggable Authentication Module i nie ma nic
wsplnego z funkcj PAM oprogramowania ISS). Modu PAM kontroluje wszystkie dziaania, ktre wymagaj od uytkownika podania hasa. Moe to by prba uzyskania dostpu
do usugi telnet, logowanie do konsoli lub zmiana istniejcego hasa. Implementacje PAM s
dostpne take dla mocniejszych schematw uwierzytelniania, w tym schematu Kerberos, S/Key oraz RADIUS. Konfiguracja moduu pozostaje niezmieniona niezalenie od
metody uwierzytelniania czy aplikacji wymagajcej uwierzytelnienia. Skupmy si wic na
sposobach wymuszania strategii zarzdzania hasami za pomoc moduu PAM.


    
Zobaczmy, jak moemy ustawi zasady bezpieczestwa w systemie Linux i porwnajmy
otrzymane rezultaty z narzdziem PassFilt.dll dostpnym w systemach Windows NT.
W pierwszej kolejnoci musimy si upewni, e w naszej dystrybucji jest zainstalowana
biblioteka cracklib (lub libcrack). Ta opracowana przez Aleca Muffeta biblioteka sprawdzajca hasa jest czci domylnych instalacji dystrybucji Debian, Mandrake, Red Hat
i SuSE. Aby zaimplementowa sprawdzanie hase, musimy jedynie zmodyfikowa plik
tekstowy zawierajcy konfiguracj moduu PAM. Moe to by jeden z dwch plikw:
/etc/pam.conf lub /etc/pam.d/passwd.
Wpis w pliku /etc/pam.conf zwizany ze zmianami hase powinien wyglda podobnie do
poniszego:

          

              

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

229

Plik ten jest logicznie podzielony na pi kolumn. Pierwsza z nich zawiera nazw usugi,
czyli nazw programu, na ktrego dziaanie maj wpyw instrukcje zdefiniowane w pozostaych kolumnach. Plik /etc/pam.d/passwd zawiera tylko cztery kolumny, poniewa jego
nazw okrela usuga 
. Ten styl konfiguracji po prostu rozdziela nazwy usug
pomidzy rne pliki, zamiast stosowa np. jednolity plik dla wielu usug. Jednak niezalenie od stylu konfiguracji, dla jednej usugi moe istnie wiele wpisw. Taki model
nosi nazw kaskadowo uoonych moduw dla jednej usugi.
Oto przykad pliku /etc/pam.d/passwd z tak uoonymi moduami:

          

              

Pierwsza kolumna oznacza typ moduu, do ktrego odnosi si dany wpis. Kolumna ta
moe zawiera jeden z czterech typw (nas interesuje przede wszystkim modyfikacja typu
moduu kontrolujcego zmiany hase):
  usuga kontroluje dziaania aplikacji na podstawie atrybutw uytkownika

(czyli konta, z ktrego ten uytkownik korzysta), sprawdza np. czy uytkownik
ma prawa odczytu dla danego pliku. Przykadowo, moemy uy wpisu dla konta,
aby umoliwi uytkownikowi dostp do pewnych zasobw, takich jak udostpniane
pliki. Pamitaj jednak, e bez wpisu   uytkownik nie bdzie mg si zalogowa
w systemie.
  odpowiada za komunikacj typu wezwanie-odpowied z uytkownikiem,

w tym wysyanie do uytkownika monitw o podanie hasa. Ta usuga jest uywana


za kadym razem, gdy system lub zasb zezwala uytkownikowi na zalogowanie si.
 
 aktualizuje informacje uwierzytelniajce, np. zmian hasa uytkownika.

Wpisy tego typu nie maj nic wsplnego z samym logowaniem uytkownikw
w systemie. Jedynym ich zadaniem jest zezwalanie na dostp do systemu
bezpieczestwa uytkownika kontrolujcego dane uwierzytelniajce.
  obsuguje dziaania majce miejsce przed skorzystaniem z usugi lub

po nim, takie jak kontrolowanie prb logowania zakoczonych niepowodzeniem.


Przykadowo, moemy uy takiego wpisu do wywietlania czasu i daty natychmiast
po zalogowaniu uytkownika w systemie. W takim przypadku pierwszy wpis (  )
dotyczyby weryfikacji hasa podanego przez uytkownika, natomiast drugi wpis
(  ) wywoywaby modu PAM w celu wywietlenia aktualnego czasu. Innym
zastosowaniem wpisu typu session mogoby by wykonywanie konkretnych
funkcji w momencie, gdy uytkownik wylogowuje si z systemu, np. wywietlenie
odpowiedniego wpisu z dziennika zdarze lub pozbawienie wanoci tymczasowego
identyfikatora.
Kolejna kolumna dotyczy sterowania usug, czyli okrela sposb, w jaki usuga powinna
by obsugiwana. Pomylne wykonanie usugi oznacza, e wykonuje ona pewn funkcj,
np. zmieniajc haso uytkownika. Uruchomienie zakoczone niepowodzeniem oznacza,
e usuga nie otrzymaa prawidowych danych, np. hasa uytkownika. Poniej przedstawiamy dopuszczalne metody sterowania:

230

Cz II  Narzdzia do testowania i ochrony komputerw

   jeli prba wykonania usugi zakoczya si niepowodzeniem,

wszystkie kolejne dziaania (kaskadowo poczone usugi) automatycznie zakocz


si niepowodzeniem. Oznacza to, e adna kolejna usuga na stosie nie zostanie
pomylnie wykonana.
  jeli prba wykonania usugi zakoczya si niepowodzeniem, proces

jest kontynuowany, ale ostatecznie koczy si niepowodzeniem. Jeli na stosie


znajduj si inne dziaania, nie mona wykluczy, e zakocz si pomylnie,
jednak nie zmieni to caociowego wyniku.
  jeli usuga zakoczy si sukcesem lub niepowodzeniem, proces jest

kontynuowany. Wynik wykonania tego dziaania w aden sposb nie wpywa


na wyniki wykonania pozostaych usug na tym stosie.
   jeli usuga zakoczy si sukcesem i adne kroki konieczne
(  ) ani wymagane (  ) nie zakocz si niepowodzeniem,

proces jest przerywany i koczy si sukcesem.


Kolejna kolumna zawiera ciek moduu wykorzystywanej biblioteki uwierzytelniania.
cieka moduu powinna zawiera pen ciek dostpu i nazw pliku biblioteki obsugujcej uwierzytelnianie. Bdziemy uywali biblioteki cracklib, zatem musimy si upewni, e zawarto tej kolumny wskazuje na plik  .
Ostatnia kolumna zawiera argumenty przekazywane do biblioteki obsugujcej uwierzytelnianie. Jeli raz jeszcze rzucimy okiem na pierwszy przykad pliku /etc/pam.conf, zobaczymy, e dziaanie moduu   musi zakoczy si sukcesem z argumentem
 dla uytkownikw zmieniajcych swoje hasa za pomoc programu 
:

          

        
Biblioteka cracklib oferuje w rzeczywistoci znacznie wicej argumentw, nie tylko proste . Argument  jedynie instruuje program 
, ile razy ma by przedstawiane uytkownikowi wezwanie do wprowadzenia nowego hasa. Sukces lub niepowodzenie usugi wykorzystujcej modu   zaley od liczby punktw
zebranych przez uytkownika. Uytkownik zbiera punkty na podstawie zawartoci proponowanego hasa. Argumenty moduu okrelaj liczb punktw przyznawanych za konkretne skadniki nowego hasa:
   (domylnie  = 9) minimalna dugo, czyli minimalna liczba

przyznanych punktw. Jeden punkt jest rwnowany z jedn jednostk dugoci.


Rzeczywista dugo nowego hasa nie moe by mniejsza ni 6, nawet mimo
punktw przyznanych za zoono tego hasa.
   (domylnie  = 1) maksymalna liczba punktw za umieszczenie

w hale cyfr (0 9). Jeden punkt jest przyznawany za jedn cyfr.


   (domylnie  = 1) maksymalna liczba punktw za umieszczenie

w hale maych liter. Jeden punkt jest przyznawany za jedn liter.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

231

   (domylnie  = 1) maksymalna liczba punktw za umieszczenie

w hale wielkich liter. Jeden punkt jest przyznawany za jedn liter.


   (domylnie  = 1) maksymalna liczba punktw za umieszczenie

w hale znakw nie bdcych literami ani cyframi. Jeden punkt jest przyznawany
za jeden znak.
Pi pozostaych argumentw nie wpywa bezporednio na punktacj uytkownika:
  rejestruje informacje diagnostyczne na podstawie ustawie dziennika

systemowego.
  (domylnie  = 10) liczba znakw uytych w starym hale, ktre nie

mog si powtarza w nowym hale. Jeli przynajmniej poowa znakw w nowym


hale jest inna ni w poprzednim hale, opcja jest ignorowana.
   (domylnie  = 1) liczba podejmowanych prb uzyskania od uytkownika

poprawnego nowego hasa w przypadku, gdy poprzednie haso nie speniao


warunku .
    tekst zastpujcy domylne monity systemu Unix: New UNIX

password i Retype UNIX password.


   uywana opcja kaskadowego czenia moduw w usudze. Jeli

uyjemy tej opcji, aktualny modu bdzie uywa danych wejciowych moduu
zdefiniowanego bezporednio przed nim w pliku konfiguracji, zamiast da od
uytkownika ponownego wprowadzenia tych danych. Uycie tej opcji moe by
niezbdne, jeli modu cracklib nie zosta umieszczony na szczycie stosu.
Argumenty s umieszczane w ostatniej kolumnie wiersza i s oddzielone spacjami. Przykadowo, nasz administrator chce, by jego uytkownicy tworzyli hasa 15-znakowe, ale
take, by za stosowanie cyfr przyznawane byy maksymalnie dwa punkty i tyle samo punktw mona byo maksymalnie uzyska za inne (ni cyfry i litery) znaki. W takim przypadku administrator powinien w pliku /etc/pam.d/passwd umieci nastpujce dwa wiersze:

               

              

Zwr uwag na fakt dodania argumentu   do biblioteki   . W ten sposb
administrator wczy szyfrowanie hase za pomoc algorytmu MD5. Hasa szyfrowane
za pomoc uywanego domylnie algorytmu Data Encryption Standard (DES) nie mog
mie wicej ni osiem znakw. Nawet z tak hojnie przyznawanymi punktami stworzenie
15-punktowego hasa z omiu znakw byoby bardzo trudne! Hasa szyfrowane za pomoc algorytmu MD5 mog mie nieograniczon dugo.
Przyjrzyjmy si teraz kilku przykadowym prawidowym i nieprawidowym hasom (wraz
z odpowiadajcymi im liczbami przyznawanych punktw) weryfikowanym przez nowy plik
/etc/pam.d/passwd. Pamitaj, e domyln wartoci argumentw   i   jest 1:
password

9 punktw (8 punktw za dugo + 1 punkt za mae litery)

passw0rd!

12 punktw (9 punktw za dugo + 1 punkt za mae litery + 1 punkt za cyfr


+ 1 punkt za inny znak)

232

Cz II  Narzdzia do testowania i ochrony komputerw

Passw0rd!

13 punktw (9 punktw za dugo + 1 punkt za wielk liter + 1 punkt za mae


litery + 1 punkt za cyfr + 1 punkt za inny znak)

Pa$$w00rd

15 punktw (9 punktw za dugo + 1 punkt za wielk liter + 1 punkt za mae


litery + 2 punkty za cyfry + 2 punkty za inne znaki)

Jak wida, samo ustalenie duej wartoci argumentu  moe wymusza od uytkownikw definiowanie dosy skomplikowanych hase. Dwanacie punktw to prawdopodobnie najniszy prg, jaki powinnimy zdefiniowa w naszym systemie, w ktrym
pitnacie punktw jest grn granic. W innym przypadku uytkownicy byliby zmuszeni do zapisywania swoich hase i trzymania ich obok klawiatury, a to w oczywisty
sposb narazioby nasz system na niebezpieczestwo.

 &  '()*+


W systemie operacyjnym OpenBSD algorytm szyfrujcy DES jest wykorzystywany tylko
w tych miejscach, gdzie jest to konieczne z uwagi na zgodno z innymi systemami
Unix, co wynika przede wszystkim z ogranicze zwizanych ze stosowaniem tego algorytmu. Administratorzy systemu maj do wyboru szyfrowanie za pomoc wieloetapowego
algorytmu DES, algorytmu MD5 lub algorytmu Blowfish. Wspomnielimy ju, e jedn
z zalet szyfrowania za pomoc algorytmu MD5 jest brak ogranicze dotyczcych dugoci hasa. Algorytm Blowfish (opracowany przez Brucea Shneiera i jego zesp) take
szyfruje hasa dowolnej dugoci, ale take jest stosunkowo wolny. Z pozoru jest to
sprzeczne z intuicj wyjanimy to pniej, w podrozdziale Kuba Rozpruwacz.



System OpenBSD nie wykorzystuje architektury PAM, ale mimo to umoliwia skuteczne
zarzdzanie hasami. Plik /etc/login.conf zawiera dyrektywy dla algorytmw szyfrujcych
oraz definicje warunkw, ktre musz by spenione przez uytkownikw systemu. Wpisy
w pliku login.conf zawieraj wicej instrukcji zwizanych z wymaganiami stawianymi
uytkownikom ni samych definicji strategii zarzdzania hasami. Omawiane w tym
podrozdziale opcje powinny by doczane na koniec opcji ju istniejcych. Pierwsza
warto kadego wpisu odpowiada typowi wyznaczonej dla uytkownika klasy logowania. Moemy uy specjalnego wpisu z wartoci   dla uytkownikw bez zdefiniowanej klasy.
Aby uzyska lub wyznaczy klas logowania dla danego uytkownika, naley otworzy
plik /etc/master.passwd w narzdziu 
. Klasa logowania znajduje si w pitym polu
wpisu definiujcego haso uytkownika. Poniej przedstawiamy przykad takich wpisw (klasy logowania oznaczylimy czcionk pogrubion):
  !" #$%!!!!&      
   !" #$%!! !!      

Wpisy w pliku login.conf mog mie nastpujc posta (znak  reprezentuje w poniszym kodzie kontynuacj w nowym wierszu):

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

233

 ' (
   (
 !)(
  ' *"
''(
   (
 !))(
  ' *+
 (
   (
 !))(
  ' *+

Powyszy kod wymusza na systemie stosowanie algorytmu szyfrujcego Blowfish dla


kadego uytkownika. Uyte wartoci ! i " oznaczaj liczby etapw przetwarzania
hase przez algorytm. Takie rozwizanie oczywicie spowalnia dziaanie algorytmu, poniewa zaszyfrowanie hasa wymaga znacznie wicej czasu. Jeli jednak zaszyfrowanie
hasa wymaga wicej czasu, take wicej czasu jest potrzebne na jego zamanie metod
testowania wszystkich moliwoci. Przykadowo, amanie hasa z wykorzystaniem sownika
zawierajcego 100 tysicy sw potrwa znacznie duej, jeli uyjemy 32-etapowego algorytmu szyfrujcego ( 
 #) zamiast zastosowanego w tym przypadku
algorytmu 6-etapowego.
Najwaniejszymi wpisami w pliku login.conf s te rozpoczynajce si od sowa  
i , poniewa te pierwsze dotycz wszystkich uytkownikw, natomiast te drugie
maj zastosowanie dla administratorw.
Kady wpis moe zawiera wiele opcji:
   (warto domylna  ) definiuje wykorzystywany

algorytm szyfrujcy. Najlepszym rozwizaniem jest zastosowanie wartoci


(algorytmw)   i 
 , gdzie  jest liczb wykonywanych etapw
szyfrowania (nie moe przekracza 32). Warto  reprezentuje algorytm DES,
ktrego stosowanie nie jest zalecane, poniewa ogranicza dugo hase do omiu
znakw, a wykorzystywane obecnie amacze hase dziaaj przeciwko tak
zaszyfrowanym hasom bardzo efektywnie.
   te same wartoci, co w przypadku opcji  . Opcja

ta jest wykorzystywana wycznie w celu zapewnienia zgodnoci z rozproszonym


logowaniem systemu NIS (Network Information System).
 
   (domylnie  = 6) minimalna akceptowana dugo hasa.
 
  
 wskazuje na zewntrzny program sprawdzajcy hasa.

Opcja powinna by stosowana ostronie, poniewa zewntrzny program moe by


naraony na ataki koni trojaskich, moe zawiera bdy i by podatny na atak
polegajcy na przepenieniu bufora.
 
    (domylnie  = 3) liczba wywietlanych przed uytkownikiem

wezwa do podania nowego hasa w przypadku, gdy poprzednie haso nie


odpowiadao standardom systemu OpenBSD. Uytkownik nadal moe ignorowa
te standardy, chyba e warto tej opcji jest ustawiona na 0.

234

Cz II  Narzdzia do testowania i ochrony komputerw

Zaktualizowany plik login.conf moe mie nastpujc posta (celowo definiujemy w poniszym przykadzie sab klas  ):
 ' (
   (
 !)(
  ' *+(
  +(
  !
' (
 '  (
 )))(
  (
  "(
  
''(
   (
 !))(
  ' *(
  +(
  !
 (
   (
 !))(
  ' *

Strategia zdefiniowana w powyszym pliku wymusza stosowanie algorytmu Blowfish dla


hase wszystkich uytkownikw, z wyjtkiem tych nalecych do klasy  . Strategia zarzdzania hasami dla tej klasy reprezentuje wymagania starych systemw Unix,
o ktrych wspomnielimy w opisie wartoci  parametru  . Hasa dla uytkownikw klasy  (klasy czsto wizanej z uprawnieniami administracyjnymi) s
szyfrowane w dwunastu etapach. Zgodnie z powyszymi zapisami, haso administratora
(uytkownika ), ktry domylnie naley do klasy , musi by szyfrowane przez
wykonanie maksymalnej liczby etapw algorytmu Blowfish. Chocia algorytmy Blowfish
i MD5 obsuguj dowolne dugoci hase, w systemie OpenBSD wprowadzono ograniczenie do 128 znakw. Taka dugo wystarczy nawet na krtki wiersz!
Jednymi z najlepszych miejsc do szukania hase s pliki historii powok uytkownikw.
Przejrzyj pliki .history i .bash_history w poszukiwaniu dziwnych polece. Zdarza si,
e administrator przypadkowo wpisze haso w wierszu polece. Takie sytuacje maj
miejsce najczciej wtedy, gdy administrator loguje si do zdalnego systemu lub uywa
polecenia i popenia bd podczas wpisywania polecenia i odruchowo wyprzedza
pojawienie si monitu o wprowadzenie hasa. Udao nam si kiedy odkry w ten sposb
13-znakowe haso administratora!

,-. ( 
Program John the Ripper (http://www.openwall.com/john/), czyli Kuba Rozpruwacz,
jest prawdopodobnie najszybszym, najbardziej uniwersalnym i z pewnoci jednym
z najbardziej popularnych z dostpnych amaczy hase. Narzdzie obsuguje sze rnych schematw kodowania hase stosowanych w rnych odmianach systemw Unix
oraz kodowanie Windows LANMan, znane take jako NTLM (uywane w systemach

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

235

Windows NT, 2000 i XP). Program moe stosowa specjalizowane listy sw lub reguy
tworzenia hase oparte na typie i rozkadzie znakw. John the Ripper dziaa w co najmniej
trzynastu rnych systemach operacyjnych i obsuguje wiele dostpnych obecnie procesorw, ze specjalnymi technikami optymalizacji procesorw Pentium i ukadw RISC
wcznie.



W pierwszej kolejnoci musimy pobra i skompilowa program. Najnowsza wersja programu zostaa oznaczona kodem John-1.6.35, jednak bdziemy musieli pobra zarwno
plik John-1.6.35.tar.gz, jak i starszy plik John-1.6.tar.gz (lub ich odpowiedniki z rozszerzeniem .zip dla systemw Windows). Wersja 1.6.35 nie zawiera wszystkich plikw
dokumentacji i wsparcia z oryginalnej wersji 1.6. Po rozpakowaniu archiwum John-1.6.35
w wybranym przez nas katalogu, musimy przej do podkatalogu /src:
,-  ./012'34".1
,-  ./012'34".1
,-  ./034"
,-  .34"/0
 

Nastpne polecenie jest proste: $


   . Przykadowo, aby
skompilowa Kub w rodowisku Cygwin, musielibymy uy polecenia 


. W systemie BSD powinno wystarczy polecenie    
 . Wpisanie samego polecenia  (bez argumentw) spowoduje wywietlenie
listy wszystkich obsugiwanych kombinacji systemw operacyjnych i procesorw.
,-  ./0  4. 4+"4

Program zostanie nastpnie poddany automatycznej konfiguracji i kompilacji na naszej


platformie. Kiedy proces ten si zakoczy, wygenerowane pliki binarne i pliki konfiguracyjne zostan umieszczone w katalogu John-1.6.35/run. Pobrana przez nas wersja nie
zawiera kilku niezbdnych plikw bdziemy je musieli samodzielnie wypakowa
z pliku John-1.6.tar.gz i umieci w naszym podkatalogu /run:
,-  ./034"  
,-  . /0  34"   
,-  . /0  34"   
,-  . /0  34"    . 
,-  . /0  34"   5678
,-  . /0  34"   

Jeli wszystkie operacje kopiowania zakocz si pomylnie, bdziemy mogli od razu


zaj si testowaniem programu. We wszystkich poniszych przykadach zakadamy, e
znajdujemy si w katalogu John-1.6.35/run. Naszym pierwszym testem dziaania narzdzia bdzie wygenerowanie danych odniesienia dotyczcych szybkoci amania hase
w naszym systemie:
,-  . /0  
9  .#  :;<, 9</:=7;
8"!!)  *""!! 2  
= >>")  *>"?)+ 2  

236

Cz II  Narzdzia do testowania i ochrony komputerw


9  .9<:@:;<A)B, 9</:=7;
8!!  *+! 2  
= >  *" 2  
9  .& 9<:8:, C/:=7;
D  *>+ 2  
9  .= 9<:9' AB, /:=7;
D>  *? 2  
9  .E  6&<:;<,> >E/:=7;
<)!>+  *)" 2  
5.?>!?  *!!>" 2  
9  .7#58:;<, 9</:=7;
D+!))>>  *+) 2  

Na nasz uwag zasuguj dwa testy wydajnoci: %&'($)( oraz *+$,)$(-'. Rnica
pomidzy wskanikami amanych hase na sekund (. ) tych dwch testw jest ponad
500-krotna. Oznacza to, e peny atak na zakodowane hasa polegajcy na sprawdzeniu
wszystkich moliwoci w przypadku systemu operacyjnego FreeBSD bdzie trwa ponad
500 razy duej ni w przypadku systemu Windows NT! Zastosowanie w systemie FreeBSD algorytmu szyfrowania Blowfish dodatkowo wyduy czas takiego ataku. Jest to
doskonay przykad wpywu, jaki na atwo zamania hasa t metod ma zastosowany
algorytm szyfrujcy. Zamiast mwi, e jeden algorytm jest bezpieczniejszy od drugiego,
znacznie bardziej sprawiedliwe jest stwierdzenie, e algorytm Blowfish zapewnia mniejsz
wraliwo na atak metod penego przegldu.

 
Sprbujmy wreszcie zama jakie haso. Program John the Ripper akceptuje trzy rne
formaty plikw z hasami. W rzeczywistoci jednak narzdzie to moe zama dowolne
haso zaszyfrowane w jednym z formatw wypisanych po wykonaniu polecenia /  z opcj
0 . Musimy jedynie umieci to haso w jednym z formatw akceptowanych przez
aplikacj. Jeli uywamy pliku passwd systemu Unix lub danych wyjciowych generowanych przez narzdzie pwdump (o ktrym wspomnimy w tym rozdziale nieco pniej),
modyfikacje formatu pliku nie powinny by potrzebne. Poniej przedstawiamy pi rnych
przykadw formatw plikw z hasami, ktre s prawidowo interpretowane przez program
John the Ripper (zakodowane hasa oznaczylimy pogrubion czcionk):
   !!
   ""+!?????)44!)??>
  !"!#$%& '!( )*+,-./'01 ""+!?????)44!)??>
  !2!31!'45677/*2#)89
64)%:;%<=)7+=,>.!!
 6  33 11 $)?3$))3))>""?>'??")?''>

Poniej wymieniamy systemy, z ktrych otrzymalimy pi powyszych zakodowanych


hase. Zauwa, e chocia istniej zasadnicze rnice pomidzy wymienionymi poniej
systemami operacyjnymi, odpowiednie formaty plikw s podobne. Zwr take uwag
na moliwo amania hase systemu Solaris za pomoc wersji programu John the Ripper

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

237

pracujcej w systemie Windows wymagana jest jedynie zakodowana wersja hasa, system operacyjny jest w tym przypadku nieistotny.


Solaris, algorytm DES, plik /etc/passwd.



Mandrake Linux, algorytm DES, plik /etc/shadow.



FreeBSD, algorytm MD5, plik /etc/shadow.



OpenBSD, algorytm Blowfish, plik /etc/master.password.



Windows 2000, program LAN Manager, plik \WINNT\repair\SAM.

amane hasa mog by wykorzystywane w zabezpieczeniach aplikacji dziaajcej w innym


systemie ni Unix czy Windows. Aby zama takie haso, wystarczy skopiowa jego
zakodowan wersj (w poniszych przykadach oznaczon pogrubion czcionk) do drugiego pola formatu pliku hase systemu Unix:
 Urzdzenia Cisco

Oryginalny wpis: $ $$ ! "#$%&' ()*  +,


'-(!
Wpis dla programu John the Ripper:  1  "#$%&' ()*  +,
'-(!....
 Pliki .htaccess serwera Apache, w ktrych znajduj si kody hase zaszyfrowane

za pomoc algorytmu DES. Serwer Apache obsuguje take hasa zaszyfrowane


za pomoc algorytmw SHA-1 i MD5, nie mona ich jednak ama za pomoc
narzdzia John the Ripper.
Oryginalny wpis w pliku .htaccess: 21/"012,#
Wpis dla programu John the Ripper: 21/"012,#....
 Inne hasa zaszyfrowane za pomoc algorytmu DES wykorzystywane przez takie

aplikacje jak WWWBoard.


Oryginalny wpis w pliku passwd.txt: 34 1 344)5
Wpis dla programu John the Ripper: 34 1 344)5.6..

('(..
Aby zama plik z hasami za pomoc domylnych opcji programu John the Ripper,
musimy poda nazw tego pliku w wierszu polecenia. W przykadach prezentowanych
w tym rozdziale bdziemy uywali trzech rnych plikw z hasami: pliku passwd.unix
zawierajcego hasa zaszyfrowane za pomoc algorytmu DES, pliku passwd.md5 zawierajcego hasa zaszyfrowane za pomoc algorytmu MD5 oraz pliku passwd.LANMan
zawierajcego hasa zaszyfrowane w systemie Windows NT:
,-  . /0 3  
5 +? + ''  A#  :;<,"> ">9<88C/B

Program John the Ripper automatycznie dobiera odpowiedni algorytm szyfrujcy dla znalezionych w pliku zakodowanych hase i rozpoczyna ich amanie. Nacinij dowolny klawisz,
aby program wywietli na ekranie statystyki procesu amania hase; nacinicie kombinacji
klawiszy Ctrl+C przerywa prac aplikacji. Jeli haso zostanie zamane, John the Ripper
wywietla je na ekranie i zapisuje wraz z zaszyfrowanym kodem w celu pniejszego
uycia. Aby przejrze wszystkie zamane hasa dla danego pliku, uyj opcji 0 
:

238

Cz II  Narzdzia do testowania i ochrony komputerw


,-  . /0 34  
 !    
'."!>!+
' !+">!>!"+?
."?!+
F"?!+
==)!+

Wszystkie zamane hasa s zapisywane w pliku tekstowym John.pot, ktry rozrasta si


wraz ze wzrostem liczby analizowanych przez nas hase.
Sabe hasa, niezalenie od zastosowanego schematu szyfrowania, mona zama w czasie
od kilku minut do jednego dnia. amanie lepszych hase moe wymaga tygodni lub nawet
miesicy, moemy jednak zastosowa kilka sztuczek, ktre mog nam pomc w znacznie szybszym odgadywaniu hase. Moemy uywa skomplikowanych plikw ze sownikami (z wyrazami obcymi, imionami, nazwami klubw sportowych, imionami bohaterw
filmw science-fiction), moemy sprawdza konkretne kombinacje hase (zawierajcych
przynajmniej dwie cyfry i znak interpunkcyjny) lub rozproszy przetwarzanie na wiele
komputerw.
Domylnym sownikiem programu John the Ripper jest plik password.lst. Plik ten zawiera
zbir najczciej spotykanych hase. Wiele alternatywnych plikw ze sownikami mona
bez trudu znale w internecie wystarczy wpisa odpowiednie zapytanie np. w wyszukiwarce Google. Jednym z najlepszych plikw tego typu jest bigdict.zip (plik ma okoo
15 MB). Aby wymusi na programie uycie alternatywnego sownika, naley w wierszu
polecenia wpisa opcj 0
 :
,-  . /0 34'   
5 ++ + ''  A#  :;<,"> ">9<88C/B
.  !  !!!!!!!!G !)> . 41.. 

Za pomoc opcji 0  moemy nawet wykonywa pewne permutacje na sowach umieszczonych w stosowanym sowniku:
,-  . /0 34'  4    
5 ++ + ''  A#  :;<,"> ">9<88C/B
.  !  !!!!!+!!G ))! .H  4I   

Aby zrozumie faktyczne dziaanie opcji 0  , zajrzyjmy do pliku konfiguracyjnego


John.conf (lub pliku John.ini, w przypadku innych wersji programu). Poniej przedstawiamy fragment tego pliku dotyczcy wanie permutacji stosowanych dla naszej listy
sw (symbol 5 na pocztku wiersza oznacza komentarz):
,5 D  H /
0# 

05   2      
4JKLC$
0M  1  2      
4JALKLC$
05    1     
NOJKL6
05       PP
NOJKL6 

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

239

Chocia powysze zapisy s z pozoru niemoliwe do rozszyfrowania, ich zrozumienie


wcale nie jest takie trudne. Podstawowa skadnia wielu z tych zasad pochodzi z narzdzia do
amania hase napisanego przez Aleca Muffeta, libcrack. Wyobramy sobie, e strategia
zarzdzania hasami w systemie wymaga, by kade haso rozpoczynao si od cyfry. W takim przypadku jest oczywiste, e nie bdziemy testowali hasa letmein, poniewa nie
spenia ono regu narzuconych przez strategi, poprawne moe by np. haso 7letmein.
Oto regua dla hase rozpoczynajcych si od cyfry:
0:F 'Q1R S .TA F  !1 Q F
0  F 1 1 Q1UB
V,!>")+?/

Moemy rozoy powysz regu na trzy czci. Symbol 6 oznacza, e operacja powinna
by wykonywana na pocztku sowa. Innymi sowy, nastpujcy po tym symbolu znak
powinien zosta doczony na pocztek kadego sowa. Nawiasy kwadratowe 7 i 8 definiuj cay zbir znakw, zamiast pojedynczego znaku po symbolu 6. Cyfry 9:#;!<"= s
konkretnymi znakami dodawanymi na pocztku kadego sowa. Jeli wic regua zostanie zastosowana dla sowa letmein, wygenerowanych zostanie dziesi testowanych sw,
od 0letmein do 9letmein.
Poniej przedstawiamy reguy definiujce miejsca wstawiania znakw:
Symbol

Opis

Przykad

Na pocztku wyrazu

V,!/
!  
  

Na kocu wyrazu

,K/
  K
  

Na -tej pozycji w wyrazie

,>/,CI/
 C 
 I 

,/

Moemy okreli dowolny zakres wstawianych znakw. Dla kadego dodatkowego znaku
ponownie przegldana jest caa lista. Przykadowo, jeli do kadego sowa dodamy na
pocztek jedn z dziesiciu cyfr (0 9), lista tysica sw rozszerzy si w efekcie do listy
zawierajcej dziesi tysicy sw. Oto kilka innych przydatnych znakw, ktre moemy
dodawa do wyrazw z listy:
 76!)89#: cyfry
 7;<= >?@A6: cyfry z przytrzymanym klawiszem Shift
 7B(C;: znaki interpunkcyjne

Moemy zastosowa reguy konwersji do zmiany wielkoci lub typu (wielkie litery, mae
litery, zamiana litery e na cyfr 3) znakw lub do usunicia pewnych typw znakw:
 C' klasa samogosek (a, e, i, o, u)
 C'( zastpuje samogoski znakiem kropki

240

Cz II  Narzdzia do testowania i ochrony komputerw

 <<C' usuwa wszystkie samogoski


 << usuwa wszystkie litery a
 ) zastpuje wszystkie litery a cyfr 4
  zastpuje wszystkie litery e cyfr 3
 A gwiazdka reprezentuje liter zmienian na ma
 A gwiazdka reprezentuje liter zmienian na wielk

Reguy s doskonaym sposobem na poprawienie wskanika trafie w procesie odgadywania hase, szczeglnie przydatne okazuj si reguy doczajce znaki i zamieniajce
litery na cyfry. Reguy byy jeszcze bardziej korzystne w czasach, gdy wydajno procesorw nie bya duo wiksza od mapy prbujcej uy liczyda. Obecnie, kiedy za kilkaset
dolarw mona kupi komputer z procesorem o czstotliwoci taktowania przekraczajcej 2 GHz, nie ma wikszego znaczenia, czy zastosujemy skomplikowane reguy, czy
od razu przystpimy do ataku polegajcego na przetestowaniu wszystkich moliwoci.
Skomplikowane reguy i rozbudowane sowniki nie daj oczywicie gwarancji zamania
kadego hasa. Doszlimy w ten sposb do zagadnie zwizanych z atakiem polegajcym
na przetestowaniu wszystkich moliwoci. Innymi sowy, bdziemy sprawdzali kad
kombinacj znakw dla okrelonej dugoci sowa. Program John the Ripper domylnie
przecza si w tryb takiego ataku, jeli w wierszu polecenia nie przekaemy adnych
opcji. Aby wymusi na programie stosowanie konkretnej metody ataku, uywamy opcji
0:
,-  . /0 34   56785678
5   ''  A7#58:;<,"> ">9<88C/B

Domylny plik John.conf zawiera cztery rne opcje:


 , mae litery, wielkie litery, cyfry, znaki interpunkcyjne, znaki z wcinitym

klawiszem Shift
 , mae litery
 D od 0 do 9
 E,F" podobnie jak w przypadku 4, ale bez maych liter

Dla kadej z tych opcji definiuje si w pliku John.conf pi pl. Przykadowo, wpis ,4*)
zawiera nastpujcy zestaw piciu pl i wartoci:
 7G  .E,F": opis opcji
 H ($E,F"( wykorzystywany plik z list znakw
 "E 6 minimalna dugo generowanego cigu znakw
 "E 9 maksymalna dugo generowanego cigu znakw
 I I# liczba znakw na licie

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

241

A takie wartoci s domylnie zdefiniowane dla wpisu 4:


 7G  .,: opis opcji
 H ($( wykorzystywany plik z list znakw
 "E 6 minimalna dugo generowanego cigu znakw
 "E  maksymalna dugo generowanego cigu znakw
 I I#8 liczba znakw na licie

Pola ), i ), s najwaniejsze, poniewa od ich wartoci zaley skuteczno


i czas trwania ataku. Warto pola MaxLen w przypadku zakodowanych hase LANMan
nigdy nie bdzie wiksza od siedmiu znakw. Jeli podniesiemy warto pola > > 
do potgi ),, uzyskamy liczb kombinacji wykorzystywanych podczas penego ataku
polegajcego na przetestowaniu wszystkich moliwoci. Przykadowo, czna liczba kombinacji dla hase LANMan wynosi okoo 7,6 tryliona, a czna liczba kombinacji generowanych w trybie 4 wynosi a 6700 trylionw! Zauwa, e stosowanie trybu 0
14 jest bezcelowe w przypadku hase zakodowanych metod LANMan, poniewa
weryfikowanie maych i wielkich liter jest w tym przypadku zbdne.
Jeli dysponujemy list hase systemu Unix, o ktrym wiemy, e wszystkie stosowane
hasa skadaj si z dokadnie omiu znakw, powinnimy zmodyfikowa odpowiedni
opcj. W tym przypadku byoby strat czasu wykorzystywanie programu John the Ripper
do odgadywania hase zawierajcych siedem i mniej znakw:
,@  6/
&   
8 5 +
85 +
MM ?

Moemy teraz uruchomi nasze narzdzie:


,-  . /0 34   6  

Wygenerowane zostan tylko omioznakowe cigi. Aby to sprawdzi, moemy dodatkowo


uy opcji 0   . Spowodujemy w ten sposb wywietlenie na ekranie kadego wygenerowanego sowa:
,-  . /0 34   64 

Takie rozwizanie moe by korzystne, jeli chcemy przekierowa standardowe wyjcie


do pliku i stworzy tym samym ogromn list sw z myl o przyszych zastosowaniach
w programie John the Ripper lub dowolnym innym narzdziu umoliwiajcym wykorzystywanie pliku z list wyrazw, np. programie Nessus lub THC-Hydra.
,-  . /0 34 .  
5 +!  
W   . >")+:=7;
W   . . :=7;
<  '    '  .  A+ B

242

Cz II  Narzdzia do testowania i ochrony komputerw

    
   
Aby sprawnie zarzdza ogromnymi zbiorami hase na rnych etapach procesu ich amania, musisz zrozumie kilka istotnych zasad dotyczcych funkcjonowania programu
John the Ripper. Narzdzie to okresowo zapisuje swj stan w specjalnym pliku odtwarzania. Czstotliwo takich zapisw mona ustawi w pliku konfiguracyjnym John.conf:
0M 2 '  2 .   
<2 "!!

Domyln nazw pliku odtwarzania jest restore, mona j jednak zmieni za pomoc opcji
0  .
,-  . /0 34   56784  (
J5678
5   ''  A7#58:;<
,"> ">9<88C/B

Zawarto pliku odtwarzania bdzie podobna do poniszej:


D;M

4   5678
4  
5678
4'
"
!
)?3,333
33333333
!
4
>++
!
+


"


!
!
!

Dziewity i dziesity wiersz w powyszym pliku (oznaczone pogrubion czcionka) zawieraj szesnastkow warto reprezentujc czn liczb wygenerowanych i sprawdzonych wyrazw. Liczba moliwych kombinacji znacznie przekracza 32-bitow warto,
ktr mona w ten sposb reprezentowa, zatem program John the Ripper wykorzystuje
dwa 32-bitowe pola do stworzenia liczby 64-bitowej. Znajomo tych wartoci i umiejtno ich interpretowania i modyfikowania jest przydatna podczas wykonywania rozproszonego amania hase. Przykadowo, wemy nasz plik przywracania i sprbujmy go
wykorzysta do zainicjowania na dwch osobnych komputerach dwch rwnoczesnych
atakw polegajcych na testowaniu wszystkich moliwoci. Plik przywracania dla pierwszego komputera miaby nastpujc zawarto:

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

243

D;M
>
4   5678
5678
4'
>
!
!!!!!!!!
!!!!!!!!
!
4

!
+

"
!
!
!
!
!
!

Natomiast plik przywracania dla drugiego komputera miaby nastpujc zawarto:


D;M
>
4   5678
5678
4'
>
!
!!!!!!!!
!!!!!"'
!
4

!
+

"
!
!
!
!
!
!

Pierwszy system rozpocznie atak od pierwszej kombinacji (od zerowego stanu licznika).
Drugi komputer rozpocznie testowanie kodw LANMan od wartoci licznika 99999!
99999999. Praca zostaa teraz rozdzielona pomidzy dwa komputery w taki sposb, e
nie musimy si obawia powtarzania tych samych kombinacji. Dobr technik znajdowania waciwej wartoci licznika jest uruchomienie systemu na okrelony czas.
Przykadowo, wyobramy sobie, e dysponujemy skromnym zbiorem dziesiciu komputerw. W kadym z tych systemw program John the Ripper moe testowa okoo

244

Cz II  Narzdzia do testowania i ochrony komputerw

400 000 hase w cigu sekundy. Przetestowanie wszystkich siedmioznakowych kombinacji dla typowego kodu LANMan (697 kombinacji) zajoby jednemu komputerowi okoo
trzydziestu tygodni. Uruchamiamy wic program w jednym z tych systemw na tydzie.
Po upywie tygodnia zapisujemy warto licznika. Wykorzystujemy j jako warto pocztkow w pliku odtwarzania w drugim systemie, mnoymy j przez dwa i uywamy jako
wartoci pocztkowej w pliku odtwarzania w kolejnym systemie. Teraz nasze 10 systemw
moe przeprowadzi peny atak tylko w trzy tygodnie. Poniej przedstawiamy prociutki
algorytm obliczania mnonika dla licznikw, X, ktry bdzie nam potrzebny do stworzenia
dziesiciu plikw odtwarzania po jednym dla kadego systemu. Pierwszy system bdzie
rozpoczyna swoj prac od zerowej wartoci licznika, kolejny rozpocznie proces przetwarzania od wartoci licznika pierwszego systemu powikszonej o X, itd.:
czna liczba tygodni:
Tw = (697/hasa na sekund)/(hasa na tydzie)
Tw = (697/400 000)/(604 800) = 30,8 tygodni
Mnonik dla licznika:
X = Tw/(10 systemw)
X = 30,8/10 = 3
Warto licznika po tygodniu (liczba szesnastkowa, skopiowana z pliku odtwarzania):
00030000 00000000
Poniej obliczamy wartoci licznikw dla systemw rozproszonych (w notacji szesnastkowej). Wartoci te musimy koniecznie umieci w pliku odtwarzania kadego z systemw:
System 1. = 0
System 2. = licznik*X = 00090000 00000000
System 3. = licznik*X*2 = 00120000 00000000
System n-ty = licznik*X*(n1) = warto w pliku odtwarzania
System 10. = licznik*X*9 = 00510000 00000000
Zaproponowana metoda nie ma nic wsplnego z eleganckim algorytmem, ale sprawdza
si w przypadku kilku identycznych komputerw. Inna metoda rozpraszania przetwarzania polega na zastosowaniu opcji 0. Mwic najprociej, opcja ta umoliwia
nam pisanie wasnych plikw z definicjami stworzonych przez nas funkcji odgadywania
hase. Zewntrzne procedury s przechowywane w pliku John.conf w sekcji dyrektyw
, -. Wystarczy wic w wierszu polece wpisa opcj 0 z interesujc nas dyrektyw:
,-  . /0 34  X 5678

Jeli zamierzasz wykorzysta t metod, upewnij si, e zmienie wiersz  :


na  # w pliku John.conf na drugim komputerze. Pamitaj take, e
implementacja tej metody nie jest efektywna dla wicej ni dwch komputerw,
poniewa instrukcja $ ??$@$ spowoduje w niektrych systemach
testowanie powtarzajcych si sw.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

245

!  "    #


Najlepsz oznak dziaania programu John the Ripper w naszym systemie jest stae obcienie procesora. Moemy przeanalizowa list procesw (za pomoc polecenia  w systemach Unix lub na licie procesw w Menederze zada systemw Windows), jednak
nie znajdziemy tam informacji o procesie John. Jeli sprbujemy zmieni nazw pliku
wykonywalnego, np. na inetd (zwr uwag na celowo uyt spacj na kocu nazwy), program nie bdzie dziaa bez dodatkowego zmodyfikowania kilku wierszy kodu
rdowego.
Studium przypadku: strategie atakowania hase
Reguy definiowane w pliku John.conf pozwalaj na znaczn modyfikacj stosowanego sownika.
Wspomnielimy ju o prostej regule dodajcej cyfr na pocztku kadego odgadywanego hasa:
0:F 'Q1R S .TA F  !1 Q F
0  F 1 1 Q1UB
V,!>")+?/

Jakie inne scenariusze s moliwe? Co moemy zrobi, jeli zauwaylimy tendencj w schemacie
hase administratora stosowanym w konkretnych sieciowych systemach Unix? Przykadowo, zamy, e chcemy stworzy list sw zoon z wszystkich kombinacji wielkich i maych liter sowa bank. Odpowiednia regua w pliku John.conf miaaby nastpujc posta:
0X  FTYYATR1 + TB
,!/,9/ ,/,6/ ,/,7/

Nietrudno zauway, e w powyszej regule uylimy tylko pierwszych trzech liter interesujcego
nas wyrazu. Wynika to z faktu, e program John the Ripper musi dysponowa list sw, na ktrej bdzie dziaa. W tym przypadku plik z tak list, nazwany password.lst, powinien zawiera
dwie litery:

E

Jeli uruchomimy teraz nasze narzdzie z now regu i skrconym plikiem password.lst, otrzymamy nastpujcy wynik:
 3  4'  4  4 








9
9E
97
97E
9
96E
967
967E
"  !!!!!!!!!G >)!  967E

246

Cz II  Narzdzia do testowania i ochrony komputerw

A oto inna regua zdefiniowana z myl o zamaniu hasa, ktre stworzono zgodnie ze strategi
zarzdzania hasami wymagajc, by na trzeciej pozycji znajdowa si znak specjalny, oraz by na
ostatniej pozycji znajdowaa si cyfra:
0:T . A F  "!1 Q F
0  F 1 1 Q1UB
,/,Z[K-0 GV\OAB4]/ ,!>")+?/

Poniej przedstawiamy skrcony przykad wygenerowanych danych wyjciowych dla testowanego


wyrazu password:
 3  4'  4  4 
Z!
Z
Z

[)
[+
[?
K!
K
K


Jak wida, moemy bez trudu stworzy reguy odpowiadajce opracowanym przez administratorw
zasadom konstruowania hase w komputerach podczonych do sieci.

/0(1 
Z pocztku wydawao si, e systemy Windows oferuj udoskonalone mechanizmy zabezpieczania komputerw hasami w porwnaniu z wydawanymi w tym samym czasie
systemami Unix. W wikszoci starych systemw Unix nie mona byo tworzy hase
duszych ni omioznakowe.
Autorzy systemu Windows NT szczycili si maksymaln dugoci czternastu znakw,
czyli niemal dwukrotnie wiksz ni w oferowanych w tamtym czasie w systemach Unix!
Wwczas jednak Mudge i Weld Pond z firmy L0pht Heavy Industries zdemaskowali
sabo szyfrowania LANMan. Ich firma szybko wypucia na rynek narzdzie wykorzystujce niedocignicia w schemacie szyfrowania hase firmy Microsoft.
Wspominalimy ju w tym rozdziale kilkakrotnie o hasach zakodowanych zgodnie ze
schematem szyfrowania LANMan. Wiemy, e zakodowana reprezentacja hasa uytkownika przypomina wpisy w plikach /etc/passwd lub /etc/shadow w systemach Unix. Naszym celem jest w tym momencie przeanalizowanie sposobu generowania i przechowywania tych reprezentacji. System Windows przechowuje dwie wersje kadego hasa
uytkownika. Pierwsza wersja nosi nazw kodu LANMan lub kodu LM. Druga jest
zwykle nazywana kodem NT haso jest szyfrowane za pomoc jednokierunkowej
funkcji MD4, co oznacza, e haso mona zaszyfrowa, ale nigdy nie mona go odszyfrowa. Take kod LANMan jest generowany na podstawie funkcji jednokierunkowej,
jednak w tym przypadku haso przed szyfrowaniem (za pomoc algorytmu DES) jest
dzielone na dwie poowy.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

247

Spjrzmy na moment na zawarto trzech kodw LANMan dla trzech rnych hase.
Kade z nich jest reprezentowane w notacji szesnastkowej i skada si z szesnastu bajtw:
+?+'!">!=>+)' 
+?+'!">!=>>!>
>+)' >>!>

Nietrudno zauway podobiestwa pomidzy tymi trzema przykadami. Ostatnie osiem


bajtw drugiego i trzeciego przykadu jest identyczne:  ;:;9;. Taka sama
warto pojawi si w drugiej poowie kadego kodu wygenerowanego na podstawie hasa
majcego mniej ni osiem znakw. Jest to niewtpliwe niedocignicie autorw schematu szyfrujcego z dwch powodw: zaszyfrowana posta hasa wskazuje na to, e nie
jest ono dusze ni siedem znakw oraz ujawnia brak jakiegokolwiek zwizku funkcji
generujcej drug poow kodu z informacjami zawartymi w pierwszej poowie. Zwr
uwag na fakt, e druga poowa w pierwszym przykadzie (:;" <:# ) jest
identyczna z pierwsz poow w trzecim przykadzie. Oznacza to, e haso jest szyfrowane na podstawie dwch niezalenych siedmioznakowych zbiorw, zamiast wprowadzenia zalenoci pomidzy obiema czciami generowanego kodu.
W efekcie potencjalne czternastoznakowe haso uytkownika jest zamieniane na dwa mniejsze, siedmioznakowe hasa. Co wicej, schemat szyfrowania LANMan ignoruje wielko
liter, co znacznie (okoo dziesi razy) skraca czas potrzebny na wykonanie penego ataku
metod testowania wszystkich moliwoci.



Program L0pthCrack wprowadzi amanie hase do bogatego graficznego interfejsu uytkownika systemw Windows NT i jego nastpcw, Windows 2000 i XP. Prba zdobycia
hase przechowywanych w systemach Unix wymaga zwykle przejcia pliku /etc/passwd
lub /etc/shadow oba maj atwy do odczytania format tekstowy. Systemy Windows
przechowuj hasa w pliku binarnym Security Accounts Manager (SAM), ktrego interpretacja bez specjalnych narzdzi jest dosy trudna. Narzdzie L0pthCrack nie tylko
oferuje funkcje odgadywania hase, umoliwia take wydobywanie zaszyfrowanych kodw LANMan z dowolnego pliku SAM czy lokalnego lub zdalnego systemu, a nawet
przechwytywanie takich kodw przesyanych w sieci.
Plik SAM jest przechowywany w katalogu \WINNT\system32\config\. Jeli sprbujemy
ten plik skopiowa lub otworzy, otrzymamy komunikat o bdzie:
M(H@77#( (' .(<68( 
#    '        .  
  
!'  AB 

Nie poddawaj si! Pomocna okazuje si tworzona przez system Windows kopia zapasowa
pliku SAM w katalogu \WINNT\repair\ (niekiedy umieszczana w katalogu \WINNT\repair\
RegBack\).
Program L0pthCrack wydobywa hasa z lokalnych lub zdalnych komputerw po wybraniu z menu Tools opcji Dump Passwords From Registry.

248

Cz II  Narzdzia do testowania i ochrony komputerw

Do zdalnego wydobywania hase niezbdna jest poprawna sesja poczenia z zasobem


ADMIN$. To za wymaga dostpu do portu 139. protokou NetBIOS TCP. Do ustanowienia takiej sesji moemy wykorzysta program L0pthCrack, moemy take zrobi to
samodzielnie:
M(J   ((2  (  O 6  
#  '(((  
#     ' 

Program moe take przechwytywa kody LANMan przesyane w sieci. Za kadym razem,
gdy narzdzie   otrzymuje dostp do zdalnego komputera, wydobywany jest odpowiedni zaszyfrowany kod uwierzytelniajcy. Takie rozwizanie wymaga jednak dostpu
do lokalnej sieci i moliwoci analizy wystpujcej w niej komunikacji sieciowej, zatem
moliwoci stosowania tego mechanizmu s dosy ograniczone.
Szybko amania hase w programie L0pthCrack moe budzi podziw, jednak tylko do
czasu, kiedy porwnamy wydajno tego narzdzia z najnowszymi wersjami aplikacji
John the Ripper. L0pthCrack nie oferuje jednak wycznie wszechstronnoci w zakresie
modyfikowania regu, w oknie Options moemy take dostosowa wykorzystywan list
znakw.

Czsto najlepszym rozwizaniem jest jednak zastosowanie programu L0pthCrack do


wydobycia hase, zapisania ich w pliku hase (menu File, opcja Save As) dla narzdzia
John the Ripper.
Aby program John the Ripper mg przetwarza tak utworzony plik, bdziemy go musieli
zmodyfikowa. Konieczne zmiany polegaj na umieszczeniu uzyskanych kodw hase
w odpowiednich polach.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

249

Oto przykadowy plik wygenerowany przez program L0pthCrack:


59  @  !
M < >")+?=69M:;&W%@3E587=X$D<#^_HC`I
; #  !!
6  YYYY6>;"??!":)9696&")!?"9&>"
9>):99:M):6:69++96:699

Poniej przedstawiono natomiast plik dla narzdzia John the Ripper. Zauwa, e pierwsze
trzy wiersze oryginalnego pliku zostay usunite, oraz e istnieje tylko jedno pole pomidzy nazw uytkownika (4  ) a zaszyfrowanym hasem. Zawarto tego
pola nie ma adnego znaczenia dla przebiegu amania hasa w programie John the
Ripper, umiecilimy w tym miejscu systemowy identyfikator uytkownika (SID) jedynie
dla przypomnienia:
6  !!6>;"??!":)696&")!?"9&>"9>):99:M):6:69++96:699

W wersji 3.0 programu L0pthCrack wprowadzono udoskonalony mechanizm testowania moliwoci aplikacji. Chocia nowa wersja oferuje wygodniejsze funkcje przydatne
szczeglnie administratorom systemw (np. opcja informujca jedynie o zakoczonej
sukcesem prbie zamania hasa, ale nie wywietlajca otrzymanego wyniku), najlepszym rozwizaniem jest w naszym przypadku stosowanie programu L0phtCrack 2.52
do zdobywania hase oraz wykorzystywanie narzdzia John the Ripper do ich amania.
Uywanie wersji 3.0 programu L0phtCrack ma oczywicie swoje zalety. W domenach
systemu Windows 2000 mog istnie konta z 15-znakowymi hasami. To wyklucza moliwo ich szyfrowania zgodnie ze schematem LANMan (ktry ogranicza dugo hase do
14 znakw). W takim przypadku dla 15-znakowych hase wersja 2.5 wywietli komunikat o braku hasa zarwno dla kodu LANMan, jak i kodu NTLM. Takie konta prawidowo
wczyta i zidentyfikuje natomiast wersja 3.0. Jeli kiedykolwiek zetkniesz si z kodem
podobnym do poniszego:
..@0)0)3)..@0)0)3)&6?&>MM)!9")!9:+"&)>+M6;?&M

bdzie to oznaczao, e masz do czynienia z jednym z takich superhase. Zauwa, e


powyszy kod zawiera w czci LANMan (oznaczonej czcionk pogrubion) dwukrotnie
powtrzony kod 44(&;&:;9;--, o ktrym wiemy, e reprezentuje puste haso.
Inn zalet wersji 3.0 programu L0phtCrack jest moliwo rozpraszania procesu amania
hase. Metoda rozproszonego amania polega na podzieleniu caego procesu na odpowiednie bloki. Jest to istotna zaleta tego narzdzia, szczeglnie w rodowisku systemw
heterogenicznych, w ktrych moemy efektywnie przeprowadza atak i stale ledzi postp
naszych dziaa.

$  
Silne zabezpieczenia caej sieci i nalecych do niej komputerw s najlepszym sposobem ochrony plikw z hasami i samych hase. Jeli uytkownik moe skopiowa plik
z hasami lub przynajmniej ich zaszyfrowane kody do systemu Windows, zamanie wikszoci hase jest kwesti nieodlegej przyszoci. Pamitaj jednak, e takie narzdzia jak
John the Ripper czy L0phtCrack nie obsuguj pewnych znakw akceptowanych w systemach Windows jako prawidowe.

250

Cz II  Narzdzia do testowania i ochrony komputerw

Wiele kombinacji klawisza Alt i klawiszy klawiatury numerycznej zwraca znaki, ktre
nie s prawidowo rozpoznawane przez dostpne obecnie amacze hase. Aby wprowadzi
do hasa jedn z takich kombinacji musisz koniecznie wykorzystywa cyfry z klawiatury
numerycznej. Przykadowo, zestaw liter p-a-s-s-w-Alt-242-r-d (czyli passwrd) pozostanie bezpieczny do czasu, gdy kto odpowiednio zaktualizuje swoje narzdzia amice.
Dodanie znakw dostpnych po zastosowaniu kombinacji Alt-nnn znacznie wydua atak
polegajcy na przetestowaniu wszystkich moliwoci.
Kombinacje z klawiszem Alt dla znakw specjalnych rozpoczynaj si od liczby 160
(kombinacja Alt+160) i kocz na liczbie 255.

% &'()
Z punktu widzenia administratorw dbajcych o bezpieczestwo zarzdzanych przez siebie
systemw, niewtpliw zalet systemw Windows XP i Windows 2000 Service Pack 2 jest
klucz Rejestru umoliwiajcy usunicie przechowywanych kluczy LANMan dla hase
uytkownika. Pamitajmy, e kod LM jest najsabsz wersj zaszyfrowanego hasa uytkownika, poniewa ignoruje rnice pomidzy wielkimi i maymi literami. Bez ogranicze wynikajcych ze stosowania schematu LANMan (patrz omwienie implementacji
programu L0phtCrack), moemy tworzy hasa 15-znakowe lub dusze. Moemy take
tak ustawi poniszy klucz, by zakazywa systemowi Windows przechowywanie kodw
LANMan dla wszystkich hase zmienianych w przyszoci:
%E58(<`<#;8(M  M< (M(5(758%

Warto *,)A typu REG_DWORD powinna by rwna 1. Takie rozwizanie spowoduje niezgodno naszego systemu z wszystkimi systemami Windows z serii 9x i Me,
ale w aden sposb nie wpynie na zgodno z systemami 2000 i XP. Kiedy ju ustawisz t
warto, upewnij si, e wszyscy uytkownicy zmienili swoje hasa tylko w ten sposb
moemy wymusi obowizywanie nowych ustawie. Jeli nadal sdzisz, e ta prosta
zmiana wartoci Rejestru nie wpywa na popraw bezpieczestwa systemu, przeanalizuj
nastpujcy przykad. Dla omioznakowego hasa rnica w przestrzeni przeszukiwania
(ktra jest rwnoznaczna z rnic czasu potrzebnego do przeprowadzenia penego ataku
polegajcego na przetestowaniu wszystkich moliwoci) pomidzy kodem LANMan
a kodem MD4 jest ponad tysickrotna! Innymi sowy, istnieje 697 kombinacji dla kodu
LANMan (pamitaj, e rozwaamy omioznakowe haso, ktre w tym schemacie szyfrowania jest rozkadane na haso siedmioznakowe i haso jednoznakowe) oraz 968 kombinacji dla kodu MD4.
Studium przypadku: wykrywanie dziaania programu L0phtCrack w naszym systemie
Oprogramowanie antywirusowe moe wskaza na program L0phtCrack jako program stwarzajcy
zagroenie. Wynika to z faktu, e jest to bardzo przydatne narzdzie kontrolne w rkach administratorw, ale take bardzo skuteczna bro w rkach hakerw, ktrzy instaluj t aplikacj bez
odpowiednich uprawnie. Program L0phtCrack pozostawia lady w postaci plikw z rozszerzeniem
.lc. Jeli narzdzie to jest aktualnie zainstalowane w systemie (nie jest uruchamiane z dyskietki),
moemy przeanalizowa Rejestr w poszukiwaniu cigu znakw l0pht. Przyjrzyjmy si teraz kilku
testom, ktre moe wykona administrator systemu po dokonaniu odkrycia wskazujcego na dostp
stacji roboczej jednego z pracownikw do zasobu ADMIN$ kontrolera PDC.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

251

Pominiemy kilka mniej istotnych krokw, np. sprawdzanie danych na stacji roboczej i analiza uruchamianych polece. Zamiast tego skupimy si wycznie na hasach w naszej sieci. Pracujc w firmie
zatrudniajcej ponad 600 osb, musielibymy powici mnstwo czasu na dokadne sprawdzenie
hasa kadego z pracownikw; jeli jednak od razu sprbujemy znale bezporednie dowody
amania hase na komputerze podejrzanego uytkownika, bdziemy musieli przeanalizowa tylko
niewielk ilo kluczowych danych. Najbardziej oczywistym dowodem przeprowadzonej na badanym
komputerze instalacji programu L0phtCrack jest generowany przez t aplikacj klucz Rejestru:
%E58(<`<#;8(<' (5!% 2@  (5!

Niestety, w podejrzanym systemie nie znalelimy takiego klucza. Istniej jednak inne lady instalacji programu w podejrzanym systemie. Jeden z kluczy odwouje si do sterownika przechwytywania
pakietw, ktry jest wykorzystywany przez program L0phtCrack do nasuchiwania sieci i wyapywania
przesyanych w niej kodw LANMan:
%E58(<`<#;8(M  M< (< 2  (7:@<X

Klucz ten mg oczywicie zosta utworzony przez inne programy, jednak ustawiana przez nie poprawna warto powinna mie nastpujc posta (zwr uwag na wielko liter):
%E58(<`<#;8(M  M< (< 2  (7 

W badanym Rejestrze znalelimy klucz NDIS3Pkt, moemy wic podejrzewa, e w systemie zosta zainstalowany program L0phtCrack. Sprytny pracownik mg prbowa zlikwidowa wikszo
ladw obecnoci tego narzdzia; jeli by bardzo ostrony, mg nawet defragmentowa i nadpisa
woln przestrze dysku twardego celem zabezpieczenia si przed zaawansowanymi narzdziami
odnajdujcymi dane usunite z dysku. System Windows przechowuje jednak jeszcze jeden wpis
zawierajcy informacje o deinstalacji aplikacji L0phtCrack. Nawet po prawidowym usuniciu programu, w Rejestrze jest pozostawiany nastpujcy klucz:
%E58(<=&#H6D;(8 '(H (M  _  (^ (5=

Jeli administrator systemu znajdzie taki wpis w Rejestrze, moe by absolutnie pewny, e w badanym systemie zainstalowano kiedy program L0phtCrack. Kolejnym krokiem administratora moe
by przeanalizowanie wartoci MRU (Most Recently Used) w poszukiwaniu plikw z rozszerzeniem .lc. Nawet jeli uytkownik przezornie usun plik sam_pdc.lc z systemu plikw, odwoania
do tego pliku nadal mog si znajdowa w Rejestrze!

2-  &  

 !
Po pobienym przejrzeniu poprzedniego podrozdziau powiconego aplikacji L0phtCrack,
by moe przypuszczasz, e zaszyfrowane kody hase w systemach Windows mog by
rwnie atwo przegldanego przez administratora, jak plik tekstowy /etc/shadow w systemach Unix. Z drugiej strony, wykorzystywany w systemach Unix plik tekstowy /etc/shadow
moe by przegldany w najprostszych edytorach tekstu lub po prostu skierowany na standardowe wyjcie (ekran). Utrzymywana w systemie Windows baza danych SAM ma
nieczytelny format binarny i dodatkowo nie zezwala na tak atwe kopiowanie czy przegldanie. Dlatego wanie potrzebujemy takich narzdzi jak pwdump lub lsadump, ktre
generuj na podstawie bazy danych SAM jej wersj tekstow.

252

Cz II  Narzdzia do testowania i ochrony komputerw

 
Napisany przez Todda Sabina program pwdump2 (patrz strona http://razor.bindview.com/
tools/desc/pwdump2_readme.html) moe by wykorzystywany do wydobywania zaszyfrowanych hase z systemu Windows. To obsugiwane w wierszu polece narzdzie
musi by uruchamiane lokalnie w badanym systemie operacyjnym; w dalszej czci tego
podrozdziau omwimy krtko program pwdump3, ktry moe dziaa zdalnie.

*
   +
Program musi by lokalnie uruchamiany w badanym systemie. Skupimy si teraz na wersji 2. narzdzia, ktre po raz pierwszy zostao opracowane przez Jeremyego Allisona
z projektu Samba. Inaczej ni pierwsza wersja, program pwdump2 nie jest ograniczany
przez stosowane w bazach danych SAM szyfrowanie SysKey. Metod szyfrowania SysKey
wprowadzono po raz pierwszy w systemie Windows NT miao to by dodatkowe zabezpieczenie bazy danych SAM, jednak skuteczno tego mechanizmu pozostawia wiele
do yczenia, czego dowodem jest choby sprawne dziaanie narzdzia pwdump2. Poniej
przedstawiamy sposb korzystania z programu pwdump2:
M(J    L
X 4  <68 
^.    N '  J

Aby program mg wywietla zaszyfrowane kody hase, musi by uruchamiany przez


uytkownika z uprawnieniami administratora:
M(J  
6  !!'  '+')'+"'!'))!')))"''>"
=!!>))+!>))+'+ ?"""!!
. !">  >!>  !!' 

Zazwyczaj nie musimy wpisywa w wierszu polece identyfikatora procesu (PID), ktry
odpowiada dziaajcemu programowi lsass.exe. Jeli jednak jest to konieczne, moemy
wykorzysta kilka prostych sposobw odkrywania tego identyfikatora za pomoc polecenia   lub    oraz polecenia  (opcja . powoduje, e program  ignoruje wielko znakw):
M(J a'  YY
>>5<6<<;C;
M(J  a'  YY
5<6<<;C;>>7#6^#%=D@#`(<`<#;8
M(J   >>
6  !!'  '+')'+"'!'))!')))"''>"
=!!>))+!>))+'+ ?"""!!
. !">  >!>  !!' 

Jedyn wad danych generowanych przez program pwdump2 jest brak moliwoci ich
odczytania przez narzdzie L0phtCrack. Wynika to wycznie z faktu, e pwdump2
zwraca zaszyfrowane kody hase z maymi literami, a program L0phtCrack oczekuje na

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

253

wejciu wielkich liter. Warto wic pamita, e narzdzie John the Ripper ignoruje
wielko liter.
Moemy na szczcie wykorzysta program tr (translate-character), ktry przeksztaci otrzymane dane do postaci obsugiwanej przez amacza hase z graficznym interfejsem uytkownika. Program tr jest dostpny w wikszoci systemw Unix i w rodowisku Cygwin,
zosta take przeniesiony do systemw Windows jako element zestawu Resource Kit.
,  -  ./   a4164I
6:8@7@<#D6#=D!!&;M;&9M+M&9)&+"&9!&))6!9&M))9)"&&6>"
=DM!M9M!6>:))+M9M!6>:))+&+;M?M"6":":!!M
<E`M56:W@D5!66"6>;9;966:99>!>;;:96;;!!9&9;;


,
Program pwdump3 (http://www.ebiz-tech.com/pwdump3/) autorstwa Phila Staubsa jest
kolejnym rozszerzeniem narzdzia pwdump. W tej wersji istnieje moliwo uzyskiwania
zdalnego dostpu do komputera ofiary. Wersja pwdump3e umoliwia nawet szyfrowanie
zdalnych pocze, dziki czemu mona si zabezpieczy przed uytkownikami podsuchujcymi komunikacj sieciow celem przechwycenia podatnych na atak hase. Sposb
uycia programu pwdump3e rni si nieco od omawianej wczeniej wersji pwdump2:
^. XH:^8X  7 ,  &  /,  7 /
M(JX:   2    
M(J   
. !!7=X6<<H=D:OOOOOOOOOOOOOOOOOOOOO:;6MM)!9>;?!&!
 !!7=X6<<H=D:OOOOOOOOOOOOOOOOOOOOO?M9:!9!&+;"?9"&
@^<DHHH!!!";)M:MM?&+;9??M&?+!;6:M;9"69&96

Aby program pwdump3 mg dziaa prawidowo, musi istnie moliwo ustanowienia


poczenia z zasobem ADMIN$. Program ustanawia takie poczenie automatycznie i w odpowiednim momencie wzywa nas do podania hasa administratora. Moemy take ustawi
sesj poczenia z ADMIN$ samodzielnie jak zwykle uywamy do tego polecenia :
M(J   ((2  (  O 6  
#  '(((  
#     ' 

  
Program lsadump2 (http://razor.bindview.com/tools/desc/lsadump2_readme.html) znaczco
upraszcza proces wydobywania hase z systemu operacyjnego Windows. Jest to kolejne
przydatne narzdzie Todda Sabina powstao przez udoskonalenie oryginalnej aplikacji
autorstwa Paula Ashtona. Rnica pomidzy programem lsadump2 a seri narzdzi pwdump polega na tym, e lsadump2 wykonuje zrzuty rzeczywistych, tekstowych postaci
hase, zamiast generowa na wyjciu tylko ich zaszyfrowane wersje. Takie rozwizanie
jest oczywicie bardzo korzystne, poniewa eliminuje konieczno uruchamiania dodatkowych narzdzi amicych hasa. Niestety, program lsadump2 potrafi rozszyfrowa haso
tylko w sytuacji, gdy zostao ono umieszczone przez mechanizm Local Security Authority
(LSA). Moe si tak zdarzy, gdy aplikacja internetowa czy si z bazami danych SQL,
lub kiedy oprogramowanie tworzce kopi zapasow zdalnie czy si z systemem w celu
archiwizowania przechowywanych w nim plikw.

254

Cz II  Narzdzia do testowania i ochrony komputerw

*
   +
Uruchomienie programu lsadump2 wymaga dostpu do konta administratora. Sposb
uycia tego narzdzia przedstawiamy poniej:
M(J  
5 4 5<6  
^.    N '  JN  J

Musimy okreli identyfikator PID procesu lsass (robimy to tak samo, jak w przypadku
programu pwdump2):
M(J a'  YY
>>5<6<<;C;

Identyfikator PID procesu LSA jest take przechowywany w Rejestrze, w kluczu HKLM\
SYSTEM\CurrentControlSet\Control\Lsa\LsaPid.

Narzdzie generuje na wyjciu (w postaci tekstu) tajne dane znajdujcych si aktualnie w pamici procesw zwizanych z bezpieczestwem systemu. Moe to by haso wykorzystywane przez konto usugi, informacje o numerze telefonu usugi RAS lub haso do zdalnego narzdzia tworzcego kopie zapasowe. Dane wyjciowe s umieszczane w dwch kolumnach:
 HXX6<<H=D:
"!!))!!>!!?!!"!!"+!!"+!!"!! / . $    
>9!!+!! ,

Lewa kolumna reprezentuje surowe wartoci szesnastkowe zwizane z dan usug. Prawa
kolumna zawiera odpowiadajc tym danym reprezentacj ASCII. Jeli zainstalowae
ostatnio usug .NET w swoim systemie Windows 2000, najprawdopodobniej zosta stworzony w systemie uytkownik ASPNET. Jak wida, program lsadump2 bez trudu odkry
haso tego uytkownika (oznaczone pogrubion czcionk). Pamitaj, e system Windows
przechowuje hasa w formacie Unicode, co sprawia, e po kadej literze wystpuje znak
pusty (99). Na szczcie, domylne ustawienia uytkownika ASPNET nie daj mu uprawnie do zdalnego logowania ani do uruchamiania polece.

"  
(
 (  
Aktywne narzdzia s ostatni desk ratunku dla hakerw, ktrzy bezskutecznie prbowali zdoby zaszyfrowane kody hase. Programy tego typu powoduj sporo zamieszania
w sieci komputerowej oraz w atakowanych systemach (chocia przez dugi czas mog
dziaa niezauwaenie). Najtrudniejszym elementem na pocztku aktywnego ataku jest
uzyskanie poprawnej nazwy uytkownika systemu docelowego. Wicej informacji na
temat technik zdobywania nazw uytkownikw znajdziesz w rozdziale 7.
Kolejnym wanym krokiem przed rozpoczciem waciwego ataku jest prba odkrycia
progu blokujcego. Jeli okae si, e okres blokowania konta po wprowadzeniu piciu
niepoprawnych hase trwa 30 minut, nie bdziemy oczywicie tracili 29 minut i 30 sekund na podejmowanie prb, ktre nie mog doprowadzi do sukcesu.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

255

 
Program Hydra zdecydowanie przewysza wikszo dostpnych w internecie narzdzi
do aktywnego amania hase metod testowania wszystkich moliwoci z dwch powodw: jest szybki i moe atakowa mechanizmy uwierzytelniania dla bardzo wielu rnych protokow. Niewtpliw zalet programu jest dostpno kodu rdowego (zgodnie
z licencj GPL) oraz fakt, e jest czci narzdzia Nessus.

*
   +
Program Hydra mona bez trudu skompilowa w systemach BSD i Linux; kompilacja
aktualnej wersji narzdzia (2.4) jest, niestety, niemoliwa w rodowisku Cygwin i systemie Mac OS X. Jeli pracujesz w systemie BSD lub Linux, wykonaj typowe polecenia
.2 ,  i $ . Po zakoczonej pomylnie kompilacji moesz zapozna si z dostpnymi argumentami wiersza polece:
%2>AB!!2%   #%MN2-.J<
,,,45=W@7a45&@5;/,4X6<<a4X&@5;//a,4M&@5;//,4&@5;/
,4#6<E</,4.#6<E</,4#@8;/,4'/,4 /,4X=D#/,4</ 2 
 2  ,=X#/
= 
4< 2 <<5
4X=D# '  2    ''   ' * '    
45=W@745&@5;.  5=W@7 * 2 . '&@5;
4X6<<4X&@5;X6<<* 2 '&@5;
4    *YY' *YY. 
4M&@5;  Y. Y'*  '45 4X 
4&@5;  ' .   &@5;  ' 
4'  '  ' ' .  
4#6<E< #6<E<  '   A ' >B
4.#6<E<#6<E<      4#6<E<   
4#@8;  * '       A ' !B
 2  .  2 
 2    2  
=X#  2         *   

Cel ataku definiujemy za pomoc argumentw  i . Typem usugi moe by
dowolna z wymienionych poniej aplikacji. Zauwa, e dla wielu z tych usug zdefiniowano
ju port dla dostpu SSL. Pierwsza liczba w nawiasie reprezentuje domylny port usugi;
druga liczba jest numerem portu dla komunikacji SSL. Jeli usuga docelowa nasuchuje
na innym porcie, nie zapomnij uy w wierszu polecenia opcji 0 . Oto lista usug aktualnie rozpoznawanych przez program Hydra:
 telnet (23, 992) zdalna powoka polece.
 ftp (21, 990) transfer plikw.
 pop3 (110, 995) dostp do poczty elektronicznej.
 imap (143, 993) dostp do poczty elektronicznej.
 smb (139, 139) usugi SMB systemu Windows, w tym udostpnianie plikw

i dostp do IPC$.

256

Cz II  Narzdzia do testowania i ochrony komputerw

 http (80, 443) usugi WWW.


 https (brak, 443) usugi WWW przez SSL.
 cisco (23) typowe dla urzdze Cisco wezwanie usugi telnet, w ktrej wymagane

jest tylko haso.


 cisco-enable (23) wejcie w tryb enable (lub super-user) urzdzenia Cisco.

Musimy zna haso pocztkowego logowania i poda je w wierszu polecenia po


opcji 0 i bez opcji 0 czy 0, (nie bdziemy musieli podawa nazwy uytkownika).
4  4X!!!> 4 

 ldap (389, 636) protok LDAP (Lightweight Directory Access Protocol)

jest czsto wykorzystywany do pojedynczych rejestracji w systemie.


 mysql (3306, 3306) baza danych.
 nntp (119, 563) dostp do grup dyskusyjnych USENET.
 vnc (5900, 5901) zdalne administrowanie rodowiskami z graficznym interfejsem

uytkownika.
 rexec (512, 512) usuga do zdalnego uruchamiania polece w systemach Unix.

W niektrych systemach dostp do tej usugi domylnie nie jest rejestrowany


w dziennikach zdarze.
 socks5 (1080, 1080) serwer poredniczcy (proxy).
 icq (4000, brak) komunikator internetowy. ICQ wykorzystuje protok UDP,

co oznacza, e nie jest moliwa komunikacja przez SSL.


 pcnfs (0, brak) protok wykorzystywany do drukowania plikw w sieci.

Domylne numery portw rni si w zalenoci od dystrybucji systemu


i stosowanych serwerw, co oznacza, e zawsze musimy je ustawia bezporednio
w wierszu polece (za pomoc opcji 0 ). Take ta usuga wykorzystuje protok
UDP, nie jest wic moliwa komunikacja przez SSL.
Uruchamianie programu Hydra jest proste. Najwikszym problemem, z jakim moesz si
zetkn jest wybr waciwej kombinacji nazwy uytkownika i hasa. Poniej przedstawiamy przykad ataku na usug SMB systemu Windows. Jeli na docelowym serwerze
jest otwarty port 139. lub 445. i wystpi bd, moe to oznacza, e usuga Server atakowanego systemu Windows nie zostaa uruchomiona w takim przypadku nasz atak nie
moe si oczywicie zakoczy sukcesem.
,  - / 45  4X!!>
D     'A      B
%2>AB!!2%   #%M4   ' .  
=    ;A B* """ ( C ";   )2 D" 1* ?EF
,?/,/.   .  G
%'   

Hydra wywietla zarwno czn liczb sprawdzanych kombinacji (zwykle jest to liczba
unikatowych nazw uytkownika pomnoona przez liczb unikatowych hase), jak i liczb
uruchomionych rwnolegych zada.

Rozdzia 8.  amanie hase: narzdzia testujce wszystkie moliwoci

257

Nigdy nie bdziemy mogli uruchamia wicej ni jednego rwnolegego zadania przeciwko
usudze SMB, nawet jeli uyjemy opcji 0, ktra w zaoeniu zwiksza liczb rwnolegych
zada. Z jakiego powodu rwnolege procesy logowania do usugi SMB powoduj
du liczb faszywych wynikw negatywnych. Domyln wartoci dla opcji 0 jest 4,
taka liczba rwnolegych zada jest zalecana dla urzdze Cisco oraz serwerw VNC
(Virtual Network Computing). Maksymalna liczba zada wynosi 255, taka liczba
nie zawsze jednak zapewnia optymalny czas pracy i najbardziej wiarygodne wyniki.

Jeli naprawd chcesz, by przeprowadzane testy byy optymalne (eby tym samym nie
byy testami wyczerpujcymi), powiniene rozway zastosowanie opcji 0> zamiast wskazywa plik dla kadej opcji 0, (dla kadej nazwy uytkownika) i dla kadej opcji 0B (dla
kadego hasa). Po opcji 0> wskazujemy pojedyncz nazw pliku jako jej argument. Plik
ten zawiera kombinacje nazw uytkownikw i hase oddzielonych dwukropkami. Ta metoda
czsto okazuje si bardziej efektywna ni testowanie kont, poniewa moemy stworzy
plik ze znanymi kombinacjami nazw uytkownikw i hase, co ogranicza liczb niepotrzebnych prb dla nieistniejcych nazw uytkownikw. Takie rozwizanie jest szczeglnie
przydatne w sytuacjach, w ktrych chcemy testowa wystpowanie wycznie domylnych
i najbardziej popularnych hase.
Kiedy testujesz usugi w swojej sieci, nie zapomnij o wykorzystaniu opcji 0. Opcja ta
wcza testowanie specjalnych przypadkw, czyli braku hasa (0$) lub hasa identycznego z nazw uytkownika (0$ ).
Studium przypadku: sprawdzanie strategii zarzdzania hasami
Takie narzdzia jak Hydra s wykorzystywane w dwch sytuacjach: albo podczas ataku na komputery
w sieci, albo podczas kontrolowania zabezpiecze systemw. Oba procesy przebiegaj podobnie,
jednak istnieje zasadnicza rnica pomidzy ich celami. Przyjrzyjmy si pracy administratora systemu w dziale wewntrznego audytu. Pracownicy tego dziau nie administruj systemami, sprawdzaj jedynie, czy systemy dziaaj zgodnie z przyjt w firmie polityk bezpieczestwa. Innymi
sowy, do zada dziau naley testowanie kont sieciowych w poszukiwaniu hase niezgodnych
z ustanowionymi zasadami.
Polityka bezpieczestwa wymaga stosowania ochrony hasami wszystkich kont (nie mog istnie
puste hasa), definiowania niebanalnych hase (interpretacja tego warunku nie jest jednoznaczna,
z pewnoci jednak hasa nie mog by takie same jak nazwy uytkownikw), zawierania w hasach przynajmniej jednej cyfry i jednego znaku interpunkcyjnego (nie s dozwolone hasa skadajce si z samych liter) i tworzenia hase co najmniej omioznakowych. W niektrych systemach
Windows i Unix moemy wymusi stosowanie tych regu w procesie zmiany hase przez uytkownikw. W innych systemach, np. pracujcych w urzdzeniach Cisco, nie jest to moliwe.
Jednym z zada dziau kontroli jest znajdowanie sabych hase w jednym z nastpujcych scenariuszy:
 System nie zawiera metod umoliwiajcych wymuszanie wprowadzania dobrych hase. Pracownicy
dziau kontroli musz w tym wzgldzie zaufa uytkownikom.
 System zawiera metody umoliwiajce wymuszanie wprowadzania dobrych hase, jednak
metody te s bdnie skonfigurowane. Uytkownicy powinni realizowa polityk zarzdzania
hasami, jednak jej wskazania nie s automatycznie wymuszane.
 System zawiera metody umoliwiajce wymuszanie wprowadzania dobrych hase, jednak
uytkownicy mog atwo omija zdefiniowane reguy i wprowadza banalne hasa (np.
password99!, pa$$w0rd lub adm1n1str@t0r).

258

Cz II  Narzdzia do testowania i ochrony komputerw

Pracownicy dziau zidentyfikowali ju kilka usug sieciowych, ktre mog si sta atwym celem dla
hakerw. Nie oznacza to jednak, e najlepszym rozwizaniem w tym momencie jest stworzenie
listy wszystkich uytkownikw, pobranie z internetu sownika z dwustoma tysicami sw i uruchomienie programu Hydra (lub wielu procesw tego narzdzia, z uwagi na ilo pracy do wykonania).
Zamiast tego mona opracowa sownik ze sowami, ktre nie speniaj zalece polityki bezpieczestwa oraz z wyrazami zgodnymi z t polityk, ale stworzonymi przez proste zastpowanie samogosek cyframi lub inne podobne zabiegi. Doskona metod tworzenia list hase na podstawie regu
dotyczcych dugoci i zawartoci oferuje program John the Ripper (wspomniany wczeniej w tym
rozdziale). Moemy nastpnie stworzy (wycznie w celach testowych) plik oldwrods.txt, w ktrym
umiecimy uywane przez administratorw hasa przed ich ostatni zmian. Plik oldwords.txt ma
skadni w postaci: C
 D
1  E. Przykadowo:
 > K
6   <\#
 aK

Sprbujmy streci dziaania dziau kontroli. Jego pracownicy stworzyli trzy pliki (i mog jeszcze stworzy czwarty i pity):
 users.txt lista wszystkich (znanych) nazw uytkownikw systemw podczonych do sieci.
 passwords.txt lista najczciej spotykanych kombinacji od jednej do siedmiu liter, plus
wybrane omioliterowe kombinacje z cyframi zastpujcymi samogoski. Wikszo zawartych
w tym pliku wpisw mona otrzyma ze sownikw dostpnych w internecie, domylnego pliku
password.lst doczanego do programu John the Ripper lub pliku wygenerowanego za pomoc
tego narzdzia. Aby ograniczy liczb zakoczonych niepowodzeniem operacji logowania,
ktre bd rejestrowane przez serwery, na naszej licie nie umiecilimy wicej ni tysic
kombinacji.
 oldwords.txt lista kombinacji kont i hase, ktre zostay zmienione w cigu ostatnich
dziewidziesiciu dni. Oczywicie taki plik powinien by naleycie zabezpieczony.
 Puste hasa uywamy opcji 0$ w programie Hydra, aby sprawdzi wszystkie konta
w poszukiwaniu pustych hase.
 Te same hasa uywamy opcji 0$ w programie Hydra, aby sprawdzi wszystkie konta
w poszukiwaniu hase identycznych z nazwami uytkownikw.
Jak dotd dzia kontroli wykona cakiem sporo pracy nawet bez sprawdzania, czy uda si skompilowa program Hydra. Moemy wic miao stwierdzi, e pracownicy tego dziau stworzyli metod testowania realizacji opracowanej przez nich strategii zarzdzania hasami. Na tym etapie mona
ju uruchomi program Hydra dla wyselekcjonowanych usug (oczywicie po uprzednim upewnieniu si, e weryfikowane konta nie bd blokowane po nieudanych prbach logowania). Kady
otrzymany w tej fazie wynik pozytywny powinien zwrci uwag administratorw sieci i systemu,
poniewa wskazuje na niezgodno z wymaganiami przyjtej polityki bezpieczestwa.
Wyobramy sobie teraz sytuacj, w ktrej pracownicy dziau wewntrznej kontroli przystpuj do
audytu hase bez odpowiedniego przygotowania pobieraj z internetu sownik wyrazw z dziesicioma tysicami pozycji i uruchamiaj program Hydra testujcy dwiecie kont. Jeli bd mieli
szczcie, by moe uda im si zakoczy kontrol w cigu weekendu. Jeli bd mieli naprawd wielkie szczcie, aden serwer nie ulegnie awarii spowodowanej cakowitym wykorzystaniem
dostpnej przestrzeni dyskowej na pliki dziennikw, w ktrych rejestrowane s nieudane prby
logowania. Co pracownicy dziau powinni zrobi, kiedy stosunkowo dobre haso, np. ou@te1tw2
lub -#*crAft0, zostanie odgadnite tylko dlatego, e znajduje si w uytym sowniku? W takim
przypadku przekonanie uytkownika, e naruszy zasady bezpieczestwa bdzie przecie bardzo
trudne, poniewa stworzone przez niego haso nie jest banalne.
Z drugiej strony, odrobina szczcia w poczeniu z rozbudowanym sownikiem moe skutkowa
pomylnym zakoczeniem takiego testu sieci komputerowej. Dochodzimy wic do punktu, w ktrym
w procesie kontroli hase koczy si rola programu Hydra, a zaczyna si rola narzdzia do testw
penetracyjnych.

You might also like