
ShuckNT est le script du service en ligne Shuck.sh pour une utilisation sur site. Il est conçu pour rétrograder, convertir, disséquer et décortiquer les jetons d'authentification basés sur la norme de chiffrement des données (DES).
ShuckNT est le script du service en ligne Shuck.sh pour une utilisation sur site (essayez-le en ligne !). Il est conçu pour rétrograder, convertir, disséquer et décortiquer les jetons d'authentification basés sur le Data Encryption Standard (DES).
Algorithmes / formats pris en charge :
$99$ShuckNT repose sur le principe du hash shucking pour optimiser le craquage et l'exploitabilité des challenges-réponses.
Password shucking est une méthode qui consiste à retirer les couches d'un hash de mot de passe mis à jour, supprimant ainsi les avantages de son nouvel algorithme de hachage de mot de passe et le ramenant à son algorithme plus faible. Le password shucking peut être utilisé par un attaquant contre d'anciens mots de passe rechiffrés ou des mots de passe pré-hachés, lui permettant de retirer ou de « décortiquer » la couche externe robuste de l'algorithme de hachage de mot de passe.
À partir d'une liste de jetons d'entrée, ShuckNT fournit :
Derrière le script de Shuck.sh, ShuckNT est simplement une recherche binaire efficace et optimisée de collisions de clés DES à partir d'un sous-ensemble de NT-hash candidats, dont les deux derniers octets sont connus, dans la base de données HIBP inversée en binaire sur mesure.
Lors d'un test de sécurité (limité dans le temps), si vous capturez ~100 NetNTLMv1 (avec ou sans ESS) via un outil tel que Responder, la recherche des NT-Hash correspondants (s'ils ont été divulgués sur HIBP) ne prend que quelques secondes via Shuck.sh/ShuckNT (~10 s).
Le script de Shuck.sh, ShuckNT, se charge de simplifier en convertissant l'algorithme cryptographique vers une forme plus faible (sans ESS si possible, dans un format gratuit pour Crack.Sh ou directement au format NT-Hash s'il a été divulgué sur HIBP). Ainsi, un challenge NetNTLMv1-ESS/SSP, PPTP VPN ou MSCHAPv2 (payant et chronophage sur Crack.Sh) peut potentiellement être décortiqué instantanément et gratuitement !
L'idée initiale de Shuck.sh/ShuckNT est née d'une volonté de gagner du temps lors des audits de sécurité pour les clients, de ne pas dépendre d'un service en ligne tiers dont la disponibilité n'est pas nécessairement continue et de pouvoir être localement autonome.
Le processus d'installation consiste à :
Commandes d'installation :
# Install dependencies
apt install p7zip-full php git
# Get ShuckNT tool
git clone https://github.com/yanncam/ShuckNT
cd ShuckNT
# Prepare HaveIBeenPwned database (one time only, takes several minutes)
## Download latest HIBP-DB (can take severals minutes...)
wget https://downloads.pwnedpasswords.com/passwords/pwned-passwords-ntlm-ordered-by-hash-v8.7z
## Extract HIBP-DB (can take severals minutes...)
7z e pwned-passwords-ntlm-ordered-by-hash-v8.7z
## Reverse all hashes (can take severals minutes...)
php shucknt.php -r pwned-passwords-ntlm-ordered-by-hash-v8.txt -t pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
## Sort all reversed-hashes (can take severals minutes...)
sort pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed -o pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
## Convert to binary format (can take severals minutes...)
php shucknt.php -b pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted -t pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
## Free space to keep only 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
# Enjoy ShuckNT via commandline, or web http://[HOST]/shucknt.php
php shucknt.php -h
La génération de la base de données au format attendu par ShuckNT doit être effectuée sous un système Unix/Linux.
L'utilisation de ShuckNT avec une base de données valide a été testée sous Windows/Linux avec PHP7/8+.
Veuillez noter que ShuckNT utilise l'extension PHP-OpenSSL avec l'algorithme DES-ECB. Ainsi, pour les versions modernes de PHP avec OpenSSL3, activez le fournisseur legacy.
Sommes de contrôle pour chaque étape :
$ 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