Zdalne łamanie haseł.pdf

(905 KB) Pobierz
268862779 UNPDF
ATAK
WOJCIECH SMOL
łamanie haseł
Stopień trudności
Pokładanie nadziei w matematycznych gwarancjach
bezpieczeństwa algorytmów szyfrujących i zabezpieczających
dane to czysta naiwność. Każde hasło, każde zabezpieczenie
można złamać... lub obejść. Niezmiennie najsłabsze ogniowo
stanowi czynnik ludzki.
haseł. Doboru właściwej metody należy
dokonać na podstawie szczegółowej analizy
konkretnego zadania. Należy rozróżnić dwa
podstawowe rodzaje ataków na hasła.
Ataki typu offline wykorzystują fakt
posiadania bezpośredniego dostępu do
zaszyfrowanego pliku (np. zaszyfrowane
archiwum RAR, ZIP, itd.) lub pliku zawierającego
zaszyfrowane hasła (np. plik / etc/shadow w
systemach operacyjnych typu *NIX). Pomimo
tego, że odzyskanie hasła bezpośrednio
z postaci zaszyfrowanej, czyli odwrócenie
algorytmu generującego skróty haseł, może
być bardzo trudne lub praktycznie niemożliwe,
posiadanie haseł w takiej postaci otwiera drogę
kilku metodom ataków. Wejście w posiadanie
skrótu hasła umożliwi nam wytypowanie grupy
prawdopodobnych haseł, wygenerowanie
dla nich skrótów zgodnie z zastosowanym w
danym przypadku algorytmem, a następnie
porównanie wszystkich skrótów ze skrótem
łamanego hasła. W przypadku, gdy skrót hasła
będzie identyczny ze skrótem któregoś ze
zbioru sprawdzanych haseł, oznacza to sukces
– udało nam się odnaleźć poszukiwane hasło.
Większość z używanych obecnie algorytmów
wyznaczania skrótu hasła jest bardzo szybka,
dzięki czemu w ciągu jednej sekundy możliwe
jest wygenerowanie i porównanie z wzorcem
nawet setek tysięcy skrótów. Na tej zasadzie
oparta została cała gama ataków – między
innymi ataki słownikowe, ataki sprawdzające
wszystkie możliwe kombinacje haseł (algorytmy
siłowe) oraz metody hybrydowe. Najnowsze
osiągnięcie w dziedzinie łamania haseł offline
stanowią ataki oparte o tzw. tęczowe tablice.
Pomysł jest dość prosty – najkrócej mówiąc,
metoda ta polega na wygenerowaniu bazy
zawierającej pary <hasło, skrót hasła>
dla całego przewidywanego zbioru haseł.
Specjalne metody pozwalają na zapisywanie
tylko niektórych skrótów, dzięki czemu cała
baza zachowuje rozsądne rozmiary. W takim
przypadku odgadnięcie hasła, którego skrót
posiadamy, sprowadza się do wyszukania
w bazie identycznego skrótu i odczytania
odpowiadającego mu hasła. Metody te są
bardzo skuteczne i niezwykle szybkie, w ciągu
kilku sekund możliwe jest złamanie hasła, na
które tradycyjne metody sprawdzania wszystkich
możliwych kombinacji potrzebowałyby dni,
miesięcy, a nawet lat.
Ataki typu offline zostały szczegółowo
przedstawione na łamach czasopisma
Hakin9 (wydanie 1/2009) przez pana Łukasza
Ciesielskiego. W niniejszym artykule chciałbym
natomiast przedstawić ataki typu online .
Ataki tego rodzaju można zdefiniować jako
takie, w których przypadku jedyną możliwość
zweryfikowania poprawności odkrytego hasła
stanowi próba zdalnego zalogowania się do
atakowanego systemu. Przykłady takich ataków
stanowią: próba włamania się do zdalnego
Z ARTYKUŁU
DOWIESZ SIĘ
o atakach umożliwiających
złamanie haseł do zdalnych
usług,
o narzędziach służących do
łamania haseł online ,
o metodach profilowania
właścicieli kont zabezpieczonych
hasłem,
o metodach zbierania informacji
personalnych o nieznajomych,
o zasadach tworzenia
bezpiecznych haseł.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawy inżynierii
społecznej,
orientować się w metodach
przeprowadzania prostych
ataków sieciowych,
znać podstawy działania
i obsługi narzędzi służących do
zdalnego analizowania sieci
i systemów komputerowych,
takich jak Nmap,
znać podstawy działania
protokołu Telnet.
24 HAKIN9
3/2009
Zdalne
I stnieje wiele różnorodnych metod łamania
268862779.017.png 268862779.018.png 268862779.019.png 268862779.020.png 268862779.001.png
ZDALNE ŁAMANIE HASEŁ
serwera FTP lub próba zdobycia hasła
do skrzynki e-mail dostępnej poprzez
interfejs webowy.
W przypadku tego rodzaju ataków,
sam proces łamania hasła ulega
bardzo dużej komplikacji. Dzieje się
tak, ponieważ cechą charakterystyczną
sytuacji, w których używamy metod
typu online , jest brak dostępu do
atakowanego hasła w postaci
zaszyfrowanej. Fakt ten uniemożliwia
więc wykorzystanie ataków słownikowych,
siłowych, hybrydowych oraz opartych o
wygenerowaną wcześniej bazę skrótów
haseł. Jak więc złamać hasło, w sytuacji,
gdy nie dysponujemy żadnymi danymi
na jego temat, nie posiadamy skrótu
oraz nie mamy dostępu do systemu, w
którym hasło to jest przechowywane?
Okazuje się, że istnieją metody –
zarówno techniczne, jak i pozatechniczne
– których jednoczesne wykorzystanie
pozwoli na złamanie takich haseł, a ich
skuteczność może być zaskakująco
wysoka.
określonym przedziale czasu, co również
uniemożliwia masowe próby zdalnego
logowania.
Ataki typu online stanowią dla
intruza nie lada wyzwanie, jednak nie
są niemożliwe do przeprowadzenia.
Cracker może w takim przypadku
wykorzystać metodę, którą można
określić mianem zmodyfikowanej
metody słownikowej z wykorzystaniem
narzędzi automatyzujących zdalne
logowanie. Cały pomysł jest dość
prosty i polega na wygenerowaniu
niewielkiego słownika, zawierającego
tylko te hasła, co do których istnieje
podejrzenie, że mogły zostać w danym
przypadku użyte. Dysponując tak
spreparowanym słownikiem, należy
następnie skorzystać z narzędzi, które dla
każdego z testowanych słów wykonają
automatyczną próbę zalogowania się
do atakowanego serwera lub usługi. W
momencie, gdy któraś z prób logowania
powiedzie się, program wyświetli
prawidłowe hasło do atakowanego
systemu.
Jak łatwo można się zorientować,
najtrudniejszą część całej operacji
stanowi wygenerowanie owego
magicznego słownika potencjalnych
haseł. Na pierwszy rzut oka zadanie to
wydaje się praktycznie niewykonalne,
bo niby na jakiej podstawie mamy tak
po prostu odgadnąć czyjeś hasło?
Jednak, jak za chwilę pokażę, zadanie
to może się okazać zaskakująco
proste. Na nic jednak zda się tutaj
wiedza stricte informatyczna. W tym
wypadku należy skorzystać z pomocy
statystyki, psychologii stosowanej oraz
inżynierii społecznej. Największym
sprzymierzeńcem intruza może się
również okazać zwykle ludzkie lenistwo
oraz tak powszechne niedbalstwo...
Łamanie czarnej skrzynki
W sytuacji, gdy nie wiemy praktycznie
zupełnie nic o serwerze, usłudze lub
urządzeniu sieciowym (mam tu na myśli
również brak wiedzy na temat osób
administrujących tymi urządzeniami),
do którego hasło chcielibyśmy zdobyć,
mówimy o przypadku łamania czarnej
skrzynki (ang. black box cracking ).
Wydaje się, że stworzenie słownika
potencjalnych haseł, który posłużyłby
do dalszych testów, jest w tej sytuacji
niemożliwe.
Należy jednak zauważyć, że
dzisiejsze serwery pracują pod
kontrolą jednego z dosłownie
kilku powszechnie stosowanych
systemów operacyjnych. Aplikacje
webowe korzystają powszechnie z
kilku najpopularniejszych silników.
Usługi udostępniane są za pomocą
kilku najpopularniejszych rozwiązań
– komercyjnych bądź darmowych.
Wreszcie specjalizowane urządzenia
sieciowe, takie jak przełączniki lub
routery, pochodzą w głównej mierze od
kilku czołowych producentów. Wniosek z
tego jest taki, że intruz prawdopodobnie
napotka na swej drodze dość typowe
Czarna magia?
Jak już wspomniałem, ataki typu online
charakteryzuje brak dostępu do hasła
w postaci zaszyfrowanej. Uniemożliwia
to wykorzystanie większości klasycznych
metod łamania haseł opartych o
generowanie i porównywanie skrótów.
Nie jest to jednak jedyny problem, przed
którym stanie intruz. Ponieważ kontakt
z atakowanym systemem operacyjnym
lub usługą możliwy jest wyłącznie
za pośrednictwem sieci (w postaci
przeprowadzenia próby zalogowania),
sprawdzenie pojedynczej kombinacji
hasła trwa nieporównywalnie dłużej niż
podobna operacja przeprowadzona
lokalnie. Oznacza to więc, że w
przypadku ataków online intruz zazwyczaj
nie jest w stanie przetestować milionów
czy choćby tysięcy kombinacji haseł.
Ponadto tysiące prób logowania,
przesyłanych do serwera poprzez
publiczną sieć, może zwrócić uwagę
sieciowych systemów wykrywania
włamań NIDS (ang. Network Intrusion
Detection System ) i spowodować
zauważenie próby włamania. Często też
zdarza się, że administratorzy definiują
maksymalną ilość prób logowania
do danego serwera lub usługi w
Rysunek 1. Nmap OS Fingerprinting
3/2009
HAKIN9
25
268862779.002.png 268862779.003.png
ATAK
środowisko – rzadko zdarza się, by
dane rozwiązania zostało stworzone
od podstaw na zamówienie. Następnie
należy zauważyć, że prawdopodobnie
każde z tych rozwiązań (aplikacja
webowa, router, serwer bazy danych
itd.) będzie udostępniało jakiś interfejs
umożliwiający zdalne zarządzanie.
Może to być interfejs dostępny przez
przeglądarkę internetową, poprzez
wiersz poleceń, protokół SNMP itd. Nie
ma to jednak większego znaczenia.
Najważniejsze jest to, że intruz jest
w stanie taki cel zidentyfikować.
Wykorzystując techniki znane jako OS
and Service Fingerprinting , jesteśmy
w stanie zebrać szereg informacji o
celu ataku. Szczegółowy opis technik
fingerprintingu wykracza poza temat
artykułu, wspomnę tylko, że pomocny
może się tu okazać znany skaner
sieciowy Nmap. Gdy już zbierzemy
podstawowe informacje o rodzaju
systemu operacyjnego, urządzenia lub
usługi, możemy przystąpić do tworzenia
listy potencjalnych haseł.
W przypadku czarnej skrzynki na liście
potencjalnych haseł należy w pierwszej
kolejności umieścić... hasła domyślnie
spotykane w przypadku danego
rozwiązania. Nader często zdarza się,
że urządzenia lub usługi pracujące
produkcyjnie nie są prawidłowo
zabezpieczone. Może się więc zdarzyć,
że administratorzy pozostawili domyślne
konta wraz z domyślnymi hasłami i
korzystają z nich produkcyjnie. Może
się również zdarzyć, że administratorzy
co prawda utworzyli swoje własne
konta zabezpieczone silnymi hasłami i
podczas pracy z nich korzystają, jednak
zapomnieli wyłączyć konta domyślnie
wbudowane. Zdarza się również, że na
czas wdrażania i testowania nowej usługi
stworzone zostało konto testowe (np. test )
zabezpieczone łatwym do zapamiętania
hasłem (np. także test ). Spotyka się
nawet takie sytuacje, w których na czas
testów używa się hasła pustego! Ma to
oczywiście na celu ułatwienie częstego
logowania w trakcie testowania usługi
– niestety zdarza się, że po uruchomieniu
produkcyjnym administratorzy zapomną
usunąć takie konto.
W przeciwieństwie do wielu
administratorów, hakerzy oraz crackerzy
znają bardzo dobrze problem haseł
domyślnych lub używanych testowo
i często wykorzystują tę prostą lukę.
Grupy hakerskie oraz crackerskie tworzą
nawet specjalne listy haseł, na których
każdy może odnaleźć domyślne hasła
do danego urządzenia lub programu.
Jedną z największych tego typu list
stworzyła i ciągle aktualizuje grupa znana
jako Phenoelit . Korzystając z tejże listy,
administratorzy mogą sprawdzić, czy
przypadkiem domyślne hasła do usług
i urządzeń w ich sieci nie są aktywne.
Niestety, z tej bazy haseł mogą korzystać
(i robią to) również crackerzy...
W drugiej kolejności należy wziąć pod
uwagę wspomniane już hasła używane
w trakcie testów oraz hasła najczęściej
wykorzystywane. Jeśli hasła domyślne nie
pozwoliły na zalogowanie się do zdalnej
usługi, crackerowi pozostaje sprawdzenie
haseł najczęściej wykorzystywanych.
Statystyki dotyczące stosowanych haseł
pokazują jasno, że ludzie wybierają
zazwyczaj dość proste hasła, które są
łatwe do zapamiętania oraz z czymś im
się kojarzą. Listy najczęściej stosowanych
haseł są oczywiście również publikowane
w Internecie. Podobnie, jak w przypadku
haseł domyślnych, mogą one zostać
wykorzystane do sprawdzenia, czy
przypadkiem stosowane przez nas
hasło nie jest ujęte na jednej z list.
Prawdopodobnie jednak częściej listy
takie są wykorzystywane przez intruzów do
stworzenia listy potencjalnych haseł. Hasła
powszechnie uważane za najczęściej
wykorzystywane to między innymi:
• hasło puste (brak hasła),
• słowo hasło lub password ,
• słowo admin lub administrator ,
• ciągi znaków występujących obok
siebie na klawiaturze takie jak: qwerty
lub asdf ,
• hasło identyczne z nazwą konta
(loginu),
• słowo niecenzuralne.
Rysunek 2. Nieznajomych poznasz na Naszej Klasie!
Część administratorów zdaje sobie
sprawę z tego, że nie należy używać
najczęściej wykorzystywanych haseł,
26 HAKIN9 3/2009
268862779.004.png 268862779.005.png 268862779.006.png
 
