Jak prolomit heslo do Windows XP za pět sekund

Na webu najdete hromadu nástrojů, které dokážou odhalit heslo k Windows XP. Nyní se čas ještě zkrátil, do „boje“ se totiž vedle vysokého procesorového výkonu zapojila i SSD jednotka.

Jsou to necelé dva roky, co jsem na Živě.cz psal článek o švýcarském týmu, který s pomocí superpočítače sestaveného z herních konzolí PlayStation prolamoval SSL certifikáty. Jen připomenu, že program uměl sestavit certifikát vydaný některou z důvěryhodných autorit.Takový certifikát by pak mohl používat třeba phishingový záškodník, který by vytvořil falešné stránky dejme tomu banky a ty by podepsal certifikátem některé z respektovaných agentur, která jej ale ve skutečnosti vůbec nevydala.

Magický hash

Kouzlo celého experimentu tehdy spočívalo v „rozluštění“ kontrolního součtu – hashe. Pakliže vám hash nic neříká, připomenu, že se jedná o elektronický otisk libovolných dat. Jinými slovy, množině hodnot odpovídá vždy pouze jeden kontrolní součet (i když to není tak jednoduché, zvláště u MD5 algoritmu).

  • MD5 hash pro slovo bobik je 4ddc3a9aaa4de72ea38333044cbecaaa
  • SHA-1 hash pro slovo bobik je ee5ed6567d0f6579bf16b235a50c99cbd23e2080

Hashe jsou každodenní součástí života s počítačem a používáme je například při přihlašování.Pokud tedy u nás máte zřízený účet, my sice známe vaše přihlašovací jméno, nikoliv však heslo – pouze jeho hash. Pokud by tedy někdo zaútočil na naši databázi, skutečná hesla by nikdy nezískal. Jak to tedy vlastně s přihlašováním funguje? Pokud vpravo nahoře zadáte svůj login a heslo, webový server pro heslo spočítá kontrolní součet a porovná ho se záznamem v databázi. Ze stejného důvodu vám mnoho služeb při zapomenutém heslu to správné nenabídne, ale spíše vás požádá o vytvoření hesla nového. Je to logické, ze stejného důvodu netuší, jaké heslo jste vlastně používali – znaly totiž pouze jeho hash.

Jak rozluštit hash

Samozřejmě se nabízí otázka, jestli lze hash rozkódovat. Záleží pochopitelně na technologii, která ho počítá (MD5, SHA-1 a další) a také takzvaném „salt“, tedy binárním nepořádku, kterým se hash „posype“ a ještě více znepřehlední.

Hashovací algoritmy nejsou šifry. Jsou jednosměrné, jakmile tedy vznikne hash, už ho na původní text nepřepočítáte. Ostatně to ani není možné, protože kontrolní součet třeba celého souboru se skládá pouze z relativně malého množství znaků, neexistuje zde poměr 1:1, tedy jeden původní znak na jeden zašifrovaný znak dat.

I když ovšem není kontrolní součet typickou šifrou, originál lze skutečně zjistit. Jak je to možné? Brutální silou moderních počítačů, které budou dělat tu relativně hloupou činnost, ke které jsou konstruované – budou opakovat jednoduché počty tak rychle, jak to jenom jde.

Klepněte pro větší obrázek

Pokud je tedy kontrolní součet MD5 pro slovo bobik hodnota 4ddc3a9aaa4de72ea38333044cbecaaa, počítačový program Bobíka odhalí prostě tak, že bude generovat hashe pro všechny možné textové kombinace a to tak dlouho, dokud nebude kontrolní součet odpovídat známé hodnotě. Asi si dokážete představit, že to bude docela pracná záležitost, a pokud si ještě pamatujete na středoškolskou kombinatoriku, snadno si zjistíte počet možných kombinací, které je třeba vystřídat, než se trefíte do toho správného slova. U skutečně dlouhých hesel, jejichž dílčí znaky mohou obsahovat třeba libovolný znak Unicode, to pak mohou být miliardy miliard kombinací a více. Ostatně představte si třeba heslo o délce deseti znaků. Pokud se bude jednat o znakové kódování Unicode, každý z nich může teoreticky nabývat 107 tisíc variant z devadesáti světových abeced. Celkový počet kombinací by tedy byl 107 tisíc na desátou, což je číslo s padesáti nulami.

Duhová tabulka

