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

0
80
views
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.

 

Özet değerlerinin belirli karakter uzunluğu vardır. En önemli özet değerlerinin karakter uzunlukları aşağıdaki gibidir:

  • MD5: 32 karakter (Hex)
  • SHA-1: 40 karakter (Hex)
  • SHA-256: 64 karakter (Hex)
  • SHA-512: 128 karakter (Hex)

 

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

 

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz