bruteforce.pdf

(772 KB) Pobierz
100320963 UNPDF
Atak
Wykorzystywanie
tęczowych tablic do
łamania haseł
Paweł Maziarz
stopień trudności
Znanym od dawna sposobem łamania haseł była metoda
brute-force. Przy odpowiednio długim haśle była ona jednak
co najmniej niepraktyczna. Jakiś czas temu Philippe Oechslin
przedstawił nowe spojrzenie na łamanie pewnej grupy haseł,
wprowadzając przy tym nowe narzędzie – tęczowe tablice (ang.
Rainbow Tables).
trzeba wyjaśnić sobie kilka pojęć. Dziś
w wielu systemach hasło użytkownika
zapisywane jest jako jego skrót (tzw. hash),
uzyskany poprzez użycie na haśle funkcji skró-
tu (ang. hash function ). Funkcja skrótu to ta-
ka funkcja, która z dowolnie długiej wiadomo-
ści utworzy pewien ciąg znaków (zwykle o sta-
łej długości), będący jej skrótem. Funkcje skró-
tu do zastosowań kryptograicznych powinny
spełniać następujące kryteria:
W ramce obok przedstawionych jest kilka ha-
shy różnych funkcji skrótu z hasła hakin9.
Druga funkcja leżąca u podstaw tęczowych
tablic, o której należy wspomnieć, to funkcja
redukcyjna. Działa ona niejako odwrotnie do
funkcji skrótu, ponieważ z hasha tworzy ona
hasło w czystym tekście (zawierające tylko
określony zestaw znaków, np. tylko małe lite-
ry i cyfry). Uzyskane za jej pomocą hasło z ha-
sha nie może być oczywiście hasłem, które da-
ło określony hash (co wynika z własności funk-
cji skrótu), ale dzięki niej będą tworzone kolej-
ne kombinacje hasła, które znowu zostaną po-
traktowane funkcją skrótu i porównane z ha-
shem łamanego hasła.
• brak możliwości odtworzenia wiadomości
(hasła) ze skrótu,
• brak możliwości wygenerowania dwóch
różnych wiadomości o takim samym skró-
cie (brak kolizji),
• zmiana jednego bitu wiadomości powinna
istotnie zmienić jej skrót.
Z artykułu dowiesz się
co to są tęczowe tablice,
jak dzięki nim złamać hasło do konta Windows,
MySQL, Cisco PIX etc.
Najbardziej popularne funkcje skrótu używa-
ne do przechowywania haseł to: SHA1, MD-2,
MD-4, MD-5, LM, NTLM, MySQL-SHA1, RI-
PEMD-160, Cisco PIX. Za pomocą tych algo-
rytmów hasła zapisywane są między innymi w
bazie użytkowników MySQL, w systemie Win-
dows, routerach Cisco oraz wielu aplikacjach.
Co powinieneś wiedzieć
powinieneś wiedzieć trochę o hasłach i meto-
dach ich szyfrowania.
2
hakin9 Nr 9/2007
www.hakin9.org
Ż eby zrozumieć istotę tęczowych tablic,
100320963.017.png 100320963.018.png 100320963.019.png
Wykorzystywanie tęczowych tablic do łamania haseł
Rysunek 1. Eksport zahashowanych haseł systemu Windows
parę złożoną z hasła oraz jego skró-
tu w postaci szukanego hasha. Me-
toda ta jest równie prosta, co sku-
teczna.
Istnieje jednak jeden problem,
który – paradoksalnie jako niepożą-
dany przy funkcjach skrótu – zwięk-
sza bezpieczeństwo generowanych
hashy w kontekście tęczowych tablic.
Chodzi o wspominane wcześniej ko-
lizje, czyli sytuacje, kiedy wiele róż-
nych wiadomości (haseł) daje w wy-
niku funkcji skrótu taki sam hash. W
przypadku tęczowych tablic mogło-
by się więc okazać, że łańcuchy, któ-
re zaczynają się różnymi hasłami,
w okolicznościach wystąpienia koli-
zji w pewnym momencie zaczynają
się pokrywać i w konsekwencji koń-
czą się takim samym hashem. Mo-
gą też wystąpić zapętlenia w przy-
padku, gdy hash został zredukowany
do hasła, które zostało już otrzyma-
ne gdzieś wcześniej w danym łańcu-
chu. Problem ten został rozwiązany
poprzez zastosowanie różnych funk-
cji redukcyjnych na całej drodze od
początku łańcucha do jego końca.
Dzięki temu, problem kolizji hashy w
różnych łańcuchach został znacznie
ograniczony, ponieważ w przypadku
wystąpienia kolizji – o ile nie jest to
kolizja w tej samej kolumnie – w ko-
lejnym kroku hash zostanie zreduko-
Tęczowe tablice –
zasada działania
Jak zostało napisane wcześniej,
funkcja skrótu użyta na haśle przed-
stawionym w postaci czystego tek-
stu, zwróci w wyniku jego hash. Na
podstawie hasha nie jesteśmy w
stanie odtworzyć hasła, a więc by
złamać hasło musimy brać po ko-
lei wszystkie możliwe hasła, pobie-
rać ich skrót (hash), a następnie po-
równywać go z hashem hasła, które
chcemy złamać. By skrócić czas ta-
kiego postępowania, można by zapi-
sywać do pliku tak stworzone hashe
i używać ich do łamania następnych
haseł - jednak nietrudno ocenić, że
plik zawierający taką tablicę haseł i
ich hashy byłby ogromny, technicz-
nie nie do pomieszczenia na dzisiej-
szych nośnikach danych.
Kompromisem między wykorzy-
staniem wcześniej przygotowanych
hashy, a oszczędnością miejsca na
dyskach są właśnie tęczowe tablice.
Składają się one z łańcuchów (ang.
chains ) złożonych z haseł oraz ich
hashy. Dla każdego łańcucha gene-
rowane jest hasło, z którego następ-
nie wyliczany jest jego hash za po-
mocą funkcji skrótu. W następnym
kroku, z tak otrzymanego hasha, za
pomocą funkcji redukcyjnej tworzone
jest kolejne hasło. Z tego hasła znów
generowany jest hash, z hasha kolej-
ne hasło. I tak dalej. W tęczowych ta-
blicach zapisywany jest jednak tylko
pierwszy i ostatni element łańcucha
(hasło i ostatni hash), dzięki czemu
tak stworzone tablice bez problemu
mieszczą się na dzisiejszych dys-
kach twardych.
W celu odzyskania hasła, wczy-
tywane są z tęczowych tablic ha-
she, następnie szukany jest w nich
hash hasła, które chce się złamać.
Jeżeli nie znaleziono, generowane
jest hasło z łamanego hasha za po-
mocą funkcji redukcyjnej, z którego
uzyskuje się następnie hash za po-
mocą funkcji skrótu i wraca do kro-
ku poprzedniego znów porównując
hashe. Kiedy hash zostaje w koń-
cu znaleziony, brane jest początko-
we hasło z łańcucha, w którym hash
się znajdował, a następnie reduko-
wane jest i skracane, aż uzyska się
Rysunek 2. Łamanie haseł programem Ophcrack
www.hakin9.org
hakin9 Nr 8/2007
3
 
