Importanța spargerii parolelor în testarea de penetrare
În domeniul hacking-ului etic și al testelor de penetrare, identificarea și spargerea parolelor reprezintă un pas esențial pentru a obține accesul la un sistem sau un server protejat.
În mod obișnuit, sistemele și bazele de date nu stochează parolele sub formă de text clar, necriptat, ci sub o formă transformată.
Înainte de a fi stocate într-o bază de date, parolele trec printr-un proces de indexare, iar în timpul autentificării se realizează o comparație cu valoarea indexată, numită hash.
Modalitatea de stocare a hash-urilor variază în funcție de metoda de criptare utilizată. Posibilitatea de a deține hash-urile permite facilitarea procesului de spargere a parolelor.
În acest articol, ne vom concentra pe utilizarea Hashcat, un instrument excelent și versatil de linie de comandă, pentru a decripta hash-urile parolelor.
Să pornim!
Însă, mai întâi…
Ce este o funcție Hash?
Procesul de hashing presupune transformarea unui text obișnuit într-un șir de text de lungime fixă, folosind o funcție matematică, cunoscută sub numele de Funcție Hash. Un algoritm specific transformă orice text, indiferent de lungimea sa, într-o combinație unică de numere întregi și alfabete.
- Textul de intrare reprezintă mesajul supus procesului de hashing.
- Funcția hash reprezintă algoritmul de criptare, cum ar fi MD5 sau SHA-256, care transformă textul într-o valoare hash.
- Valoarea hash reprezintă rezultatul final al procesului de hashing.
Ce este Hashcat?
Hashcat este un instrument de recuperare a parolelor cu viteză remarcabilă. Este proiectat pentru a decripta parole complexe într-un interval de timp scurt și suportă atât atacuri bazate pe liste de cuvinte, cât și atacuri de tip forță brută.
Hashcat are două variante: una bazată pe CPU (Unitatea Centrală de Procesare) și una bazată pe GPU (Unitatea de Procesare Grafică). Varianta GPU oferă timpi de decriptare mai rapizi comparativ cu cea bazată pe CPU. Pentru a verifica cerințele specifice ale driverului GPU, vă rugăm să accesați site-ul oficial al instrumentului.
Caracteristici
- Este un instrument gratuit și open-source.
- Suportă peste 200 de tipuri diferite de hash-uri.
- Funcționează pe sisteme de operare multiple, inclusiv Linux, Windows și macOS.
- Oferă suport pentru utilizarea resurselor CPU și GPU.
- Permite spargerea mai multor hash-uri simultan.
- Acceptă fișiere Hex-salt și hex-charset, alături de reglarea automată a performanței.
- Include un sistem de benchmarking încorporat.
- Oferă suport pentru rețele distribuite de decriptare, utilizând suprapuneri.
Pentru mai multe detalii despre caracteristicile sale, vizitați site-ul oficial.
Instalarea Hashcat
Înainte de a instala Hashcat, asigurați-vă că sistemul dvs. Linux este actualizat cu cele mai recente programe și instrumente.
Deschideți un terminal și introduceți următoarea comandă:
$ sudo apt update && sudo apt upgrade
În general, Hashcat este preinstalat în Kali Linux, în secțiunea de spargere a parolelor. Dacă trebuie să îl instalați manual pe o altă distribuție Linux, folosiți următoarea comandă în terminal:
$ sudo apt-get install hashcat
Utilizarea Instrumentului
Pentru a începe să utilizați Hashcat, este necesar să avem la dispoziție niște hash-uri de parole. Dacă nu aveți deja hash-uri, vom genera mai întâi câteva.
Pentru a genera hash-uri folosind linia de comandă, urmați formatul de mai jos:
echo -n "input" | algorithm | tr -d "-">>outputfiename
De exemplu, am transformat câteva cuvinte în hash-uri utilizând algoritmul md5, așa cum se poate vedea mai jos:
┌──(root💀kali)-[/home/writer/Desktop] └─# echo -n "tipstrick.ro" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt
Rezultatul va fi salvat în fișierul `crackhash.txt`.
Acum, vom verifica hash-urile salvate în fișierul creat.
┌──(root💀kali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
Acum avem o serie de hash-uri pe care le putem încerca să le spargem. Aceasta este procedura generală pentru a genera un hash folosind algoritmul dorit.
Următorul pas este să porniți Hashcat pe sistemul Linux. Folosiți următoarea comandă pentru a utiliza Hashcat:
$ hashcat --help
Aceasta va afișa toate opțiunile necesare pentru utilizarea instrumentului, inclusiv modurile de atac și tipurile de hash suportate.
Forma generală a comenzii este:
$ hashcat -a num -m num hashfile wordlistfile
Unde `num` reprezintă modul de atac și hash-ul specific pe care doriți să îl utilizați. Consultați terminalul pentru a găsi numerele specifice fiecărui mod de atac și hash. De exemplu, pentru md4, numărul este 0, iar pentru algoritmul sha256 este 1740.
Pentru lista de cuvinte, vom folosi lista `rockyou`. Puteți găsi cu ușurință această listă de cuvinte în calea `/usr/share/wordlists`.
Alternativ, puteți utiliza comanda `locate` pentru a afla locația exactă a listei de cuvinte.
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
În final, pentru a decripta hash-urile folosind lista de cuvinte, utilizați următoarea comandă:
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
După rularea acestei comenzi, s-ar putea să primiți o eroare de execuție (Eroare de excepție de lungime a simbolului), care se poate rezolva ușor.
Această eroare apare de obicei atunci când aveți o viteză redusă a procesorului sau a GPU-ului. Dacă calculatorul are un procesor de mare viteză, puteți sparge cu ușurință toate hash-urile simultan, dintr-un singur fișier. Pentru a remedia eroarea, salvați fiecare hash separat într-un fișier individual.
După remedierea erorii, rezultatul va fi asemănător cu următorul:
┌──(root💀kali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021
În rezultatul de mai sus, după detaliile despre memoria cache a dicționarului, se poate observa că hash-ul a fost decriptat, iar parola a fost dezvăluită.
Concluzie
Sperăm că acest articol v-a oferit o înțelegere mai bună a modului în care se utilizează Hashcat pentru a decripta parole.
De asemenea, ați putea fi interesat să aflați despre diverse instrumente de forță brută utilizate în testarea de penetrare, precum și despre alte instrumente populare de pentesting.