Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
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
#$ %&
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
!"
"
' (! )
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
%
-
Spis treci
GetUserInfo .........................................................................................................................161
Implementacja ...............................................................................................................162
enum.....................................................................................................................................163
Implementacja ...............................................................................................................163
PsTools.................................................................................................................................167
Implementacja ...............................................................................................................168
HFNetChk............................................................................................................................185
Implementacja ...............................................................................................................185
)
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
&
SubSeven .............................................................................................................................284
Implementacja ...............................................................................................................285
Loki......................................................................................................................................289
Implementacja ...............................................................................................................291
stcpshell ...............................................................................................................................293
Implementacja ...............................................................................................................294
Knark ...................................................................................................................................295
Implementacja ...............................................................................................................296
#$#
;!$$
%
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
.!! %
NetStumbler .........................................................................................................................524
Implementacja ...............................................................................................................525
AiroPeek ..............................................................................................................................527
Implementacja ...............................................................................................................527
Wellenreiter .........................................................................................................................529
Implementacja ...............................................................................................................529
Kismet..................................................................................................................................530
Implementacja ...............................................................................................................530
Zwikszanie moliwoci programu Kismet ..................................................................535
10
%
&
"$#
Spis treci
11
lsof .................................................................................................................................606
ps....................................................................................................................................607
kill..................................................................................................................................611
Md5Sum ........................................................................................................................611
Carbonite .......................................................................................................................612
12
' $(
='
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
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
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.
Biblioteka PassFilt.dll moe znajdowa si w systemie NT, zanim jednak narzdzie to
zacznie prawidowo funkcjonowa, musimy wprowadzi kilka niezbdnych modyfikacji w Rejestrze:
Jeli ju istniej dane wartoci dla FPNWCLNT, usu je, chyba e w Twoim systemie
wymagana jest zgodno z systemem Novell.
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.
227
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
4[UWPGM
Zwikszanie
zoonoci hasa
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:
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,
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
230
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
231
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
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
passw0rd!
232
Passw0rd!
Pa$$w00rd
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.
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):
233
'(
(
!)(
'*"
''(
(
!))(
'*+
(
(
!))(
'*+
234
Zaktualizowany plik login.conf moe mie nastpujc posta (celowo definiujemy w poniszym przykadzie sab klas ):
'(
(
!)(
'*+(
+(
!
' (
'
(
)))(
(
"(
''(
(
!))(
'*(
+(
!
(
(
!))(
'*
,-.
(
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
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
236
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+=,>.!!
633 11 $)?3$))3))>""?>'??")?''>
237
pracujcej w systemie Windows wymagana jest jedynie zakodowana wersja hasa, system operacyjny jest w tym przypadku nieistotny.
('(..
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
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
239
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
,>/,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
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
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
II# liczba znakw na licie
241
242
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
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:
243
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
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
245
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
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 .AF "!1Q F
0 F1 1Q1UB
,/,Z[K-0 GV\OAB4]/ ,!>")+?/
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.
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:
+?+'!">!=>+)'
+?+'!">!=>>!>
>+)' >>!>
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
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.
249
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
$
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
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.
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!
!
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
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
X4 <68
^. N' J
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(Ja'
YY
>>5<6<<;C;
M(Ja'
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
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
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
*
+
Uruchomienie programu lsadump2 wymaga dostpu do konta administratora. Sposb
uycia tego narzdzia przedstawiamy poniej:
M(J
545<6
^. N' JN J
Musimy okreli identyfikator PID procesu lsass (robimy to tak samo, jak w przypadku
programu pwdump2):
M(Ja'
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.
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
uytkownika.
rexec (512, 512) usuga do zdalnego uruchamiania polece w systemach Unix.
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.
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
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.