Rychlé prolomení hesla. Skleróza a password cracker.

Nejdostupnější způsob na prolomení hesla je stáhnout si GUI program pro Windows 10 (Windows 11), naklikat v menu předvolby a spustit crackování hesla. Brzo ale zjistíte, že většina hesla hádajících aplikací (pro operační systém od Microsoftu) je pomalá nebo placená. Výkonnou grafickou kartu s vlastní GPU k dispozici nemáte. Nabízí se další možnosti. Home Lab s VPS instalovaným Linuxem nebo pro každého dostupná varianta v podobě Linux Live CD. Není hned potřeba stahovat masivní Kali Linux live CD. Stačí lehký linux Kubuntu, kde v případě, že distribuce potřebné nástroje neobsahuje v základu, tyto lze doinstalovat i v live enviromentu..

Teorie

Proměnné, výpočet možností. Počet všech v hesle použitelných znaků na počet variací. Speciálních znaků použitelných v hesle je 32

~ ` ! @ # $ % ^ & * ( ) _ - + = { [ } ] | \ : ; " ' < , > . ? /

Písmen bez diakritiky je 26 x 2 = 52. Dvojnásobek platí pouze v případě, že heslo je case sensitive, což je obvykle vždy :)

a b c d e f g h i j k l m n o p q r s t u v w x y z

Čísel je 10

0 1 2 3 4 5 6 7 8 9

V součtu tedy celkem 94 pro heslo použitelných znaků. Výpočítat počet možností hesla o délce 8 znaků, ze všech možných znaků lze umocněním 8 na 94

894

Prolomení hesla Windows

PassFab Zip je jeden ze tří sympatických programů na prolomení zapomenutého hesla ve Windows. Je tradičně pomalý a nad to placený. Na sebelepším běžném počítači se k rychlosti 50 000 hesel za sekundu ani nepřiblíží..

Prolomení hesla PassFab ZIP
Prolamovač hesel PassFab ZIP

HashCat GUI je bezplatný a open source port pro OS Windows. Hezký ale rovněž pomalý

hashcat launcher
HashCat Launcher GUI

Obnovení hesla Linux

Existuje několik prověřených aplikací (cracker-ng, crunch, john, zip2john, hash cat..) s možností kombinací. Na GitHub najdete rovněž řadu zajímavých sólo projektů. Pro účel textu použijeme oblíbený John the Ripper s relativně novou vychytávkou.

John the Ripper je na funkce bohatý a rychlý cli program. Kombinuje několik režimů crackování v jednom a je plně konfigurovatelný pro řadu situací. Umí definovat i vlastní režim crackování pomocí vestavěného kompilátoru podporujícího podmnožinu jazyka C. John je také k dispozici pro několik různých platforem, což umožňuje používat na všech platformách stejný postup (cracker) Umí navázat na relaci která byla zahájena na jiné platformě.

John s automatickou detekcí podporuje unixové typy hashů DES, bigcrypt, BSDI extended DES, FreeBSD MD5, Kerberos/AFS včetně Windows LM (založený na DES) a tripcody založené na DES. Při spuštění na linuxových distribucích s glibc 2.7+ John 1.7.6+ navíc podporuje (a automaticky detekuje) SHA-crypt hashe (které ve skutečnosti používají poslední verze Fedory a Ubuntu), s volitelnou paralelizací OpenMP s gcc 4.2+

Instalace a použití

Pomocí (Debian, Ubuntu, Kubuntu, Kali..) apt lze instalovat pouze verzi 1.8.0. Download aktuální John the Ripper 1.9.0 Jumbo Bleeding verze.. Konfigurace a kompilace..

git clone "https://github.com/magnumripper/JohnTheRipper.git"
cd JohnTheRipper/src
./configure
make -s clean
sudo make -sj4 

Nápověda

./john/run/zip2john
Usage: ./john/run/zip2john [options] [zip file(s)]
 -s Scan archive from the beginning, looking for local file headers. This
    is less reliable than going by the central index, but might work better
    with corrupted or split archives.
Options for 'old' PKZIP encrypted files only:
 -a <filename>   This is a 'known' ASCII file. This can be faster, IF all
    files are larger, and you KNOW that at least one of them starts out as
    'pure' ASCII data.
 -o <filename>   Only use this file from the .zip file.
 -c This will create a 'checksum only' hash.  If there are many encrypted
    files in the .zip file, then this may be an option, and there will be
    enough data that false positives will not be seen.  Up to 8 files are
    supported. These hashes do not reveal actual file data.
 -m Use "file magic" as known-plain if applicable. This can be faster but
    not 100% safe in all situations.

Vytvoření hashe

Vytvořený hash soubor-s-hash.txt ze souboru soubor.zip je používán i v dalších příkazech níž

./john/run/zip2john soubor.zip > soubor-s-hash.txt

Získání hesla pomocí útoku na hash. Bez definovaného wordlistu použije appka vlastní wordlist password.lst, který je uložený ve složce /john/run/

./john/run/john soubor-s-hash.txt
Using default input encoding: UTF-8
Loaded 126 password hashes with 126 different salts (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
Loaded hashes with cost 1 (HMAC size) varying from 95 to 124197
Will run 4 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
0g 0:00:01:54 DONE 1/3 (2022-07-17 08:21) 0g/s 97678p/s 97706c/s 97706C/s Predis1900..Phtml1900
Proceeding with wordlist:./john/run/password.lst

Vizualizace

Prolomení hesla Linux
Crack hesla Linux

Libovolné zmáčknutí klávesnice (třeba enter) v aktivním terminálu ukáže v řádku progres.

01. Typ šifrování, které se snaží prolomit.
02. Počet úspěšně uhodnutých hesel
03. Doba, která uplynula od spuštění
04. Procento dokončení pro daný průchod
05. Aktuální průchod / počet průchodů celkem
06. g/s = počet úspěšných hádání za sekundu
07. p/s = testovaná hesla za sekundu
08. c/s = šifry (hashe hesel) vypočtené za sekundu
09. c/s = šifry testované za sekundu (ve verzích nižších než 1.8.0 to bylo "c/s")
10. Aktuální slovo, které zkouší.

Dovětek

Součástí instalace John je wordlist jménem password.lst. Obsahuje cca 1 800 000 často používaných hesel. Samo sebou si můžete vygenerovat vlastní wordlist nebo použít jednořádkový příkaz s definovaným slovníkem který umožňuje jak john tak i fcrackzip či zipcracker-ng (poslední dvě appky rovněž nejsou instalované v základu lehkých linux distribucí a lze je doinstalovat)

fcrackzip -c 1 -b -l 1-8 --verbose -u soubor.zip & >> nalezene-heslo.txt &
zipcracker-ng -f soubor.zip -fp 12345678

Nebo si pomocí crunch (není instalovaný v základu) vygenerovat všechny hesla (třeba jen) o délce 1 až 8 znaků ze všech (0 až 9) čísel

crunch 1 8 1234567890 -o wordlist.txt
zipcracker-ng -f soubor.zip -w wordlist.txt

To samé s john

crunch 1 8 1234567890 -o wordlist.txt
./john/run/john --wordlist=wordlist.txt soubor-s-hash.txt

Existuje řada způsobů a formátů a je nad možnosti jednoho článku obsáhnou všechny. Dobrý začátek je póchopení formátů

john --list=formats

nebo když používáte stažený a kompilovaný program ve vlastní složce

./vlastni/složka/john --list=formats

descrypt, bsdicrypt, md5crypt, md5crypt-long, bcrypt, scrypt, LM, AFS, tripcode, AndroidBackup, adxcrypt, agilekeychain, aix-ssha1, aix-ssha256, aix-ssha512, andOTP, ansible, argon2, as400-des, as400-ssha1, asa-md5, AxCrypt, AzureAD, BestCrypt, BestCryptVE4, bfegg, Bitcoin, BitLocker, bitshares, Bitwarden, BKS, Blackberry-ES10, WoWSRP, Blockchain, chap,
Clipperz, cloudkeychain, dynamic_n, cq, CRC32, cryptoSafe, sha1crypt, sha256crypt, sha512crypt, Citrix_NS10, dahua, dashlane, diskcryptor, Django, django-scrypt, dmd5, dmg, dominosec, dominosec8, DPAPImk, dragonfly3-32, dragonfly3-64, dragonfly4-32, dragonfly4-64, Drupal7, eCryptfs, eigrp, electrum, ENCDataVault-MD5, ENCDataVault-PBKDF2, EncFS, enpass, EPI, EPiServer, ethereum, fde, Fortigate256, Fortigate, FormSpring, FVDE, geli, gost, gpg, HAVAL-128-4, HAVAL-256-3, hdaa, hMailServer, hsrp, IKE, ipb2, itunes-backup, iwork, KeePass, keychain, keyring, keystore, known_hosts, krb4, krb5, krb5asrep, krb5pa-sha1, krb5tgs, krb5-17, krb5-18, krb5-3, kwallet, lp, lpcli, leet, lotus5, lotus85, LUKS, MD2, mdc2, MediaWiki, monero, money, MongoDB, scram, Mozilla, mscash, mscash2, MSCHAPv2, mschapv2-naive, krb5pa-md5, mssql, mssql05, mssql12, multibit, mysqlna, mysql-sha1, mysql, net-ah, nethalflm, netlm, netlmv2, net-md5, netntlmv2, netntlm, netntlm-naive, net-sha1, nk, notes, md5ns, nsec3, NT, NT-long, o10glogon, o3logon, o5logon, ODF, Office, oldoffice, OpenBSD-SoftRAID, openssl-enc, oracle, oracle11, Oracle12C, osc, ospf, Padlock, Palshop, Panama, PBKDF2-HMAC-MD4, PBKDF2-HMAC-MD5, PBKDF2-HMAC-SHA1, PBKDF2-HMAC-SHA256, PBKDF2-HMAC-SHA512, PDF, PEM, pfx, pgpdisk, pgpsda, pgpwde, phpass, PHPS, PHPS2, pix-md5, PKZIP, po, postgres, PST, PuTTY, pwsafe, qnx, RACF, RACF-KDFAES, radius, RAdmin, RAKP, rar, RAR5, Raw-SHA512, Raw-Blake2, Raw-Keccak, Raw-Keccak-256, Raw-MD4, Raw-MD5, Raw-MD5u, Raw-SHA1, Raw-SHA1-AxCrypt, Raw-SHA1-Linkedin, Raw-SHA224, Raw-SHA256, Raw-SHA3, Raw-SHA384, restic, ripemd-128, ripemd-160, rsvp, RVARY, Siemens-S7, Salted-SHA1, SSHA512, sapb, sapg, saph, sappse, securezip, 7z, Signal, SIP,
skein-256, skein-512, skey, SL3, Snefru-128, Snefru-256, LastPass, SNMP, solarwinds, SSH, sspr, Stribog-256, Stribog-512, STRIP, SunMD5, SybaseASE, Sybase-PROP, tacacs-plus, tcp-md5, telegram, tezos, Tiger, tc_aes_xts, tc_ripemd160, tc_ripemd160boot, tc_sha512, tc_whirlpool, vdi, OpenVMS, vmx, VNC, vtp, wbb3, whirlpool, whirlpool0, whirlpool1, wpapsk, wpapsk-pmk, xmpp-scram, xsha, xsha512, zed, ZIP, ZipMonster, plaintext, has-160, HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512, dummy, crypt

419 formats (149 dynamic formats shown as just "dynamic_n" here)

PKZIP

Starší zaheslované .zip archivy jsou archivovány starší verzi kompileru i algoritmu. Není to tak dávno, co byl naprosto běžně používaný šifrovací algoritmus PKZIP. Než jej po roce 2014 začal nahrazovat AES. Podívat se na šifrovací algoritmus souboru nezabere mnoho času, umí to třeba program 7zip. Plain text útok na PKZIP je popsán třeba zde.

Užitečné

Github projekt John the Ripper
Starší HashCat GUI na sourceforge.net
Novější HashCat Launcher na GitHub (Windows exe)
Jak penetrují Script kiddies.

ICTIS.CZ