
ShuckNT è lo script del servizio online Shuck.sh per uso on-premise. È progettato per declassare, convertire, dissezionare e shuccare token di autenticazione basati sul Data Encryption Standard (DES).
ShuckNT è lo script del servizio online Shuck.sh per l'uso on-premise (provalo online!). È progettato per degradare, convertire, dissezionare e shuckare token di autenticazione basati sul Data Encryption Standard (DES).
Algoritmi / formati supportati:
$99$ShuckNT si basa sul principio dell'hash shucking per ottimizzare il cracking e lo sfruttamento delle challenge-response.
Il password shucking è un metodo che rimuove gli strati da un hash di password aggiornato, annullando i vantaggi del suo nuovo algoritmo di hashing delle password e riportandolo al suo algoritmo più debole. Il password shucking può essere usato da un aggressore contro vecchie password re-hashate o password pre-hash, consentendogli di rimuovere o "shuckare" il robusto algoritmo di hashing esterno della password.
Da un elenco di token di input, ShuckNT fornisce:
Dietro lo script di Shuck.sh, ShuckNT è semplicemente una ricerca binaria efficiente e ottimizzata per le collisioni di chiavi DES a partire da un sottoinsieme di NT-hash candidati, di cui gli ultimi due byte sono noti, nel database HIBP in formato binario personalizzato con hash invertiti.
Durante un security assessment (limitato nel tempo), se catturi ~100 NetNTLMv1 (con o senza ESS) tramite uno strumento come Responder, la ricerca degli NT-Hash corrispondenti (se presenti nelle fughe di HIBP) richiede solo pochi secondi tramite Shuck.sh/ShuckNT (~10s).
Lo script di Shuck.sh, ShuckNT, si occupa di semplificare convertendo l'algoritmo crittografico in una forma più debole (senza ESS se possibile, in un formato gratuito per Crack.Sh o direttamente in formato NT-Hash se presente nelle fughe di HIBP). Così una challenge NetNTLMv1-ESS/SSP, PPTP VPN o MSCHAPv2 (a pagamento e dispendiosa in termini di tempo su Crack.Sh) può potenzialmente essere shuckata istantaneamente e gratuitamente!
L'idea iniziale di Shuck.sh/ShuckNT è nata dal desiderio di risparmiare tempo durante i security assessment per i clienti, di non dipendere da un servizio online di terze parti la cui disponibilità non è necessariamente continua e di poter essere localmente autonomi.
Il processo di installazione consiste in:
Comandi di installazione:
# 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 generazione del database nel formato previsto da ShuckNT va eseguita su un sistema Unix/Linux.
L'uso di ShuckNT con un database valido è stato testato su Windows/Linux con PHP7/8+.
Si prega di notare che ShuckNT utilizza l'estensione PHP-OpenSSL con l'algoritmo DES-ECB. Quindi per le versioni moderne di PHP con OpenSSL3, abilitare il provider legacy.
Checksum per ogni passaggio:
$ 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