Active Directory ومحاكاة الاختبار
استطلاع Active Directory
5 دقيقة للقراءة
Active Directory (AD) حاضر بقوة في OSCP. فهم بنية AD والاستطلاع حاسم لمجموعة AD في الاختبار (تساوي 40 نقطة).
أساسيات AD
المكونات الرئيسية
بنية Active Directory:
├── الغابة (المستوى الأعلى)
│ └── النطاق (corp.local)
│ ├── وحدات تحكم النطاق (DC)
│ ├── الوحدات التنظيمية (OUs)
│ ├── المستخدمون
│ ├── المجموعات
│ ├── الحواسيب
│ └── كائنات سياسة المجموعة (GPOs)
الكائنات المهمة
| الكائن | الوصف | أهمية OSCP |
|---|---|---|
| وحدة تحكم النطاق | يحمل قاعدة بيانات AD | هدف عالي القيمة |
| مسؤول النطاق | تحكم كامل بالنطاق | الهدف النهائي |
| حسابات الخدمة | تشغل الخدمات | قابلة لـ Kerberoast |
| حسابات الحاسوب | هويات الأجهزة | الحركة الجانبية |
الاستطلاع الأولي لـ AD
من Linux (بدون بيانات اعتماد)
# إيجاد وحدات تحكم النطاق
nmap -p 88,389,636 --open $NETWORK/24
# LDAP anonymous bind
ldapsearch -x -H ldap://$DC -s base namingcontexts
# الاستطلاع عبر SMB
enum4linux -a $DC
crackmapexec smb $DC
من Windows (منضم للنطاق)
# معلومات النطاق الأساسية
systeminfo | findstr /B /C:"Domain"
echo %userdomain%
# معلومات المستخدم الحالي
whoami /all
net user %username% /domain
# وحدات تحكم النطاق
nltest /dclist:$DOMAIN
استطلاع BloodHound
BloodHound يُصوِّر مسارات هجوم AD. ضروري لـ OSCP.
الجمع بـ SharpHound
# تحميل وتشغيل SharpHound
.\SharpHound.exe -c All
# أو استخدم جامع PowerShell
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All
# الإخراج: ملف ZIP لاستيراد BloodHound
الجمع من Linux
# bloodhound-python (يتطلب بيانات اعتماد)
bloodhound-python -u 'user' -p 'password' -d corp.local -dc dc.corp.local -c All
# يُخرج ملفات JSON للاستيراد
استعلامات BloodHound الرئيسية
استعلامات جاهزة للتشغيل:
├── إيجاد أقصر مسار لمسؤولي النطاق
├── إيجاد مستخدمين قابلين لـ Kerberoast
├── إيجاد مستخدمين قابلين لـ AS-REP Roast
├── إيجاد حواسيب مع Unconstrained Delegation
└── أقصر مسار من الكيانات المملوكة
استطلاع LDAP
استخدام ldapsearch
# الحصول على base DN
ldapsearch -x -H ldap://$DC -s base namingcontexts
# استطلاع جميع المستخدمين
ldapsearch -x -H ldap://$DC -D "user@corp.local" -w 'password' -b "DC=corp,DC=local" "(objectClass=user)" sAMAccountName
# إيجاد مسؤولي النطاق
ldapsearch -x -H ldap://$DC -D "user@corp.local" -w 'password' -b "DC=corp,DC=local" "(memberOf=CN=Domain Admins,CN=Users,DC=corp,DC=local)"
# حسابات الخدمة (غالباً قابلة لـ Kerberoast)
ldapsearch -x -H ldap://$DC -D "user@corp.local" -w 'password' -b "DC=corp,DC=local" "(servicePrincipalName=*)" sAMAccountName servicePrincipalName
استطلاع PowerView
PowerView هي الأداة المفضلة لاستطلاع AD على Windows.
معلومات النطاق
# استيراد PowerView
Import-Module .\PowerView.ps1
# معلومات النطاق الأساسية
Get-Domain
Get-DomainController
# سياسة النطاق (سياسة كلمة المرور)
Get-DomainPolicy
(Get-DomainPolicy).SystemAccess
استطلاع المستخدمين
# جميع مستخدمي النطاق
Get-DomainUser | select samaccountname
# تفاصيل مستخدم محدد
Get-DomainUser -Identity administrator
# إيجاد مستخدمين مع SPNs (قابلين لـ Kerberoast)
Get-DomainUser -SPN
# إيجاد مستخدمين لا يتطلبون preauth (قابلين لـ AS-REP Roast)
Get-DomainUser -PreauthNotRequired
استطلاع المجموعات
# جميع المجموعات
Get-DomainGroup | select samaccountname
# أعضاء مسؤولي النطاق
Get-DomainGroupMember -Identity "Domain Admins"
# إيجاد مجموعات ينتمي إليها مستخدم
Get-DomainGroup -UserName "targetuser"
استطلاع الحواسيب
# جميع الحواسيب
Get-DomainComputer | select dnshostname,operatingsystem
# إيجاد الخوادم
Get-DomainComputer -OperatingSystem "*Server*"
# إيجاد حواسيب المستخدم الحالي لديه admin عليها
Find-LocalAdminAccess
استطلاع CrackMapExec
من Linux
# استطلاع النطاق مع بيانات اعتماد
crackmapexec smb $DC -u user -p 'password' --users
crackmapexec smb $DC -u user -p 'password' --groups
crackmapexec smb $DC -u user -p 'password' --shares
# فحص الوصول الإداري
crackmapexec smb $NETWORK/24 -u user -p 'password'
# الإخراج: Pwn3d! يعني local admin
أدوات Impacket
# الحصول على مستخدمي النطاق
GetADUsers.py -all corp.local/user:password -dc-ip $DC
# استطلاع SPNs
GetUserSPNs.py corp.local/user:password -dc-ip $DC
# الحصول على مستخدمين قابلين لـ AS-REP roast
GetNPUsers.py corp.local/ -usersfile users.txt -dc-ip $DC
قائمة مراجعة استطلاع AD
□ تحديد وحدات تحكم النطاق
□ رسم اسم وبنية النطاق
□ استطلاع المستخدمين (التركيز على المسؤولين وحسابات الخدمة)
□ استطلاع المجموعات (مسؤولو النطاق والمتميزين)
□ استطلاع الحواسيب (الخوادم ومحطات العمل)
□ تحديد SPNs (حسابات قابلة لـ Kerberoast)
□ إيجاد مستخدمين قابلين لـ AS-REP roast
□ الحصول على سياسة كلمة المرور
□ جمع وتحليل بيانات BloodHound
□ استطلاع المشاركات
□ استطلاع GPO (للثبات/التصعيد)
في الدرس التالي، سنغطي هجمات Active Directory بما في ذلك Kerberoasting وسرقة بيانات الاعتماد. :::