
مسارات الاستغلال التي تسمح لك بـ (إساءة) استخدام صلاحيات ويندوز لرفع صلاحياتك داخل نظام التشغيل.
الفكرة هي "ترجمة" صلاحيات نظام ويندوز إلى مسار يؤدي إلى:
تم سرد الصلاحيات وشرحها على: https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
إذا كان الهدف يمكن تحقيقه بطرق متعددة، تكون الأولوية:
يمكنك التحقق من صلاحياتك الخاصة باستخدام whoami /priv. الصلاحيات المعطلة تعادل المفعلة. الشيء المهم الوحيد هو ما إذا كان لديك الصلاحية في القائمة أم لا.
ملاحظة 1: عندما ينتهي مسار الهجوم بإنشاء رمز (token)، يمكنك افتراض أن الخطوة التالية هي إنشاء عملية جديدة باستخدام هذا الرمز ثم السيطرة على نظام التشغيل.
ملاحظة 2:
أ. لاستدعاء NtQuerySystemInformation()/ZwQuerySystemInformation() مباشرة، يمكنك العثور على الصلاحيات المطلوبة هنا.
ب. بالنسبة لـ NtSetSystemInformation()/ZwSetSystemInformation()، تم سرد الصلاحيات المطلوبة هنا.
ملاحظة 3: أركز على نظام التشغيل فقط. إذا كانت الصلاحية تعمل في Active Directory ولكن ليس في نظام التشغيل نفسه، أصفها بأنها غير مستخدمة في نظام التشغيل. سيكون من الجيد أن يتعمق شخص ما في السيناريوهات الموجهة لـ AD.
لا تتردد في المساهمة و/أو مناقشة الأفكار المقدمة.
| الصلاحية | التأثير | الأداة | مسار التنفيذ | ملاحظات |
|---|---|---|---|---|
SeAssignPrimaryToken | مسؤول | أداة طرف ثالث | "سيسمح للمستخدم بانتحال الرموز ورفع الصلاحية إلى NT SYSTEM باستخدام أدوات مثل potato.exe و rottenpotato.exe و juicypotato.exe" | شكرًا Aurélien Chalot على التحديث. سأحاول إعادة صياغتها إلى شيء أشبه بالوصفة قريبًا. |
SeAudit | تهديد | أداة طرف ثالث | كتابة أحداث إلى سجل أحداث الأمان (Security event log) لخداع التدقيق أو للكتابة فوق الأحداث القديمة. | يمكن كتابة الأحداث الخاصة باستخدام واجهة برمجة التطبيقات Authz Report Security Event.- انظر PoC بواسطة @daem0nc0re |
SeBackup | مسؤول | أداة طرف ثالث | 1. عمل نسخ احتياطي لخوادم التسجيل HKLM\SAM و HKLM\SYSTEM 2. استخراج تجزئات الحسابات المحلية من قاعدة بيانات SAM 3. تمرير التجزئة (Pass-the-Hash) كعضو في مجموعة Administrators المحلية بدلاً من ذلك، يمكن استخدامه لقراءة الملفات الحساسة. | لمزيد من المعلومات، راجع ملف SeBackupPrivilege.- انظر PoC بواسطة @daem0nc0re |
SeChangeNotify | لا شيء | - | - | الصلاحية مملوكة للجميع. إبطالها قد يجعل نظام التشغيل (Windows Server 2019) غير قابل للإقلاع. |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | لا شيء | أوامر مدمجة | إنشاء ملف hiberfil.sys، قراءته بدون اتصال، البحث عن بيانات حساسة. | يتطلب وصولاً بدون اتصال، مما يؤدي إلى صلاحيات المسؤول على أي حال. - انظر PoC بواسطة @daem0nc0re |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | مسؤول | أداة طرف ثالث | إنشاء رمز عشوائي بما في ذلك صلاحيات المسؤول المحلي باستخدام NtCreateToken.- انظر PoC بواسطة @daem0nc0re | |
SeDebug | مسؤول | PowerShell | تكرار رمز lsass.exe. | النص البرمجي موجود على FuzzySecurity. - انظر PoC بواسطة @daem0nc0re |
SeDelegateSession-UserImpersonate | ? | ? | ? | اسم الصلاحية مقطوع لتضييق العمود. |
SeEnableDelegation | لا شيء | - | - | الصلاحية غير مستخدمة في نظام تشغيل Windows. |
SeImpersonate | مسؤول | أداة طرف ثالث | أدوات من عائلة Potato (potato.exe, RottenPotato, RottenPotatoNG, Juicy Potato, SweetPotato, RemotePotato0), RogueWinRM, PrintSpoofer, إلخ. | على غرار SeAssignPrimaryToken، يسمح من الناحية التصميمية بإنشاء عملية تحت سياق أمان مستخدم آخر (باستخدام مقبض لرمز ذلك المستخدم). يمكن استخدام أدوات وتقنيات متعددة للحصول على الرمز المطلوب. |
SeIncreaseBasePriority | التوفر | أوامر مدمجة | start /realtime SomeCpuIntensiveApp.exe | قد يكون أكثر إثارة للاهتمام على الخوادم. |
SeIncreaseQuota | التوفر | أداة طرف ثالث | تغيير حدود وحدة المعالجة المركزية والذاكرة والتخزين المؤقت إلى قيم تجعل نظام التشغيل غير قابل للإقلاع. | - لا يتم التحقق من الحصص في الوضع الآمن، مما يجعل الإصلاح سهلاً نسبيًا. - يتم استخدام نفس الصلاحية لإدارة حصص التسجيل. |
SeIncreaseWorkingSet | لا شيء | - | - | الصلاحية مملوكة للجميع. يتم التحقق منها عند استدعاء وظائف ضبط إدارة الذاكرة الدقيقة. |
SeLoadDriver | مسؤول | أداة طرف ثالث | 1. تحميل برنامج تشغيل kernel معيب مثل szkg64.sys2. استغلال ثغرة برنامج التشغيل بدلاً من ذلك، قد تُستخدم الصلاحية لإلغاء تحميل برامج تشغيل متعلقة بالأمان باستخدام الأمر المدمج fltMC. مثال: fltMC sysmondrv | 1. ثغرة szkg64 مسجلة كـ CVE-2018-157322. كود استغلال szkg64 تم إنشاؤه بواسطة Parvez Anwar |
SeLockMemory | التوفر | أداة طرف ثالث | تجويع قسم ذاكرة النظام عن طريق نقل الصفحات. | تم نشر PoC بواسطة Walied Assar (@waleedassar) |
SeMachineAccount | لا شيء | - | - | الصلاحية غير مستخدمة في نظام تشغيل Windows. |
SeManageVolume | مسؤول | أداة طرف ثالث | 1. تمكين الصلاحية في الرمز 2. إنشاء مقبض إلى \.\C: مع SYNCHRONIZE | FILE_TRAVERSE3. إرسال FSCTL_SD_GLOBAL_CHANGE لاستبدال S-1-5-32-544 بـ S-1-5-32-5454. الكتابة فوق utilman.exe إلخ. | يمكن إجراء FSCTL_SD_GLOBAL_CHANGE باستخدام هذا الجزء من الكود. |
SeProfileSingleProcess | لا شيء | - | - | يتم التحقق من الصلاحية قبل تغيير (وفي مجموعة محدودة جدًا من الأوامر، قبل الاستعلام) معلمات Prefetch و SuperFetch و ReadyBoost. قد يتم تعديل التأثير، حيث أن التأثير الفعلي غير معروف. |
SeRelabel | تهديد | أداة طرف ثالث | تعديل ملفات النظام بواسطة مسؤول شرعي | انظر: وثائق MIC توفر ملصقات النزاهة حماية إضافية، بالإضافة إلى قوائم التحكم بالوصول المعروفة (ACLs). السيناريوهان الرئيسيان يشملان: - الحماية ضد الهجمات التي تستخدم تطبيقات قابلة للاستغلال مثل المتصفحات وقارئات PDF إلخ. - حماية ملفات نظام التشغيل. وجود SeRelabel في الرمز سيسمح باستخدام وصول WRITE_OWNER إلى مورد، بما في ذلك الملفات والمجلدات. لسوء الحظ، الرمز الذي يحتوي على IL أقل من High سيكون لديه صلاحية SeRelabel معطلة، مما يجعله عديم الفائدة لأي شخص ليس مسؤولًا بالفعل.انظر منشور مدونة ممتاز بواسطة @tiraniddo للحصول على التفاصيل. |
SeRemoteShutdown | التوفر | أوامر مدمجة | shutdown /s /f /m \\server1 /d P:5:19 | يتم التحقق من الصلاحية عندما يأتي طلب الإغلاق/إعادة التشغيل من الشبكة. سيناريو 127.0.0.1 قيد التحقيق. |