6 Şubat 2021 Cumartesi

Hash, Hashcat ve Online password cracking araçları

 

TRYHACKME CRACK THE HASH ÇÖZÜMLERİ

Bugün Tryhackme'nin başlangıç seviyesi kullanıcılar için hazırlanmış olan "Crack The Hash" odasına başladım. Özellikle bu odayı seçtim çünkü geçtiğimiz günlerde hem John the Ripper hem de hashcat isimli araçlar çok canımı sıktı :) 

Crack the Hash odasında aşağıdakileri kullanıyoruz:

  • hash-identifier
  • online password crack sayfaları
  • hashcat

Task1 Level 1 soruları ile başlayalım:

1. 48bb6e862e54f2a795ffc4e541caed4d 

İlk yapılması gereken bunun hangi hash algoritması olduğunu anlamak, bu iş için de hash-identifier yardımcı oluyor.

(Eğer kullandığınız Kali'de hash-identifier yoksa sudo apt-get install hash-identifier komutu ile indirebilirsiniz. Çok sık işe yarayan ve rahat çalışan bir araç olduğundan bulunması faydalı olacaktır.)

root@sparta:/home/sinem/Desktop/Tryhackme# hash-identifier 48bb6e862e54f2a795ffc4e541caed4d 

Komutun yanına hash'i yazıyoruz ve oluyor. Oluyor dediğim muhtemel hash algortimalarını görebiliyoruz:

Possible Hashs:
[+] MD5
[+] Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username)))

Muhtemelen MD5 olduğunu öğrendikten sonra iki seçenek var: 

- Hashcat

- Online araçlar

Bana daha kolay geldiği için her zaman önce online deniyorum. Bunun için de genellikle https://crackstation.net/ kullanıyorum ve çoğu zaman sonuç veriyor. Nitekim yine öyle oldu:



2. CBFDAC6008F9CAB4083784CBD1874F76618D2A97  

İkinci sorunun yanıtı da crackstation ile çıkıyor:                                       


3. 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032



Buraya kadar her şey yolunda :)
3. sorunun yanıtı da crackstation'da çıktı.
Görülebileceği gibi ilk sorudaki hash tipi md5, ikinci soruda sha1 ve üçüncü soruda sha256 olarak verilmiş.

4. $2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom

Bunu da crackstation da arıyorum ancak yok. Üstelik bu $ işareti ile başlayan ilginç hash'in ne olduğunu da bilmiyorum. Bunun için de önce Google'a
$2y$ ile başlayan hash tipi nedir diye soruyorum, o da bana şu cevabı veriyor:

Şimdi yine iki seçeneğim var, açıkçası bu sefer önce hashcat ile denedim ve şu komutu kullandım:

hashcat -m 3200 hash.txt /usr/share/wordlists/rockyou.txt

İlk olarak bir hash.txt oluşturdum ve hash'i içerisine attım çünkü direkt olarak hash değerini yazdığımda olmadı ancak bu şekilde de yüzlerce yıl sürdüğünü fark ettiğim için (rockyou.txt inanılmaz uzun bir wordlist) yine online aramaya dönmeye karar verdim.

Fakat şunu anladım, bcrypt için online bir tool bulmak da çok kolay değilmiş. Neyse, en sonunda https://www.onlinehashcrack.com sitesinden bir sonuca ulaşabildim:



5.
279412f945939ba78ce0758d3fd83daa




Bu sefer de bir md4 tipi hash verilmiş ve crackstation bunu da çözmeyi başarıyor. 

İlk kısım 4. soru hariç kolay bitiyor.

Task 2 Level 2

Bu bölüm biraz daha zor olacakmış ve tüm soruların yanıtları rockyou wordlist içerisinde bulunabiliyormuş. Bir de artık online tool kullanmayın hashcat kullanın diye belirtilmiş.

1. F09EDCB1FCEFC6DFB23DC3505A882655FF77375ED8AA2D1C13F640FCCC2D0C85

