آموزش جامع و عملی تست نفوذ Active Directory

Comprehensive and Practical Active Directory Penetration Testing Training
0 دیدگاه
۱۴۰۵-۰۸-۰۹ ۱۱:۳۵:۵۷

تصور کن وارد یک شبکه سازمانی شده‌ای که ده‌ها یا صدها کامپیوتر، سرور و حساب کاربری دارد. تمام این سیستم‌ها به یک ساختار مرکزی متصل هستند و دسترسی کاربران از طریق آن مدیریت می‌شود.

این ساختار در بسیاری از سازمان‌ها 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 یا یک شبکه داخلی ایزوله قرار بدهی تا آزمایش‌ها به شبکه‌های واقعی دسترسی نداشته باشند.

مراحل راه‌اندازی دامنه

  1. روی Windows Server آدرس IP ثابت تنظیم کن.

  2. از Server Manager وارد بخش Add Roles and Features شو.

  3. نقش Active Directory Domain Services را نصب کن.

  4. سرور را به Domain Controller تبدیل کن و یک دامنه آزمایشگاهی بساز؛ برای مثال:

lab.01st.local
  1. یک کاربر آزمایشی و یک گروه امنیتی بساز.

  2. سیستم Windows Client را به دامنه متصل کن.

  3. از طریق حساب آزمایشی وارد سیستم کلاینت شو.

همچنین می‌توانی از 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

موارد مهم برای ارزیابی امنیت

  1. چه افرادی مجوز ویرایش GPO دارند؟

  2. آیا تنظیمات امنیتی روی تمام سیستم‌ها اعمال می‌شوند؟

  3. آیا سیاست قفل شدن حساب کاربری فعال است؟

  4. آیا کاربران عادی امکان تغییر تنظیمات حساس را دارند؟

  5. آیا تنظیمات امنیتی سیستم‌های حساس با استاندارد سازمان مطابقت دارند؟

بررسی دسترسی‌های حساس

در 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

وظیفه شما به‌عنوان کارشناس تست نفوذ این است که وضعیت امنیتی دامنه را بررسی کنید.

مراحل اجرای پروژه

  1. شناسایی اولیه

    نام دامنه، سرورهای اصلی، کاربران و گروه‌های امنیتی را استخراج کن.

  2. بررسی سرویس‌ها

    سرویس‌های DNS، LDAP، Kerberos و SMB را بررسی و وضعیت آن‌ها را مستند کن.

  3. تحلیل دسترسی‌ها

    عضویت گروه‌ها و مجوزهای غیرضروری را شناسایی کن.

  4. تحلیل Kerberos

    حساب‌های دارای SPN و سیاست‌های رمز عبور را ارزیابی کن.

  5. تحلیل Group Policy

    تنظیمات امنیتی اعمال‌شده روی کاربران و کامپیوترها را بررسی کن.

  6. بررسی رویدادها

    رویدادهای ورود، ایجاد حساب و تغییر عضویت گروه‌ها را تحلیل کن.

  7. ارائه گزارش نهایی

    یافته‌ها، سطح ریسک و راهکارهای اصلاحی را مستند کن.

قالب گزارش تست نفوذ

هر متخصص امنیت باید بتواند نتایج کار خود را به شکلی قابل فهم و حرفه‌ای ارائه دهد.

برای هر آسیب‌پذیری این اطلاعات را ثبت کن:

فیلد توضیحات
Finding نام آسیب‌پذیری
Asset سیستم یا حساب تحت تأثیر
Severity شدت ریسک
Evidence شواهد فنی
Impact تأثیر احتمالی
Remediation راهکار اصلاح
Retest نتیجه بررسی مجدد

نمونه:

ضعف در سیاست رمز عبور حساب‌های سرویس

High – فرضی

شرح: یکی از حساب‌های سرویس آزمایشگاهی از سیاست رمز عبور مناسبی برخوردار نیست.

ریسک: افزایش احتمال حدس زدن رمز عبور و سوءاستفاده از حساب.

راهکار: استفاده از رمز تصادفی طولانی، 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

قانون مهم: تمام تمرین‌های این آموزش باید در آزمایشگاه شخصی یا زیرساختی انجام شوند که مجوز کتبی ارزیابی آن را دارید.

دسته بندی‌ها:

آنچه در این مقاله میخوانید

دیدگاه شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *