
ShuckNT는 온프레미스 사용을 위한 Shuck.sh 온라인 서비스의 스크립트입니다. 데이터 암호화 표준(DES) 기반 인증 토큰을 다운그레이드, 변환, 분석 및 해체하도록 설계되었습니다.
ShuckNT는 온프레미스 사용을 위한 Shuck.sh 온라인 서비스의 스크립트입니다 (온라인으로 사용해 보기!). DES(Data Encryption Standard) 기반 인증 토큰을 다운그레이드, 변환, 분석(dissect) 및 셰킹(shuck)하도록 설계되었습니다.
지원되는 알고리즘 / 형식:
$99$ShuckNT는 해시 셰킹(hash shucking) 원리를 기반으로 챌린지-응답 크래킹 및 악용 가능성을 최적화합니다.
패스워드 셰킹(Password shucking)은 업데이트된 패스워드 해시에서 레이어를 벗겨내어 새로운 패스워드 해싱 알고리즘의 이점을 제거하고 더 약한 알고리즘으로 되돌리는 방법입니다. 패스워드 셰킹은 공격자가 오래된 재해시(rehashed) 패스워드나 사전-해시(pre-hash) 패스워드를 대상으로 사용할 수 있으며, 강력한 외부 패스워드 해싱 알고리즘을 벗겨내거나 "셰킹"할 수 있게 해줍니다.
입력 토큰 목록에서 ShuckNT는 다음을 제공합니다:
Shuck.sh의 스크립트 ShuckNT는 기본적으로 마지막 2바이트가 알려진 NT-해시 후보 부분집합에서 DES-키 충돌을 찾기 위한 효율적이고 최적화된 이진 탐색입니다. 이는 커스텀 역순(reversed) 이진 HIBP 데이터베이스를 대상으로 합니다.
보안 평가(시간 제한) 중에 Responder와 같은 도구로 약 100개의 NetNTLMv1 (ESS 포함 또는 미포함)을 캡처했다면, 해당 NT-해시(HIBP에 유출된 경우) 검색은 Shuck.sh/ShuckNT를 통해 단 몇 초(~10초) 만에 완료됩니다.
Shuck.sh의 스크립트 ShuckNT는 암호화 알고리즘을 더 약한 형태로 변환하여 단순화합니다 (가능하면 ESS 없이, Crack.Sh용 무료 형식 또는 HIBP에 유출된 경우 직접 NT-해시 형식). 따라서 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는 DES-ECB 알고리즘과 함께 PHP-OpenSSL 확장을 사용합니다. 따라서 OpenSSL3를 사용하는 최신 PHP 버전에서는 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
$ sha256sum pwned-passwords-ntlm-*
ea83d536387e6b149f2e362bf7dfbf521523812611359f47620fd44dae9770ee pwned-passwords-ntlm-ordered-by-hash-v8.7z
916cfd1772d24f2fe99aa5f37d4a465359c7b6f7d39f45ffbf27deca697b7116 pwned-passwords-ntlm-ordered-by-hash-v8.txt
76f9e101801dfc44489cad4edec5f14d634c2b4676bb9ffbc7e9968c9a5356a5 pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
6ee13a35ed88e8073be088a20560cb9fefcc6d08e599241244eaee01dc053a44 pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
ac2f6bf681fbe636b94f3ce3f2b594ef3d0af7671375478db1153874e8a5d873 pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
ShuckNT는 의존성이 없는 독립 실행형 PHP 스크립트입니다. CLI 명령줄 또는 웹 브라우저를 통해 사용할 수 있습니다.
도움말, 인자 및 구문:
$ php shucknt.php -h
__ _ _ __ _____
/ _\ |__ _ _ ___| | __ /\ \ \/__ \
\ \| '_ \| | | |/ __| |/ // \/ / / /\/
_\ \ | | | |_| | (__| </ /\ / / /
\__/_| |_|\__,_|\___|_|\_\_\ \/ \/ v1.0
DES-based authentication token shucker (https://shuck.sh)
@author : ycam | @asafety.fr / @yann.cam
ShuckNT is design to dowgrade, convert, dissect and shuck authentication token based on Data Encryption Standard (DES).
Algorithms / formats supported :
- NetNTLMv1(-ESS/SSP)
- MSCHAPv2
- NET(NT)LM
- (LM|NT)HASH
- PPTP-VPN $99$
- All with any challenge value!
ShuckNT rely on "hash shucking" principle to optimize challenge-response cracking and exploitability.