Cum să spargi parole folosind instrumentul Hashcat?

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.