☣️این حمله یکی از حملات پیشرفته در Active Directory (AD) است که از ویژگی Unconstrained Delegation در سرویسهای ویندوز سوءاستفاده میکند. این ویژگی که از زمان Windows 2000 معرفی شد، به سرورهای مشخصی اجازه میدهد تا تیکتهای Kerberos (TGT) کاربران را بدون محدودیت ذخیره و استفاده کنند. مهاجمان میتوانند از این قابلیت برای دزدیدن نشستهای احراز هویت کاربران و گسترش دسترسی در شبکه سوءاستفاده کنند.
⬅️این Unconstrained Delegation چیست؟ ویندوز از Kerberos Delegation برای انتقال احراز هویت کاربران بین سرویسهای مختلف استفاده میکند. در Unconstrained Delegation، هر سیستمی که این قابلیت را داشته باشد، میتواند بدون هیچ محدودیتی تیکتهای Kerberos کاربران احراز هویتشده را دریافت و استفاده کند. 💡 مشکل اصلی: اگر یک مهاجم کنترل سیستمی را بهدست بیاورد که این قابلیت را دارد، میتواند از تیکتهای کاربران دیگر برای جعل هویت آنها در سطح شبکه سوءاستفاده کند. ⬅️ مراحل اجرای Unconstrained Delegation Attack ۱) شناسایی سیستمهای دارای Unconstrained Delegation مهاجم ابتدا سیستمهایی را پیدا میکند که این قابلیت را دارند. این کار را میتوان با اجرای کوئری در PowerShell یا ابزارهای BloodHound و ldapsearch انجام داد:
Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties TrustedForDelegation این دستور لیست تمام سیستمهایی را نشان میدهد که قابلیت Unconstrained Delegation دارند. ۲) بهدست آوردن کنترل یک سیستم آسیبپذیر اگر مهاجم بتواند به سیستمی با Unconstrained Delegation دسترسی بگیرد (مثلاً از طریق یک آسیبپذیری یا مهندسی اجتماعی)، میتواند تیکتهای کاربران دیگر را دریافت کند. ۳) دزدیدن و سوءاستفاده از تیکتهای Kerberos وقتی کاربری به سرور آسیبپذیر متصل شود، تیکت Kerberos او در حافظه (LSASS) سرور ذخیره میشود. مهاجم میتواند با ابزار Mimikatz این تیکتها را استخراج کند: privilege::debug sekurlsa::tickets /export مهاجم سپس میتواند این تیکتها را برای جعل هویت کاربرانی مانند Domain Admins استفاده کند. ۴) گسترش دسترسی در شبکه پس از سرقت تیکتهای Kerberos، مهاجم میتواند: ✅ به سیستمهای دیگر بهعنوان کاربران معتبر متصل شود. ✅ به منابع حیاتی مانند Active Directory دسترسی پیدا کند. ✅ امتیازات خود را به سطح Domain Admin ارتقا دهد. ⬅️چطور از این حمله جلوگیری کنیم؟ 🔵 غیرفعالسازی Unconstrained Delegation تنظیمات Unconstrained Delegation را در Active Directory بررسی کرده و غیرضروریها را غیرفعال کنید: Get-ADComputer -Filter {TrustedForDelegation -eq $true} | Set-ADComputer -TrustedForDelegation $false 🔵استفاده از Constrained Delegation به جای Unconstrained Delegation، از Constrained Delegation (با پروتکل Kerberos فقط) استفاده کنید که دسترسیها را محدودتر میکند. 🔵نظارت بر تیکتهای Kerberos با ابزارهایی مثل Event Viewer و SIEM، لاگهای مرتبط با درخواستهای Kerberos را بررسی کنید و ترافیک مشکوک را شناسایی کنید. 🔵 محدود کردن دسترسی حسابهای حساس ✅ حسابهای Domain Admins و Enterprise Admins نباید به سیستمهایی با Unconstrained Delegation لاگین کنند. ✅ از Protected Users Group استفاده کنید تا تیکتهای Kerberos برای این حسابها ذخیره نشود.