Hashcat bir password cracking aracı. Elinde bir hash değeri varsa ve şifreyi bulmak istiyorsan başvurulan araçlardan biri bu.
Sistemler şifreleri düz metin olarak saklamaz. “password” yazdığında sistem bunu önce bir hash fonksiyonundan geçirir. MD5, SHA-256, bcrypt gibi. Çıkan değer hep aynıdır ama geri döndürmek hesaplama açısından son derece güçtür. Hashcat geri döndürmeye çalışmıyor aslında. Elindeki wordlistteki her kelimeyi hashleyip senin değerinle karşılaştırıyor. Eşleşme bulmaya çalışıyor yani. Pentestlerde ve CTF çözümlerinde sık başvurulan bir araç.
Kurulum
Linux kullanıyorsan:
sudo apt update && sudo apt install hashcat
Windows için hashcat.net’ten zip’i indirip çıkarabilirsin.
GPU sürücülerin güncel olsun. NVIDIA kullanıyorsan CUDA, AMD için OpenCL lazım.
Kurulumu doğrulamak için:
hashcat --version

Hash Türünü Tanımak
Hashcat’e hangi hash türünü kırmaya çalıştığını söylemen lazım çünkü her algoritmanın farklı bir mode numarası var. Elindeki hashin ne olduğunu bilmiyorsan hash-identifier ile tespit edebilirsin:
hash-identifier

Çalıştır hash’i yapıştır türünü söyler. MD5 için mode 0, SHA-256 için 1400, NTLM için 1000
Dictionary Saldırısı
Hash’i doğrudan komuta yazabilirsin:
hashcat -m 0 -a 0 5f4dcc3b5aa765d61d8327deb882cf99 /usr/share/wordlists/rockyou.txt
Çıktı olarak şunu görürsün:
5f4dcc3b5aa765d61d8327deb882cf99:password

Yani “password” gibi bir şifre MD5 ile saklanmış olsa bir değeri yok.
Rockyou.txt bulamazsan /usr/share/wordlists/ altına bak, sıkıştırılmış halde olabilir. sudo gunzip /usr/share/wordlists/rockyou.txt.gz ile açabilirsin.
Brute Force Saldırısı
Wordlistte yoksa bir de brute-force dene. Hashcat bunu mask attack ile biraz akıllı yapıyor. Mesela tam 6 karakterli rakamlardan oluşan şifre diyebilirsin:
hashcat -m 0 -a 3 5f4dcc3b5aa765d61d8327deb882cf99 ?d?d?d?d?d?d
?d bir rakam demek.
Benzer masklar:
?l küçük harf ?u büyük harf ?a hepsi (rakam + harf + özel karakter)
8 karakterli sadece küçük harf şifre için:
hashcat -m 0 -a 3 5f4dcc3b5aa765d61d8327deb882cf99 ?l?l?l?l?l?l?l?l
Rules Saldırısı
Dictionary saldırısının biraz güçlendirilmiş hali. Wordlistteki kelimelere otomatik dönüşümler uyguluyor. password varsa Password, p@ssword, password1 gibi olasılıkları deniyor.
hashcat -m 0 -a 0 5f4dcc3b5aa765d61d8327deb882cf99 rockyou.txt -r /usr/share/hashcat/rules/best64.rule
best64.rule en yaygın kullanılan kural seti. Kali’de hashcat ile birlikte geliyor.
Sonuçlar ve Benchmark
Kırma işlemi bittikten sonra sonuçları tekrar görmek için:
hashcat -m 0 --show 5f4dcc3b5aa765d61d8327deb882cf99

GPU’nun ne kadar hızlı olduğunu görmek istersen:
hashcat -m 0 --benchmark

Çıktıda Speed satırı var. Hash/saniye cinsinden veriyor. MD5 gibi hafif algoritmalarda GPU ile milyarlarca hash/saniye ulaşılabiliyor. GPU yoksa veya no devices found hatası alıyorsan komutun sonuna –force ekle. CPU ile çalışır ama daha yavaş.