Originál sepsán: Warpboy(em)
Obsah
0x01 Definice Rainbow Tables
0x02 Využití Operační paměti
0x03 Nastavení Software
0x04 Generování tabulek
0x05 Crakování Hashů
0x06 Závěr
0x07 Poděkování, Kontakt
0x01 Definice Rainbow Tables
Takže co to vlastně ty Rainbow Tables jsou? Rainbow Tables jsou novou generací crackingu využívající pokročilejších metod pro cracking hesel zašifrovaných technologiemi MD5 ( Message Digest 5 ) nebo LM (Lan Manager ). Rainbow tables se staly známými pro svou rychlost crackování. Dnešní době je nezbytné jít s dobou a technologiemi a proto jsem napsal tento článek, který vás seznámí se vším ohledně Rainbow Tables od použítí až k aplikaci v dnešní době.
Rainbow Table je speciální druh tabulky která využívá operační paměti při obnově nezašifrovaného textu z textu šifrovaného jednosměrnou šifrou.
0x02 Využití operační paměti
Tradiční cestou používanou k rozluštění zašifrovaných hesel je tzv. Útok hrubou silou ( Brute – Force Attack ). Jde o metodu která jednoduše vyzkouší všechny možne kombinace podle zadaných kritérií. Tato metoda je a vždy byla metodou velmi náročnou co se času týče. Metoda kterou vymyslel Philippe Oechslin se snaží tento čas co nejvíce zredukovat tím, že používá již předběžně vykalkulovaná data uložená v paměti která jsou následně použita při crackování. Hlavní ideou tohoto nápadu je že veškerá data potřebná ke crackování jsou předvypočtena a uložena do souboru ( Rainbow Table – tabulky ). Pravdou je že proces předvýpočtu zabere celkem velké množství času avšak jakmile jsou tabulky jednou vytvořeny proces crackingu je 100x rychlejší než obyčejný brute-force cracker. Využití operační paměti je revolucí v crackingu díky snížení množství potřebného času kryptoanalýzy.
0x03 Nastavení software
Existuje mnoho ruzných generátorů tabulek. Já však pro tento článek a také kvůli osobním zkušenostem použiji RainbowCrack který je dostupný ( FREE ) na:
LINK.
Pokud nemáte RainbowCrack rádi podívejte se po Winrtgen a Cain&Abel oba jsou ke stažení zde:
LINK (FREE)
Takže stáhněte si RainbowCrack a následně extrahujte obsah archivu do zvolené složky. Pro článek sem zvolil „C:“.:
Pokud chcete můžete prostudovat i readme ale není to nezbytně nutné. Pokud se tedy pri extrakci nevyskytly žádne chyby a soubory v archivu se shodují s těmi extrahovanými pak jste úspěšně nainstalovali RainbowCrack na váš počítač.
0x04 Generování tabulek
Před tím než budete schopní začít crackovat hashe potřebujete vygenerovat dostatečné množství tabulek. Proto se v této kapitole dozvíte jak tabulky generovat. Velikost tabulek závisí na velikosti volného místa na disku. Program kterým se tabulky generují se nazýva „rtgen“ a je umístěn ve složce kterou sme před tím vytvořili. K vygenerování tabulek je třeba definovat následující argumenty:
hash algorithm \ character set \ plaintext length minimum \ plaintext length maximum \rainbow table index \ rainbow chain legth \ rainbow chain count \ file title suffixHash
Hash algorithm options: Výběr algoritmu (př.: md5)
Character set: Znaková sada – lze ji editovat v textovém souboru charset.txt (př.: alfa-numerický [123456789ABCDEFGHIJKLMNOPQRSTUV])
Plaintext length minimum: Minimální počet písmen ve slově (př.: 1)
Plaintext length maximum: Maximální počet písmen ve slově(př.:8)
Rainbow Table Index: Index tabulky (př.: 0)
Rainbow Chain Length: Délka rainbow řetězce (př.: 11300)
Rainbow Chain Count: Počet řetězců k vygenerování (př.: 6000)
File Title Suffix: Používá se k zabránění duplicity tabulek(př.: 0)
Před samotným generováním tabulek je dobré zjistit přibližný čas potřebný ke generování. K tomuto použijte argument “-bench”. Stačí si otevřít příkazový řádek ( protože rtgen je konzolová aplikace ) pak se přesuntě do složky s RainbowCrackem stejně jako na obrázku.
Měli byste nyní být ve složce stejně jako na obrázku:
Tak pokud jste tam spusťte si rtgen.
Jak vydíte došlo k vypsání potřebných argumentů o kterých jsem se už zmínil. Takže dejme se do generování naší první tabulky.
Pokud máte více počítačů generování setů tabulek nezabere tolik času. Set tabulek jsou vlastně indexovované tabulky. Například nemůžete mít 39GB tabulku protože počítač nemá na tak velkou tabulku dost místa avšak můžete mít 39 tabulek po 1GB a to provedete tak že každé tabulce přiřadíte index. Rtgen bude vědět že existuje – li tabulka s indexem 0 už nebude znova generovat tabulku se stejným obsahem jako je obsah tabulky 0.
Na obrázku používám znakovou sadu která obsahuje malá písmena.
Po vygenerování můsíte tabulky roztřídit použitím programu “rtsort”
Takto to vypada při třídění:
Po roztřídění je čas tabulku vyzkoušet.
0x05 Crackování hashů
Protože tabulka kterou jsme vytvořili používá algoritmus MD5 zkusíme si zašifrovat jednoduchý text “ad” bez uvozovek. A následně ho prolomit pomocí tabulky. Na internetu jsou tuny MD5 šifrovačů takže si nějaky najděte na googlu a text zašifrujte.
ad:523af537946b79c4f8369ed39ba78605Nyní by měla být tabulka schopna cracknout tento hash a vypsat textový řetězec “ad”. Program který se pro toto používá se nazýva “rcrack” a argumenty jsou jednoduché.
Na tomto obrázku je vidět tabulku hledající hash.
A zde pracující tabulku:
Gratuluji! Právě jste dokázali vytvořit tabulku, roztřídít ji a následně I craknout jednoduchý textový řetězec.
0x06 Závěr
V průběhu psaní tohoto článku jsem několikrát zmínil slova “cracknout, cracking” ačkoliv hashe nikdy prolomeny nebyly. Algoritmy MD5 a LM jsou jednosměrné a proto se na ně lze jenom nahlížet. Takže kdykoliv když řeknete “Crackuju svuj hash s rainbow tables” není to správně. Ikdyž momentálně se to tak říká :)
Některé zdroje dalších vědomostí:
www.antsight.com/zsl/rainbowcrack/
http://en.wikipedia.org/wiki/Rainbow_table
http://lasecwww.epfl.ch/~oechslin/publications/crypto03.pdf
0x07 Poděkování, Kontakt
Poděkování patří:TimQ, Z666, Ice_Dragon, kAoTiX, Ethernet, PunkerX, The-Maggot, theNerd, Archangel, Phrankeh, Grim, Splinter,Gammarayz, Maverick, Wolv, NinjaOptix, and SDB memberz + a další přátele které jsem nezmínil
Kontakt
E-mail: Warpboy1@yahoo.com
MSNM: Warpboy1@yahoo.com
Website: www.securitydb.org