Active Directory (AD) در بیش از ۹۰٪ سازمانهای بزرگ استفاده میشود و قلب تپنده احراز هویت و مدیریت منابع در ویندوز سرور است. تسلط بر تست نفوذ AD یک مهارت ضروری برای هر پنتستر حرفهای (Red Teamer) است. در این مقاله جامع، مسیر کامل از مرحله Enumeration (شمارش اولیه) تا گرفتن بالاترین سطح دسترسی یعنی Domain Admin را با تکنیکهای پیشرفته و ابزارهای مدرن بررسی میکنیم. این راهنما برای کسانی که قصد دارند در دورههای OSCP و CRTP شرکت کنند نیز بسیار مفید است.
تست نفوذ به Active Directory نیازمند درک عمیق از پروتکلهای شبکهای مانند SMB، LDAP، Kerberos و NTLM است. مهاجمان در یک محیط AD به دنبال پیدا کردن ضعیفترین حلقه زنجیر (Weakest Link) است. این حلقه میتواند یک کاربر با رمز عبور ضعیف باشد، یک سرویس با دسترسی بیش از حد (Over-privileged Service Account) یا یک تنظیمات اشتباه در Group Policy (GPO). در این مقاله، فرض میکنیم مهاجم توانسته یک foothold اولیه (مثلاً از طریق Phishing) روی یک سیستم متصل به دامنه به دست آورد و اکنون میخواهد این دسترسی را گسترش دهد.
مرحله ۱: Enumeration اولیه با BloodHound و SharpHound
BloodHound یکی از قدرتمندترین ابزارهای تحلیل گراف در تست نفوذ AD است. این ابزار با استفاده از نظریه گراف، مسیرهای پیچیده حمله را که برای انسان قابل رویت نیست، شناسایی و بصریسازی میکند. SharpHound جمعآوریکننده دادهها برای BloodHound است که به صورت جمعآوری Sessionها، ACLها و Trustها عمل میکند.
پس از اجرای SharpHound، فایل ZIP خروجی را در BloodHound GUI import میکنیم. در آنجا میتوانیم کوئریهای از پیش تعریف شده مانند "Find Shortest Path to Domain Admin" را اجرا کنیم. این امر نشان میدهد که چگونه یک کاربر عادی میتواند از طریق سوءاستفاده از عضویت در یک گروه خاص یا دسترسی به یک سرویس خاص، به دسترسی بالاتر برسد.
# جمع آوری داده ها با SharpHound
SharpHound.exe -c All -o output.zip
# یا با استفاده از PowerShell
Invoke-BloodHound -CollectionMethod All -OutputDirectory C: emp
# کوئری Cypher برای یافتن مسیر Domain Admin
MATCH p=shortestPath((u:User)-[*1..]->(g:Group {name:'DOMAIN ADMINS@DOMAIN.LOCAL'})) RETURN pمرحله ۲: Kerberoasting و استخراج تیکتها
کسب گواهینامه OSCP نیازمند درک عمیق پروتکل Kerberos است. Kerberoasting یک تکنیک محبوب است که در آن مهاجم TGS (Ticket Granting Service) تیکتهای مربوط به سرویسهای دارای SPN را از Domain Controller درخواست کرده و آنها را به صورت آفلاین با ابزارهایی مانند Hashcat کرک میکند. این حمله نیازی به تعامل با سرور ندارد و در لاگهای سرور به صورت مشکوک ثبت نمیشود. اگر کاربری که سرویس به آن متعلق دارد رمز عبور ضعیفی داشته باشد، میتوان رمز آن را بازیابی کرد.
# استخراج تیکت ها با Impacket
GetUserSPNs.py domain.local/user:password -request
# کرک کردن تیکت ها با Hashcat
hashcat -m 13100 hashes.txt rockyou.txt
# پاورشل: استخراج تیکت با Rubeus
Rubeus.exe kerberoast /outfile:hashes.txtمرحله ۳: AS-REP Roasting
حمله AS-REP Roasting زمانی کاربرد دارد که کاربری با ویژگی "Do not require Kerberos preauthentication" فعال شده باشد. در این حالت، هر کسی میتواند با ارسال درخواست AS-REQ به KDC، یک AS-REP حاوی هش رمز عبور کاربر دریافت کند. این هش نیز مانند Kerberoasting میتواند به صورت آفلاین کرک شود. این آسیبپذیری معمولاً در حسابهای سرویس قدیمی یا حسابهای تستی دیده میشود.
مرحله ۴: Golden Ticket و Silver Ticket Attacks
اگر مهاجم بتواند هش حساب krbtgt را به دست بیاورد (مثلاً از طریق حمله DCSync)، میتواند یک Golden Ticket بسازد. یک Golden Ticket یک TGT (Ticket Granting Ticket) جعلی است که به مهاجم دسترسی کامل به تمام منابع دامنه میدهد. این تیکت حتی اگر رمز عبور کاربر تغییر کند نیز معتبر میماند و نیازی به احراز هویت با KDC ندارد. Silver Ticket نیز مشابه است اما به جای TGT، یک TGS برای یک سرویس خاص میسازد و به دلیل عدم ارتباط با DC، بسیار stealthy است.
تست نفوذ به Active Directory در محیطهای واقعی بدون مجوز کتبی (Rules of Engagement) جرم محسوب میشود و پیگرد قانونی دارد. تمرین این تکنیکها باید در آزمایشگاههای ایزوله (مانند HackTheBox یا TryHackMe) انجام شود.
مرحله ۵: Lateral Movement و Pass-the-Hash
پس از به دست آوردن دسترسی یک حساب کاربری با امتیازات بالا، مهاجم نیازمند حرکت در شبکه (Lateral Movement) است. تکنیک Pass-the-Hash (PtH) اجازه میدهد مهاجم با استفاده از هش NTLM یک کاربر (بدون نیاز به دانستن رمز عبور اصلی) به سایر سیستمهای شبکه احراز هویت کند. ابزارهایی مانند CrackMapExec (شبیه به NetExec) و PsExec برای این کار بسیار مناسب هستند.
مرحله ۶: Domain Dominance و Persistence
مرحله نهایی، برقراری دسترسی دائمی (Persistence) است. مهاجم میتواند با ایجاد یک حساب کاربری مخفی، تغییر در Security Descriptors (مانند دادن دسترسی Full Control به خود روی Domain Admins) یا استفاده از کلیدهای پشتیبان (DPAPI Keys) دسترسی خود را پایدار کند. تکنیکهایی مانند Skeleton Key (ایجاد یک پسورد کلیهپذیر برای تمام حسابها) نیز در این مرحله کاربرد دارند.
📝 جمعبندی
تست نفوذ Active Directory یک مهارت تخصصی و حیاتی در حوزه امنیت سایبری است که نیازمند درک عمیق از ساختار دایرکتوری سرویس، پروتکلهای احراز هویت و ابزارهای اتوماسیون است. با یادگیری این تکنیکها و انجام تمرینهای عملی در محیطهای ایزوله، میتوانید از شبکههای سازمانی در برابر حملات پیشرفته APT محافظت کرده و نقش موثری در ارتقای سطح امنیتی سازمانها ایفا کنید. مسیر یادگیری AD طولانی است اما به شدت پردرآمد و حیاتی است.