
ShuckNT ist das Skript des Online-Dienstes Shuck.sh für den Einsatz vor Ort (On-Premise). Es wurde entwickelt, um Authentifizierungstoken auf Basis des Data Encryption Standard (DES) herabzustufen, zu konvertieren, zu zerlegen und zu „shucken“.
ShuckNT ist das Skript des Online-Dienstes Shuck.sh für den Einsatz vor Ort (jetzt online ausprobieren!). Es wurde entwickelt, um Authentifizierungstoken auf Basis des Data Encryption Standard (DES) herabzustufen, zu konvertieren, zu zerlegen und zu shucken.
Unterstützte Algorithmen / Formate :
$99$ShuckNT basiert auf dem Prinzip des Hash Shucking, um das Knacken von Challenge-Response und die Ausnutzbarkeit zu optimieren.
Password Shucking ist eine Methode, um Schichten von einem aktualisierten Passwort-Hash zu entfernen, die Vorteile des neuen Passwort-Hashing-Algorithmus zu beseitigen und ihn auf seinen schwächeren Algorithmus zurückzuführen. Password Shucking kann von einem Angreifer gegen alte neu gehashte Passwörter oder Vor-Hash-Passwörter eingesetzt werden, um den starken äußeren Passwort-Hashing-Algorithmus zu entfernen oder zu „shucken".
Aus einer Liste von Eingabe-Tokens liefert ShuckNT :
Hinter dem Skript Shuck.sh verbirgt sich bei ShuckNT schlicht eine effiziente und optimierte Binärsuche nach DES-Schlüssel-Kollisionen aus einer Teilmenge von NT-Hash-Kandidaten, deren letzte zwei Bytes bekannt sind, in einer benutzerdefinierten, binär-reversierten HIBP-Datenbank.
Während eines (zeitlich begrenzten) Sicherheitstests dauert die Suche nach den entsprechenden NT-Hashes (falls auf HIBP geleakt) nur wenige Sekunden über Shuck.sh/ShuckNT (~10s), wenn du etwa 100 NetNTLMv1 (mit oder ohne ESS) mit einem Tool wie Responder erfasst.
Das Skript ShuckNT von Shuck.sh vereinfacht, indem es den kryptografischen Algorithmus in eine schwächere Form konvertiert (wenn möglich ohne ESS, in einem kostenlosen Format für Crack.Sh oder direkt im NT-Hash-Format, falls auf HIBP geleakt). So kann eine NetNTLMv1-ESS/SSP-, PPTP-VPN- oder MSCHAPv2-Challenge (auf Crack.Sh nicht kostenlos und zeitaufwendig) möglicherweise sofort und kostenlos geschuckt werden!
Die ursprüngliche Idee von Shuck.sh/ShuckNT entstand aus dem Wunsch, bei Sicherheitstests für Kunden Zeit zu sparen, sich nicht auf einen externen Online-Dienst zu verlassen, dessen Verfügbarkeit nicht unbedingt kontinuierlich ist, und lokal autark zu sein.
Der Installationsprozess besteht aus:
Installationsbefehle:
# 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
Die Generierung der Datenbank im von ShuckNT erwarteten Format ist unter einem Unix/Linux-System durchzuführen.
Die Verwendung von ShuckNT mit einer gültigen Datenbank wurde unter Windows/Linux mit PHP7/8+ getestet.
Bitte beachte, dass ShuckNT die PHP-OpenSSL-Erweiterung mit dem DES-ECB-Algorithmus verwendet. Für moderne PHP-Versionen mit OpenSSL3 aktiviere den Legacy-Provider.
Prüfsummen für die einzelnen Schritte :
$ 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