当遇到某个Hash值时,我们当然可以根据每种Hash值的不同特征来识别其可能的Hash类型,但是这一过程是十分耗时和繁琐的,而我们每个人都希望生活向更简单的方向前进。所以也就有了这篇文章。
Hash Algorithm Identifier
使用过Kali Linux或者Backtrack Linux的人,应该都知道一款名为Hash identifier的工具,这是一款十分优秀的工具,没有它,也不会有我这款工具的出现。
但是Hash identifier的代码并不是很有效率,有大量的if-else-if,并且有许多方法构造是重复的,这一切使得它的代码十分冗余。
所以我对其代码进行了重写(165行代码),并扩充了其Hash识别库,目前支持160多种Hash加密方式的识别,以后会更多。
我将这款工具命名为Hash-Algorithm-Identifier。
下载
你可以在GitHub上获取它。
使用
运行:
python HashIdentifier.py
赋予它可执行权限:
chmod +x HashIdentifier.py
执行它(一旦赋予了可执行权限,你可以通过下面的简单指令直接运行):
./HashIdentifier.py
如果你不明白上面的步骤,不用担心。在GitHub上你会找到一个名为start.sh的文件,直接运行它就可以了。
输入以下指令运行start.sh:
sh start.sh
代码介绍
我使用正则表达式来判断Hash值类型,阅读代码你会很容易发现这一点。使用正则表达式识别Hash类型可以让代码简单并且易于理解。
支持识别的Hash类型:
Adler32 Apache MD5 Blowfish crypt Blowfish(Eggdrop) Blowfish(OpenBSD) CRC-16 CRC-16-CCITT CRC-32 CRC-32B CRC-64 CRC-96(ZIP) Cisco IOS SHA256 Cisco-IOS MD5 DES crypt DES hash(Traditional) DES(Oracle) DES(Unix) Domain Cached Credentials 2(DCC2) Domain Cached Credentials(DCC) ELF-32 FCS-16 FCS-32 FNV-164 FNV-32 Fletcher-32 Fortigate (FortiOS) FreeBSD MD5 GHash-32-3 GHash-32-5 GOST R 34.11-94 HAVAL-128 HAVAL-128(HMAC) HAVAL-160 HAVAL-192 HAVAL-224 HAVAL-256 Joaat Keccak-224 Keccak-256 Keccak-512 LM Lineage II C4 Lotus Domino MD2 MD2(HMAC) MD4 MD4(HMAC) MD5 MD5 apache crypt MD5 crypt MD5(APR) MD5(Chap) MD5(Cisco PIX) MD5(HMAC(Wordpress)) MD5(HMAC) MD5(IP.Board) MD5(Joomla) MD5(MyBB) MD5(Palshop) MD5(Unix) MD5(Wordpress) MD5(ZipMonster) MD5(osCommerce) MD5(phpBB3) MSCASH2 MSSQL(2000) MSSQL(2005) MSSQL(2008) Minecraft(Authme) MySQL 3.x MySQL 4.x MySQL 5.x NSLDAP NT crypt NTLM Netscape LDAP SHA RAdmin v2.x RIPEMD-128 RIPEMD-128(HMAC) RIPEMD-160 RIPEMD-160(HMAC) RIPEMD-256 RIPEMD-256(HMAC) RIPEMD-320 RIPEMD-320(HMAC) SALSA-10 SALSA-20 SAM(LM_Hash:NT_Hash) SHA-1 SHA-1 crypt SHA-1(Django) SHA-1(Hex) SHA-1(LDAP) Base64 SHA-1(LDAP) Base64 + salt SHA-1(MaNGOS) SHA-1(MaNGOS2) SHA-1(Oracle) SHA-224 SHA-224(HMAC) SHA-256 SHA-256 crypt SHA-256(Django) SHA-256(HMAC) SHA-256(Unix) SHA-3(Keccak) SHA-384 SHA-384(Django) SHA-512 SHA-512 crypt SHA-512(Drupal) SHA-512(HMAC) SHA-512(Unix) SHA3-384 SHA3-512 SSHA-1 Skein-1024 Skein-1024(384) Skein-1024(512) Skein-256 Skein-256(128) Skein-256(160) Skein-256(224) Skein-512 Skein-512(128) Skein-512(160) Skein-512(224) Skein-512(256) Skein-512(384) Snefru-128 Snefru-128(HMAC) Snefru-256 Snefru-256(HMAC) TIGER-160 TIGER-160(HMAC) TIGER-192(HMAC) Tiger-128 Tiger-128(HMAC) Tiger-192 VNC Whirlpool XOR-32 substr(md5($pass),0,16) substr(md5($pass),16,16)
示例输出结果
Hash Identify : MD5: e20d344649524a8dd3f534cf32c290d5
Hash Identify : MD5(phpBB3):$H$9123456785DAERgALpsri.D9z3ht120
Hash Identify : MD5(Unix):$1$12345678$XM4P3PrKBgKNnTaqG9P0T/
Hash Identify : MD5(WordPress): $P$B123456780BhGFYSlUqGyE6ErKErL01
Hash Identify : SHA-512:6da33f58a9ef00445a387a5227aeb56fda7fc09c13a5f4383b777a8048894a5a2df3f3e27eb3ffb582431cd8e1d1c9a8bb7e4c53e74e802ed829d81ced395f34
Hash Identify : Tiger-192:f9f37d1da72799ae1a0d73033be6b54560e938a01334818f
* 原文链接:GitHub,watcher编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)