
hate_crack v2.14.3
Una herramienta para automatizar metodologías de cracking a través de Hashcat del equipo TrustedSec.
___ ___ __ _________ __
/ | \_____ _/ |_ ____ \_ ___ \____________ ____ | | __
/ ~ \__ \\ __\/ __ \ / \ \/\_ __ \__ \ _/ ___\| |/ /
\ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| <
\___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \
\/ \/ \/_____/ \/ \/ \/ \/
Instalación
Instalar desde el código fuente es la única vía soportada. hate_crack no se
distribuye en PyPI: pip install hate-crack resuelve a un placeholder 0.0.0
que falla a propósito y apunta de vuelta aquí. El nombre se reserva únicamente para que nadie más pueda publicar un clon bajo él — consulta
packaging/pypi-placeholder/.
1. Instalar hashcat
Hashcat debe estar instalado y disponible en tu PATH:
Ubuntu/Kali:```bash sudo apt-get install -y hashcat
macOS (Homebrew):```bash
brew install hashcat
O descargue un binario precompilado desde https://hashcat.net/hashcat/ y configure hcatPath en config.json con su ubicación.
2. Descargar hate_crack
Clone con submódulos (requerido para hashcat-utils, princeprocessor, pcfg_cracker, Corporate_Masks y, opcionalmente, omen):```bash git clone --recurse-submodules https://github.com/trustedsec/hate_crack.git cd hate_crack
Si clonaste sin submódulos, inicialízalos:```bash
git submodule update --init --recursive
Luego personaliza la configuración si es necesario. hate_crack utiliza dos archivos de configuración, cada uno con un conjunto distinto de ajustes:
config.json— rutas de wordlists, máscaras, reglas, ajuste fino, potfile, ruta de hashcat, límites de candidatos, alternadores de notificación, valores predeterminados de preferencia de CLI (35 ajustes)..env— solo ajustes de integración con terceros: credenciales de Hashview y Hashmob, credenciales de Pushover, Ollama y pipal (14 ajustes). No rastreado por git, creado con modo0600.
La línea divisoria está ahí por una razón: .env es el archivo que puede contener secretos. Las credenciales y la configuración de servicios de terceros van en el archivo no rastreado con modo 0600; todo lo que hate_crack hace localmente permanece en config.json, que es seguro para compartir, comparar y guardar en tus propias notas. Esa es también la razón por la que las credenciales de Pushover están en .env mientras que los alternadores de activación/desactivación de Pushover están en config.json — los alternadores son preferencias locales, no secretos.
Cada clave tiene exactamente un hogar. Una clave colocada en el otro archivo se ignora, y hate_crack imprime una advertencia nombrando el archivo al que pertenece. Cualquier clave aún puede sobrescribirse para una sola ejecución exportando su variable de entorno. La mayoría de los usuarios pueden omitir este paso, ya que las rutas predeterminadas funcionan sin configuración adicional.
config.json es permanente y de primera clase — no está obsoleto y no hay un plazo de eliminación para él. Solo se movieron los ajustes de integración.
¿Actualizando desde un único config.json? hate_crack lo migra por ti en la primera ejecución: los ajustes de integración se copian a un nuevo .env con modo 0600, luego se eliminan de config.json para que ambos archivos no los reclamen. Imprime qué claves se movieron (nunca sus valores) y guarda tu original como config.json.pre-split.bak antes de tocarlo. Todo lo demás en config.json se deja exactamente como estaba, incluido el orden de las claves.
Primera ejecución: hate_crack crea ambos archivos por ti, así que no hay nada que hacer. Para configurar .env manualmente en su lugar, copia la plantilla rastreada:```bash
cp .env.example .env
chmod 600 .env
`.env.example` está comprometido y se distribuye con cada clave de credencial vacía. El propio `.env` **nunca** debe comprometerse — está en gitignore, junto con sus variantes habituales de respaldo, y hate_crack siempre lo crea con modo `0600` (solo lectura/escritura del propietario). `.env.example` se genera a partir del esquema; regenéralo después de cambiar `hate_crack/config_schema.py` con `uv run python -m hate_crack.config_writer`.
### 3. Instalar dependencias y hate_crack
La forma más sencilla es ejecutar `make` (o `make install`), que detecta automáticamente tu SO e instala:
- Dependencias externas (p7zip, transmission-daemon / transmission-remote)
- Compila submódulos (hashcat-utils, princeprocessor, pcfg_cracker y, opcionalmente, omen) y extrae el conjunto de máscaras Corporate_Masks de solo datos
- Dependencias de Python mediante uv y un shim de CLI en `~/.local/bin/hate_crack````bash
make
Esto es idempotente: omite las herramientas ya instaladas. Para forzar una reinstalación limpia:```bash make reinstall
**O instalar dependencias manualmente:**
### Dependencias externas
Estas son necesarias para ciertos flujos de descarga/extracción:
- `7z`/`7za` (p7zip) — se utiliza para extraer archivos `.7z`.
- `transmission-daemon` / `transmission-remote` — se utiliza para descargar torrents de Weakpass.
Comandos de instalación manual:
Ubuntu/Kali:```bash
sudo apt-get update
sudo apt-get install -y p7zip-full transmission-daemon
macOS (Homebrew):```bash brew install p7zip transmission-cli # provides transmission-daemon and transmission-remote
Luego instala las dependencias de Python y el shim de CLI:```bash
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
Estructura del proyecto
La lógica principal ahora está dividida en módulos bajo hate_crack/:
hate_crack/cli.py: ayudantes de argparse y anulaciones de configuración.hate_crack/api.py: integraciones con Hashview, Weakpass y Hashmob (descargas/menús/ayudantes).hate_crack/attacks.py: manejadores de ataques del menú.hate_crack/corpus_stats.py: estadísticas de contraseñas de todo el corpus utilizadas para describir un corpus al LLM.hate_crack/plaintext.py: recupera la contraseña de una línea del corpus (eliminación del prefijo de hash, decodificación de$HEX[...]); compartido por los modos LLM, corpus_stats y rulegen.hate_crack/llm.py: generación estructurada (JSON) de candidatos LLM mediante Atomic Agents.hate_crack/menu.py: renderizador de menú compartido, incluida la navegación opcional con teclas de flecha.hate_crack/noninteractive.py: despachador para los subcomandos de ataque programados.hate_crack/notify/: paquete de notificaciones (backend Pushover, tailer por crack).hate_crack/username_detect.py: detecta archivos de entradausername:hashpara decidir sobre--usernamede hashcat.hate_crack/formatting.py,hate_crack/progress.py: ayudantes de formato de salida y visualización de progreso.hate_crack/main.py: implementación principal de la CLI.
El hate_crack.py de nivel superior sigue siendo el punto de entrada principal y orquesta estos módulos.
Referencias y agradecimientos
Este proyecto depende de y está inspirado en una serie de proyectos y servicios externos. Gracias a:
- Hashview (http://github.com/hashview/)
- Weakpass (https://weakpass.com)
- Hashmob (https://hashmob.net)
Uso
Después de instalar con make, ejecuta hate_crack desde cualquier lugar:```bash
hate_crack
or with arguments:
hate_crack <hash_file> <hash_type> [options]
Alternativamente, ejecútalo mediante `uv`:```bash
uv run hate_crack.py <hash_file> <hash_type>