Project RainbowCrack - crackovanie windowsovych hesiel behom par minut

21.05.2006 13:59

Jedna sa o projekt, ktory vyuziva memory trade-off metodu vopred generovanych a do suborov ulozenych hashov v tabulkach na vyhladavanie hesliel podla ich hashu.

Podporuje algoritmy lm (lanmanager) a od verzie 1.2 aj md5 a sha1. Subory s hashmi (tzv. rainbow tables) sa musia vopred vygenerovat pomocou programu rtgen. Je to casovo narocna uloha (na mojej P4 2.8GHz HT s 1 GB RAM trvalo generovanie tabulky alpha-numeric [A-Z,0-9] priblizne 3 tyzdne cisteho casu). Na oplatku ziskate lubovolne heslo (podla pouzitej tabulky) do par minut, pri mensich tabulkach do par sekund (tato vyhoda je dana tym, ze v systeme Windows su vsetky hesla rozdelene do mensich blokov po 7 znakov a nasledne zakryptovane). Nasledne sa vygenerovane tabulky triedia programom rtsort. Potom su pripravene na pozitie. Tabulky sa pri pouziti naloaduju do pamate, kde sa prehladavaju. Pri nedostatku volnej pamate sa tento proces rozdeli na viac casti.

Hesla zo systemu Windows ziskate programom pwdump2/pwdump3. Naziskanie hashov je potrebne mat Administratorske prava na danom systeme!!! Pwdump3 podporuje ziskanie hesiel aj zo vzdialeneho systemu. S pwdump2 musite subory ulozit do suboru a preniest napr. po sieti.

