تصور کن وارد یک شبکه سازمانی شدهای که دهها یا صدها کامپیوتر، سرور و حساب کاربری دارد. تمام این سیستمها به یک ساختار مرکزی متصل هستند و دسترسی کاربران از طریق آن مدیریت میشود.
این ساختار در بسیاری از سازمانها Active Directory یا به اختصار AD نام دارد.
اگر یک مهاجم بتواند ضعفهای پیکربندی، دسترسیهای اشتباه یا حسابهای کاربری آسیبپذیر را در این ساختار پیدا کند، ممکن است بتواند به منابع حساس سازمان دسترسی پیدا کند.
به همین دلیل تست نفوذ Active Directory یکی از مهمترین مهارتهای متخصصان Red Team و مهندسان امنیت سازمانی است.
در این آموزش، از ساخت آزمایشگاه تا شناسایی دامنه، بررسی کاربران، تحلیل Kerberos، ارزیابی دسترسیها و مستندسازی آسیبپذیریها پیش میرویم. تمام تمرینها برای محیط آزمایشگاهی اختصاصی و مجاز طراحی شدهاند.
فصل اول: آشنایی با Active Directory
Active Directory یک سرویس دایرکتوری مایکروسافت است که برای مدیریت متمرکز منابع شبکه در محیطهای ویندوزی استفاده میشود.
با استفاده از AD مدیر شبکه میتواند موارد زیر را مدیریت کند:
-
حسابهای کاربری و رمزهای عبور
-
کامپیوترهای عضو دامنه
-
گروههای دسترسی
-
سیاستهای امنیتی سازمان
-
دسترسی به فایلها و منابع شبکه
-
احراز هویت کاربران
مفاهیم اصلی که باید بشناسی:
| مفهوم | توضیح |
|---|---|
| Domain | محدوده منطقی مدیریت منابع |
| Domain Controller | سرور مدیریت دامنه |
| Forest | مجموعهای از دامنههای مرتبط |
| OU | واحد سازمانی برای دستهبندی اشیا |
| GPO | سیاستهای گروهی |
| Kerberos | پروتکل احراز هویت شبکه |
| LDAP | پروتکل دسترسی به دایرکتوری |
| SID | شناسه امنیتی کاربران و گروهها |
فصل دوم: ساخت آزمایشگاه تست نفوذ
پیشنهاد من استفاده از VirtualBox یا VMware است.
ماشینهای موردنیاز:
| سیستم | کاربرد |
|---|---|
| Windows Server 2022 | Domain Controller |
| Windows 10 یا 11 | کلاینت عضو دامنه |
| Kali Linux | سیستم تحلیل و ارزیابی امنیت |
| Windows Server دوم | آزمایش ساختار چندسروری، اختیاری |
پیشنهاد میکنم شبکه ماشینهای مجازی را روی Host-Only یا یک شبکه داخلی ایزوله قرار بدهی تا آزمایشها به شبکههای واقعی دسترسی نداشته باشند.
مراحل راهاندازی دامنه
-
روی Windows Server آدرس IP ثابت تنظیم کن.
-
از Server Manager وارد بخش Add Roles and Features شو.
-
نقش Active Directory Domain Services را نصب کن.
-
سرور را به Domain Controller تبدیل کن و یک دامنه آزمایشگاهی بساز؛ برای مثال:
lab.01st.local
-
یک کاربر آزمایشی و یک گروه امنیتی بساز.
-
سیستم Windows Client را به دامنه متصل کن.
-
از طریق حساب آزمایشی وارد سیستم کلاینت شو.
همچنین میتوانی از PowerShell برای نصب نقش AD DS در سرور آزمایشگاهی استفاده کنی:
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
برای ایجاد Forest آزمایشگاهی:
Install-ADDSForest `
-DomainName "lab.01st.local" `
-DomainNetbiosName "LAB" `
-InstallDNS
این فرمان را فقط روی سرور آزمایشگاهی تازهساختهشده اجرا کن. ایجاد Forest نیازمند راهاندازی مجدد سرور و تعیین رمز DSRM است.
فصل سوم: شناسایی ساختار شبکه و دامنه (Reconnaissance)
اولین مرحله در تست نفوذ، شناخت محیط هدف است.
در این مرحله باید بفهمیم:
-
نام دامنه چیست؟
-
Domain Controller کدام سیستم است؟
-
چه کامپیوترهایی عضو دامنه هستند؟
-
چه کاربران و گروههایی وجود دارند؟
-
سرویسهای شبکه فعال کداماند؟
-
چه سیاستهای امنیتی اعمال شدهاند؟
۳.۱ شناسایی اطلاعات دامنه
روی سیستم کلاینت عضو دامنه، CMD را باز کن.
مشاهده نام دامنه:
echo %USERDOMAIN%
مشاهده نام سرور ورود:
echo %LOGONSERVER%
مشاهده اطلاعات کاربر:
whoami
مشاهده جزئیات حساب کاربری:
whoami /all
این فرمان اطلاعات مهمی درباره هویت امنیتی، گروهها و مجوزهای حساب فعلی نمایش میدهد.
۳.۲ شناسایی Domain Controller
در PowerShell:
nltest /dsgetdc:lab.01st.local
این فرمان اطلاعات Domain Controller مربوط به دامنه را نمایش میدهد.
برای بررسی ارتباط DNS:
nslookup lab.01st.local
بررسی رکوردهای سرویس LDAP و Kerberos:
nslookup -type=SRV _ldap._tcp.dc._msdcs.lab.01st.local
nslookup -type=SRV _kerberos._tcp.lab.01st.local
۳.۳ شناسایی کاربران و گروهها
اگر ماژول Active Directory روی سیستم نصب باشد:
Import-Module ActiveDirectory
فهرست کاربران:
Get-ADUser -Filter * -Properties Enabled |
Select-Object Name,SamAccountName,Enabled
فهرست گروهها:
Get-ADGroup -Filter * |
Select-Object Name,GroupScope
بررسی اعضای گروه Domain Admins:
Get-ADGroupMember "Domain Admins"
در آزمایشگاه خود این اطلاعات را جمعآوری کن:
-
نام دامنه
-
نام Domain Controller
-
تعداد کاربران
-
تعداد گروهها
-
اعضای گروه Domain Admins
-
سیستمهای عضو دامنه
خروجی را ذخیره کن و یک گزارش اولیه از ساختار دامنه تهیه کن.
فصل چهارم: بررسی سرویسهای مهم Active Directory
Active Directory برای انجام وظایف خود از سرویسها و پروتکلهای مختلفی استفاده میکند.
| پورت | سرویس | کاربرد |
|---|---|---|
| 53 | DNS | نامیابی دامنه |
| 88 | Kerberos | احراز هویت |
| 135 | RPC | ارتباطات راه دور |
| 389 | LDAP | دسترسی به دایرکتوری |
| 445 | SMB | اشتراک فایل و منابع |
| 464 | Kerberos Password | تغییر رمز عبور |
| 636 | LDAPS | LDAP رمزنگاریشده |
| 3268 | Global Catalog | جستوجوی Forest |
| 3269 | Global Catalog SSL | دسترسی امن به Global Catalog |
بررسی پورتها با Nmap
در محیط آزمایشگاهی و با مجوز:
nmap -sV -sC -p 53,88,135,389,445,464,636,3268,3269 192.168.56.10
در این مثال، IP مربوط به Domain Controller آزمایشگاهی است.
پارامترها:
-
-sV: شناسایی نسخه سرویسها -
-sC: اجرای اسکریپتهای پیشفرض Nmap -
-p: تعیین پورتهای مورد بررسی
نکته امنیتی: باز بودن یک پورت بهتنهایی به معنی آسیبپذیری نیست. باید سرویس، نسخه، پیکربندی و سطح دسترسی آن بررسی شود.
فصل پنجم: شناسایی روابط دسترسی با BloodHound
یکی از ابزارهای شناختهشده در ارزیابی امنیت Active Directory، BloodHound است.
این ابزار روابط میان کاربران، گروهها، کامپیوترها و مجوزهای دسترسی را به شکل گراف نمایش میدهد.
برای مثال ممکن است متوجه شوی:
-
یک کاربر عضو چند گروه حساس است.
-
یک گروه به منابع مهم دسترسی دارد.
-
یک حساب کاربری روی کامپیوتری مجوز مدیریتی دارد.
-
یک مسیر دسترسی غیرضروری تا یک حساب دارای امتیاز بالا وجود دارد.
ابزارهای موردنیاز
-
BloodHound Community Edition
-
SharpHound برای جمعآوری اطلاعات مجاز
-
یک دامنه آزمایشگاهی
-
حساب کاربری آزمایشی
روش بررسی
1. BloodHound را در محیط آزمایشگاهی راهاندازی کن.
2. دادههای دامنه آزمایشگاهی را با Collector رسمی و با حساب مجاز جمعآوری کن.
3. دادهها را وارد BloodHound کن.
4. روابط کاربران و گروهها را بررسی کن.
5. مسیرهای دسترسی غیرضروری و مجوزهای خطرناک را شناسایی کن.
6. برای هر مورد یک پیشنهاد اصلاحی ثبت کن.
نمونه یافته امنیتی:
فرض کن یک حساب کاربری عادی به دلیل عضویت غیرضروری در یک گروه مدیریتی، دسترسی بیش از حد دارد.
این مورد میتواند یک یافته مهم در گزارش تست نفوذ باشد.
فصل ششم: بررسی امنیت Kerberos
Kerberos یکی از مهمترین بخشهای امنیت Active Directory است.
این پروتکل برای احراز هویت کاربران در شبکه استفاده میشود و بر اساس Ticket کار میکند.
سه مفهوم مهم:
-
AS-REQ: درخواست اولیه احراز هویت
-
TGS-REQ: درخواست Ticket سرویس
-
TGT: بلیت احراز هویت اولیه
Kerberoasting چیست؟
Kerberoasting یک تکنیک ارزیابی امنیتی است که در آن حسابهای دارای Service Principal Name یا SPN از نظر پیکربندی رمز عبور و قدرت آن بررسی میشوند.
ریسک اصلی زمانی ایجاد میشود که حساب سرویس از رمز عبور ضعیف یا قابل حدس استفاده کند.
شناسایی حسابهای دارای SPN
روی سیستم مجاز دارای ماژول Active Directory:
Get-ADUser -Filter {ServicePrincipalName -like "*"} `
-Properties ServicePrincipalName |
Select-Object SamAccountName,ServicePrincipalName
این فرمان حسابهایی را که SPN دارند نمایش میدهد.
چه مواردی باید بررسی شوند؟
-
قدرت رمز عبور حساب سرویس
-
طول عمر رمز عبور
-
سطح دسترسی حساب سرویس
-
عضویت در گروههای حساس
-
استفاده از حسابهای مدیریتی برای اجرای سرویسها
-
امکان استفاده از gMSA برای مدیریت امن رمزهای سرویس
راهکار دفاعی: استفاده از رمزهای تصادفی و طولانی، gMSA، حداقل دسترسی و حذف حسابهای سرویس غیرضروری.
فصل هفتم: بررسی آسیبپذیریهای رایج Active Directory
در تست نفوذ AD باید پیکربندیهای زیر را با دقت بررسی کنی:
| ضعف امنیتی | ریسک احتمالی | راهکار |
|---|---|---|
| رمز عبور ضعیف | دسترسی غیرمجاز به حساب | سیاست رمز عبور قوی |
| کاربران دارای دسترسی بیش از حد | افزایش سطح دسترسی | Least Privilege |
| LDAP بدون حفاظت کافی | خطر افشای اطلاعات | LDAP Signing و Channel Binding |
| SMB ناامن | افزایش سطح حمله | غیرفعالسازی SMBv1 |
| سرویسهای قدیمی | احتمال بهرهبرداری از ضعفها | بهروزرسانی سرویس |
| حسابهای غیرفعال | سوءاستفاده از حساب رهاشده | غیرفعالسازی و حذف کنترلشده |
| تنظیمات اشتباه GPO | کاهش امنیت کل دامنه | بازبینی Group Policy |
| NTLM غیرضروری | افزایش ریسک سرقت اعتبارنامه | محدودسازی و مهاجرت تدریجی |
بررسی حسابهای غیرفعال
Search-ADAccount -AccountInactive -UsersOnly
بررسی حسابهای دارای رمز عبور بدون انقضا
Get-ADUser -Filter * -Properties PasswordNeverExpires |
Where-Object {$_.PasswordNeverExpires -eq $true} |
Select-Object Name,SamAccountName
بررسی تنظیمات رمز عبور دامنه
Get-ADDefaultDomainPasswordPolicy
این بررسیها به تو کمک میکنند ضعفهای پیکربندی را شناسایی و برای اصلاح آنها پیشنهاد ارائه کنی.
فصل هشتم: بررسی امنیت Group Policy و دسترسیها
Group Policy یکی از مهمترین بخشهای مدیریت امنیت در شبکههای مبتنی بر Active Directory است.
مدیر شبکه با استفاده از GPO میتواند تنظیمات امنیتی کاربران و کامپیوترها را بهصورت متمرکز اعمال کند.
اما اگر GPO اشتباه پیکربندی شود، ممکن است امنیت تعداد زیادی از سیستمهای سازمان را تحت تأثیر قرار دهد.
مشاهده Group Policyهای دامنه
Get-GPO -All |
Select-Object DisplayName,GpoStatus
بررسی GPOهای اعمالشده روی سیستم
gpresult /r
برای دریافت گزارش کامل:
gpresult /h C:\AD-GPO-Report.html
موارد مهم برای ارزیابی امنیت
-
چه افرادی مجوز ویرایش GPO دارند؟
-
آیا تنظیمات امنیتی روی تمام سیستمها اعمال میشوند؟
-
آیا سیاست قفل شدن حساب کاربری فعال است؟
-
آیا کاربران عادی امکان تغییر تنظیمات حساس را دارند؟
-
آیا تنظیمات امنیتی سیستمهای حساس با استاندارد سازمان مطابقت دارند؟
بررسی دسترسیهای حساس
در Active Directory فقط عضویت در گروههای مدیریتی اهمیت ندارد؛ مجوزهای مستقیم و غیرمستقیم روی اشیای دایرکتوری نیز مهم هستند.
برای مثال باید بررسی کنی چه حسابهایی اجازه تغییر ویژگیهای کاربران، گروهها و سیاستهای دامنه را دارند.
فصل نهم: بررسی امنیت Active Directory Certificate Services
یکی از موضوعات تخصصی و بسیار مهم در تست نفوذ سازمانی، بررسی AD CS است.
AD CS زیرساخت صدور و مدیریت گواهی دیجیتال در محیط ویندوزی را فراهم میکند.
اشتباه در تنظیمات Certificate Template یا مجوزهای صدور گواهی ممکن است باعث ایجاد مسیرهای خطرناک احراز هویت شود.
چه مواردی را باید بررسی کرد؟
-
دسترسی کاربران به Certificate Templateها
-
مجوزهای صدور گواهی
-
تنظیمات Subject و SAN
-
محدودیتهای احراز هویت
-
اعتبار و چرخه عمر گواهیها
-
مجوزهای مدیریتی Certificate Authority
برای ارزیابی میتوان از مستندات رسمی مایکروسافت و ابزارهای ممیزی AD CS استفاده کرد.
ابزار شناختهشده در این حوزه Certipy است.
هدف این فصل شناسایی پیکربندیهای خطرناک و اصلاح آنهاست، نه صدور گواهی برای جعل هویت یا دسترسی غیرمجاز.
فصل دهم: تحلیل رویدادها و کشف فعالیت مشکوک
یک متخصص تست نفوذ باید علاوه بر شناسایی ضعفها، بداند فعالیتهای مشکوک در سیستم چگونه ثبت و تحلیل میشوند.
ابزارهای مهم:
-
Windows Event Viewer
-
PowerShell
-
Microsoft Defender for Identity
-
Microsoft Sentinel
رویدادهای مهم امنیتی ویندوز
| Event ID | مفهوم |
|---|---|
| 4624 | ورود موفق |
| 4625 | ورود ناموفق |
| 4672 | ورود با امتیازات ویژه |
| 4720 | ایجاد حساب کاربری |
| 4728 | اضافه شدن عضو به گروه امنیتی |
| 4732 | اضافه شدن عضو به گروه محلی |
| 4740 | قفل شدن حساب |
| 4768 | درخواست Kerberos TGT |
| 4769 | درخواست Kerberos Service Ticket |
| 4771 | خطای احراز هویت Kerberos |
نمونه جستوجوی ورودهای ناموفق
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4625
} -MaxEvents 20
نمونه جستوجوی ایجاد حساب کاربری
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4720
} -MaxEvents 20
این فرمانها به شرط فعال بودن Audit Policy مربوط، رویدادهای ثبتشده را نمایش میدهند.
تمرین: یک حساب آزمایشی در دامنه ایجاد کن و سپس رویداد مربوط به ایجاد آن را در Event Viewer پیدا کن.
فصل یازدهم: چالش عملی نهایی (Final Lab Challenge)
حالا وقت آن است که تمام مباحث را در یک سناریوی واقعیتر آزمایشگاهی ترکیب کنیم.
سناریو: ارزیابی امنیت دامنه یک شرکت فرضی
شرکت فرضی ZeroOne دارای مشخصات زیر است:
Domain: lab.01st.local
Domain Controller:
DC01
Client:
WIN11-CLIENT
Security Groups:
Domain Admins
IT Support
HR Department
Employees
Test Accounts:
test.user
test.admin
service.account
وظیفه شما بهعنوان کارشناس تست نفوذ این است که وضعیت امنیتی دامنه را بررسی کنید.
مراحل اجرای پروژه
-
شناسایی اولیه
نام دامنه، سرورهای اصلی، کاربران و گروههای امنیتی را استخراج کن.
-
بررسی سرویسها
سرویسهای DNS، LDAP، Kerberos و SMB را بررسی و وضعیت آنها را مستند کن.
-
تحلیل دسترسیها
عضویت گروهها و مجوزهای غیرضروری را شناسایی کن.
-
تحلیل Kerberos
حسابهای دارای SPN و سیاستهای رمز عبور را ارزیابی کن.
-
تحلیل Group Policy
تنظیمات امنیتی اعمالشده روی کاربران و کامپیوترها را بررسی کن.
-
بررسی رویدادها
رویدادهای ورود، ایجاد حساب و تغییر عضویت گروهها را تحلیل کن.
-
ارائه گزارش نهایی
یافتهها، سطح ریسک و راهکارهای اصلاحی را مستند کن.
قالب گزارش تست نفوذ
هر متخصص امنیت باید بتواند نتایج کار خود را به شکلی قابل فهم و حرفهای ارائه دهد.
برای هر آسیبپذیری این اطلاعات را ثبت کن:
| فیلد | توضیحات |
|---|---|
| Finding | نام آسیبپذیری |
| Asset | سیستم یا حساب تحت تأثیر |
| Severity | شدت ریسک |
| Evidence | شواهد فنی |
| Impact | تأثیر احتمالی |
| Remediation | راهکار اصلاح |
| Retest | نتیجه بررسی مجدد |
نمونه:
ضعف در سیاست رمز عبور حسابهای سرویس
شرح: یکی از حسابهای سرویس آزمایشگاهی از سیاست رمز عبور مناسبی برخوردار نیست.
ریسک: افزایش احتمال حدس زدن رمز عبور و سوءاستفاده از حساب.
راهکار: استفاده از رمز تصادفی طولانی، gMSA و محدودسازی سطح دسترسی.
وضعیت: نیازمند اصلاح و ارزیابی مجدد.
این یک نمونه آموزشی است، نه نتیجه یک تست واقعی.
منابع و ابزارهای تکمیلی
برای تبدیل شدن به متخصص تست نفوذ Active Directory، این منابع را مطالعه کن:
BloodHound CE
تحلیل روابط و مجوزهای Active Directory
جمعبندی
Active Directory یکی از مهمترین زیرساختهای سازمانی در دنیای ویندوز است. متخصص تست نفوذ باید بتواند ساختار دامنه را بشناسد، مجوزها را تحلیل کند، ضعفهای Kerberos و LDAP را بررسی کند، تنظیمات اشتباه را پیدا کند و در نهایت راهکارهای اصلاحی ارائه دهد.
تسلط بر این مباحث میتواند مسیر ورود به حوزههای زیر را برای شما هموار کند:
-
Active Directory Penetration Testing
-
Red Team Operations
-
Windows Security Engineering
-
Enterprise Security Assessment
-
Blue Team & Threat Hunting
قانون مهم: تمام تمرینهای این آموزش باید در آزمایشگاه شخصی یا زیرساختی انجام شوند که مجوز کتبی ارزیابی آن را دارید.

دیدگاه شما