Procházet tolik znakových kombinací, než se trefíte do toho správného kontrolního součtu, je běh na dlouhou trať i u současných superpočítačů. A teď si ke všemu představte, že ten správný hash by byl skutečně až někde na konci tohoto obřího seznamu kombinací. Aby se tomu předešlo a aby byl v odhadování skutečných dat schovaných za hashem nějaký systém, začalo se pracovat s takzvanou „rainbow table“. Její vnitřní systém je nad rámec tohoto článku, nicméně se jednoduše řečeno jedná o hromadu předpočítaných dat. Program pak nemusí procházet úplně všechny možné kombinace, počítat pro ně hashe a ty porovnávat s kontrolním součtem, jehož skutečnou hodnotu chceme znát.

Klepněte pro větší obrázek
Typický ceník rainbow tabulek

Rainbow tabulky nejsou nějaké droboučké textové soubory, ale podle své kvality databáze až o velikosti desítek gigabajtů. Jejich zpracovávání trvá celé dny a na webu je za úplatu nabízí celá hromada bezpečnostních firem. Nakonec na webu najdete i několik komunitních projektů, které takové duhové tabulky zpracovávají pomocí distribuovaných výpočtů. Pokud tedy naše počítače zapojujeme do projektů hledání mimozemské civilizace (Seti@Home), případně vytěžujeme procesor počítáním nejrůznějších genomů, můžeme se zapojit i do počítání podobných tabulek. Počítač pak bude zpracovávat nejrůznější kontrolní součty a výsledky bude zasílat zpět na centrální server.

Riziko vysokého počítačového výkonu

Jak se zvyšuje výkon počítačů, roste pochopitelně i riziko, že současné hashovací algoritmy nebudou stačit. Po herních konzolích na řadu přichází levný „superpočítačový“ hosting Amazon EC2, Google AppEngine nebo třeba Windows Azure. Oproti běžným webovým hostingům tyto služby nabízí škálovatelný výkon, na webu vám tedy může běžet aplikace s přiděleným výkonem mnoha procesorových jader.

Klepněte pro větší obrázek
Superpočítačový cluster složený z herních konzolí PlayStation 3

Dalším technologickým skokem vpřed je pak třeba využití výkonu grafické karty – zde je nejdále zejména CUDA. Pokud se do odhalování hashů pomocí rainbow tabulek zapojí několik jader procesoru a grafická karta, čas se pochopitelně dramaticky sníží a výkon bude srovnatelný i s průmyslovými superpočítači let minulých.

SSD se bude hackerům líbit

Poslední výzvou pro hackery poslední doby jsou SSD jednotky. Při práci s duhovými tabulkami totiž program permanentně prochází obrovský balík dat. I když tedy budete mít velmi výkonný procesor a algoritmus, který bude umět využívat třeba i technologii CUDA, rychlost výpočtu dramaticky poklesne kvůli relativně pomalému disku. Pokud totiž budete muset provést miliony nebo miliardy cyklů, budete bojovat o každou milisekundu. Řešením může být prostě obrovská RAM paměť, do které se načte celá mnohagigabajtová tabulka, nebo sáhnete právě po SSD s výrazně rychlejší komunikací než rotující magnetické kolečko.

Heslo k Windows XP za pár sekund

SSD při odhalování kontrolních součtů používá i švýcarská bezpečnostní firma Objectif Sécurité. Na webu společnosti najdete známý prográmek Ophcrack, který umí zjišťovat uživatelská hesla k Windows XP a vyšším, a také jeho webovou podobu, která ovšem zjišťuje hesla pouze pro Windows XP. Objectif používá vlastní optimalizované rainbow tabulky, které na svém webu i prodává, webová verze je však zcela zdarma. Vzhledem k tomu, že server běží právě na SSD jednotce, rychlost odhalení hesla je mnohem rychlejší než na seberychlejším diskovém úložišti. Server porovnává údaje z rainbow tabulky rychlostí 300 miliard kontrol za sekundu a heslo k Windows XP dokáže odhalit v průměru za směšných pět sekund.

Abych byl ovšem spravedlivý, rychlost prolomení Windows XP je velmi rychlá především díky jednodušší autentizační architektuře oproti Vistám, Sedmičkám a linuxovým systémům. Stará XPčka totiž používají takzvané LM hashování, zatímco jejich následovníci pokročilejší NTLM algoritmy.

Klepněte pro větší obrázek
Výstup z programu fqdump: na řádku je nejprve jméno uživatele a dále pak jeho číslo, LM hash a NTLM hash. Jelikož jsem spustil program na Windows 7, který ve výchozím stavu používá NTLM hashování, je hodnota pro LM hash prázdná (hvězdičky)

Hesla všech uživatelů a skupin ve Windows jsou schovaná v souboru C:\Windows\System32\config\SAM. Soubor je běžně zamčený, můžete ho ale otevřít třeba z jiného systému (Live distribuce Linuxu na klíčence aj.), případně použít rovnou dekodér, který vše udělá za vás. Jedením z nich je třeba program fgdump.exe, který ze souboru SAM a přímo v aktivních Windows vytáhne všechny uživatele a kontrolní součty jejich hesel. Ty pak už stačí zkopírovat a vložit třeba právě na stránky Objectif Sécurité. Pokud se jedná o heslo do systému Windows XP kódované algoritmem LM (technologie DES), během několika sekund se s velkou pravděpodobností dozvíte výsledek. Samozřejmě ale můžete použít i desktopovou verzi Ophcracku, která je k dispozici i v podobě Live CD (ořezaná linuxová distribuce, která si načte hodnoty ze souboru SAM na systémovém oddílu a pokusí se rozkódovat kontrolní součty).

Klepněte pro větší obrázek
LM hash z Windows XP jsem zadal do webového formuláře a za tři sekundy jsem zjistil odpověď – heslo je gertruda (kvůli HTTP komunikaci do času započítejte i vykreslování webové stránky a komunikaci s webovým serverem)

Proč je vlastně odhalování hesel ve Windows XP výrazně jednodušší? Inu je to dáno tím, že LM hash se počítá z maximálně čtrnáctiznakového hesla. To je nejprve rozděleno na dva sedmiznakové řetězce (zbývající znaky se doplní nulou) a pro každý z nich se spočítá hash. Díky menšímu počtu znaků tu je zároveň i menší počet možných kombinací a s pomocí duhových tabulek je pak odhalení originálu mnohem rychlejší.

Windows XP používá LM hashování z důvodu kompatibility i v posledním servisním balíčku, teprve Vista pak přináší pokročilejší techniku hashování NTLM jako výchozí a LM hashování je vypnuto. Nicméně ani ta není za jistých podmínek neprůstřelná, optimalizují se pro ni rainbow tabulky a s velkou úspěšností lze heslo tímto způsobem skutečně odhalit.

Windows 8

Hashování je v dnešním světě počítačů všudypřítomné a i když se pracuje na stále odolnějších technikách, dramaticky roste i výkon počítačů. Zatímco odhalování hesel pomocí hashů bylo před deseti lety skutečně časově náročné, dnes je to přinejmenším u jednoduchých algoritmů a kratších hesel otázkou sekund. Zapojení GPGPU (Cuda), SSD disků a mnohojádrových procesorů – nebo zcela nových architektur v příštích letech – otevře cestu ke zcela novým hashovacím technikám.

Klepněte pro větší obrázek
Bude takto skutečně fungovat Windows 8, nebo jeho pozdější následovníci?

Podle prvních informací se budeme do příštích verzí Windows možná přihlašovat pomocí skutečného biometrického otisku – třeba pomocí obrazu naší tváře snímané kamerou. Čekají nás tedy pravděpodobně úplně nové a mnohem složitější kontrolní součty, které se již nebudou počítat z několika málo znaků, ale třeba z kilobajtů dat, které dohromady dají nepředstavitelná čísla reverzních výpočetních kombinací.

Témata článku: Software, Microsoft, Technologie, Windows, Bezpečnost, Unicode, Heslo, MD5, Rainbow, Facial, Bobik, Sam, Seti, Salt

124 komentářů

Nejnovější komentáře

  • crackermenn 28. 1. 2015 23:04:25
    muj email je crackermenn@seznam.cz OTEVŘU VÁM HESLO K FB,SKYPE,SEZNAMU...
  • jaramat 4. 1. 2012 16:09:40
    Existuje ophcrack na zjišťování hesel...
  • Flowy 4. 1. 2012 15:04:08
    v hlave vymysli a rukami napis novy (jednoucelovy) OS ktory ti zmeni udaje...
Určitě si přečtěte

Sbíječky vyměnili za klávesnice. Nový projekt má za cíl přeučit horníky na programátory

Sbíječky vyměnili za klávesnice. Nový projekt má za cíl přeučit horníky na programátory

** Programátorů je málo a horníků bez práce po uzavření dolu Paskov bude moc ** Problém řeší unikátní projekt ** Pilotní kurz dává naději, že by z horníků mohli být použitelní kodéři

28.  11.  2016 | David Polesný | 79

ASUS ZenBook 3 se začal prodávat v Česku. Je ve všem lepší než MacBook, ale bude to stačit?

ASUS ZenBook 3 se začal prodávat v Česku. Je ve všem lepší než MacBook, ale bude to stačit?

** Novinka od Asusu míří přímo proti MacBooku od Applu ** Nabídne daleko více výkonu za stejné peníze

2.  12.  2016 | David Polesný | 126