Program RCRACK je dostupny ako binarka pre win32 alebo ako zdrojaky pre win32 a linux. Jedina nevyhoda je, ze program nativne nepodporuje paralelne spracovanie na HT, DualCore, DualCPU alebo MultiCPU systemoch. Tuto situaciu som riesil spustenim viacerych instancii programu rtgen s afinitou k roznym procesorom v systeme. Na platforme x86 sa win32 verzia 1.1 ukazala ako rychlejsia volba pri generovani tabuliek oproti skompilovanej linuxovej verzii. (hmmm)
Generovanie tabuliek je od seba absolutne nezavisle, takze mozete naraz generovat rozne tabulky jednej sady na jednom alebo na viacerych strojoch.
Velkost tabuliek je dost zaujimava. Alpha - asi 610 MB, alpha-numeric - asi 3 GB (zrarovane 1.7GB, vlastnim :), alpha-numeric-other [!@#$%^&*()-_+= ] asi 24 GB (pracuje sa na tom :), a konecne all [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] asi 64 GB.
Pravdepodobnost najdenia hesla je dana poctom tabuliek podla vzorca, ktory najdete na stranke programu. (asi budete potrebovaty matlab ;)

Ukazka vystupu programu (hesla z Windows Server 2003 R2):

lm_alpha-numeric_0_2400x40000000_bla.rt:
370176000 bytes read, disk access time: 8.77 s
verifying the file...
searching for 2 hashes...
plaintext of 77b505f1956c56ec is SW0RD
cryptanalysis time: 3.27 s
269824000 bytes read, disk access time: 6.13 s
searching for 1 hash...
cryptanalysis time: 0.42 s
lm_alpha-numeric_1_2400x40000000_bla.rt:
370176000 bytes read, disk access time: 8.20 s
verifying the file...
searching for 1 hash...
cryptanalysis time: 3.13 s
269824000 bytes read, disk access time: 14.95 s
searching for 1 hash...
plaintext of bbd7f0fc7587497e is H4RDP4S
cryptanalysis time: 0.42 s
statistics
-------------------------------------------------------
plaintext found:          2 of 2 (100.00%)
total disk access time:  38.05 s
total cryptanalysis time: 7.23 s
total chain walk step:    5829047
total false alarm:        2751
total chain walk step due to false alarm: 2293890
result
-------------------------------------------------------
crack_me        h4rdp4ssw0rd  hex:683472647034737377307264

Stroj: P4 2.4 GHz, 512 MB RAM,
tabulky: alpha-numeric, 5x 610 MB

Viac info na http://www.antsight.com/zsl/rainbowcrack/

ScRaTcHi ;)

    • no pekne zhrnuty clanok o 21.05.2006 | 18:11
      Pistik   Návštevník

      no pekne zhrnuty clanok o tom co to vie a nevie.... skusal som, ale je pravda ze na slabsej masine (athlon 1600+)... najdlhsie trva vygenerovanie tabuliek...mna konkretne zaujimaju md5 hashe .....skoda ze som sa nedostal k hotovym tabulkam..mnozstvo vypoctoveho casu ..ale vraj to stoji za to ..... mohli by pomakat na tom projekte a dorobit podporu pre HT a dualcore...aj ked je to celkom cool utilita vzdy je nieco vylepsovat

      • md5 21.05.2006 | 18:21
        disorder   Návštevník

        tak to by ta mohlo zaujimat napriklad aj toto:

        http://www.root.cz/clanky/tunely-v-hasovacich-funkcich-kolize-md5-do-min...
        http://www.root.cz/zpravicky/kolize-md5-urychleny-do-30-sekund/

        ---
        Ale je to smutná epocha, keď je ľahšie rozbiť atóm ako predsudky. Einstein.

        • A dalsi! Kdyz tomu 25.05.2006 | 18:16
          sly   Návštevník

          A dalsi! Kdyz tomu nerozumis, tak proc si to neprectes? Od kdy se, generovanim koliznich zprav daji louskat existujici hashe? Schopnost vygenerovat dve nove zpravy (Z1, Z2), ktere budou mit stejny hash (H1) ti neumozni z jineho hashe (H2) ziskat puvodni zpravu (Z3):
          Z1(A,B,...) => H1
          Z2(C,D,...) => H1
          Z3(?,?,...) => H2

          • nauc sa citat 25.05.2006 | 18:41
            disorder   Návštevník

            mojko, takto ti poviem:
            1) ja som mu odpisal prvy
            2) zaujimal sa o md5, myslim ze to je k veci
            3) netvrdim, ze je to prave to o co sa zaujima ("tak to by ta mohlo zaujimat napriklad aj toto:")
            4) netvrdim, ze tomu rozumiem
            5) netvrdim, ze sa "generovanim koliznich zprav daji louskat existujici hashe"

            dalej neriesim

            ---
            Ale je to smutná epocha, keď je ľahšie rozbiť atóm ako predsudky. Einstein.

            • sorry, ctu to v linksu. 26.05.2006 | 01:52
              sly   Návštevník

              sorry, ctu to v linksu. nebylo zrejme na co jsi reagoval. moje chyba.

    • V pripade MD5 uz to nema 21.05.2006 | 20:26
      LucasNX   Návštevník

      V pripade MD5 to uz nema zmysel, cesky kryptolog Vlastimil Klima to dotiahol dost daleko pomocou tunelovania... http://cryptography.hyperlink.cz/2004/kolize_hash.htm

      • A na to jsi prisel kde? 25.05.2006 | 17:58
        sly   Návštevník

        A na to jsi prisel kde? Jestli zvladas alespon matematiku zakladni skoly, tak pochopis, ze to je o UPLNE necem jinem.

    • Project 23.05.2006 | 15:34
      Mashena   Návštevník

      www.oxid.it !!!
      Aj ja som generoval. Tabulku za 6 dni.

    • generovanie databazy 24.05.2006 | 16:22
      rho   Návštevník

      pri tom alpha resp. aj v ostanych verziach sa brala do uvahy aj case senzitivita hesiel ? lebo v tych enumeraciach co ste tam vypisali nie su male pismena zahrnute. Aj ked ten sapmle na konci vyzera slubne (h4rdp4ssw0rd).

    • Sul 26.05.2006 | 11:22
      petr   Návštevník
      Vzdycky jsem si myslel, ze heslo se hashuje jeste s nahodne vygenerovanou soli, aby se prave nedala udelat databaze hashu. Ve windows se tomu nedeje? Nebo mi neco podstatne uniklo?
    • Windowsove hesla 27.05.2006 | 09:42
      ScRaTcHi   Návštevník

      S Windowsovymi heslami je to takto:

      Ak nastavite alebo zmenite heslo k uzivatelskemu uctu na heslo, ktore ma menej ako 15 znakov Windows vygeneruje z hesla dva druhy hashov - LAN Manager hash (LM hash) a Windows NT hash (NTLM hash). Tieto hashe su ulozene v local Security Accounts Manager (SAM) databaze alebo v Active Directory.

      NTLM hash je MD4 hash originalneho hesla (v UNICODE), s dlzkou 16 bytov. Teoreticky je dlzka hesla limitovana na 128 znakov.

      LM hash je relativne slaby (v porovnani s NTLM hashom) a nachadza sa kvoli spatnej kompatibilite s klientmi Windows 9x (dufam, ze tato "hlupost" bude vo Viste odstranena). Pouziva sa hlavne na autorizaciu vzdialenych pripojeni na dany stroj. A teraz pozor!!!

      Na vygenerovanie LM hashu system konvertuje heslo z UNICODE na ANSI (jeden byte na znak) a PRELOZI VSETKY ZNAKY NA UPPERCASE!!! Potom je heslo ROZDELENE DO DVOCH BLOKOV PO 7 ZNAKOV (doplnenych nulami ak je to potrebne). Kazda cast je pouzita ako enkrypcny DES kluc na zakryptovanie preddefinovanej konstanty a vysledny hash je ulozeny v systeme (spojeny do jednej 16-bytovej hodnoty). Takze ak Vas system pouziva LM autentifikaciu (a ma povolene LM hashe), skutocna dlzka hesla (komplexnost) je iba 7 ZNAKOV a 14 znakove heslo nie je o nic silnejsie ako 7 znakove!!!

      S pozdravom, Vas ScRaTcHi ;)
      --
      Never trust an operating system You don't have sources for.

    • Online crack 25.06.2006 | 03:55
      smiesko12   Návštevník
      Mne celkom pomohla stránka www.passcrack.spb.ru kde je databáza hashov a aj "online" rainbow crack. Dávam všetkým do pozornosti ešte predtým, ako začnú uvažovať o vytvorení tabuliek. Po zadaní hashu (MD5 a SHA1) najskôr prejde databázu hashov (10,1 milionov hashov k dnešnému dňu) a ak sa taký hash v DB nenájde, tak ho zaradí do fronty na cracknutie pomocou rainbow tables - pridelí procesu ID a neskôr si môžete skontrolovať stav procesu zadaním ID dokonca aj cez wap. Úryvok zo stránky: The Rainbow Tables method is also available. Now we are able to crack MD5 passwords: 1. With symbols [a-z],[A-Z],[0-9] and up to 7 symbols long. Rainbow tables now take about 42Gb on our harddrive. 2. With symbols [0-9] and up to 12 symbols long. Rainbow tables now take about 13Gb on our harddrive. 3. With symbols [a-z][0-9] and up to 8 symbols long. Rainbow tables now take about 30Gb on our harddrive. SHA1 passwords - with symbols [a-z],[A-Z],[0-9][!@-_+] and up to 7 symbols long. Rainbow tables now take about 30Gb on our harddrive. Takže ak je hash vypočítaný zo slova dlhšieho ako popisujú vyššie, tak si budete musieť pomôcť samy ... ale nedočítal som sa nikde, či existuje spoľahlivý spôsob ako určiť počet znakov z hashu na "prvý pohľad" (niekde písali, že ak hash začína a7 tak to bude toško a taľko znakov a podobne...). Ono, získať hash asi až taký problém nebude, ako ho dešifrovať. Ja vo svojich projektoch už pre istotu zdvojujem MD5 hash (md5(md5($heslo)) ...
    • hmm... nejak to trva... 27.06.2006 | 23:21
      juroo   Návštevník

      Rainbow tables vyuziva aj Ophcrack (aktualne uz verzia 2.2). Odskusal som a nestihal som sa cudovat. Admin heslo do WinXP za ani nie 5 minut. Soft najdete na http://ophcrack.sourceforge.net/. Je tam image Ophcrack live cd s linuxom - vypalit, vlozit do mechaniky reboot a chvilku pockat :) ani 1 klik netreba :-)) enjoy