
hate_crack v2.36.1
TrustedSec チームによる、Hashcat を通じてクラッキング手法を自動化するツール。
___ ___ __ _________ __
/ | \_____ _/ |_ ____ \_ ___ \____________ ____ | | __
/ ~ \__ \\ __\/ __ \ / \ \/\_ __ \__ \ _/ ___\| |/ /
\ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| <
\___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \
\/ \/ \/_____/ \/ \/ \/ \/
インストール
ソースからのインストールが唯一サポートされている方法です。hate_crack は PyPI では配布されていません。pip install hate-crack は 0.0.0 のプレースホルダーに解決され、意図的に失敗してここに戻ってくるようになっています。この名前が確保されているのは、誰かが類似名で公開できないようにするためだけです — packaging/pypi-placeholder/ を参照してください。
1. hashcat のインストール
hashcat がインストールされ、PATH から利用できる必要があります:
Ubuntu/Kali:
sudo apt-get install -y hashcat
macOS (Homebrew):
brew install hashcat
または https://hashcat.net/hashcat/ からビルド済みバイナリをダウンロードし、config.json の hcatPath にその場所を設定します。
2. hate_crack のダウンロード
サブモジュール付きでクローンします(hashcat-utils、princeprocessor、pcfg_cracker、Corporate_Masks、およびオプションで omen に必要):
git clone --recurse-submodules https://github.com/trustedsec/hate_crack.git
cd hate_crack
サブモジュールなしでクローンした場合は、それらを初期化します:
git submodule update --init --recursive
必要に応じて設定をカスタマイズします。hate_crack は 2 つの設定ファイルを使用し、それぞれが異なる設定群を管理します:
config.json— ワードリストのパス、マスク、ルール、チューニング、potfile、hashcat のパス、候補数制限、通知トグル、CLI 設定のデフォルト(35 設定)。.env— サードパーティ連携設定のみ:Hashview と Hashmob の認証情報、Pushover の認証情報、Ollama、および pipal(14 設定)。git では追跡されず、モード0600で作成されます。
この線引きがなされる理由は 1 つです:.env は秘密情報を保持し得るファイルだからです。サードパーティサービスの認証情報と設定は、追跡されない 0600 のファイルに置かれ、hate_crack がローカルで行うすべてのことは config.json に留まり、これは共有、diff、自分のノートへのチェックインが安全です。これがまた、Pushover の認証情報が .env にあり、Pushover のオン/オフトグルが config.json にある理由でもあります — トグルはローカルの設定であり、秘密情報ではないからです。
各キーにはちょうど 1 つの居場所があります。もう一方のファイルに置かれたキーは無視され、hate_crack はそれが属するファイル名を示す警告を出力します。どのキーも、その環境変数をエクスポートすることで単一の実行に対して上書きできます。デフォルトのパスがそのまま動作するため、ほとんどのユーザーはこの手順を省略できます。
config.json は恒久的かつ第一級です — 非推奨ではなく、削除の予定もありません。移動したのは連携設定のみです。
単一の config.json からアップグレードしますか? hate_crack は初回実行時に自動で移行します:連携設定は新しい 0600 の .env にコピーされ、その後 config.json から削除されるため、両方のファイルがそれらを主張することはありません。移動したキー(値は決して含めず)を出力し、変更を加える前に元のファイルを config.json.pre-split.bak として保存します。config.json のその他すべては、キーの順序も含めて、まったくそのまま残されます。
初回実行: hate_crack が両方のファイルを作成するため、何もする必要はありません。代わりに .env を手動で設定するには、追跡されているテンプレートをコピーします:
cp .env.example .env
chmod 600 .env
.env.example はコミットされており、すべての認証情報キーが空の状態で同梱されています。.env 自体は決してコミットしてはいけません — これは gitignore されており、通常のバックアップ用の綴りも同様に除外され、hate_crack は常にモード 0600(所有者のみ読み書き可能)でこれを作成します。.env.example はスキーマから生成されます。hate_crack/config_schema.py を変更した後は、uv run python -m hate_crack.config_writer で再生成してください。
3. 依存関係と hate_crack のインストール
最も簡単な方法は make(または make install)を実行することです。これにより OS が自動検出され、以下がインストールされます:
- 外部依存関係(p7zip、transmission-daemon / transmission-remote)
- サブモジュール(hashcat-utils、princeprocessor、pcfg_cracker、およびオプションで omen)をビルドし、データのみの Corporate_Masks マスクセットをチェックアウト
- uv 経由の Python 依存関係と
~/.local/bin/hate_crackにある CLI シム
make
これは冪等です - すでにインストールされているツールはスキップされます。クリーンな再インストールを強制するには:
make reinstall
または依存関係を手動でインストール:
外部依存関係
これらは特定のダウンロード/展開フローに必要です:
7z/7za(p7zip) —.7zアーカイブの展開に使用されます。transmission-daemon/transmission-remote— Weakpass トレントのダウンロードに使用されます。
手動インストールコマンド:
Ubuntu/Kali:
sudo apt-get update
sudo apt-get install -y p7zip-full transmission-daemon
macOS (Homebrew):
brew install p7zip transmission-cli # provides transmission-daemon and transmission-remote
次に、Python の依存関係と CLI シムをインストールします:
uv sync
mkdir -p ~/.local/bin
printf '#!/usr/bin/env bash\nset -euo pipefail\nexec uv run --directory %s python -m hate_crack "$@"\n' "$(pwd)" > ~/.local/bin/hate_crack
chmod +x ~/.local/bin/hate_crack
プロジェクト構造
コアロジックは現在、hate_crack/ 配下のモジュールに分割されています:
hate_crack/cli.py: argparse ヘルパーと設定オーバーライド。hate_crack/api.py: Hashview、Weakpass、Hashmob の統合(ダウンロード/メニュー/ヘルパー)。hate_crack/attacks.py: メニュー攻撃ハンドラー。hate_crack/corpus_stats.py: LLM にコーパスを説明するために使用される、コーパス全体のパスワード統計。hate_crack/plaintext.py: コーパス行からパスワードを復元(ハッシュプレフィックスの除去、$HEX[...]デコード);LLM モード、corpus_stats、rulegen で共有。hate_crack/llm.py: Atomic Agents を介した構造化(JSON)LLM 候補生成。hate_crack/menu.py: 共有メニューレンダラー(オプションの矢印キーナビゲーションを含む)。hate_crack/noninteractive.py: スクリプト化された攻撃サブコマンドのディスパッチャー。hate_crack/notify/: 通知パッケージ(Pushover バックエンド、クラックごとのテーラー)。hate_crack/username_detect.py:username:hash入力ファイルを検出し、hashcat の--usernameを決定。hate_crack/formatting.py、hate_crack/progress.py: 出力フォーマットと進捗表示のヘルパー。hate_crack/main.py: メイン CLI 実装。
トップレベルの hate_crack.py はメインエントリポイントとして残り、これらのモジュールを統括します。
参考文献と謝辞
このプロジェクトは、多くの外部プロジェクトやサービスに依存し、またそれらからインスピレーションを得ています。以下に感謝します:
- Hashview (http://github.com/hashview/)
- Weakpass (https://weakpass.com)
- Hashmob (https://hashmob.net)
使用方法
make でインストールした後、どこからでも hate_crack を実行できます:
hate_crack
# or with arguments:
hate_crack <hash_file> <hash_type> [options]
または、uv 経由で実行します:
uv run hate_crack.py <hash_file> <hash_type>
ツールとして実行(推奨)
リポジトリのルートから make を使用してインストールします。これによりサブモジュールがビルドされ、アセットがバンドルされます:
cd /path/to/hate_crack
make
hate_crack
make install コマンドは ~/.local/bin/hate_crack に bash shim を作成し、リポジトリディレクトリから実行されるため、現在の作業ディレクトリに関係なく config とアセットが常に見つかります。
Config は以下でも検索されます:
- リポジトリルートとパッケージディレクトリ
~/.hate_crack
注: config.json 内の hcatPath は hashcat バイナリの場所専用です(hashcat が PATH にある場合はオプション)。Hate_crack のアセット(hashcat-utils、princeprocessor、pcfg_cracker、Corporate_Masks、omen)はリポジトリディレクトリから読み込まれ、make install によって自動的にバンドルされます。
スクリプトとして実行
このスクリプトは uv shebang を使用します。実行可能にしてから実行してください:
chmod +x hate_crack.py
./hate_crack.py
Pythonを直接使用することもできます:
python hate_crack.py
非対話型 / スクリプトによる使用
自動化のために、メニューを経由せずに単一の攻撃を直接起動できます。攻撃名が最初の引数で、その後にハッシュファイルとhashcatのハッシュタイプが続きます。前処理のプロンプト(コンピューターアカウントのフィルタリング、LM優先のブルートフォース、重複アカウントの重複排除)は、このモードではデフォルトを自動的に受け入れます。プロセスは成功時に 0 で終了し、エラー時(ハッシュファイルの欠落、ハッシュタイプが数値でない、ワードリストの欠落、または不明なルールファイル名)には非ゼロで終了します。
# Quick crack: one wordlist + optional rule(s) from the rules directory
hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule
# Chain two rules in a single run
hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule+d3ad0ne.rule
# Run two rules as two separate passes
hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule d3ad0ne.rule
# Canned dictionary methodology (uses your configured wordlists)
hate_crack dict hashes.txt 1000
# Brute force lengths 1-8
hate_crack brute hashes.txt 1000 --min 1 --max 8
# Top-mask attack targeting ~4 hours
hate_crack topmask hashes.txt 1000 --target-time 4
メニューの攻撃のほとんどは同じ方法で利用できます。これらにはハッシュファイルとハッシュタイプ以外は何も必要ありません:
hate_crack fingerprint hashes.txt 1000
hate_crack pathwell hashes.txt 1000
hate_crack prince hashes.txt 1000
hate_crack pcfg hashes.txt 1000
hate_crack princeling hashes.txt 1000
hate_crack smartmask hashes.txt 1000
hate_crack corporate hashes.txt 1000
hate_crack combinator hashes.txt 1000 # configured wordlists
hate_crack hybrid hashes.txt 1000 # configured wordlists
それぞれは、メニュー項目が要求する設定も受け付けます:
# Fingerprint, tuned: escalate to 24-character fragments and cap the keyspace
hate_crack fingerprint hashes.txt 1000 --max-expander-len 24 \
--run-hybrid-on-expanded --keyspace-limit 50000000000
# Skip the fragment/wordlist combination step entirely
hate_crack fingerprint hashes.txt 1000 --no-dictionary-wordlist