100320963.001.png 100320963.002.png
 
Atak
wany do innego hasła. Został tym sa-
mym wyeliminowany problem zapę-
tleń wewnątrz jednego łańcucha, bo
w każdym kroku hash redukowany
jest inną funkcją.
Ten sposób rozwiązania omówio-
nych problemów przyczynił się też
do nazwy owych tablic. Jeżeli każ-
dą funkcję redukcyjną w danym kro-
ku oznaczyć innym kolorem, powsta-
łaby wielka pionowa tęcza, a więc
określenie tęczowych tablic jest zu-
pełnie na miejscu.
slina. Jest to cracker haseł window-
sowych działający w oparciu o tę-
czowe tablice. Jest on dostępny
na platformy Windows, Linux oraz
Mac. Potrai łamać hasła zaszyfro-
wane algorytmami LM oraz NTLM.
Dostępne za darmo są do niego
tęczowe tablice zawierające ha-
sła złożone z liter i cyfr dla algoryt-
mu LM, bardziej wyszukane tabli-
ce można kupić na stronie projek-
tu. Ciekawy jest fakt, że w oparciu
o dystrybucję SLAX Linux stworzo-
no Ophrack LiveCD , czyli dystrybu-
cję Linuksa startującą wprost z na-
pędu CD, która po wystartowaniu
sama odnajdzie partycję z Window-
sem, znajdzie i wyeksportuje sobie
hasła użytkowników, po czym na-
tychmiastowo zacznie je łamać, nie
zostawiając po sobie żadnych śla-
dów. Nie potrzeba znać hasła ad-
ministratora Windows, ani mieć spe-
cjalnej wiedzy, wszystko robi się sa-
mo – wystarczy zbootować kompu-
ter z płyty CD.
Uruchamiając program pod Win-
dowsem i posiadając uprawnienia
administratora, Ophrack pozwala wy-
eksportować hasła z bazy. W prze-
ciwnym wypadku trzeba je uzyskać
samemu poprzez użycie dołączo-
nych poleceń bkhive oraz samdump2
(Rysunek 1). Przykładowa sesja pro-
gramu Ophrack, podczas której w
niespełna kilkadziesiąt sekund pora-
dził sobie z hasłami złożonymi z ma-
łych i dużych liter oraz cyfr, przedsta-
wiona jest na Rysunku 2.
Ophrack
Pierwszym narzędziem, które zo-
stanie omówione jest program Oph-
rack napisany przez Philippe Oech-
Rysunek 3. Skomplikowane hasła złamane programem RainbowCrack
RainbowCrack
Kolejnym ciekawym narzędziem
jest aplikacja RainbowCrack . Jest
to konsolowe narzędzie działają-
ce pod systemami Linux oraz Win-
dows. Dzięki niemu można złamać
hasła zahashowane algorytmami
LM, MD5, SHA1 oraz dowolnym in-
nym w miarę potrzeb, ponieważ ła-
two można dodać obsługę własnego
algorytmu. Oprócz właściwego crac-
kera ( rcrack ), RainbowCrack posia-
da jeszcze narzędzia do tworzenia
własnych tęczowych tablic ( rtgen ,
rtsort , rtdump ). Chociaż program nie
ma graicznego interfejsu, używa się
go szalenie łatwo – narzędzie wyma-
ga dwóch parametrów: ścieżki do tę-
czowej tablicy oraz hashy do cracko-
wania, które można podać wprost w
linii komend (przełącznik -h), jako
plik z listą hashy (-l) lub jako zrzut pli-
ku z hasłami użytkowników (-f). Pro-
gram w trakcie działania (z tęczowy-
mi tablicami złożonymi z haseł za-
wierających małe i duże litery, cyfry
oraz znaki specjalne) przedstawia
Rysunek 3.
Rysunek 4. Cain & Abel w akcji
Cain & Able
Cain jest dobrze znanym narzędziem
dla systemu Windows służącym do
przywracania zapomnianych ha-
seł za pomocą różnorakich technik
– podsłuchiwania sieci, crackowa-
4
hakin9 Nr 9/2007
www.hakin9.org
100320963.003.png
 
100320963.004.png
 
100320963.005.png
 
100320963.006.png 100320963.007.png
 
100320963.008.png
 
Wykorzystywanie tęczowych tablic do łamania haseł
nia metodą brute-force, słownikową.
Posiada on jeszcze wiele ciekawych
funkcji, jednak w kontekście tego ar-
tykułu interesuje nas fakt, że potra-
i łamać hasła korzystając z krypto-
analizy, między innymi używając tę-
czowych tablic. Program potrai ko-
rzystać z tablic przeznaczonych za-
równo dla programu Ophrack , jak
i RainbowCrack . Jego użycie jest
bardzo proste, sprowadza się tylko
do wybrania użytkowników, dla któ-
rych trzeba złamać hasło oraz zde-
iniowania, z jakich tęczowych tablic
chce się korzystać. W zależności od
rodzaju tablic oraz stopnia skompli-
kowania samych haseł, w ciągu kil-
kudziesięciu sekund powinny uka-
zać się odszyfrowane hasła. Działa-
nie programu przedstawione jest na
Rysunku 4.
Przykładowe hashe hasła hakin9
MD2: 6c335ceafc1ca2d9b701c0a503ebe29f,
MD4: 60a6ba1557c83ffd6d40bbafa633963b,
MD5: 5700d720e1c8f9af6929d05b02f4e7c6,
SHA-1: c0132641f8f1acb0a74b249f441e0ebac18be386,
SHA-2 (256): 42daba7642566324b9344c7e5a83a97da3fc5fa145fd6358132a-
18804530de64,
RIPEMD-160: 678e478a15637c67933731633ae73322b472aec2,
LM: 5e412e797ab62000,
NT: 7c61cd37d7c28d0f04d6d1b5d80cb8b4,
MySQL-323: 42e0696a62ac975f,
MySQL-SHA1: d6a98da6247cbaa40c436155203d104ef2865191,
Cisco PIX: yvigbue7izydod6j.
Skąd wziąć tęczowe
tablice?
Tęczowe tablice można pozyskać
na 3 sposoby. Po pierwsze, można
je wygenerować samemu. Służy do
tego między innymi konsolowe na-
rzędzie rtgen z wcześniej wspomnia-
nego projektu RainbowCrack oraz
okienkowy program pod systemy Mi-
crosoft o nazwie winrtgen . Urucha-
miając ten pierwszy bez żadnych pa-
rametrów, uzyskamy dokładną infor-
mację o sposobie użycia wraz z kil-
koma przykładami, drugi natomiast,
posiadając bardzo przyjemny i przej-
rzysty interfejs (Rysunek 5), nie na-
stręczy trudności w generowaniu ta-
blic nawet mało zaawansowanym
użytkownikom.
Następny sposób na pozyskanie
tęczowych tablic to ściągnięcie ich z
Internetu. Jest kilka serwisów, które
udostępniają je za darmo, na przykład
http://lasecwww.epfl.ch/~oechslin/
projects/ophcrack/ (dwie podstawo-
we tablice dla programu Ophrack ),
http://www.freerainbowtables.com/ ,
http://rainbowtables.shmoo.com/ ,
http://wired.s6n.com/iles/jathias/ .
Ostatnim sposobem jest ich ku-
pienie poprzez takie serwisy jak http:
//www.rainbowcrack-online.com/ ,
http://www.rainbowtables.net/ czy
stronę projektu Ophcrack oraz wie-
le innych.
Rysunek 5. Generowanie tęczowych tablic za pomocą winrtgen
Rysunek 6. Łamanie hasła w serwisie plain-text.info
Łamanie haseł online
Tęczowe tablice są dziś już bardzo
popularne, dlatego nikogo nie dziwi
fakt powstania wielu serwisów inter-
netowych umożliwiających łamanie
hasła online. Istnieje wiele komer-
cyjnych stron, które – po wniesieniu
odpowiedniej opłaty – wykorzystując
algorytm tęczowych tablic potraią
www.hakin9.org
hakin9 Nr 8/2007
5
 
