
ShuckNT es el script del servicio en línea Shuck.sh para uso local (on-premise). Está diseñado para degradar, convertir, diseccionar y descascarar tokens de autenticación basados en el Estándar de Cifrado de Datos (DES).
ShuckNT es el script del servicio en línea Shuck.sh para uso on-premise (¡pruébalo en línea!). Está diseñado para degradar, convertir, diseccionar y shuckear tokens de autenticación basados en Data Encryption Standard (DES).
Algoritmos / formatos soportados :
$99$ShuckNT se basa en el principio de hash shucking para optimizar el craqueo de challenge-response y su explotabilidad.
Password shucking es un método para eliminar capas de un hash de contraseña actualizado, anulando los beneficios de su nuevo algoritmo de hash y revirtiéndolo a su algoritmo más débil. El password shucking puede ser utilizado por un atacante contra contraseñas re-hasheadas antiguas o contraseñas pre-hash, permitiéndole eliminar o "shuckear" el fuerte algoritmo de hash externo de la contraseña.
A partir de una lista de tokens de entrada, ShuckNT proporciona :
Detrás del script de Shuck.sh, ShuckNT es simplemente una búsqueda binaria eficiente y optimizada para colisiones de claves DES a partir de un subconjunto de NT-hashes candidatos, cuyos dos últimos bytes son conocidos, en la base de datos de HIBP en binario reversado personalizado.
Durante una evaluación de seguridad (limitada en el tiempo), si capturas ~100 NetNTLMv1 (con o sin ESS) mediante una herramienta como Responder, la búsqueda de los NT-Hashes correspondientes (si se filtraron en HIBP) solo toma unos segundos a través de Shuck.sh/ShuckNT (~10s).
El script de Shuck.sh, ShuckNT, se encarga de simplificar convirtiendo el algoritmo criptográfico a una forma más débil (sin ESS si es posible, en un formato gratuito para Crack.Sh o directamente en formato NT-Hash si se filtró en HIBP). Así, un challenge NetNTLMv1-ESS/SSP, PPTP VPN o MSCHAPv2 (no gratuito y lento en Crack.Sh) puede potencialmente shuckearse al instante y de forma gratuita.
La idea inicial de Shuck.sh/ShuckNT nació del deseo de ahorrar tiempo durante las evaluaciones de seguridad para clientes, de no depender de un servicio en línea de terceros cuya disponibilidad no es necesariamente continua y de poder ser localmente autónomo.
El proceso de instalación consiste en:
Comandos de instalación:
# Instalar dependencias
apt install p7zip-full php git
# Obtener la herramienta ShuckNT
git clone https://github.com/yanncam/ShuckNT
cd ShuckNT
# Preparar la base de datos de HaveIBeenPwned (una sola vez, toma varios minutos)
## Descargar la última HIBP-DB (puede tomar varios minutos...)
wget https://downloads.pwnedpasswords.com/passwords/pwned-passwords-ntlm-ordered-by-hash-v8.7z
## Extraer HIBP-DB (puede tomar varios minutos...)
7z e pwned-passwords-ntlm-ordered-by-hash-v8.7z
## Reversar todos los hashes (puede tomar varios minutos...)
php shucknt.php -r pwned-passwords-ntlm-ordered-by-hash-v8.txt -t pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
## Ordenar todos los hashes reversados (puede tomar varios minutos...)
sort pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed -o pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
## Convertir a formato binario (puede tomar varios minutos...)
php shucknt.php -b pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted -t pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
## Liberar espacio para conservar solo pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.7z
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.txt
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
# Disfrutar de ShuckNT mediante línea de comandos, o web http://[HOST]/shucknt.php
php shucknt.php -h
La generación de la base de datos en el formato esperado por ShuckNT debe realizarse en un sistema Unix/Linux.
El uso de ShuckNT con una base de datos válida ha sido probado en Windows/Linux con PHP7/8+.
Tenga en cuenta que ShuckNT utiliza la extensión PHP-OpenSSL con el algoritmo DES-ECB. Por lo tanto, para versiones modernas de PHP con OpenSSL3, habilite el proveedor legacy.
Checksums para cada paso :
$ sha1sum pwned-passwords-ntlm-*
225a993a908e3d73ffa68859c4f128e17359358e pwned-passwords-ntlm-ordered-by-hash-v8.7z
4b6c4728c21f64d6a58c7b63d98dcf342c068407 pwned-passwords-ntlm-ordered-by-hash-v8.txt
88094c4a332ecfac9a15c23ba886194d1810b0b2 pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
d5486dfbf960f36ff0e1cf313a1b80db5cd4137f pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
31a5c1b605cca5bcf71196c70f291c05aa3fe86c pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin