Python hash-identifier Betiği ile Özet Değerlerine Ait Algoritmaların Tespit Edilmesi

Sızma testleri sırasında elde edilen bir özet (hash) değerinin (özellikle parola özetlerinin) hangi algoritmaya ait olduğunun öğrenilmesine ihtiyaç duyulabilir. Bu yazıda Python ile yazılmış hash-identifier betiği ile özet değerlerinin muhtemel algoritmaları tespit edilecektir.

 

Kali üzerinde hash-identifier betiği hazır olarak gelmektedir. Bunun yanında betik Google Code üzerinden de indirilebilir.

https://code.google.com/archive/p/hash-identifier/downloads

 

Betiğin örnek bir çıktısı aşağıdaki gibidir.

identifying-password-hashes-using-python-hash-identifier-tool-01

 

Özetleme algoritmaları belli uzunlukta belli karakter kümesinden oluşan belli formattaki sonuçları verir. Örneğin “Aa123456” açık metninin özet değerleri aşağıdaki gibidir.

identifying-password-hashes-using-python-hash-identifier-tool-02

 

Özet değer elde etmek için kullanılabilecek sayfa için bakınız:

https://defuse.ca/checksums.htm#checksums

 

Betik de temel olarak özetleme algoritmalarının çıktılarındaki bazı farklılıkları gözönünde bulundurmaktadır. Genel olarak dikkate alınan kriterler aşağıdaki gibidir:

  • Örnek aldığı bir değerin özetini almakta ve bu özetin uzunluğu ile kendisine paramtre olarak verilen özetin uzunluğunu karşılaştırmaktadır. MD5 için “www.Blackploit.com”, SAM (LM:NTLM) için “bob”,… baz alınarak kullanıcının girdiği özet değerinin uzunluğu karşılaştırılır.
  • Sadece rakam içerip içermediği kontrol edilir. GHash325 veya GHash323 özetleri sadece rakam değerleri içerir.
  • Sadece harf içerip içermediği kontrol edilir.
  • Büyük veya küçük harflerden oluşup oluşmadığı kontrol edilir.
  • Sadece harf ve rakam içerip içermediği kontrol edilir.
  • Belli karakterlerinin içeriği kontrol edilir. Örneğin 32. karakteri “:” ise SAM, MD5passsaltjoomla1,.. formatında olduğu; ilk 5 karakteri “sha1$” içeriyorsa SHA1Django özeti olduğu ihtimali vardır.

Betikte kullanılan veri yapıları için bakınız: https://docs.python.org/2/library/stdtypes.html

 

Başka bir özet değeri (“Aa123456” ifadesinin MD5 çıktısı) ile deneme yapıldığında ise muhtemel 2 sonuçtan birisi MD5 iken, onlarca daha az ihtimal verilen özet listelenmektedir.

identifying-password-hashes-using-python-hash-identifier-tool-03

 

Bunun yanında betiğin her zaman doğru sonuç vermediği de unutulmamalıdır. Örneğin “Aa123456” ifadesinin Tiger128,3 algoritması ile özetlenmiş hali betiğe girdi olarak verildiğinde muhtemel sonucların yanlış olarak listelendiği görülmektedir.

identifying-password-hashes-using-python-hash-identifier-tool-04

 

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.