SkillAgentSearch skills...

HashCrack

Python-based Hashcat wrapper for easy decryption.

Install / Use

/learn @ente0/HashCrack
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="https://github.com/user-attachments/assets/0c5fcac9-f8d7-4a7b-be44-b0b8757df9a5"/> </p> <p align="center"> <img src="https://img.shields.io/github/license/ente0/hashCrack" alt="License"> <img src="https://img.shields.io/badge/language-python-green" alt="Language: Python"> <img src="https://img.shields.io/badge/dependencies-hashcat-blue" alt="Dependencies"> <img src="https://img.shields.io/badge/release-v1.4.25-green" alt="Version"> </p> <div align="center">

hashCrack: Hashcat made Easy

A sophisticated Python-based wrapper for Hashcat. The tool provides a streamlined approach to various attack modes, making advanced password recovery more accessible.

</div>

[!CAUTION] This tool is strictly for authorized security testing and educational purposes. Always obtain explicit permission before conducting any assessments.

🚀 Key Features

  • 🔐 Multiple Attack Modes

    • Wordlist attacks
    • Rule-based cracking
    • Brute-force strategies
    • Hybrid attack combinations
  • 🖥️ Cross-Platform Compatibility

    • Optimized for Linux environments
    • Experimental Windows support via WSL
  • 📊 Intelligent Interface

    • Interactive menu system
    • Session restoration
    • Comprehensive logging

💻 System Requirements

🐧 Recommended: Linux Environment

  • Distributions:
    • Kali Linux
    • Ubuntu
    • Debian
    • Fedora
    • Arch Linux

🪟 Windows Support: Proceed with Caution

  • Current Status: Experimental
  • Recommended Approach:
    • Use Windows Subsystem for Linux (WSL)
    • Prefer native Linux installation

[!WARNING] Windows support is not fully tested. Strong recommendation to use WSL or a Linux environment for optimal performance.

🔧 Dependencies Installation

Linux Installation

# Kali/Debian/Ubuntu
sudo apt update && sudo apt install hashcat python3 python3-pip python3-termcolor python3-setuptools pipx

# Fedora
sudo dnf install hashcat python3 python3-pip python3-termcolor python3-setuptools python3-pipx

# Arch Linux/Manjaro
sudo pacman -S hashcat python python-pip python-termcolor python-setuptools python-pipx

Windows Installation

  1. Install Windows Subsystem for Linux (WSL)
  2. Follow Linux installation instructions within WSL

📦 Installation & Usage

Install via pip

pipx install hashcrack-tool
pipx inject hashcrack-tool setuptools termcolor

[!IMPORTANT] Ensure ~/.local/bin is in your PATH variable.

Running hashCrack

# Run hashCrack with hash file
hashcrack hashfile

[!IMPORTANT] Check out which is the exact format of your hash in order to input the correct hashmode and preventing errors. These are all the hash examples: Hashcat Wiki.

Upgrading

pipx upgrade hashcrack-tool

🔧 How to Clean the Hash Format for Hashcat

If you want to crack a zip file use the following command:

zip2john filename.zip > hash.txt

If you're using Hashcat with a ZIP archive hash (e.g. $pkzip$), make sure to clean the hash line correctly before use. Here's what to do:

Clean the Hash Line

From your hash.txt, remove:

  • The initial filename prefix (e.g., backup.zip:)

  • The trailing file names (after ::), like:

    ::backup.zip:style.css, index.php:backup.zip
    

So, for example, given this original line:

backup.zip:$pkzip$2*1*1*...*$/pkzip$::backup.zip:style.css, index.php:backup.zip

It should be cleaned to:

$pkzip$2*1*1*...*$/pkzip$

This format ensures that Hashcat can parse the hash correctly since the "signature" ($pkzip$) is correct.

📌 Hashcat Modes for ZIP Archives

Hashcat supports different modes for ZIP archives depending on the encryption and structure. Here’s what to use:

| Hashcat Mode | Format Example | Description | | ------------ | --------------------------------------------------- | -------------------------------------------------------------- | | -m 13600 | $zip2$ | WinZip legacy ZipCrypto encryption | | -m 17200 | $pkzip2$...*$/pkzip2$ (Compressed, single file) | PKZIP archive, compressed single-file | | -m 17210 | $pkzip2$...*$/pkzip2$ (Uncompressed, single file) | PKZIP archive, uncompressed single-file | | -m 17220 | $pkzip2$3*...*$/pkzip2$ | PKZIP compressed multi-file archive ✅ | | -m 17225 | $pkzip2$3*...*$/pkzip2$ | PKZIP mixed (compressed & uncompressed) multi-file archive | | -m 17230 | $pkzip2$8*...*$/pkzip2$ | PKZIP mixed multi-file (checksum-only entries) |

[!IMPORTANT] If your ZIP file contains more than one file inside (e.g., style.css, index.php), use: -m 17220

🎬 Demo Walkthrough

<p align="center"> <video src="https://github.com/user-attachments/assets/3cbfb116-7801-41bb-b0ab-6edcaa4a4fe6" /> </p>

[!TIP] Cracking results are automatically stored in ~/.hashCrack/logs/session/status.txt


Troubleshooting Hashcat Issues

