کشف یک مسیر جدید برای سوءاستفاده از تفویض اختیار Kerberos در حسابهای بدون SPN — Newly discovered Kerberos delegation abuse path
خلاصه
این مقاله روش جدیدی را برای سوءاستفاده از تفویض اختیار محدود در پروتکل Kerberos معرفی میکند. با ترکیب تکنیکهای قبلی RBCD بازتابی و احراز هویت U2U و توسعه ابزار Impacket، اکنون امکان حمله به حسابهای بدون SPN فراهم شده است.
مقدمه و زمینه
پروتکل Kerberos ستون فقرات احراز هویت در اکتیو دایرکتوری (Active Directory) و ویندوز است. یکی از قابلیتهای پیچیده این پروتکل، تفویض اختیار (Delegation) است که به سرویسها اجازه میدهد به نمایندگی از کاربران به منابع دیگر دسترسی پیدا کنند. محققان امنیت طی سالهای گذشته مسیرهای مختلفی را برای سوءاستفاده از این مکانیسم کشف کردهاند. اخیراً مقاله جدیدی منتشر شده که با ترکیب تکنیکهای موجود، یک مسیر حمله تازه را علیه حسابهای فاقد SPN (Service Principal Name) معرفی میکند.
مفاهیم پایه: تفویض اختیار و چالشهای آن
برای درک این آسیبپذیری، باید با دو فرم اصلی از Constrained Delegation آشنا باشیم:
- همراه با Protocol Transition: به سرویس اجازه میدهد بدون نیاز به احراز هویت اولیه کاربر، برای او بلیت تولید کند. این کار با کمک S4U2Self و سپس S4U2Proxy انجام میشود.
- بدون Protocol Transition: سرویس نمیتواند به تنهایی بلیت قابل هدایت (Forwardable) تولید کند؛ مگر اینکه از قبل یک بلیت معتبر برای کاربر هدف داشته باشد.
همچنین مفهومی به نام Resource-Based Constrained Delegation یا همان RBCD وجود دارد که در آن، خود منابع مشخص میکنند چه کسانی مجاز به تفویض اختیار به آنها هستند.
شکاف متدولوژی و مسیر جدید
تا پیش از این، محققان توانسته بودند با استفاده از Reflective RBCD (توسعهیافته توسط Elad Shamir) تفویض اختیار بدون Protocol Transition را سوءاستفاده کنند، اما این کار نیازمند وجود SPN بود. از طرفی، روشهایی برای دور زدن حسابهای بدون SPN وجود داشت که فقط روی حالت همراه با Protocol Transition جواب میدادند.
این مقاله جدید با ترکیب روش Reflective RBCD و تکنیک کاربر قربانی (Sacrificial User) مجهز به احراز هویت U2U (User-to-User) که جیمز فورشاو (James Forshaw) آن را معرفی کرده بود، این خلاء را پر میکند.
گامهای فنی حمله و تغییرات Impacket
برای اجرای این حمله زنجیرهای، شرایط زیر در دامین لازم است:
- اجازه استفاده از الگوریتم رمزنگاری RC4 در دامین فعال باشد.
- قابلیت Machine Account Quota (MAQ) فعال باشد تا ماشینهای جدید اضافه شوند.
- منبع بدون SPN بتواند ویژگی RBCD خود را پیکربندی کند.
نکته فنی مهم این است که ابزار معروف Impacket به طور پیشفرض از ترکیب S4U2Proxy با U2U پشتیبانی نمیکرد. نویسنده مقاله با ایجاد تغییراتی در اسکریپت getST.py (از جمله تنظیم پرچمهای resource_based_constrained_delegation و enc-tkt-in-skey و تنظیم دقیق نوع نام سرویس)، توانست بلیت قابل هدایت را برای یک حساب بدون SPN تولید کند.
مراحل کلی حمله به این صورت است:
- دریافت TGT برای کاربر هدف و استخراج کلید نشست (Session Key).
- افزودن یک ماشین کمکی به دامین با استفاده از MAQ.
- پیکربندی RBCD روی کاربر هدف به طوری که ماشین جدید را اعتماد کند.
- تغییر هش رمز عبور کاربر هدف به کلید نشست TGT (که البته باعث تخریب و از کار افتادن حساب کاربر قربانی میشود).
- اجرای S4U2Proxy با کمک U2U برای تولید بلیت سرویس.
- استفاده از بلیت بهدستآمده برای دسترسی نهایی به سرویس مقصد.
چرا این موضوع برای مهندسین نرمافزار و امنیت مهم است؟
این کشف نشان میدهد که ترکیب ویژگیهای مختلف و ظاهراً امن پروتکل Kerberos میتواند مسیرهای نفوذ جدیدی ایجاد کند. اگرچه این یک آسیبپذیری مستقیم در خود کد Kerberos نیست، اما خطاهای پیکربندی و سوءاستفاده از مکانیسمهای تفویض اختیار میتوانند به مهاجمان اجازه دهند دسترسیهای غیرمجاز سطح بالا بگیرند. آگاهی از این تکنیکها به مهندسین زیرساخت و امنیت کمک میکند تا پیکربندیهای اکتیو دایرکتوری خود را سختگیرانهتر انجام دهند و از رمزنگاریهای قدیمی مانند RC4 دوری کنند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل