در این تحلیل فنی، یک زنجیره پیچیده از حملات (Attack Chain) را بررسی میکنیم که منجر به تصاحب کامل یک Domain Controller ویندوزی میشود. این سناریو با بهرهبرداری از نقاط ضعف در یک اپلیکیشن ASP.NET آغاز شده و با سوءاستفاده از پیکربندیهای نادرست Active Directory به پایان میرسد.
مرحله اول: نفوذ به لایه وب و استخراج اطلاعات
نقطه ورود، یک وبسایت مبتنی بر ASP.NET MVC است. با بررسی فرمهای ورودی، مشخص شد که اپلیکیشن در برابر LDAP Injection آسیبپذیر است. با استفاده از تکنیک Double URL-encoding، محدودیتهای کلاینت دور زده شد و با پیادهسازی یک Oracle برای حدس زدن نامهای کاربری، اطلاعات حساس از فیلد Description در LDAP استخراج گردید که شامل یک رمز عبور پیشفرض بود.
مرحله دوم: دور زدن Rate Limit و دسترسی به فایلها
سایت دارای مکانیزم Rate Limiting بود که از طریق کوکی __RequestVerificationToken و CSRF Token کنترل میشد. با جایگزینی این توکنها در هر بار دریافت خطای 429، امکان Brute-force فراهم شد. همچنین، یک آسیبپذیری Arbitrary File Read در هندلر دانلودها شناسایی شد که اجازه دسترسی به فایل web.config را داد. از طریق این فایل، Machine Key استخراج شد که امکان جعل کوکیهای احرازیه (Authentication Cookie) و ارتقای سطح دسترسی به نقش Web Administrators را فراهم کرد.
مرحله سوم: اجرای کد و سرقت Hash
با دسترسی به نقش مدیر وب، قابلیت آپلود فایل فعال شد. با آپلود یک سند مخرب (ODT) که حاوی درخواست SMB به یک سرور خارجی بود، از طریق تکنیک NTLM Theft، پاسخ NetNTLMv2 کاربر natalie.a استخراج و به صورت آفلاین Crack شد.
مرحله چهارم: سوءاستفاده از Active Directory و Shadow Credentials
با دسترسی به کاربر natalie.a، تحلیل BloodHound نشان داد که این کاربر عضو گروه Web Support است و دسترسی GenericWrite روی چندین کاربر و یک Organizational Unit (OU) دارد. با استفاده از این دسترسی، تکنیک Shadow Credentials برای تصاحب حساب کاربر bob.w و سپس کاربر auditor پیادهسازی شد.
مرحله پنجم: حمله ESC3 و تصاحب نهایی
کاربر auditor دسترسیهایی داشت که امکان اجرای حمله ESC3 علیه سرویس گواهینامه (ADCS) را فراهم میکرد. با درخواست گواهینامه به نمایندگی از کاربر ashley.b، دسترسی به این حساب به دست آمد. در نهایت، با شناسایی یک Task زمانبندی شده (Scheduled Task) که وظیفه پاکسازی ویژگی adminCount را داشت، مهاجم توانست محافظتهای امنیتی حساب IIS_Administrator را موقتاً حذف کرده و با بهرهبرداری از Delegation، دسترسی کامل به Domain را به دست آورد.