Auto-Elevate
توضح هذه الأداة قوة تجاوزات UAC والميزات المضمنة في Windows. تقوم هذه الأداة بتحديد موقع winlogon.exe تلقائيًا، وسرقة وانتحال TOKEN العملية الخاصة به، وإنشاء عملية جديدة بمستوى SYSTEM باستخدام الـ token المسروق. بالإضافة إلى طريقة تجاوز UAC رقم 41 (تجاوز UAC الخاص بـ ICMLuaUtil) من أداة UACME الخاصة بـ hfiref0x، يمكن لهذه الأداة ترقية حساب إداري ذو صلاحيات منخفضة إلى NT AUTHORITY\SYSTEM.
توضح الصورة التالية استخدام UACME مع Auto-Elevate للانتقال من حساب Administrator ذو صلاحيات منخفضة إلى NT AUTHORITY\SYSTEM على نظام Windows 10 21H1.

توضح الصورة التالية التصعيد من حساب Administrator ذو صلاحيات عالية إلى SYSTEM بدون تجاوز UAC.

الشرح التقني
الخطوات التالية يتم تنفيذها بواسطة Auto-Elevate للتصعيد من Administrator ذو صلاحيات منخفضة إلى SYSTEM:

Auto-Elevate
- يتم تحديد موقع عملية winlogon.exe عن طريق تعداد العمليات الجارية في النظام باستخدام CreateToolhelp32Snapshot و Process32First و Process32Next.
- يتم تمكين صلاحية SeDebugPrivilege للعملية الحالية عبر استدعاء AdjustTokenPrivileges، حيث أنها مطلوبة لفتح HANDLE لعملية winlogon.exe.
- يتم فتح مؤشر (handle) لعملية winlogon.exe عن طريق استدعاء OpenProcess، ويتم استخدام PROCESS_ALL_ACCESS لهذا الاستدعاء (على الرغم من أنه إسراف).
- يتم استرداد مؤشر (handle) لـ token عملية winlogon عن طريق استدعاء OpenProcessToken مع مؤشر العملية الذي تم الحصول عليه سابقًا.
- يتم انتحال هوية المستخدم (SYSTEM) الخاص بـ winlogon عن طريق استدعاء ImpersonateLoggedOnUser.
- يتم نسخ مؤشر token المنتحَل عن طريق استدعاء DuplicateTokenEx مع SecurityImpersonation، مما ينشئ tokenًا مكررًا يمكننا استخدامه.
- باستخدام token المكرر والمنتحَل، يتم إنشاء مثيل جديد لـ CMD عن طريق استدعاء CreateProcessWithTokenW.
قائمة المهام
تخطيط MITRE ATT&CK
- التلاعب بالرموز: T1134
- التلاعب برمز الوصول: انتحال/سرقة الرمز: T1134.001
- التلاعب برمز الوصول: إنشاء عملية برمز: T1134.002
- التلاعب برمز الوصول: إنشاء وانتحال رمز: T1134.003