
Un outil pour automatiser les méthodologies de craquage via Hashcat, développé par l'équipe TrustedSec.
___ ___ __ _________ __
/ | \_____ _/ |_ ____ \_ ___ \____________ ____ | | __
/ ~ \__ \\ __\/ __ \ / \ \/\_ __ \__ \ _/ ___\| |/ /
\ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| <
\___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \
\/ \/ \/_____/ \/ \/ \/ \/
L'installation depuis les sources est la seule voie prise en charge. hate_crack n'est pas
distribué sur PyPI : pip install hate-crack renvoie vers un espace réservé 0.0.0
qui échoue volontairement et renvoie ici. Le nom est réservé uniquement pour que personne d'autre
ne puisse publier un homonyme sous celui-ci — voir
packaging/pypi-placeholder/.
Hashcat doit être installé et disponible dans votre PATH :
Ubuntu/Kali :
sudo apt-get install -y hashcat
macOS (Homebrew) :
brew install hashcat
Ou téléchargez un binaire précompilé depuis https://hashcat.net/hashcat/ et définissez hcatPath dans config.json vers son emplacement.
Clonez avec les sous-modules (requis pour hashcat-utils, princeprocessor, pcfg_cracker, Corporate_Masks, et éventuellement omen) :
git clone --recurse-submodules https://github.com/trustedsec/hate_crack.git
cd hate_crack
Si vous avez cloné sans les sous-modules, initialisez-les :
git submodule update --init --recursive
Personnalisez ensuite la configuration si nécessaire. hate_crack utilise deux fichiers de configuration, chacun gérant un ensemble distinct de paramètres :
config.json — chemins des wordlists, masques, règles, réglages, potfile, chemin de hashcat, limites de candidats, options de notification, valeurs par défaut des préférences CLI (35 paramètres)..env — paramètres d'intégration tiers uniquement : identifiants Hashview et Hashmob, identifiants Pushover, Ollama et pipal (14 paramètres). Non suivi par git, créé avec le mode 0600.La séparation s'explique par une seule raison : .env est le fichier susceptible de contenir des secrets. Les identifiants et la configuration des services tiers vont dans le fichier non suivi en 0600 ; tout ce que hate_crack fait localement reste dans config.json, qui peut être partagé, comparé et consigné dans vos propres notes sans risque. C'est aussi pourquoi les identifiants Pushover sont dans .env tandis que les interrupteurs Pushover on/off sont dans config.json — les interrupteurs sont des préférences locales, pas des secrets.
Chaque clé a exactement un emplacement. Une clé placée dans l'autre fichier est ignorée, et hate_crack affiche un avertissement nommant le fichier auquel elle appartient. N'importe quelle clé peut toujours être remplacée pour une exécution unique en exportant sa variable d'environnement. La plupart des utilisateurs peuvent ignorer cette étape, car les chemins par défaut fonctionnent immédiatement.
config.json est permanent et de premier ordre — il n'est pas obsolète et aucune date de suppression n'est prévue. Seuls les paramètres d'intégration ont été déplacés.
Vous mettez à niveau depuis un seul config.json ? hate_crack effectue la migration pour vous au premier lancement : les paramètres d'intégration sont copiés dans un nouveau .env en 0600, puis supprimés de config.json afin que les deux fichiers ne les revendiquent pas tous les deux. Il indique quelles clés ont été déplacées (jamais leurs valeurs) et sauvegarde votre original sous config.json.pre-split.bak avant d'y toucher. Tout le reste dans config.json est laissé exactement tel quel, ordre des clés compris.
Premier lancement : hate_crack crée les deux fichiers pour vous, il n'y a donc rien à faire. Pour configurer .env manuellement à la place, copiez le modèle suivi :
cp .env.example .env
chmod 600 .env
.env.example est versionné et livré avec chaque clé d'identifiant vide. .env lui-même ne doit jamais être versionné — il est ignoré par git, ainsi que ses orthographes de sauvegarde habituelles, et hate_crack le crée toujours avec le mode 0600 (lecture/écriture propriétaire uniquement). .env.example est généré à partir du schéma ; régénérez-le après avoir modifié hate_crack/config_schema.py avec uv run python -m hate_crack.config_writer.
La méthode la plus simple consiste à exécuter make (ou make install), qui détecte automatiquement votre OS et installe :
~/.local/bin/hate_crackmake
Ceci est idempotent - les outils déjà installés sont ignorés. Pour forcer une réinstallation propre :
make reinstall
Ou installez les dépendances manuellement :
Elles sont requises pour certains flux de téléchargement/extraction :
7z/7za (p7zip) — utilisé pour extraire les archives .7z.transmission-daemon / transmission-remote — utilisé pour télécharger les torrents Weakpass.Commandes d'installation manuelle :
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
Installez ensuite les dépendances Python et le shim 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
La logique principale est désormais répartie en modules sous hate_crack/ :
hate_crack/cli.py : assistants argparse et surcharges de configuration.hate_crack/api.py : intégrations Hashview, Weakpass et Hashmob (téléchargements/menus/assistants).hate_crack/attacks.py : gestionnaires d'attaques du menu.hate_crack/corpus_stats.py : statistiques de mots de passe sur l'ensemble du corpus utilisées pour décrire un corpus au LLM.hate_crack/plaintext.py : récupère le mot de passe à partir d'une ligne de corpus (suppression du préfixe de hash, décodage $HEX[...]) ; partagé par les modes LLM, corpus_stats et rulegen.hate_crack/llm.py : génération structurée (JSON) de candidats par LLM via Atomic Agents.hate_crack/menu.py : moteur de rendu de menu partagé, incluant la navigation optionnelle par touches fléchées.hate_crack/noninteractive.py : répartiteur pour les sous-commandes d'attaque scriptées.hate_crack/notify/ : package de notifications (backend Pushover, suivi par crack).hate_crack/username_detect.py : détecte les fichiers d'entrée username:hash pour décider de l'option --username de hashcat.hate_crack/formatting.py, hate_crack/progress.py : assistants de formatage de sortie et d'affichage de progression.hate_crack/main.py : implémentation principale de la CLI.Le fichier hate_crack.py à la racine reste le point d'entrée principal et orchestre ces modules.
Ce projet dépend de et s'inspire de plusieurs projets et services externes. Merci à :
Après l'installation avec make, lancez hate_crack depuis n'importe où :