
برنامج تشغيل وضع النواة لرفع امتيازات العمليات
EPROCESS برمز النظام، مما يرفع بشكل فعال صلاحيات العملية. تم تصميم برنامج التشغيل لاستخدامه مع تطبيق في وضع المستخدم يرسل معرف العملية إلى برنامج التشغيل عبر IOCTL.عند إنشاء عملية، ترث رمز المستخدم الذي أنشأها. يستخدم النظام الرمز لتحديد الإجراءات التي يمكن للعملية تنفيذها. يحتوي الرمز على معلومات حول معرف الأمان (SID) للمستخدم، وعضويات المجموعة، والصلاحيات.

يوجد عضو Token عند الإزاحة 0x4b8 في بنية _EPROCESS، وهي بنية بيانات تمثل كائن عملية. يُعرَّف عضو Token في بنية _EX_FAST_REF، وهي نوع اتحاد يمكنه تخزين مؤشر لكائن نواة أو عدد مراجع، اعتمادًا على حجم المؤشر. يعتمد إزاحة بنية _EX_FAST_REF داخل _EPROCESS على الإصدار المحدد من Windows المستخدم، ولكنها تقع عادةً عند إزاحة 0x4b8 في الإصدارات الحديثة من Windows.
إزاحات Token لرقم بناء Windows لمعماريات x64 و x86
تحتوي بنية _EX_FAST_REF في Windows على ثلاثة أعضاء: Object وRefCount وValue

لعرض رمز العملية في _EX_FAST_REF، نمرر عنوان بنية _EX_FAST_REF التي تحتوي على الرمز، والتي تقع عادةً عند إزاحة 0x4b8 في بنية _EPROCESS.

يمكنك إما إنشاء عملية ذات صلاحيات أو رفع صلاحيات عملية موجودة بالفعل عبر معرف العملية.

لأغراض هذا الشرح، سنركز على الخيار الثاني وسنستخدم CMD كمثال

الرمز الموروث

إرسال معرف العملية إلى برنامج التشغيل عبر IOCTL

بعد استلام PID من تطبيق وضع المستخدم، يستخدمه برنامج التشغيل للحصول على مؤشر لبنية _EPROCESS للعملية المستهدفة. ثم يصل برنامج التشغيل إلى عضو Token في بنية _EPROCESS للحصول على مؤشر لرمز العملية، والذي يستبدله برمز النظام، مما يغير بشكل فعال سياق أمان العملية إلى سياق النظام. ومع ذلك، إذا لم يحدد برنامج التشغيل موقع عضو Token بشكل صحيح داخل بنية _EPROCESS أو إذا كان إزاحة Token غير 0x4b8، فقد يتسبب برنامج التشغيل في تعطل النظام أو العملية المستهدفة. ستُحل هذه المشكلة في التحديثات القادمة.

رمز cmd بعد

| إزاحات x64 | إزاحات x86 |
|---|
| 0x0160 (آخر 5.2) | 0x0150 (3.10) |
| 0x0168 (6.0) | 0x0108 (3.50 إلى 4.0) |
| 0x0208 (6.1) | 0x012C (5.0) |
| 0x0348 (6.2 إلى 6.3) | 0xC8 (5.1 إلى أول 5.2) |
| 0x0358 (10.0 إلى 1809) | 0xD8 (آخر 5.2) |
| 0x0360 (1903) | 0xE0 (6.0) |
| 0x04B8 | 0xF8 (6.1) |
| 0xEC (6.2 إلى 6.3) | |
| 0xF4 (10.0 إلى 1607) | |
| 0xFC (1703 إلى 1903) | |
| 0x012C |

صلاحيات العملية، ومجموعاتها، وحقوقها