Önce bir hash-identifier ile istenen hash'in ne olduğuna bakıyorum: SHA-256 olabilir diyor.



hashcat kullanılırken bu bilgiye ihtiyacımız oluyor.

Hashcat komutları için kesin yazılması gereken iki bilgi var (bunların dışında da yazılabilecek flagler mevcut, --help dosyasından bakılabilir) :  hash mode (-m ile belirtilecek) ve attack mode (-a ile belirtilecek).

Hashmode'un ne olduğunu öğrenmek için:
https://hashcat.net/wiki/doku.php?id=example_hashes

Sayfada SHA256 arattığımda:

 

Hem hash formatını kontrol edebiliyorum hem de kullanacağım hash mode için gerekli (en başta yazan) mod numarasını bulabiliyorum: 1400 

Soruda istenen hash'i yine bir dosya içerisine kaydedeceğim (soru1.hash olarak) ardından da aşağıdaki komutla kırmayı deneyeceğim:

hashcat -a 3 -m 1400 soru1.hash /usr/share/wordlists/rockyou.txt

(-a 3 ile attack modunun brute-force olduğunu belirtmiş oldum.)  

Çalışmadı :) 

Ayrıca online toollar ile kırılabilen hash'ler için hashcat'le uğraşmanın mantığını da anlamadım. Amaç hashcat kullanabilmekse tamam, onu anladım.

Ben bu soru için yine döndüm crackstation'a sordum ve cevabını aldım, aynı şekilde 2. soru olan 1DFECA0C002AE40B8619ECF94819CC1B hashini de bu site yardımıyla kırdım. Fakat 3. soruda artık bu kadar şanslı değiliz...

3. Hash: $6$aReallyHardSalt$6WKUTqzq.UQQmrm0p/T7MPpMbGNnzXPMAXi4bJMl9be.cfi3/qxIf.hsGpS41BqMhSrHVXgMpdjS6xeKZAs02.

Salt: aReallyHardSalt

Rounds: 5

https://hashcat.net/wiki/doku.php?id=example_hashes sayfasında $6$ arattım ve formatı uyuyor mu diye bakarak şunu buldum:


Hash tipinin sha512 olduğunu öğrendim. Ayrıca hashcat çalıştırırken -m ile belirteceğimiz hash mode numarasının da 1800 olduğunu öğrendim. Hash'i hash.txt içerisine kaydettim. 

Komut aşağıdaki gibi:

hashcat -a 3 -m 1800 hash.txt /usr/share/wordlists/rockyou.txt 

Fakat 1.5 milyon parolayı kontrol etmesi bir ömür sürüyor, bu nedenle sonuç için sabırla beklemek lazım. 

4. Hash: e5d8870e5bdd26602cab8dbe07a942c8669e56d6

Salt: tryhackme

Yine ilk olarak hash-identifier'a baktım:

Possible Hashs:
[+] SHA-1
[+] MySQL5 - SHA-1(SHA-1($pass))

Fakat sorunun hint kısmında şu bilgi var:

Bunu https://hashcat.net/wiki/doku.php?id=example_hashes sayfasında aratınca da aşağıdaki sonuç çıkıyor:

 

Burada önemli bir nokta var; soruda verilen "salt" yani "tryhackme" hash içerisinde bulunmuyor. Yukarıdaki formatta :1234 olarak verilen kısım ise salt yani bizim hash'in sonuna salt'ı :tryhackme şeklinde eklememiz gerekiyor. 

hash2.txt içerisine
e5d8870e5bdd26602cab8dbe07a942c8669e56d6:tryhackme yazarak kaydediyorum ve ardından aşağıdaki komutu kullanıyorum:

hashcat -a 3 -m 160 hash2.txt /usr/share/wordlists/rockyou.txt
 

John the Ripper ile Şifre Kırmak

  JOHN THE RIPPER ARACIYLA ŞİFRE KIRMAK  John The Ripper, açık kaynak ve ücretsiz bir şifre kırma aracı. Her ne kadar Unix için çıkmış ols...