mms-systems / hashID

Software to identify the different types of hashes used to encrypt data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hashID

Identify the different types of hashes used to encrypt data and especially passwords.

This tool replaces hash-identifier, which is outdated!

hashID is a tool written in Python 3.x which supports the identification of over 190 unique hash types using regular expressions. A full list of supported hashes is found here.
It is able to identify a single hash, parse a file or read files in a directory and identify the hashes within them.
hashID is also capable of including the corresponding hashcat mode in its output.
Altough hashID is written in Python 3.x it should also work with Python 2.7.

There is also a nodejs version of hashID available which is easily set up to provide online hash identification.

*Note: When identifying a hash on nix operating systems use single quotes to prevent interpolation

Install

sudo apt-get install python3 git
git clone https://github.com/psypanda/hashid.git
cd hashid && chmod +x hashid.py
sudo install -g 0 -o 0 -m 0644 man/hashid.7 /usr/share/man/man7/
sudo gzip /usr/share/man/man7/hashid.7
exit

Usage

$ hashid.py [-a] [-m] [--help] [--version] INPUT
Parameter Description
input string or filename to analyze
-a, --all list all hash algorithms including salted passwords
-m, --mode include corresponding hashcat mode in output
--help show this help message and exit
--version show program's version number and exit

Screenshot

$ ./hashid.py $P$8ohUJ.1sdFw09/bMaAQPTGDNi2BIUt1
Analyzing '$P$8ohUJ.1sdFw09/bMaAQPTGDNi2BIUt1'
[+] Wordpress ≥ v2.6.2
[+] Joomla ≥ v2.5.18
[+] PHPass' Portable Hash

$ hashid.py -m ecf076ce9d6ed3624a9332112b1cd67b236fdd11:17782686
Analyzing 'ecf076ce9d6ed3624a9332112b1cd67b236fdd11:17782686'
[+] Redmine Project Management Web App [Hashcat Mode: 7600]
[+] SMF ≥ v1.1 [Hashcat Mode: 121]

$ ./hashid.py hashes.txt
--File 'hashes.txt'--
Analyzing '*85ADE5DDF71E348162894C71D73324C043838751'
[+] MySQL5.x
[+] MySQL4.1
Analyzing '$2a$08$VPzNKPAY60FsAbnq.c.h5.XTCZtC1z.j3hnlDFGImN9FcpfR1QnLq'
[+] Blowfish(OpenBSD)
[+] Woltlab Burning Board 4.x
[+] bcrypt
--End of file 'hashes.txt'--

$ ./hashid.py folder/*.txt
--File 'hashes.txt'--
Analyzing '*85ADE5DDF71E348162894C71D73324C043838751'
[+] MySQL5.x
[+] MySQL4.1
Analyzing '$2a$08$VPzNKPAY60FsAbnq.c.h5.XTCZtC1z.j3hnlDFGImN9FcpfR1QnLq'
[+] Blowfish(OpenBSD)
[+] Woltlab Burning Board 4.x
[+] bcrypt
--End of file 'hashes.txt'--
--File 'hashes.txt'--
Analyzing '{smd5}01234567$yOImZPvBC8dg1HjGYfH7j.'
[+] AIX(smd5)
Analyzing 'crypt1:fnd+8xl+U1E=:Wc30H8MPgAc='
[+] Clavister Secure Gateway
--End of file 'hashes.txt'--

Contribute

Contributing to this project can be done in various ways:

  • Add currently unsupported hash types
  • Change/Fix/Enhance existing regular expression
  • Provide reading resources on specific hash types in hashinfo.xlsx

Known issues

  • hashID isn't capable of handling piped input at the moment

Credits

  • Thanks to sigkill who helped me numerous times fixing and optimizing the code
  • Thanks to kmulvey for supplying a nodejs version of hashID
  • Thanks to bburky for extending hashIDs functionality and numerous ideas to improve it

Resources

About

Software to identify the different types of hashes used to encrypt data

License:GNU General Public License v3.0