If you encounter errors when running Hashcat, you can follow these steps to troubleshoot:

  1. Test Hashcat Functionality: First, run a benchmark test to ensure that Hashcat is working properly:

    hashcat -b
    

    This command will perform a benchmark on your system to check Hashcat's overall functionality. If this command works without issues, Hashcat is likely properly installed.

  2. Check Available Devices: To verify that Hashcat can detect your devices (such as GPUs) for cracking, use the following command:

    hashcat -I
    

    This command will list the available devices. Ensure that the correct devices are listed for use in cracking.

  3. Check for Errors in Hashcat: If the cracking process fails or Hashcat doesn't seem to recognize your devices, running the above tests should help identify potential problems with your system configuration, such as missing or incompatible drivers.

  4. Permissions: If you encounter permission issues (especially on Linux), consider running Hashcat with elevated privileges or configuring your user group correctly for GPU access. You can run Hashcat with sudo if necessary:

    sudo hashcat -b
    

    This will perform a system benchmark. If it runs without errors, your Hashcat installation is likely working correctly.

  5. Segmentation Fault or Crashes: If you encounter a segmentation fault during execution, like the following error:

    Counting lines in backup.zip. Please be patient...
    [1] 633187 segmentation fault (core dumped)  hashcat --session=2025-05-21_2 -m 17220 backup.zip -a 0 -w 3 -o ...
    

    This may be due to a bug or compatibility issue in newer versions of Hashcat. In such cases, try downgrading to an earlier stable version, such as Hashcat 6.1.1, which has resolved similar issues for others.

    You can find relevant discussion and workaround suggestions in this thread: 🔗 https://hashcat.net/forum/thread-9467.html

    To download Hashcat 6.1.1:

    wget https://github.com/hashcat/hashcat/releases/download/v6.1.1/hashcat-6.1.1.7z
    sudo apt install p7zip-full
    7z x hashcat-6.1.1.7z
    sudo mv hashcat-6.1.1 /opt/hashcat-6.1.1
    sudo ln -s /opt/hashcat-6.1.1/hashcat.bin /usr/local/bin/hashcat
    sudo rm hashcat-6.1.1.7z
    

🎮 Menu Options

| Option | Description | Function | |--------|-------------|----------| | 1 (Mode 0) | Wordlist Crack | Dictionary-based attack | | 2 (Mode 9) | Rule-based Crack | Advanced dictionary mutations | | 3 (Mode 3) | Brute-Force Crack | Exhaustive password generation | | 4 (Mode 6) | Hybrid Crack | Wordlist + mask attack | | 5 | View keys | Print found plaintexts | | 0 | Clear Potfile | Reset previous cracking results | | X | OS Menu Switch | Update OS-specific settings | | Q | Quit | Exit the program |

Example Hashcat Commands

# Wordlist Attack
hashcat -a 0 -m 400 example400.hash example.dict

# Wordlist with Rules
hashcat -a 0 -m 0 example0.hash example.dict -r best64.rule

# Brute-Force
hashcat -a 3 -m 0 example0.hash ?a?a?a?a?a?a

# Combination Attack
hashcat -a 1 -m 0 example0.hash example.dict example.dict

Supported Hash Modes

Raw Hashes, salted, checksums and ciphers

| Mode | Description | Category | |------|-------------|----------| | 900 | MD4 | Raw Hash | | 0 | MD5 | Raw Hash | | 100 | SHA1 | Raw Hash | | 1300 | SHA2-224 | Raw Hash | | 1400 | SHA2-256 | Raw Hash | | 10800 | SHA2-384 | Raw Hash | | 1700 | SHA2-512 | Raw Hash | | 17300 | SHA3-224 | Raw Hash | | 17400 | SHA3-256 | Raw Hash | | 17500 | SHA3-384 | Raw Hash | | 17600 | SHA3-512 | Raw Hash | | 6000 | RIPEMD-160 | Raw Hash | | 600 | BLAKE2b-512 | Raw Hash | | 11700 | GOST R 34.11-2012 (Streebog) 256-bit, big-endian | Raw Hash | | 11800 | GOST R 34.11-2012 (Streebog) 512-bit, big-endian | Raw Hash | | 6900 | GOST R 34.11-94 | Raw Hash | | 17010 | GPG (AES-128/AES-256 (SHA-1($pass))) | Raw Hash | | 5100 | Half MD5 | Raw Hash | | 17700 | Keccak-224 | Raw Hash | | 17800 | Keccak-256 | Raw Hash | | 17900 | Keccak-384 | Raw Hash | | 18000 | Keccak-512 | Raw Hash | | 6100 | Whirlpool | Raw Hash | | 10100 | SipHash | Raw Hash | | 70 | md5(utf16le($pass)) | Raw Hash | | 170 | sha1(utf16le($pass)) | Raw Hash | | 1470 | sha256(utf16le($pass)) | Raw Hash | | 10870 | sha384(utf16le($pass)) | Raw Hash | | 1770 | sha512(utf16le($pass)) | Raw Hash | | 610 | BLAKE2b-512($pass.$salt) | Raw Hash salted and/or iterated | | 620 | BLAKE2b-512($salt.$pass) | Raw Hash salted and/or iterated | | 10 | md5($pa

View on GitHub
GitHub Stars219
CategoryDevelopment
Updated2h ago
Forks20

Languages

Python

Security Score

100/100

Audited on Mar 23, 2026

No findings