100320963.009.png 100320963.010.png
 
Atak
odzyskać hasła kont windowsowych,
użytkowników MySQL, routerów Ci-
sco czy też zabezpieczonych doku-
mentów pakietu Microsoft Ofice. Ist-
nieją też serwisy niekomercyjne, w
których – ku uciesze wielu – moż-
na łamać hasła zupełnie za darmo,
często z zupełnie zadowalającą sku-
tecznością.
Jednym z takich serwisów jest
plain-text.info. Dzięki niemu moż-
na odszyfrować hasło zakodowane
algorytmami MD5, LM oraz NTLM.
System wprawdzie przyjmuje po 2
hashe LM i NTLM co 15 minut oraz
2 MD5 co minutę, jednak w chwi-
li pisania artykułu limity te są zupeł-
nie nieodczuwalne przy łamaniu po-
jedynczych haseł. Po dodaniu hashy
do serwisu i określeniu algorytmu, w
jakim zostały utworzone, system wy-
szukuje czy hash został wcześniej
złamany, jeżeli nie – tęczowe tabli-
ce idą w ruch i rozpoczyna się łama-
nie. Pozostaje już tylko co kilkana-
ście sekund odświeżać podstronę z
wynikami ( View All Hashes ) i wypa-
trywać złamanego hasła w czystym
tekście. Należy jednak pamiętać,
że tak złamane hasła są widoczne
przez wszystkich internautów, a więc
również i my możemy zobaczyć ha-
sła innych, co może mieć spore wa-
lory edukacyjne (Rysunek 6).
Kolejnym serwisem jest pas-
scracking.com. Dzięki niemu moż-
na złamać hash MD5, SHA-1 oraz
hasła użytkowników MySQL (My-
SQL-SHA1 i starszy MySQL-323).
W Sieci
http://lasecwww.epl.ch/~oechslin/publications/crypto03.pdf – idea tęczowych tablic
opisana przez Philippe Oechslin-a,
http://kestas.kuliukas.com/RainbowTables/ – bardziej przyjazny opis tego tematu,
http://ophcrack.sourceforge.net/ – strona programu Ophcrack,
http://www.antsight.com/zsl/rainbowcrack/ – projekt RainbowCrack,
http://www.oxid.it/cain.html – strona programu Cain & Abel.
O autorze
Autor jest właścicielem i jednocześnie jednym z głównych programistów irmy tworzą-
cej między innymi oprogramowanie sieciowe. Na przełomie ostatnich lat współpraco-
wał z kilkoma irmami w charakterze Security Specialist. W wolnych chwilach gra w
golfa, na gitarze klasycznej oraz spuszcza się na linie z budynków.
Kontakt z autorem: pawel.maziarz@intersim.pl
Po podaniu hasha system najpierw
sprawdza, czy istnieje on już w ba-
zie. Jeżeli istnieje, od razu zostanie
wyświetlone hasło (tak jak na Rysun-
ku 7), jeżeli nie, po kliknięciu przyci-
sku Send My md5 hash to Rainbow
Cracker, hash zostanie dodany do
kolejki obliczeń. Na dzień dzisiejszy
można dodawać do kolejki tylko ha-
she md5.
Inne serwisy łamiące hashe on-
line bez opłat to między innymi http:
//www.milw0rm.com/cracker/ oraz
http://md5crack.it-helpnet.de/ . Istnie-
je jeszcze wiele innych i wiele będzie
jeszcze się tworzyć (a także znikać),
dlatego najlepszym pomysłem jest
wyszukanie ich dopiero wtedy, kiedy
zajdzie taka potrzeba.
Podsumowanie
Jak widać, przechowywanie haseł
w postaci ich hashy, powstałych w
wyniku użycia funkcji skrótu, nie jest
wcale tak bezpieczne, jak się to kie-
dyś wydawało. Dzięki tęczowym ta-
blicom ich łamanie staje się całkiem
szybkie, do tego coraz więcej irm
(oraz niekomercyjnych grup) tworzy
coraz to większe zbiory tęczowych
tablic, które radzą sobie z hasha-
mi jeszcze szybciej. Jedną z me-
tod obrony przed takimi atakami jest
dodanie do hasła pewnej nadmiaro-
wej, losowej informacji zwanej so-
lą (ang. salt ) i zapisanie jej w takiej
postaci, by algorytm porównywania
hasha z bazy z hashem hasła użyt-
kownika ją uwzględnił. I tak na przy-
kład podczas dodawania użytkowni-
ka do bazy, obok hasła mógłby zo-
stać zapisany czas jego utworzenia
i doklejony do końca hasła, więc ha-
sło hakin9 zostałoby zapisane jako
np. hash tekstu hakin91182850495 .
Przy logowaniu natomiast brane by-
łoby pod uwagę hasło podane przez
użytkownika, do którego doklejana
byłaby odpowiednia sól z bazy i do-
piero wtedy hashowane. Ten prosty
zabieg znacznie utrudniłby łama-
nie hasła, a w miarę zwiększania i
komplikowania owej soli, nawet pro-
ste hasła mogłyby się okazać prak-
tycznie niemożliwe do złamania me-
todami brute-force czy przy zasto-
sowaniu tęczowych tablic. l
Rysunek 7. Złamane hasło Mysql na passcracking.com
6
hakin9 Nr 9/2007
www.hakin9.org
100320963.011.png
 
100320963.012.png
 
100320963.013.png
 
100320963.014.png 100320963.015.png
 
100320963.016.png
 
Zgłoś jeśli naruszono regulamin