
hate_crack v2.36.1
Uno strumento per automatizzare le metodologie di cracking tramite Hashcat del team TrustedSec.
___ ___ __ _________ __
/ | \_____ _/ |_ ____ \_ ___ \____________ ____ | | __
/ ~ \__ \\ __\/ __ \ / \ \/\_ __ \__ \ _/ ___\| |/ /
\ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| <
\___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \
\/ \/ \/_____/ \/ \/ \/ \/
Installazione
L'installazione da sorgente è l'unico percorso supportato. hate_crack non è
distribuito su PyPI: pip install hate-crack risolve a un placeholder 0.0.0
che fallisce di proposito e rimanda qui. Il nome è riservato solo affinché nessun altro
possa pubblicare un clone sotto di esso — vedi
packaging/pypi-placeholder/.
1. Installare hashcat
Hashcat deve essere installato e disponibile nel PATH:
Ubuntu/Kali:
sudo apt-get install -y hashcat
macOS (Homebrew):
brew install hashcat
Oppure scarica un binario precompilato da https://hashcat.net/hashcat/ e imposta hcatPath in config.json alla sua posizione.
2. Scarica hate_crack
Clona con i sottomoduli (richiesto per hashcat-utils, princeprocessor, pcfg_cracker, Corporate_Masks e opzionalmente omen):
git clone --recurse-submodules https://github.com/trustedsec/hate_crack.git
cd hate_crack
Se hai clonato senza i sottomoduli, inizializzali:
git submodule update --init --recursive
Poi personalizza la configurazione se necessario. hate_crack utilizza due file di configurazione, ognuno dei quali possiede un insieme distinto di impostazioni:
config.json— percorsi delle wordlist, maschere, regole, tuning, potfile, percorso di hashcat, limiti dei candidati, toggle delle notifiche, valori predefiniti delle preferenze CLI (35 impostazioni)..env— solo impostazioni di integrazione di terze parti: credenziali Hashview e Hashmob, credenziali Pushover, Ollama e pipal (14 impostazioni). Non tracciato da git, creato con modalità0600.
La linea di demarcazione è lì per un motivo: .env è il file che può contenere segreti. Le credenziali per i servizi di terze parti, e la loro configurazione, vanno nel file non tracciato con permessi 0600; tutto ciò che hate_crack fa localmente rimane in config.json, che è sicuro da condividere, confrontare con diff e inserire nelle tue note. Ecco anche perché le credenziali Pushover sono in .env mentre i toggle di attivazione/disattivazione di Pushover sono in config.json — i toggle sono preferenze locali, non segreti.
Ogni chiave ha esattamente una collocazione. Una chiave inserita nell'altro file viene ignorata, e hate_crack stampa un avviso indicando il file a cui appartiene. Qualsiasi chiave può comunque essere sovrascritta per una singola esecuzione esportando la sua variabile d'ambiente. La maggior parte degli utenti può saltare questo passaggio poiché i percorsi predefiniti funzionano out-of-the-box.
config.json è permanente e di prima classe — non è deprecato e non esiste una tempistica di rimozione per esso. Solo le impostazioni di integrazione sono state spostate.
Stai aggiornando da un singolo config.json? hate_crack lo migra per te alla prima esecuzione: le impostazioni di integrazione vengono copiate in un nuovo .env con permessi 0600, poi rimosse da config.json in modo che i due file non le rivendichino entrambi. Stampa quali chiavi sono state spostate (mai i loro valori) e salva il tuo originale come config.json.pre-split.bak prima di modificarlo. Tutto il resto in config.json viene lasciato esattamente com'era, ordine delle chiavi incluso.
Prima esecuzione: hate_crack crea entrambi i file per te, quindi non c'è nulla da fare. Per configurare .env manualmente, invece, copia il template tracciato:
cp .env.example .env
chmod 600 .env
.env.example è committato e viene distribuito con ogni chiave di credenziale vuota. .env stesso non deve mai essere committato — è gitignored, insieme alle sue solite varianti di backup, e hate_crack lo crea sempre con modalità 0600 (solo lettura/scrittura per il proprietario). .env.example è generato dallo schema; rigeneralo dopo aver modificato hate_crack/config_schema.py con uv run python -m hate_crack.config_writer.
3. Installa le dipendenze e hate_crack
Il modo più semplice è eseguire make (o make install), che rileva automaticamente il tuo OS e installa:
- Dipendenze esterne (p7zip, transmission-daemon / transmission-remote)
- Compila i sottomoduli (hashcat-utils, princeprocessor, pcfg_cracker e opzionalmente omen) e fa il checkout del set di maschere Corporate_Masks di soli dati
- Dipendenze Python tramite uv e uno shim CLI in
~/.local/bin/hate_crack
make
Questo è idempotente - salta gli strumenti già installati. Per forzare una reinstallazione pulita:
make reinstall
Oppure installa manualmente le dipendenze:
Dipendenze esterne
Queste sono necessarie per alcuni flussi di download/estrazione:
7z/7za(p7zip) — utilizzato per estrarre archivi.7z.transmission-daemon/transmission-remote— utilizzato per scaricare i torrent Weakpass.
Comandi di installazione manuale:
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
Poi installa le dipendenze Python e lo 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
Struttura del progetto
La logica principale è ora suddivisa in moduli sotto hate_crack/:
hate_crack/cli.py: helper argparse e override della configurazione.hate_crack/api.py: integrazioni Hashview, Weakpass e Hashmob (download/menu/helper).hate_crack/attacks.py: gestori degli attacchi da menu.hate_crack/corpus_stats.py: statistiche sulle password dell'intero corpus utilizzate per descrivere un corpus all'LLM.hate_crack/plaintext.py: recupera la password da una riga del corpus (rimozione del prefisso hash, decodifica$HEX[...]); condiviso dalle modalità LLM, corpus_stats e rulegen.hate_crack/llm.py: generazione strutturata (JSON) di candidati LLM tramite Atomic Agents.hate_crack/menu.py: renderer di menu condiviso, inclusa la navigazione opzionale con i tasti freccia.hate_crack/noninteractive.py: dispatcher per i sottocomandi di attacco scriptati.hate_crack/notify/: pacchetto di notifiche (backend Pushover, tailer per singolo crack).hate_crack/username_detect.py: rileva i file di inputusername:hashper decidere l'uso di--usernamedi hashcat.hate_crack/formatting.py,hate_crack/progress.py: helper per la formattazione dell'output e la visualizzazione del progresso.hate_crack/main.py: implementazione principale della CLI.
Il file di primo livello hate_crack.py rimane il punto di ingresso principale e orchestra questi moduli.
Riferimenti e ringraziamenti
Questo progetto dipende da e si ispira a numerosi progetti e servizi esterni. Grazie a:
- Hashview (http://github.com/hashview/)
- Weakpass (https://weakpass.com)
- Hashmob (https://hashmob.net)
Utilizzo
Dopo l'installazione con make, esegui hate_crack da qualsiasi posizione:
hate_crack
# or with arguments:
hate_crack <hash_file> <hash_type> [options]
In alternativa, esegui tramite uv:
uv run hate_crack.py <hash_file> <hash_type>