ZDALNE ŁAMANIE HASEŁ
dlatego wybierają oni jedno z takich
haseł... i dokonują drobnej zmiany.
Chyba najczęściej stosowany dodatek
do prostego hasła stanowi dodanie
cyfry na końcu bądź na początku hasła.
Zazwyczaj jest to po prostu cyfra 1.
Wiedzą o tym oczywiście crackerzy,
którzy w następnym kroku dopiszą do
listy prawdopodobnych haseł kombinacje
takie jak: admin1, password1, czy też
1asdf.
Jako przykład łamania hasła do
systemu, o którym zupełnie nic nie
wiemy, rozważmy próbę zdobycia
hasła do systemu pracującego pod
konkretnym adresem IP. Poza adresem
IP, nie wiemy nic o celu ataku, tak więc
jest to przypadek łamania czarnej
skrzynki. Znając wyłącznie adres IP,
atak możemy rozpocząć od próby
zidentyfikowania rodzaju systemu, który
pracuje pod zdalnym adresem. W
tym celu wystarczy uruchomić skaner
Nmap z następującymi parametrami:
nmap -A adres_IP_celu . Przyglądając
się wynikowi skanowania (Rysunek 1),
można zauważyć, że Nmap zidentyfikował
zdalny system jako router pracujący pod
kontrolą systemu operacyjnego IOS.
Przy okazji widzimy, że przeskanowany
adres obsługuje łącze typu DSL w
domenie tpnet.pl . Pod adresem IP, który
wybraliśmy, kryje się więc router firmy
Cisco, za którym prawdopodobnie
znajduje się firmowa sieć LAN. Analizując
dalej wyniki skanowania, uwagę zwracają
otwarte porty urządzenia, szczególnie 23/
TCP oraz 80/TCP. Otwarte dla wszystkich
usługi telnet oraz zarządzania poprzez
wbudowany serwer WWW świadczą o
tym, że urządzenie nie zostało starannie
zabezpieczone. Można więc spróbować
zalogować się do urządzenia poprzez
te udostępnione interfejsy korzystając
z haseł domyślnych (domyślne dane
umożliwiające zalogowanie się do
routera Cisco to zazwyczaj: cisco:cisco)
lub najczęściej używanych. Przy odrobinie
szczęście uda nam się uzyskać pełen
dostęp do urządzenia.
��������������������
������������������
���������������
���������������
��������������
�����������
���
�����������������
�������������
��������
���
����������������
�����������
���
�����������������
�������������
���������
���
�������������������
�������������
�������������������
����������
�����
������������
�����������
���
�����������������
�������������
������������
���
�������������������
��������������
���������������
�����������������
������������������
Łamanie szarej skrzynki
W przypadku braku jakichkolwiek
danych na temat atakowanego systemu,
przedstawione metody nie są oczywiście
w 100% skuteczne, a sukces będzie Rysunek 3. Schemat blokowy ataku typu online
�����������������
�������������
����������������
3/2009
HAKIN9
27
268862779.007.png 268862779.008.png 268862779.009.png 268862779.010.png 268862779.011.png 268862779.012.png 268862779.013.png
ATAK
zależał od ewentualnej słabości hasła lub
zaniedbania administratora.
Jednak dość często intruz dysponuje
jakąś, choćby szczątkową, wiedzą
na temat atakowanej usługi lub jej
administratora/właściciela. Dzieje się
tak, ponieważ zazwyczaj wybrany zostaje
konkretny cel ataku, a sam wybór nie jest
przypadkowy.
W sytuacji, gdy dysponujemy choćby
niewielką wiedzą na temat atakowanego
systemu lub osób z nim związanych,
mówimy o ataku polegającym na
łamaniu szarej skrzynki (ang. gray box
cracking ).
Tworząc słownik potencjalnych
haseł do systemu, o którym posiadamy
pewną wiedzę, mimo wszystko
najpierw przetestowałbym możliwości
przedstawione dla przypadku czarnej
skrzynki.
Jeśli hasła domyślne oraz
najczęściej używane nie pozwolą na
zalogowanie się do atakowanej usługi,
wtedy należy wykorzystać wiedzę
dotyczącą samego systemu oraz osób
nim zarządzających.
Jeśli wiedza ta dotyczy samego
systemu, usługi, serwera, oprogramowania
lub urządzenia, do którego hasło chcemy
zdobyć, tworząc słownik potencjalnych
haseł można tę wiedzę wykorzystać
następująco:
webowy umożliwiający rejestrację
nowego użytkownika, warto się z nim
zapoznać – być może będzie on
źródłem cennych informacji odnośnie
do wymagań oraz ograniczeń
nałożonych na hasło. Dzięki temu
możemy się przykładowo dowiedzieć,
że hasła użytkowników systemu
muszą zawierać przynajmniej jedną
cyfrę; dysponując taką wiedzą,
słownik prawdopodobnych haseł
modyfikujemy, tak by wszystkie wpisy
zawierały na początku lub na końcu
cyfrę (najprawdopodobniej właśnie
w ten sposób użytkownicy spełniają
wymagania systemu),
• jeśli dysponujemy wiedzą na temat
firmy wdrażającej dany system,
również może to być dla nas cenną
pomocą. Jeżeli firma ta nazywa
się przykładowo Giga Web Soft ,
intruz może spróbować poszerzyć
słownik o następujące loginy i
hasła: gigawebsoft:gigawebsoft ,
gigawebsoft:gigawebsoft1 , gws:
gws , gws:gws1 , itp.; jest wielce
prawdopodobne, że na czas
wdrożenia wdrożeniowcy utworzyli
dla siebie konto administracyjne
zabezpieczone łatwym do
zapamiętania hasłem, natomiast
administratorzy mogą zapomnieć
o wyłączaniu lub usunięciu takiego
konta.
• dysponując wiedzą na temat osób
bliskich właścicielowi konta, warto
sprawdzić hasła związane z danymi
personalnymi małżonka, sympatii itp.,
• niektórzy użytkownicy, wiedząc, że
dane personalne bliskich mogą być
zbyt łatwe do odgadnięcia, jako hasło
wybierają ciągi znaków związane z
faktami, o których wie mniej osób,
czyli np. imiona zwierząt domowych,
nazwę ulubionego miejsca czy też
imię pierwszej miłości z czasów
szkoły podstawowej.
Oczywiście również te kombinacje warto
testować w wersji z pojedynczą cyfrą
na początku i na końcu ciągu, gdyż
niezmiennie stanowi to najczęstszy sposób
urozmaicania haseł.
Często jest jednak tak, że intruz
nie zna dobrze osoby, do której konta
chce się włamać. Wszak możemy
dysponować imieniem i nazwiskiem
administratora danego systemu
komputerowego, serwera lub urządzenia
sieciowego (czasem informację taką
można znaleźć najzwyczajniej na stronie
domowej danej firmy!), lecz poza tym
nie znać żadnych danych personalnych
ani dotyczących życia osobistego
tejże osoby. Istnieją jednak metody
pozwalające na bardzo dobre poznanie
nieznajomych ludzi...
Dobry (nie)znajomy
Załóżmy, że udało się ustalić tylko
imię i nazwisko właściciela konta, do
którego hasło chcemy złamać. W jaki
sposób możemy utworzyć słownik
potencjalnych haseł, zawierający
oprócz haseł domyślnych i najczęściej
używanych, również ciągi związane z
danymi personalnymi tej osoby oraz
jej znajomych? Wystarczy skorzystać z
serwisów społecznościowych (ang. social
network services ), takich jak nasza-
klasa.pl . Portale tego typu umożliwiają
użytkownikom nawiązywanie ciekawych
kontaktów, poznawanie nowych ludzi
oraz odnawianie starych znajomości.
Niestety, aby inni mogli nas odnaleźć,
zazwyczaj jesteśmy zmuszeni udostępnić
o sobie szereg informacji. Znając tylko
imię i nazwisko właściciela atakowanego
konta oraz zakładając, że korzysta on
z portali społecznościowych, możemy
• wiedząc, że stworzona na zamówienie
aplikacja webowa nazywa się
przykładowo GigaWebAdmin , można
spróbować poszerzyć słownik
prawdopodobnych haseł o następujące
loginy i hasła: gigawebadmin:
gigawebadmin , admin:gigawebadmin ,
administrator:gigawebadmin , itp.;
warto również przetestować hasła
zawierające na końcu i na początku
cyfrę, takie jak: gigawebadmin1 oraz
1gigawebadmin ,
• jeśli system, do którego hasło chcemy
zdobyć, udostępnia jakiś interfejs
Jeśli posiadamy jakąś wiedzę na temat
osoby, której hasło do danej usługi chcemy
złamać, sprawa wygląda jeszcze bardziej
interesująco. W takiej sytuacji, tworząc
słownik potencjalnych haseł można
spróbować wykorzystać dodatkowo
następujące fakty:
• znając dane personalne właściciela
konta, do listy prawdopodobnych
haseł można dopisać ciągi znaków
związane z imieniem, nazwiskiem czy
też datą urodzenia tej osoby,
Rysunek 4. Hydra w akcji
28 HAKIN9 3/2009
268862779.014.png 268862779.015.png 268862779.016.png
 
Zgłoś jeśli naruszono regulamin