Volver a actualizaciones
Nuevo releaseSep 4, 2026

hate_crack v2.36.1

Una herramienta para automatizar metodologías de cracking mediante Hashcat, del equipo de TrustedSec.

Compartir
  ___ ___         __             _________                       __
 /   |   \_____ _/  |_  ____     \_   ___ \____________    ____ |  | __
/    ~    \__  \\   __\/ __ \    /    \  \/\_  __ \__  \ _/ ___\|  |/ /
\    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 — véase packaging/pypi-placeholder/.

1. Instalar hashcat

Hashcat debe estar instalado y disponible en tu PATH:

Ubuntu/Kali:

sudo apt-get install -y hashcat

macOS (Homebrew):

brew install hashcat

O descargue un binario precompilado desde https://hashcat.net/hashcat/ y establezca hcatPath en config.json a su ubicación.

2. Descargar hate_crack

Clone con submódulos (requerido para hashcat-utils, princeprocessor, pcfg_cracker, Corporate_Masks y opcionalmente omen):

git clone --recurse-submodules https://github.com/trustedsec/hate_crack.git
cd hate_crack

Si clonaste sin submódulos, inicialízalos:

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, ajustes de rendimiento, potfile, ruta de hashcat, límites de candidatos, toggles de notificación, valores predeterminados de preferencia de CLI (35 ajustes).
  • .env — únicamente 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 modo 0600.

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 toggles de activación/desactivación de Pushover están en config.json — los toggles 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 los ajustes de integración se movieron.

¿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:

cp .env.example .env
chmod 600 .env

.env.example está versionado y se distribuye con cada clave de credencial vacía. El propio .env nunca debe versionarse — 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 modificar 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 los submódulos (hashcat-utils, princeprocessor, pcfg_cracker y, opcionalmente, omen) y extrae el conjunto de máscaras Corporate_Masks, que solo contiene datos
  • Dependencias de Python mediante uv y un shim de CLI en ~/.local/bin/hate_crack
make

Esto es idempotente: omite las herramientas ya instaladas. Para forzar una reinstalación limpia:

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:

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

Luego instala las dependencias de Python y el shim de 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

Estructura del proyecto

La lógica principal ahora está dividida en módulos bajo hate_crack/:

  • hate_crack/cli.py: asistentes de argparse y anulaciones de configuración.
  • hate_crack/api.py: integraciones con Hashview, Weakpass y Hashmob (descargas/menús/asistentes).
  • 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 de los subcomandos de ataque programados.
  • hate_crack/notify/: paquete de notificaciones (backend Pushover, tailer por crack).
  • hate_crack/username_detect.py: detecta archivos de entrada username:hash para decidir sobre --username de hashcat.
  • hate_crack/formatting.py, hate_crack/progress.py: asistentes 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:


Uso

Después de instalar con make, ejecuta hate_crack desde cualquier lugar:

hate_crack
# or with arguments:
hate_crack <hash_file> <hash_type> [options]

Alternativamente, ejecútalo mediante uv:

uv run hate_crack.py <hash_file> <hash_type>

Categorías