diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ac5f85c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,33 @@ +## HashCracker v1.0.0 + +Hashes supported: + +- md5 +- sha1 +- sha224 +- sha256 +- sha384 +- sha512 +- bcrypt (Cannot identify) + +--- + +## HashCracker v1.0.1 + +Hashes supported: + +- md5 +- sha1 +- sha224 +- sha256 +- sha384 +- sha512 +- bcrypt (Cannot identify) + +--- + +- Bug fixes +- Installation script +- Documentation + +--- \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..9fe1182 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +

HashCracker

+ +

A simple Hash Cracking tool developed in Python 3

+ +> For educational purposes + +## Libraries + +- hashid >= 3.1.4 +- bcrypt >= 3.2.0 + +[hashID](https://github.com/psypanda/hashID) used for hash identification + +[bcrypt](https://pypi.org/project/bcrypt/) used for bcrypt hashs creation + +## OS Support + +- Windows +- Linux +- Mac? - Not tested + +## Installation + +- Clone the repo and cd into directory +```bash +git clone https://github.com/ReddyyZ/HashCracker.git && cd HashCracker +``` + +- Set permissions +```bash +chmod +x install.sh +``` + +- Execute installation script +```bash +sudo ./install.sh +``` + +- Happy Hacking! +```bash +hashcracker -h +``` + +## How to use + +OPTIONS | EXPLANATION +------- | ----------- +-w, --wordlist | Wordlist path +-m, --mode | Specify the hash type +-t, --threads | Threads count +--- + +- Try to identify the hash +```bash +hashcracker -w rockyou.txt 5f4dcc3b5aa765d61d8327deb882cf99 +``` + +- Specify the hash to crack +```bash +hashcracker -w rockyou.txt -m md5 5f4dcc3b5aa765d61d8327deb882cf99 +``` + +--- + +

</> by ReddyyZ

\ No newline at end of file diff --git a/hashcracker.py b/hashcracker.py index 5875676..304146c 100644 --- a/hashcracker.py +++ b/hashcracker.py @@ -1,8 +1,9 @@ +#!/usr/bin/env python3 import argparse, textwrap, hashlib, threading, os, sys, time import hashid, bcrypt __clear__ = lambda : os.system("cls" if os.name == "nt" else "clear") -__version__ = "v1.0.0" +__version__ = "v1.0.1" hashs_ = { "md5": lambda text : hashlib.md5(text.encode()).hexdigest(), @@ -48,7 +49,7 @@ def brute(_hash,passwd,hash_type, t_num, salt=None): print(f"[Thread: {t_num}] Testing: {_hash}:{passwd}") if not salt: - result = hashs_[hash_type](passwd).decode() + result = hashs_[hash_type](passwd) else: result = hashs_[hash_type](passwd,salt).decode() @@ -121,4 +122,4 @@ def main(): break if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..9252a5c --- /dev/null +++ b/install.sh @@ -0,0 +1,9 @@ +echo -e "Installing Hash Cracker...\n" + +sudo apt-get install python3 python3-dev python3-pip +python3 -m pip install -r requirements.txt +mkdir -p /usr/share/hashcracker/ +cp hashcracker.py /usr/share/hashcracker/hashcracker.py +ln -s /usr/share/hashcracker/hashcracker.py /usr/bin/hashcracker + +echo "Hash Cracker installed!" \ No newline at end of file