Како разбити лозинке користећи Хасхцат алат?

Razbijanje heševa lozinki pomoću Hashcat alata

U oblasti etičkog hakovanja i testiranja penetracije, razbijanje lozinki je fundamentalni korak za dobijanje pristupa sistemu ili serveru. Sistemi i baze podataka retko kada čuvaju lozinke u izvornom, čitljivom obliku.

Umesto toga, lozinke se transformišu kroz proces heširanja pre nego što se uskladište. Tokom procesa verifikacije, porede se heš vrednosti, a ne same lozinke. Način na koji se heševi lozinki skladište varira u zavisnosti od primenjenog algoritma za šifrovanje. Posedovanje heša potencijalno otvara put za razbijanje originalne lozinke.

U ovom tekstu, istražićemo proces razbijanja heševa lozinki koristeći moćan alat komandne linije pod nazivom Hashcat.

Pa, krenimo odmah!

Ali pre toga…

Šta je heš funkcija?

Heširanje predstavlja proces konvertovanja ulaznog teksta u niz znakova fiksne dužine, koristeći matematičku funkciju poznatu kao heš funkcija. Ova funkcija omogućava da se bilo koji tekst, bez obzira na dužinu, transformiše u naizgled nasumičnu kombinaciju brojeva i slova.

  • Ulaz: originalna poruka koja će biti heširana.
  • Heš funkcija: algoritam za šifrovanje, na primer MD5 ili SHA-256.
  • Heš vrednost: rezultat transformacije ulaznog teksta.

Šta je Hashcat?

Hashcat je alat za veoma brzo razbijanje lozinki, projektovan za razbijanje složenih lozinki u kratkom vremenskom periodu. On je sposoban da izvršava napade pomoću rečnika, kao i brute-force napade.

Hashcat dolazi u dve verzije: CPU i GPU (grafička procesorska jedinica). GPU verzija je daleko brža pri razbijanju heševa. Zahtevi za GPU drajvere mogu se pronaći na zvaničnoj stranici alata.

Karakteristike

  • Besplatan i otvorenog koda.
  • Podržava preko 200 tipova heš algoritama.
  • Radi na operativnim sistemima Linux, Windows i macOS.
  • Podržava i CPU i GPU.
  • Može razbijati više heševa istovremeno.
  • Podržava heksadecimalne salt i charset datoteke, sa automatskim podešavanjem performansi.
  • Ima ugrađen sistem za benchmark.
  • Podržava mreže distribuiranog krekovanja.

Dodatne funkcije možete pogledati na njihovoj zvaničnoj web stranici.

Instalacija Hashcat-a

Prvo, osigurajte da je vaš Linux sistem ažuriran sa najnovijim alatima.

Otvorite terminal i unesite:

$ sudo apt update && sudo apt upgrade

Hashcat se često nalazi preinstaliran u Kali Linuxu, u sekciji za razbijanje lozinki. Za ručnu instalaciju na bilo kojoj Linux distribuciji, koristite sledeću komandu u terminalu:

$ sudo apt-get install hashcat

Upotreba alata

Za početak rada sa Hashcatom, biće vam potrebni heševi lozinki. Ako ih nemate, napravićemo neke.

Da biste kreirali heševe pomoću komandne linije, pratite sledeći format:

echo -n "ulazni_tekst" | algoritam | tr -d "-">>ime_izlazne_datoteke

Primer: konvertovanje reči u heš koristeći md5 algoritam.

┌──(root💀kali)-[/home/writer/Desktop]
└─# echo -n "techblog.co.rs" | 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

Rezultat će biti sačuvan u datoteci crackhash.txt.

Proverimo heševe u datoteci.

┌──(root💀kali)-[/home/writer/Desktop]
└─# cat crackhash.txt

066d45208667198296e0688629e28b14
482c811da5d5b4bcd497ffeaa98491e3
72a2bc267579aae943326d17e14a8048
2192d208d304b75bcd00b29bc8de5024
caae8dd682acb088ed63e2d492fe1e13

Sada imamo heševe za razbijanje. Ovo je postupak za kreiranje heševa pomoću željenog algoritma.

Sledeći korak je pokretanje Hashcat alata. Koristite sledeću komandu za pomoć:

$ hashcat --help

Prikazaće sve opcije. Na terminalu možete naći sve načine napada i heširanja.

Osnovni oblik komande je:

$ hashcat -a broj_napada -m broj_heša datoteka_heševa datoteka_reči

Broj_napada i broj_heša se odnose na specifične načine napada i heš algoritme. Na primer, MD5 ima broj 0, a SHA256 broj 1740.

Kao datoteku reči, koristićemo rockyou.txt, koja se obično nalazi na /usr/share/wordlists.

Put do datoteke možete pronaći pomoću naredbe locate.

┌──(root💀kali)-[/home/writer]
└─# locate rockyou.txt

Za razbijanje heša koristeći datoteku sa rečima, koristite sledeću komandu:

$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

Možete dobiti grešku (token length exception), koju je lako rešiti.

Da biste to rešili, sačuvajte svaki heš zasebno u datoteci. Greška se javlja kod sporijih CPU ili GPU-a. Računari sa bržim procesorima mogu razbijati heševe iz jedne datoteke.

Nakon ispravljanja greške, rezultat bi trebao da izgleda ovako:

┌──(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

Vidite da je heš razbijen i lozinka je otkrivena.

Zaključak

Nadam se da sada bolje razumete upotrebu Hashcat-a za razbijanje lozinki.

Možda će vas zanimati da saznate više o alatima za brute-force napade i najboljim alatima za pentestiranje.