
ShuckNT — это скрипт онлайн-сервиса Shuck.sh для локального использования. Он предназначен для понижения версии, преобразования, разбора и «снятия оболочки» (shuck) токенов аутентификации на основе стандарта шифрования данных (DES).
ShuckNT — это скрипт онлайн-сервиса Shuck.sh для локального использования (попробуйте онлайн!). Он предназначен для понижения (downgrade), конвертации, разбора и снятия оболочки (shuck) с токенов аутентификации на основе Data Encryption Standard (DES).
Поддерживаемые алгоритмы / форматы:
$99$ShuckNT опирается на принцип hash shucking для оптимизации взлома и эксплуатируемости challenge-response.
Password shucking — это метод снятия слоёв с обновлённого хэша пароля, который устраняет преимущества нового алгоритма хэширования пароля и возвращает его к более слабому алгоритму. Password shucking может использоваться атакующим против старых повторно хэшированных паролей или паролей до хэширования, позволяя снять или «содрать» (shuck) сильный внешний алгоритм хэширования пароля.
На основе списка входных токенов ShuckNT предоставляет:
За скриптом Shuck.sh ShuckNT стоит просто эффективный и оптимизированный бинарный поиск коллизий DES-ключей по подмножеству кандидатов NT-хэшей, у которых известны последние два байта, в специальной развёрнутой бинарной базе данных HIBP.
Во время ограниченного по времени анализа защищённости, если вы захватите ~100 NetNTLMv1 (с ESS или без) с помощью такого инструмента, как Responder, поиск соответствующих NT-хэшей (если они утекли в HIBP) займёт всего несколько секунд через Shuck.sh/ShuckNT (~10 с).
Скрипт Shuck.sh/ShuckNT берёт на себя упрощение, преобразуя криптографический алгоритм в более слабую форму (без ESS, если возможно, в бесплатном формате для Crack.Sh или сразу в формат NT-Hash, если пароль утёк в HIBP). Таким образом, challenge NetNTLMv1-ESS/SSP, PPTP VPN или MSCHAPv2 (платный и трудоёмкий на Crack.Sh) потенциально может быть сшакан мгновенно и бесплатно!
Изначальная идея Shuck.sh/ShuckNT родилась из желания экономить время при анализе защищённости заказчиков, не полагаться на сторонний онлайн-сервис, доступность которого не обязательно непрерывна, и иметь возможность быть локально автономными.
Процесс установки состоит из следующих шагов:
Команды установки:
# 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
Генерация базы данных в формате, ожидаемом ShuckNT, должна выполняться в системе Unix/Linux.
Использование ShuckNT с валидной базой данных протестировано в Windows/Linux с PHP7/8+.
Обратите внимание, что ShuckNT использует расширение PHP-OpenSSL с алгоритмом DES-ECB. Поэтому для современных версий PHP с OpenSSL3 включите legacy provider.
Контрольные суммы для каждого шага:
$ 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