Sızma Testlerinde Elde Edilen Hashli Parola Tiplerinin Belirlenmesi

Sızma testlerinde elde edilen parola özetlerinin tipinin belirlenmesinde kullanılacak olan HashTag.py aracı, farklı şifre hash değerlerini kendi türüne göre ayıran ve tanımlayan Python ile yazılmış bir araçtır. 250 ve üzeri hash değerini desteklemektedir. HashTag, hash değerlerini direk okumanın yanı sıra dosya üzerinden de hash değerlerini okuyabilmektedir.

Aracı kaynak kodlarını görüntülemek  için burayı ziyaret edebilirsiniz. Eğer aracı online olarak kullanmak isterseniz bu adresten ulaşabilirsiniz.



Kullanımı :
Kullanımı aşağıdaki gibidir.
usage: HashTag.py {-sh hash |-f file |-d directory} [-o output_filename] [-hc] [-n]



Programın kullanımını ve hangi parametleri aldığını detaylı olarak görmek için help menüsünden faydalanılabilir.
-h, –help
show this help message and exit
-sh SINGLEHASH, –singleHash SINGLEHASH
Identify a single hash
-f FILE, –file FILE
Parse a single file for hashes and identify them
-d DIRECTORY, –directory DIRECTORY
Parse, identify, and categorize hashes within a directory and all subdirectories
-o OUTPUT, –output OUTPUT
Filename to output full list of all identified hashes
–file default filename: HashTag/HashTag_Output_File.txt
–directory default filename: HashTag/HashTag_Hash_File.txt
-hc, –hashcatOutput
–file: Output a file per different hash type found, if corresponding hashcat mode exists
–directory: Appends hashcat mode to end of separate files
-n, –notFound
–file: Include unidentifiable hashes in the output file. Good for tool debugging (Is it Identifying properly?)



Single Hash (-sh) Değerinin Belirlenmesi:
Single Hash değerini belirlemek  için -sh parametresi kullanılacaktır.
Örnek 1 : HashTag.py -sh 7026360f1826f8bc
➜  Desktop  ./HashTag.py -sh 7026360f1826f8bc
Hash: 7026360f1826f8bc
[*] MySQL, MySQL323
[*] Oracle 7-10g, DES(Oracle) – Hashcat Mode 3100
[*] CRC-64
[*] SAPB
[*] substr(md5($pass),0,16)
[*] substr(md5($pass),16,16)
[*] substr(md5($pass),8,16)
Örnek 2 : HashTag.py -sh 3b1015ccf38fc2a32c18674c166fa447
➜  Desktop  ./HashTag.py -sh 3b1015ccf38fc2a32c18674c166fa447
Hash: 3b1015ccf38fc2a32c18674c166fa447
[*] MD5 – Hashcat Mode 0
[*] NTLM – Hashcat Mode 1000
[*] MD4 – Hashcat Mode 900
[*] LM – Hashcat Mode 3000
[*] RAdmin v2.x
[*] Haval-128
[*] MD2
[*] RipeMD-128
[*] Tiger-128
[*] Snefru-128
[*] MD5(HMAC)
[*] MD4(HMAC)
[*] Haval-128(HMAC)
[*] RipeMD-128(HMAC)
[*] Tiger-128(HMAC)
[*] Snefru-128(HMAC)
[*] MD2(HMAC)
[*] MD5(ZipMonster)
[*] MD5(HMAC(WordPress))
[*] Skein-256(128)
[*] Skein-512(128)
[*] md5($pass.$salt) – Hashcat Mode 10
[*] md5($pass.$salt.$pass)
[*] md5($pass.md5($pass))
[*] md5($salt.$pass) – Hashcat Mode 20
[*] md5($salt.$pass.$salt) – Hashcat Mode 3810
[*] md5($salt.$pass.$username)
[*] md5($salt.’-‘.md5($pass))
[*] md5($salt.md5($pass)) – Hashcat Mode 3710
[*] md5($salt.md5($pass).$salt)
[*] md5($salt.MD5($pass).$username)
[*] md5($salt.md5($pass.$salt)) – Hashcat Mode 4110
[*] md5($salt.md5($salt.$pass)) – Hashcat Mode 4010



Hash Değerinin Dosyadan Okunarak Belirlenmesi (-f):
Hash değerini dosyadan okumak ve parse etmek için -f parametresi kullanılacaktır.
➜  Desktop  ./HashTag.py -f hash.txt -hc
File Mimetype: text/plain
Hashes Found: 1
File successfully written: HashTag/HashTag_Output_File.txt



Burada dosyada yazılı olan hash değeri -f parametresi ile okutulmuştur. Daha sonra hash değerinin sonucu HashTag/HashTag_Output_File.txt dosyasına yazılmıştır. O dosyanın içeriği görüntülendiği zaman hash bilgisine ulaşılacaktır.
➜  Desktop  cat HashTag/HashTag_Output_File.txt
Hash: 7026360f1826f8bc
Char Length: 16
Hashcat Modes: [‘3100’]
Hash Types: [‘MySQL, MySQL323’, ‘Oracle 7-10g, DES(Oracle)’, ‘CRC-64’, ‘SAPB’, ‘substr(md5($pass),0,16)’, ‘substr(md5($pass),16,16)’, ‘substr(md5($pass),8,16)’]



Referans :
* http://www.smeegesec.com/2013/11/hashtag-password-hash-identification.html