Pogađanje lozinki postupak je oporavka lozinki iz pohranjenih hasheva u svrhu oporavka zaboravljene lozinke ili u maliciozne svrhe. Iako se pogađati može ručno, mnogo je efikasnije taj postupak automatizirati pomoću alata poput Hashcata, John the Rippera i ostalih.
Pri upotrebi alata za pogađanje lozinki mogu se definirati metoda napada, vrsta hashing algoritma te razni filteri.
Primjena alata za pogađanje lozinki prikazana je uz pomoć Hashcat alata.
Pogađanje lozinki (engl. password cracking) postupak je oporavka lozinki iz pohranjenih hasheva. Razlog može biti oporavak lozinke koju je korisnik zaboravio ili nedozvoljeno pridobivanje lozinki u maliciozne svrhe.
Kako se iz godine u godinu digitalizira sve više raznih dijelova naših života, tako raste i broj servisa i korisničkih računa koji sadrže (vrlo) osjetljive podatke, što osobe s lošim namjerama motivira za nedozvoljeno pridobivanje pristupa u svrhu prevare, krađe novca ili krađe identiteta čime raste i broj pokušaja prevare, tj. krađe. Postoje razni načini koje kriminalci mogu upotrijebiti u svrhu prevare, jedan od njih je pogađanje lozinki pomoću alata.
Najjednostavniji, ali i najneučinkovitiji i najsporiji pristup je ručno pogađanje lozinki gdje se pristup pokušava dobiti ručnim unosom lozinki za koje se smatra da bi najvjerojatnije mogle odgovarati korisniku čijem se računu pokušava pristupiti. To mogu biti najčešće korištene lozinke poput „password“, „123456789“, „lozinka123“, itd. ili lozinke temeljene na korisnikovim osobnim podatcima, npr. kombinacija imena, prezimena i godine rođenja ili ime kućnog ljubimca. Problem neučinkovitosti ovog pristupa razrješava se upotrebom alata, tj. automatizacijom.
Pogađanju se može pristupiti grubom silom (engl. brute force), tj. alat isprobava sve moguće kombinacije znakova (do) određene duljine dok ne pronađe točnu kombinaciju.
Na slici 1 prikazano je vrijeme potrebno za probijanje lozinki ovisno o duljini lozinke i o tome koje vrste znakova sadrži. Vrijeme se razlikuje ovisno o procesoru koji se koristi.
Slika 1: [2]
Jedna od varijacija pogađanja grubom silom je tzv. napad rječnikom (engl. dictionary attack). U ovom slučaju alat ne isprobava sve moguće kombinacije znakova, već isprobava sve postojeće riječi koje se nalaze na popisu (rječniku). „Riječi“ mogu primjerice biti lozinke koje su procurile u prethodnim napadima, a i riječi u doslovnom smislu.
Password spraying je također varijacija pogađanja grubom silom, no u ovom slučaju isprobava se samo jedna ili mali broj čestih ili „defaultnih“ lozinki nad velikim brojem korisničkih imena. Ovim postupkom izbjegava se blokiranje računa nakon većeg broja neuspjelih pokušaja prijave. [3]
Na slici 2 prikazana je ilustracija password sprayinga.
Slika 2: [4]
Neki od često korištenih alata za pogađanje lozinki su sljedeći: Hashcat, John the Ripper, ophCrack, THC Hydra, Medusa.
Uobičajeni tok postavljanja alata je sljedeći: [5]
1. Pribaviti (ukrasti) hasheve 2. Organizirati i ispravno formatirati hasheve ovisno o alatu koji će se koristiti 3. Odabrati metodu napada: lista riječi, pravila, maske 4. Pogađanje lozinki 5. Analiza napretka 6. Prilagođavanje napada 7. Ponoviti prethodne korake
Za opis postupka automatizirane primjene alata za pogađanje lozinki koristit će se alat Hashcat koji se može preuzeti sa slijedeće poveznice: Hashcat.
Prije pokretanja hashcat naredbe za pogađanje lozinki potrebno je pribaviti datoteku koja sadrži popis hasheva lozinki, npr. Kali Linux po instalaciji već sadrži Hashcat i neke popise hasheva.
Hashcat podržava velik broj hashing algoritama, neki od njih su: MD5, SHA1, SHA2, SHA3, Keccak, SipHash i BLAKE.[6]
Dvije najvažnije zastavice pri korištenju alata su -m (vrsta hashing algoritma) i -a (vrsta napada).[7]
Na slici 3 vidi se opis ovih dviju zastavica dobiven pozivanjem naredbe hashcat -h
.
Na slici 4 prikazano je nekoliko primjera upotrebe hashcat naredbi.
U naredbi hashcat -a 3 -m 1400 example0.hash example.dict -r rules/best64.rule
svaki od dijelova naredbe ima slijedeće značenje:
Po završetku izvođenja prethodne naredbe dobiva se datoteka koja sadrži lozinke pohranjene kao čisti tekst.
Pri postavljanju sustava bitno je osigurati da se lozinke pohranjuju na pravilan način, tj. da se ne pohranjuju kao čisti tekst već kao hash, po mogućnosti dobiven koristeći i salt. Time se smanjuje vjerojatnost da će lozinke biti probijene i u slučaju da dođe do curenja, tj. krađe, podataka.
Također je važno pobrinuti se oko ostalih mjera sigurnosti kako bi se izbjeglo ikakvo curenje podataka uopće.
[1] https://www.techtarget.com/searchsecurity/definition/password-cracker
[2] https://www.hivesystems.io/blog/are-your-passwords-in-the-green
[3] https://attack.mitre.org/techniques/T1110/003
[5] https://delinea.com/blog/5-most-popular-password-cracking-tools-and-how-to-protect-your-enterprise
[7] https://resources.infosecinstitute.com/topic/hashcat-tutorial-beginners