
استعلامات وتقنيات SIEM منسّقة للاكتشاف الهجومي لتصعيد الامتيازات في Windows، وACLs المُهيّأة بشكل خاطئ، والخدمات، والمهام المجدولة، والتعريفات (drivers) القابلة للاستغلال.
تقنيات عملية للاستفادة من SIEM كأداة استكشاف هجومية، مما يساعد المدافعين على التفكير كالمهاجمين لتقوية الأمان من الداخل.
انظر أعلاه - ملف queries.md.
سيستمر التحديث عند الحاجة. الفكرة هي الحصول على تغطية طبقة فوق طبقة باستخدام event.codes/event.providers مختلفة.
استعلامات لإدارة الثغرات في الملف: vulnerabilitymanagement.md
نأمل أن تكون قد أعجبتك العرض التقديمي. راسلنا إذا (سأقول عندما) تجد ثغرات باستخدام هذه الطريقة. رسالة بسيطة مثل "أحد استعلاماتكم اصطاد شيئًا جيدًا".. أكثر من كافية :) قم بذلك عبر الالتزام بملف ping.md أو تواصل معنا بطرق بديلة! سنكون سعداء بمشاركة نجاحك!
سيساعدك المستودع على تبني عقلية هجومية. المستودع مخصص لمشاركة المواد والاستعلامات التي تحدثنا عنها في عرضنا التقديمي:
SEC-T سبتمبر 2025 ⭐ https://www.youtube.com/watch?v=5nfL_4ek4dY
x33fcon محادثة محدثة يونيو 2026 تغطي بعض المجالات الجديدة ⭐ https://youtu.be/dD_7AdEoj0k?is=CMp22Q9evBcqZe7L
لقد أدرجنا الأجزاء الأكثر إثارة للاهتمام المتعلقة بـ ACL ولدينا نصائح وحيل.
تحقق من الندوات الرائعة حول تصعيد الصلاحيات المحلية في Windows والأخطاء التكوينية لنقاط نهاية Windows والتي ستساعدك بشكل أكبر. هناك المزيد من المجالات للنظر فيها.. هذه مجرد نقطة البداية. إذا قمت ببناء استعلامات جيدة في مجالات أخرى - يرجى مشاركتها معنا حتى يتمكن المزيد من المجتمع من استخدامها.
الاستعلامات التي تحمل علامة ⭐ ذات صلة عالية إضافية. المواضيع أدناه التي تحمل علامة ⭐ هي محتوى جيد حقًا.
يجب مشاهدتها، خاصة ACL للملفات التنفيذية والخدمات والمهام المجدولة.
الموضوع 2 (برامج مثبتة/مهيأة بشكل غير آمن) والموضوع 5 (خدمات ومهام غير آمنة)
أنشئ استعلام إنشاء عملية باستخدام event.code 1 من SYSMON أو event.code 4688 (أو event.codes للخدمات، المهام المجدولة، تحميل DLL من مجلدات فرعية لـ C-root) ابحث عن التطبيقات المثبتة في قرص C:\ الجذر
C:\myapplication\myapplication.exe
C:\myapp\subfolder\myapp.exe
C:\SoftwareCompany\software.exe
C:\myapplication\myapplication.dll
C:\myapp\subfolder\myapp.dll
C:\SoftwareCompany\software.dll
المشكلة مع التطبيقات المثبتة في مجلد C-root هي أنها تحتوي افتراضيًا على أذونات ACL غير صحيحة تسمح للمستخدمين المصادق عليهم بتعديل (M) المجلد وربما ملفاته. إذا لم يصحح تثبيت البرنامج ACL في عملية التثبيت، فمن المحتمل أن يؤدي ذلك إلى تصعيد الصلاحيات (أكده) إذا كانت خدمة أو عملية أخرى ذات صلاحيات عالية تُنشئ (مثل myapplication.exe أو myapp.exe) من أحد مسارات التثبيت في المجلد الفرعي لـ C-roots.
يمنحك فكرة عن رموز الأحداث التي يجب استخدامها وما ستراه في رمز الحدث نفسه.
لا يتم تخزين واصفات أمان الخدمة كـ SDDL عادي في الـ registry. يعرض الـ registry فقط مفتاح Security الفرعي بصيغة ثنائية عندما:
خلاف ذلك: يتم حساب الواصف من الإعدادات الافتراضية المضمنة في Windows.
داخل هذا المفتاح، ستجد قيمة باسم Security تُظهر الصيغة الثنائية لـ SDDL للخدمة حيث يمكنك البحث للعثور على ACL مهيأ بشكل خاطئ للخدمة نفسها. سجّلها باستخدام Sysmon مهيأ جيدًا.
يمنحك فكرة عن رموز الأحداث التي يجب استخدامها وما ستراه في رمز الحدث نفسه.
UserId حيث S-1-5-18 هو لمستخدم SYSTEM.
GroupId حيث S-1-5-32-544 هو لمجموعة Administrators المحلية.
RunLevel حيث HighestAvailable سيشغل المهمة بأعلى صلاحية ممكنة للمستخدم المحدد. LeastPrivilege سيشغل المهمة بمجموعة صلاحيات أقل (Medium integrity) ولكن إذا كان المستخدم Administrator، فإن تجاوز UAC سيساعدك على تصعيد الصلاحيات.
تحقق من winlog.event_data.TaskContent في event.code 4698 لمزيد من السياق الذي يحتوي على معظم تعريف XML للمهمة المجدولة، ويمنحك سياق
ما يجب أن تفعله Microsoft هو إضافة عنصر <SecurityDescriptor> إلى رمز الحدث 4698. عند تصدير مهمة مجدولة يدويًا يمنحك قيمة SecurityDescriptor في XML المُصدَّر ولكن ليس دائمًا في رمز الحدث نفسه.
"يتم تضمين SecurityDescriptor في الحدث، ولكن يتم تحليله وعرضه فقط في الأحداث 4700 و 4701 (تمكين/تعطيل المهمة)، ونادرًا ما يكون موجودًا في 4698 (إنشاء المهمة)."
داخل هذا المفتاح، ستجد قيمة باسم SD تُظهر الصيغة الثنائية لـ SDDL للمهمة المجدولة حيث يمكنك البحث للعثور على ACL مهيأ بشكل خاطئ للمهمة نفسها. سجّلها باستخدام Sysmon مهيأ جيدًا.
إليك محادثة ممتازة تصف ملفات .sys وتصعيد الصلاحيات باستخدام تقنيات Bring Your Own Vulnerable Driver (BYOVD).
ملخص المحادثة يوضح قيام snowagent.exe بإسقاط ملفات sys إلى C:\Windows\Temp\cpuz143\cpuz143_x64.sys وتصعيد الصلاحيات المحلية باستخدام برنامج التشغيل المعرض للثغرات لـ CVE-2021-21551.
مكتبة OpenSSL DLL (legacy) عند تجميعها إذا لم يتم تحديد معامل --openssldir فإنها تعود افتراضيًا إلى /usr/local/ssl والذي يُترجم في Windows إلى c:/usr/local/ssl، وهو مسار شائع حيث سيتم البحث عن cnf. يضبط الإعدادات الافتراضية للشهادات/المفاتيح ويمكنه أيضًا تحميل/تهيئة محركات أو مزودي التشفير. على Windows، يمكنه الإشارة إلى DLL لمحرك/مزود حتى يتمكن OpenSSL من استخدام وحدات تشفير إضافية. هذا ما يمكننا إساءة استخدامه وتوجيهه إلى dll "ضار". عندما يهيئ تطبيق ما OpenSSL — يجب عليه استدعاء OPENSSL_config(NULL) أو CONF_modules_load_file(...) صراحةً لمعالجة ملف التكوين. إذا لم يفعل ذلك، فلن يتم تحميل DLL المحرك الخاص بك (الضار) من openssl.cnf.
المسارات الشائعة الأخرى حيث قد تبحث التطبيقات عن openssl.cnf هي c:\etc\ssl\ أو مسارات مخصصة قابلة للكتابة من قبل المستخدم.
openssl.cnf يمكنه توجيه OpenSSL لتحميل DLL مخصص كمحرك تشفير:```
openssl_conf = openssl_init
[openssl_init] engines = engine_section
[engine_section] dynamic = dynamic_section
[dynamic_section] SO_PATH = C:\path\to\evil.dll LOAD = EMPTY init = 0
**نموذج ذهني عملي هو:**
العملية تُحمّل libeay32.dll
→ العملية تستدعي OPENSSL_config(NULL)
→ OpenSSL يقرأ openssl.cnf
→ قسم engine يتسبب في محاولة تحميل dll محدد
→ محمّل Windows يقبل dll وتبعياته
***إذا كان أي خطوة مفقودة، لن يتم تحميل DLL الخاص بك.***
قاعدة بسيطة يمكنك استخدامها أثناء التصحيح:
إذا كانت العملية تُحمّل libeay32.dll فقط، فهذا ليس كافياً.
يجب أيضاً أن تستدعي تحميل إعدادات OpenSSL ولا تعطّله.
- يجب أن تستدعي OPENSSL_config لتعمل أو
- CONF_modules_load_file أو
- OPENSSL_no_config غير مُعيّن.
لا فحص للتوقيع. لا تحقق. أي DLL محدد يتم تحميله، إذا استدعت العملية OPENSSL_config.
يمكننا الاستعلام عن أسماء DLL النموذجية المتعلقة بـ OpenSSL لتعداد التطبيقات المحتملة لاختبارها بشكل أكبر. نريد التحقق من OPENSSLDIR الخاص بـ DLL وما إذا كانت العملية تستدعي OpenSSL_conf.
يمكننا التحقق من OpenSSLDIR عن طريق فحص تجزئة الملف مقابل القائمة في هذا المستودع، أو الحصول على نسخة من dll المتعلق بالتشفير وتشغيل openssldir_check على cryptodll (libeay32.dll إلخ).
يمكننا أيضاً استخدام ProcMon للتحقق مما إذا كانت العملية تستدعي أي openssl.cnf. إذا رأينا openssl.cnf في procmon فإننا نعرف بالتأكيد أن التطبيقات تستدعيه. في الطرق الأخرى ما نريد الحصول عليه هو معلومات الإصدار (في حقول event.code 7) ومن أي مسار يتم تحميل ملف openssl.cnf عن طريق فحص تجزئة الملف مقابل القائمة في هذا المستودع، والحصول على نسخة من نفس DLL والقيام بفحص يدوي.
**مثال عند تشغيل openssldir_check.exe**
`openssldir_check32.exe libeay32.dll`
`openssldir_check v1.0 by 0xm1rch`
**المخرجات:**
`SSLeay_version() returned OpenSSL 1.0.1g 7 Apr 2014`
`SSLeay_version() returned OPENSSLDIR: "/usr/local/ssl"`
- ref https://github.com/mirchr/openssldir_check
> مخرجات مشابهة مع openssldir_check معدّل مخصص مُجمّع مسبقاً في هذا المستودع.
> المخرجات تعطي إصدار OpenSSL 1.0.1g وأن OpenSSLDIR مضبوط على **/usr/local/ssl** وهو **مثير للاهتمام للغاية!**
> **Sysmon event.code 7** يعطيك DLLs الخاصة بـ OpenSSL المحمّلة وأيضاً معلومات الإصدار للـ dll في حقل file.pe.file_version.
#### سيناريو التصعيد
1. خدمة تعمل كـ **SYSTEM** وتستخدم OpenSSL
2. DLL الخاص بـ OpenSSL يستدعي openssl_conf ويقرأ `C:\usr\local\ssl\openssl.cnf` عند بدء التشغيل لكن هذا الملف قابل للتعديل أو مفقود
3. إذا كان بإمكان مستخدم منخفض الصلاحيات الكتابة في هذا المجلد فيمكنه:
- إسقاط `openssl.cnf` خبيث
- إسقاط DLL الخاص به
- انتظار إعادة تشغيل الخدمة
- تنفيذ الكود كـ **SYSTEM**
> النتيجة: تصعيد صلاحيات محلي عن طريق زرع openssl.cnf الذي يحمّله dll الخاص بـ openssl في التطبيق وينتهي بتحميل dll "خبيث" مخصص.
### ثغرة مثبّت/مزيل تثبيت NSIS
NSIS هو إطار عمل مثبّت Windows مستخدم على نطاق واسع. المشكلة الموصوفة هنا هي أنه عندما يعمل مثبّت أو مزيل تثبيت NSIS بصلاحيات مرتفعة، فقد يستخدم مجلدات مؤقتة تحت C:\Windows\Temp بطريقة يمكن لمستخدم محلي عادي التدخل فيها.
عملياً، هذا يعني أن مهاجماً منخفض الصلاحيات يمكنه السيطرة على ملفات يثق بها المثبّت، مثل ملفات الإضافات المؤقتة أو ملفات مزيل التثبيت، وتحويل ذلك إلى تنفيذ كود كـ SYSTEM. بعبارة أخرى، الضعف ليس "أن المثبّت يعمل كمسؤول"، بل أن معالجة الملفات المؤقتة في المثبّت يمكن أن تسمح لمستخدم غير مميز باختطاف عملية تثبيت أو إزالة تثبيت مرتفعة الصلاحيات
#### DLLs الشائعة التي تُرى في مثبّتات NSIS
> ملاحظة: بعض هذه هي **إضافات NSIS الرسمية**، بينما البعض الآخر **إضافات طرف ثالث شائعة** غالباً ما تستخدمها مثبّتات NSIS.
> رؤية أحد هذه DLLs هو دليل، لكن ليس إثباتاً مطلقاً، على أن المثبّت يستخدم NSIS. مسار ملف مثل `C:\Windows\Temp\*.tmp\*.dll` هو مؤشر قوي.
| DLL | الغرض النموذجي | النوع | ملاحظات |
|---|---|---|---|
| `System.dll` | يستدعي Win32 APIs ودوال DLL الخارجية من نصوص NSIS | إضافة NSIS رسمية | أحد أقوى المؤشرات على NSIS |
| `nsDialogs.dll` | يبني حوارات وعناصر تحكم مخصصة للمثبّت | إضافة NSIS رسمية | شائعة في مثبّتات NSIS الحديثة |
| `nsExec.dll` | ينفذ أوامر وحدة التحكم ويلتقط المخرجات | إضافة NSIS رسمية | غالباً ما تستخدم لأوامر مساعدة صامتة |
| `StartMenu.dll` | يتيح للمستخدم اختيار مجلد قائمة ابدأ | إضافة NSIS رسمية | شائعة في المثبّتات الكلاسيكية |
| `LangDLL.dll` | يعرض حوار اختيار اللغة | إضافة NSIS رسمية | غالباً ما تظهر في المثبّتات متعددة اللغات |
| `Banner.dll` | يعرض واجهة لافتة/تقدم أثناء خطوات التثبيت | إضافة NSIS رسمية | تجميلية في الغالب |
| `InstallOptions.dll` | ينشئ صفحات مخصصة بنمط أقدم من تعريفات INI | إضافة NSIS رسمية | استُبدلت إلى حد كبير بـ `nsDialogs.dll` |
| `UserInfo.dll` | يسترجع معلومات عن المستخدم/الحساب الحالي | إضافة NSIS رسمية | تستخدم لفحوصات الصلاحيات أو الحساب |
| `Dialer.dll` | يدير سلوك اتصال الطلب الهاتفي/الشبكة | إضافة NSIS رسمية | قديمة في الغالب |
| `Math.dll` | يوفر مساعدات حسابية لنصوص NSIS | إضافة NSIS رسمية | أقل شيوعاً في النصوص الأحدث |
| `NSISdl.dll` | يحمّل الملفات من الإنترنت | إضافة NSIS رسمية | إضافة تحميل أقدم؛ غالباً ما تُستبدل بـ `inetc.dll` |
| `Splash.dll` | يعرض شاشة بداية | إضافة NSIS رسمية | قديمة/تجميلية في الغالب |
| `AdvSplash.dll` | يعرض شاشة بداية أكثر تقدماً | إضافة NSIS شائعة | دور مشابه لـ `Splash.dll` |
| `BgImage.dll` | يعرض صورة خلفية في واجهة المثبّت | إضافة NSIS رسمية / شائعة | تجميلية في الغالب |
| `inetc.dll` | يحمّل الملفات عبر HTTP/FTP | إضافة NSIS طرف ثالث شائعة | شائعة جداً في مثبّتات الويب |
| `InetLoad.dll` | يحمّل الملفات من الإنترنت | إضافة NSIS طرف ثالث شائعة | بديل لـ `NSISdl.dll` / `inetc.dll` |
| `UAC.dll` | يتعامل مع رفع الصلاحيات والسلوك المتعلق بـ UAC | إضافة NSIS طرف ثالث شائعة | دليل قوي متعلق بـ NSIS |
| `AccessControl.dll` | يغيّر ACLs الملفات/المجلدات والأذونات | إضافة NSIS طرف ثالث شائعة | تستخدم في عمليات التثبيت الحساسة للمسؤول |
| `Registry.dll` | عمليات متقدمة على سجل Windows | إضافة NSIS طرف ثالث شائعة | أكثر قدرة من أوامر السجل المدمجة في بعض الحالات |
| `ShellLink.dll` | ينشئ أو يعدّل ملفات اختصار Windows (`.lnk`) | إضافة NSIS طرف ثالث شائعة | مساعد إدارة الاختصارات |
| `SimpleFC.dll` | يقارن الملفات أو يفحص اختلافات الملفات | إضافة NSIS طرف ثالث شائعة | إضافة أداة/مساعد |
| `FindProcDLL.dll` | يكتشف ما إذا كانت عملية ما قيد التشغيل | إضافة NSIS طرف ثالث شائعة | غالباً ما تستخدم قبل الترقيات |
| `KillProcDLL.dll` | ينهي العمليات قيد التشغيل | إضافة NSIS طرف ثالث شائعة | شائعة في مزيلات التثبيت/المحدّثات |
| `NScurl.dll` | يحمّل/ينقل البيانات باستخدام وظائف بنمط curl | إضافة NSIS طرف ثالث شائعة | مساعد شبكة أحدث/أكثر قدرة |
| `ZipDLL.dll` | يتعامل مع استخراج أو إنشاء أرشيف ZIP | إضافة NSIS طرف ثالث شائعة | أداة أرشيف |
| `unzipdll.dll` | يستخرج أرشيفات ZIP | إضافة NSIS طرف ثالث شائعة | إضافة أرشيف أقدم |
| `untgz.dll` | يستخرج أرشيفات `.tar.gz` | إضافة NSIS طرف ثالث شائعة | أقل شيوعاً، لكن تُرى في بعض الحزم |
| `VPatch.dll` | يطبّق تصحيحات/تحديثات ثنائية | إضافة NSIS شائعة | غالباً ما تستخدم في مثبّتات التصحيحات |
| `CabDLL.dll` | يعمل مع أرشيفات CAB | إضافة NSIS شائعة | تُرى في الغالب في سير عمل التغليف الأقدم |
| `nsJSON.dll` | يحلل أو يولّد بيانات JSON | إضافة NSIS طرف ثالث شائعة | أكثر شيوعاً في المثبّتات النصية الحديثة |
| `StdUtils.dll` | أدوات مساعدة عامة الغرض لـ NSIS | إضافة NSIS طرف ثالث شائعة | غالباً ما تستخدم لمساعدات نظام التشغيل/الإصدار/المسار |
| `ExecDos.dll` | ينفذ الأوامر مع تحكم أفضل في I/O والانتظار | إضافة NSIS طرف ثالث شائعة | بديل/امتداد لـ `nsExec.dll` |
#### مؤشرات NSIS أقوى
DLLs التالية تشير بشكل خاص إلى NSIS:
- `System.dll`
- `nsDialogs.dll`
- `nsExec.dll`
- `LangDLL.dll`
- `StartMenu.dll`
- `NSISdl.dll`
- `inetc.dll`
- `UAC.dll`
#### تحذير
بعض المثبّتات تستخرج هذه DLLs مؤقتاً إلى مجلد مثل:
- `$PLUGINSDIR`
لذلك قد تظهر فقط في وقت التشغيل، وليس بجانب ملف المثبّت التنفيذي على القرص.
### ثغرات إعادة توجيه DotLocal
**استغلال إعادة توجيه DotLocal هو مشكلة اختطاف DLL في Windows حيث يتيح مجلد تطبيق قابل للكتابة للمهاجم خداع برنامج شرعي لتحميل DLL خبيث أولاً**
تستغل ثغرة إعادة توجيه DotLocal ميزة إعادة توجيه DLL المدمجة في Windows .local / DotLocal. يدعم Windows إعادة توجيه DLL من خلال احترام ملف أو مجلد باسم مثل App.exe.local؛ عند وجوده، يفحص المحمّل مجلد الملف التنفيذي أو مجلد .local أولاً بحثاً عن DLLs، ويمكن أن ينطبق هذا حتى عند تحديد مسار DLL كامل. توثّق Microsoft هذا كميزة شرعية لإعادة توجيه تحميلات DLL.
لماذا يصبح ثغرة: إذا كان بإمكان مهاجم الكتابة في دليل الملف التنفيذي (مسارات قابلة للكتابة من المستخدم)، أو في دليل استخراج مؤقت يستخدمه عملية ذات صلاحيات مرتفعة، فيمكنه إنشاء مجلد Target.exe.local ووضع DLL خبيث حيث سيفضّله Windows. هذا يحوّل الميزة إلى اختطاف DLL، فتحمّل العملية الموثوقة مكتبة المهاجم بدلاً من المكتبة المقصودة.
#### التحكم اليدوي
يجب التحقيق في العمليات ذات الصلاحيات العالية المحددة في مسارات قابلة للكتابة عالمياً إذا كانت عرضة لإعادة توجيه DotLocal. إذا استعلمت عنها ووجدت تطبيقات. قم بالتحكم الأخير باستخدام ProcMon لمعرفة ما إذا كانت العملية تحاول تحميل مكتبات من مجلد .exe.local المُنشأ. يمكنك استخدام أداة GetSxsPath لتحديد مسار الملف الكامل. يجب أن يُظهر لك Procmon أحداث NAME NOT FOUND / PATH NOT FOUND تشير إلى دليل .exe.local إذا كانت عرضة. بناءً على التقارير العامة، التطبيقات أثناء التثبيت عرضة بشكل خاص أثناء عملية التثبيت.
**قاعدة جيدة هي:**
يمكن لـ ProcMon تقديم دليل على فحص .local، لكن غياب فشل .exe.local مرئي لا يثبت أن التطبيق غير قابل للتأثر. بالنسبة لـ comctl32.dll خاصة، غالباً ما يعكس التتبع ارتباط manifest/SxS بدلاً من بحث DLL بسيط في مجلد التطبيق.
#### إذا حمّل برنامج:
`C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\comctl32.dll`
#### تحقق من هذا:
`C:\Path\To\Application.exe.local\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\comctl32.dll`
**تحديد مسار إعادة التوجيه لاختطاف DLL عبر SxS DotLocal** - https://gist.github.com/rxwx/1717e95e5ec11bea12d33e93a3832508
#### مثبّت DotLocal Wiz
**WiX Burn EXE bootstrapper** الإصدارات المتأثرة >= 4، < 4.0.4 < 3.14.0. يؤثر هذا على أي مثبّت مبني بإطار عمل مثبّت WiX.
يتيح WiX أيضاً للمؤلفين استبدال الأيقونة الافتراضية واستخدام إما واجهة WixStdBA الجاهزة أو تطبيق bootstrapper مخصص، لذلك يمكن تمييز EXE ليبدو كأنه من البائع بدلاً من "WiX"
##### التفاصيل
إذا لم يتم تشغيل الحزمة كمسؤول، يُستخدم مجلد TEMP الخاص بالمستخدم وليس مجلد TEMP الخاص بالنظام. تستطيع أداة مراقبة مجلد TEMP الخاص بالمستخدم بحثاً عن تغييرات وإسقاط DLL الخاص بها في مجلد .be/.Local فوراً عند إنشاء مجلد .be. عندما يرفع محرك burn الصلاحيات، يتلقى DLL الخبيث صلاحيات مرتفعة.
> **Ref** https://github.com/wixtoolset/issues/security/advisories/GHSA-7wh2-wxc7-9ph5
"عملية wixstdba.exe منفصلة هي بصمة جيدة لـ WiX Burn، لكن أقوى مؤشر للإصدارات المتأثرة هو إصدار محرك Burn نفسه: عرضة للتأثر إذا عرّف نفسه بأنه <3.14.0 أو 4.0.0–4.0.3."
## المتطلبات الأساسية
إعداد SYSMON مُهيّأ جيداً لالتقاط الأحداث ذات الاهتمام، مثل event.code 1، 7، 11 و13 للمسارات القابلة للكتابة من المستخدم وخلايا التسجيل المذكورة.
- https://github.com/SwiftOnSecurity/sysmon-config
- https://github.com/olafhartong/sysmon-modular
تمكين التدقيق المتقدم لبعض أحداث Windows.
يجب تمكين Event ID 4688 (إنشاء العملية) بشكل صريح لتسجيل العمليات المُنشأة حديثاً.
بشكل افتراضي، لا يلتقط سطر الأوامر المستخدم لبدء العملية؛ يجب تمكين هذه الميزة تحديداً في سياسة الأمان.
المهمة المجدولة - 4698 غير ممكّنة افتراضياً.
## ACL ⭐
### 🔹 بعض مبادئ ACL الشائعة التي تغطي المستخدمين المسجلين
| المبدأ | الوصف |
|--------------------------|-----------------------------------------------------------------------------|
| **Everyone** | جميع المستخدمين، بما في ذلك الضيوف (وفي إصدارات Windows الأقدم، حتى Anonymous Logon). واسع جداً، عادةً ما يقتصر على صلاحية القراءة. |
| **Authenticated Users** | أي حساب سجّل الدخول بنجاح (محلي أو نطاق). يستثني المستخدمين المجهولين. |
| **BUILTIN\Users** | مجموعة **Users** المحلية على الجهاز. تشمل جميع الحسابات المحلية القياسية (غير المسؤول). |
| **INTERACTIVE** | أي مستخدم سجّل الدخول **محلياً على وحدة التحكم** (لوحة المفاتيح/الجلسة). مفيد للتمييز بين الوصول المحلي والبعيد. |
| **COMPUTERNAME\\Username** | **حساب محلي** محدد على ذلك الكمبيوتر (مثل `LAPTOP01\Bob`). تنطبق الأذونات فقط عندما يسجّل ذلك المستخدم الدخول محلياً. |
| **DOMAIN\\Username** | **حساب نطاق** محدد (مثل `CORP\Alice`). تتبع الأذونات المستخدم عبر جميع الأجهزة المنضمة للنطاق. |
### 📑 سمات ACL (بعض المثير للاهتمام للفحص)
سمات قائمة التحكم بالوصول (ACL) تحدد الإجراءات التي يمكن لمستخدم أو مجموعة تنفيذها على الملفات أو المجلدات.
فيما يلي بعض السمات الرئيسية الجديرة بالملاحظة:
| السمة | الاسم / المعنى | لماذا هي مثيرة للاهتمام |
|-----------|--------------------------|--------------------------------------------------------------------------------------|
| **F** | وصول كامل | يمنح **جميع الحقوق الممكنة** (قراءة، كتابة، تنفيذ، حذف، تغيير الأذونات، أخذ الملكية). مكافئ لتحكم "مستوى المالك". |
| **M** | وصول التعديل | يسمح بقراءة وكتابة وحذف الملفات/المجلدات، لكن **ليس تغيير ACLs** أو الملكية. الأكثر شيوعاً للمستخدمين العاديين. |
| **W** | وصول الكتابة فقط | يمكن للمستخدم **إنشاء أو تعديل المحتوى** لكن لا يمكنه قراءته مرة أخرى. نادر، لكن مفيد في سيناريوهات "صندوق الإسقاط" (مثل تقديم الملفات الآمن). |
| **WD** | كتابة البيانات / إضافة ملف | يسمح تحديداً **بإنشاء أو الكتابة إلى الملفات في دليل**. ضروري للقدرة على إضافة أو الكتابة فوق الملفات داخل مجلد. |
| **AD** | إلحاق البيانات / إضافة دليل فرعي | على الملفات: إلحاق بيانات بنهاية ملف (لا يمكن الكتابة فوقه). على المجلدات: إنشاء أدلة فرعية جديدة بالداخل. |
## الإيجابيات الكاذبة
#### قم باستعلاماتك، اضبطها بدقة وفي النهاية اجعل منها تنبيهات.
قد تحتاج إلى بعض القائمة البيضاء (انظر أدناه للمسارات النموذجية في ProgramData). الفكرة هي الاستعلام عن المسارات النموذجية القابلة للكتابة من المستخدم لكن يحدث أن (الملفات أو المجلدات) لديها ACL صحيح. إذا لم تساعد العقلية الهجومية في تصعيد الصلاحيات - أضفها للقائمة البيضاء.
صفِّ الأقل إثارة للاهتمام: تلك التي لديها ACL صحيح، أسماء ملفات عشوائية (صفِّ المجلد). نريد تقليل الضوضاء والحصول على خط أساس. من المهم القيام بذلك بعد التحقق من أنها ليست ثغرة. حتى لا تفوّت مهمة مجدولة عرضة للتأثر على كل عميل.
## القائمة البيضاء
من المحتمل أن تحتاج إلى إضافة الاستعلامات للقائمة البيضاء. قم بالبحث، اضبط الاستعلامات بدقة واجعل منها تنبيهات لالتقاط الأحداث الجديدة التي لم تفحصها.
##### من المحتمل أن تحتاج للقائمة البيضاء:
C:\ProgramData\Microsoft
C:\ProgramData\Package Cache
C:\ProgramData\Packages
etc.
أخرى قد تحتاج للقائمة البيضاء، والتي قد تكون شائعة، هي برامج التشغيل المتعلقة بالعتاد وما شابه ذلك من الأشياء التي لها أسماء عشوائية..
## المنهجية
لا تنسَ الاستعلام في النطاق الزمني الخاص بـ "فترة الاحتفاظ بالسجلات".
منهجية جيدة هي الاستعلام في البداية عن إطار زمني قصير يزداد تدريجياً.
1) يوم واحد
2) أسبوع واحد
3) أسبوعان
4) شهر واحد
5) شهران
6) إلخ..
قم بالبحث وافحص المثيرة للاهتمام واضبط بدقة وأضف للقائمة البيضاء.. في النهاية اجعل منها تنبيهات لالتقاط الأحداث الجديدة..
## نصائح وحيل
إذا لم يكن استبدال الملف التنفيذي ممكناً بسبب ACL صحيح. افحص أذونات المجلد وما إذا كانت لديك أذونات لكتابة الملفات
افحص ما إذا كان الملف التنفيذي يحاول تحميل أي dlls غير موجودة. إذا كان الأمر كذلك، أنشئها ويكون لديك تنفيذ الكود. إذا لم يكن استبدال الملف التنفيذي ممكناً لأنه عملية قيد التشغيل. افحص التحميل الجانبي المحتمل لـ DLL أو افحص ما إذا كانت لديك كمستخدم عادي أذونات لإعادة تشغيل الخدمة نفسها. طريقة أخرى هي فحص ما إذا كان بإمكانك كمستخدم عادي تنفيذ "إيقاف تشغيل" تفلت منه في اللحظة الأخيرة. بدء إيقاف التشغيل يوقف العمليات وإذا انسحبت منه، قد تتمكن من استبدال الملف التنفيذي للعملية المنتهية. إذا كانت الخدمة في وضع التشغيل التلقائي وليس لديك أذونات لبدء/إيقاف الخدمة، ما يمكنك فحصه هو ما إذا كانت لديك SeShutdownPrivilege وإذا كان الأمر كذلك ابدأ إعادة تشغيل بـ shutdown /r /t 0.
إذا كانت خدمة تولّد العملية وإذا لم يكن ممكناً استبدال الملف التنفيذي، فإن الملف التنفيذي لا يحاول تحميل أي DLLs مفقودة. لا تستسلم - ربما المسار غير مُقتبس ولديك أذونات كتابة ويمكنك استخدام ذلك؟
ابنِ استعلاماتك طبقة فوق طبقة.. لذا افحص إنشاء الخدمة/المهمة المجدولة، افحص إنشاء العملية مع الأصل كخدمات أو عملية متعلقة بالمهمة المجدولة (svchost.exe مع وسيطة Schedule). من الممكن أن بعض الأنظمة تنشئ الخدمة أو المهمة المجدولة لكن مسار الملف التنفيذي إلخ غير موجود وإنشاء العملية لا يحدث أبداً. لكن الثغرة لا تزال موجودة ويمكن إنشاء أحداث مختلفة متعلقة بها.
لتقليل حمل الاستعلام (الأداء) وربما القائمة البيضاء.. قد تكون فكرة جيدة فصل الاستعلامات للعملاء/الخوادم. لذا مجموعة استعلامات تستخدم فقط لنقاط نهاية العملاء ونفس المجموعة تستخدم لنقاط نهاية الخوادم.
إنشاء العملية العام بواسطة SYSTEM هو استعلام عالي القيمة. يلتقط الكثير من السيناريوهات.. إلى جانب الخدمات والمهام المجدولة التي تولّد عمليات فرعية يلتقط أيضاً msiexec.exe الذي يولّد عملية فرعية. يلتقط أيضاً إذا كان ملف تنفيذي من c:\windows\ccmcache يولّد عملية فرعية من مسار قابل للكتابة من المستخدم. إذا كنا سنرتّب الملفات التنفيذية في الثغرة فسأظل أقول أن services.exe متعلق بسوء تكوين البرامج و schtasks أكثر بسوء تكوين المسؤول..
إذا جربت جميع الاستعلامات ولم تنجح. إذا أردت البحث بشكل أعمق، والقيام بعمل أكثر قليلاً - اذهب لكل عملية فرعية لـ services.exe و schtasks (svchost.exe مع وسيطة Schedule)، بغض النظر عن المكان. عدّد المؤسسة وابحث عن تلك الموجودة في المسارات النموذجية المحمية للمسؤول أيضاً (Program Files & Program Files (x86)). إنه أكثر شيوعاً مما تعتقد أن بائعي البرامج يفسدون ACL حتى في المسارات المحمية النموذجية. استخدم أحداث إنشاء العملية والأحداث للخدمات والمهام المجدولة. للمهام المجدولة - استعلم عن كل حقل Command وحقل Argument. قد يشير حقل الوسيطة إلى ملف نصي في مسار قابل للكتابة من المستخدم أو جذر C. قد تشير حقول الأمر إلى ملف تنفيذي له ACL غير آمن. يمكنك أيضاً البحث في C:\PROGRA~3 وهو تمثيل الاسم القصير (DOS) 8.3 لـ C:\ProgramData.
## عمليات إزالة التثبيت
من المحتمل أنه إذا كان بإمكان مستخدم تشغيل تثبيت، فيمكنه أيضاً تشغيل إزالة تثبيت. عمليات إزالة التثبيت مثيرة للاهتمام بغض النظر عن مكان مسار الملف.
إذا لم يكن ACL صحيحاً - فمن المحتمل أن يسبب استبدال الملف التنفيذي مشكلة.
استعلم أيضاً عن إنشاء ملفات إزالة التثبيت النموذجية باستخدام Sysmon event.code:11.
نريد القيام بذلك لالتقاط كل مزيل تثبيت دون الوثوق بأحداث إنشاء العملية. هذا لأن ليس من الشائع أن يقوم المستخدمون فعلاً بإزالة تثبيت التطبيقات المثبتة.. هم فقط لا يهتمون بذلك وبالتالي سيكون من الأسهل تفويت بعض أحداث إزالة التثبيت الموجودة لكن لا يتم تشغيلها أبداً.
### مثال على أسماء عمليات إزالة التثبيت
#### أسماء عامة شائعةuninstall.exe – الأكثر عمومية واستخدامًا على نطاق واسع.
unins000.exe، unins001.exe – شائعة مع مثبّتات Inno Setup.
unwise.exe – غالبًا ما تستخدمها حزم Wise Installer الأقدم.
uninst.exe – نسخة مختصرة، توجد غالبًا في البرامج القديمة.
uninstaller.exe – نسخة أطول قليلًا ووصفية.
remove.exe – تستخدم أحيانًا للمثبّتات البسيطة.
setup.exe (مع المعامل /uninstall أو /remove) – بعض التطبيقات تعيد استخدام ملف المثبّت لإلغاء التثبيت.
appname_uninstall.exe (مثل chrome_uninstall.exe)
update.exe (مع --uninstall) – يُرى مع تطبيقات مثل Slack أو Discord التي تستخدم مثبّتات Squirrel.
#### أنماط تستحق النظر
*_uninstall.exe – العديد من التطبيقات تسبق الاسم باسم التطبيق، مثل teams_uninstall.exe، zoom_uninstall.exe.
*_cleanup.exe – غالبًا ما تحتوي أدوات الإزالة على متغيرات cleanup، مثل driver_cleanup.exe.
*_remover.exe – نمط تسمية آخر شائع لدى مزوّدي مكافحة الفيروسات/البائعين.
## ملفات PE / الثنائية التي تنفّذ كودًا عند التحميل
### فكّر في الاستعلام عن العناصر الموجودة في القائمة في سجلات windows/sysmon وكذلك سجلات procmon
| Extension | PE Type | Code execution on load? | Entry point / mechanism | Notes |
|-----------|---------|--------------------------|-------------------------|-------|
| `.exe` | PE executable | Yes | PE `AddressOfEntryPoint` | يبدأ تنفيذ الكود عند تشغيل الملف التنفيذي |
| `.dll` | PE DLL | Yes | `DllMain` / TLS callbacks | يمكن تنفيذ الكود عند تحميل DLL داخل عملية |
| `.sys` | PE kernel driver | Yes | `DriverEntry` | ينفّذ كود تهيئة برنامج التشغيل عند تحميل برنامج التشغيل |
| `.scr` | PE executable | Yes | PE `AddressOfEntryPoint` | هو أساسًا ملف تنفيذي؛ `.scr` مجرد اصطلاح |
| `.cpl` | PE DLL | Yes | `DllMain` + `CPlApplet` | يُحمَّل بواسطة البنية التحتية لوحة التحكم |
| `.ocx` | PE DLL / ActiveX | Yes | `DllMain` + COM/ActiveX entry points | تحدث تهيئة DLL عند التحميل |
| `.drv` | PE DLL / legacy driver | Usually | `DllMain` أو نقطة دخول خاصة ببرنامج التشغيل | يعتمد على نوع `.drv` المحدد |
| `.efi` | PE/COFF EFI binary | Yes | EFI entry point | ينفّذ الكود عند تحميله بواسطة UEFI |
| `.ax` | PE DLL | Yes | `DllMain` + DirectShow interfaces | تحدث تهيئة DLL عند التحميل |
| `.acm` | PE DLL | Yes | `DllMain` + ACM entry points | يُحمَّل كبرنامج ترميز Audio Compression Manager |
| `.ime` | PE DLL | Yes | `DllMain` + IME entry points | تحدث تهيئة DLL عند التحميل |
| `.tsp` | PE DLL | Yes | `DllMain` + TAPI entry points | تحدث تهيئة DLL عند التحميل |
| `.pyd` | PE DLL | Yes | `DllMain` + Python module initialization | إضافة Python أصلية |
| `.node` | PE DLL | Yes | `DllMain` + Node.js addon initialization | إضافة Node.js أصلية |
| `.xll` | PE DLL | Yes | `DllMain` + Excel XLL entry points | يُحمَّل بواسطة `EXCEL.EXE` |
| `.wll` | PE DLL | Yes | `DllMain` + Word add-in loading | يُحمَّل بواسطة `WINWORD.EXE` |
## ملفات السكربتات
### فكّر في الاستعلام عن العناصر الموجودة في القائمة
| Extension | Language / Type | Purpose / Usage | Execution Context |
|-----------|---------------------------|---------------------------------------------------------|------------------------------------------------------------|
| .bat | Batch Script | مهام أتمتة سطر الأوامر القديمة، سكربتات بسيطة | `cmd.exe` (Command Prompt) |
| .cmd | Batch Script (NT style) | مشابه لـ `.bat`، مفضّل على الأنظمة المبنية على NT | `cmd.exe` (Command Prompt) |
| .vbs | VBScript | مهام الأتمتة، سكربتات تسجيل الدخول، سكربتات المسؤولين | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .vbe | VBScript (encoded) | نسخة مشفّرة من `.vbs` لأغراض التمويه | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .ps1 | PowerShell Script | مهام الأتمتة والتهيئة الحديثة في Windows | PowerShell (`powershell.exe`, `pwsh.exe`) |
| .js | JScript | نسخة مايكروسوفت من JavaScript لمهام WSH | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .jse | JScript (encoded) | نسخة مشفّرة من `.js` لأغراض التمويه | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .wsf | Windows Script File (XML) | خلط VBScript وJScript وسكربتات أخرى بصيغة XML | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .wsh | Windows Script Host Settings | إعدادات التهيئة لسكربتات WSH | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .jar | Java Archive | تطبيقات Java المحزّمة في ملف واحد | `java.exe` (console) / `javaw.exe` (no console window) |
| .hta | HTML Application (HTA) | سكربتات Windows بواجهة رسومية باستخدام HTML وCSS وJScript/VBScript | `mshta.exe` (Microsoft HTML Application Host) |
| .com | MS-DOS Application / DOS Executable | برامج تنفيذية قديمة، أدوات سطر أوامر صغيرة | يُنفَّذ مباشرة كبرنامج؛ على Windows الحديثة، تعمل برامج .com الكلاسيكية 16-بت عبر NTVDM على Windows 32-بت، ولا تُدعم أصليًا على Windows x64/ARM |
| .chm | Compiled HTML Help | ملفات مساعدة/توثيق دون اتصال لبرامج Windows | `hh.exe` (Microsoft HTML Help Viewer) |
## سكربتات بدء التشغيل/تسجيل الدخول
سكربتات بدء التشغيل وتسجيل الدخول (وكذلك إيقاف التشغيل أو تسجيل الخروج) هي سكربتات أتمتة تعمل (gpscript.exe) تلقائيًا على أجهزة الكمبيوتر المنضمة إلى النطاق أو عند تسجيل دخول المستخدمين، وعادةً ما تُنشر باستخدام كائنات نهج المجموعة (GPOs) من وحدة تحكم النطاق في بيئة Windows Active Directory.
بدء التشغيل/إيقاف التشغيل
- تعمل بصلاحية: حساب Local System (صلاحيات عالية).
تسجيل الدخول/تسجيل الخروج
- تعمل بصلاحية: المستخدم الحالي (صلاحيات عالية إذا كان مسؤولًا).
### الاستخدامات الشائعة:
- تعيين محركات الشبكة لجميع المستخدمين
- تثبيت البرامج
- تطبيق إعدادات على مستوى النظام
- بدء أو تهيئة الخدمات
- تشغيل سكربتات أو ملفات تنفيذية
### خلايا التسجيل المتأثرة
عند تشغيل سكربت بدء التشغيل/تسجيل الدخول عبر GPO:
| Hive / Path | Purpose |
|-------------|---------|
| HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon | يتتبع سكربتات تسجيل دخول المستخدم، وترتيب تنفيذها، وحالتها، ووقت آخر تشغيل، ومعاملاتها. |
| HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logoff | تتبع مماثل لسكربتات تسجيل الخروج. |
| HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup | معلومات تتبع سكربتات بدء التشغيل (تنطبق على جميع المستخدمين). |
| HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown | معلومات سكربتات إيقاف التشغيل. |
#### ابحث عن مسارات قابلة للكتابة من المستخدم للسكربتات والملفات التنفيذية في العملية الفرعية لـ gpscript.exe، أو مشاركات شبكة قابلة للكتابة أو عامة (SYSVOL).
اقرأ السكربتات التي تُشغَّل وابحث عن أي أخطاء في التهيئة مثل مسارات أخرى قابلة للكتابة من المستخدم أو مسارات غير موجودة أو معلومات حساسة. ابحث عن كلمات مرور محتملة الاستخدام (net use z: \\server\share /user:domain\username password) أو معلومات حساسة أخرى.
**فئات أخطاء تهيئة سكربت تسجيل الدخول**
- SS1 – بيانات اعتماد بنص صريح
- SS2 – أذونات غير آمنة (سكربت تسجيل دخول قابل للتعديل من مستخدم عادي)
- SS3 – مشاركات غير موجودة (قد يكون من الممكن إنشاؤها من مستخدم عادي)
- SS4 - مسؤولون لديهم سكربتات تسجيل دخول
**أخطاء تهيئة سكربت تسجيل الدخول**
1. SS1 - بيانات اعتماد بنص صريح داخل سكربت تسجيل دخول
2. SS2 - أذونات مشاركة غير آمنة
3. SS2 - أذونات ملفات غير آمنة
4. SS2 - أذونات NETLOGON/SYSVOL غير آمنة
5. SS2 - أذونات سكربت تسجيل دخول غير آمنة
6. SS2 - أذونات سكربت تسجيل دخول GPO غير آمنة
7. SS3 - مشاركات غير موجودة
8. SS4 - مسؤولون لديهم سكربت تسجيل دخول
9. SS4 - مسؤولون لديهم سكربتات تسجيل دخول معيّنة من مشاركة غير موجودة
## MSIExec / إصلاحات MSI
##### لم يعطِ اختبارنا أي نتيجة في تصعيد الصلاحيات في السيناريوهات التي تمكّنا فيها من تشغيل edge والخروج إلى موجّه أوامر cmd. السبب على الأرجح هو أن المتصفحات المبنية على chromium تنتحل شخصية المستخدم/تقيّد عملية العرض لتعمل كـ SYSTEM ولا تسمح لـ internet explorer/edge بتشغيل cmd أو عمليات أخرى كمستخدم SYSTEM. نعتقد أنه إذا لم يكن هناك متصفح غير مبني على chromium مثبّتًا (مثل firefox) أو إصدارات أقدم. فقد يكون تصعيد الصلاحيات ممكنًا إذا تمكنت من تشغيل مثل هذه العملية والخروج منها إلى موجّه أوامر.
إذا أردت تعداد الأحداث المحتملة المتعلقة بهذا، فاستعلم عن msiexec.exe كعملية أصل مع cmd.exe أو conhost.exe أو powershell.exe أو pwsh.exe كعملية فرعية.
تواصل مع المستخدمين الذين تعطي استعلاماتك نتائج منهم واسألهم عمّا ثبّتوه/أصلحوه. يمكنك أيضًا التحقق من event.provider: "MsiInstaller" و event.code: (1033 OR 11707) أو ما شابه للحصول على مزيد من السياق حول أي مثبّت msi تم تثبيته في نفس الطابع الزمني تقريبًا.
يمكنك أيضًا تجربة هذا بنفسك في Software Center وتثبيت التطبيقات والبحث عن موجّهات أوامر يمكنك إيقافها مؤقتًا قبل أن تختفي بتحديد قسم في النافذة. ثم اخرج باستخدام نفس التقنيات المذكورة في الرابط أدناه.
##### استعلام مثال```
(event.provider: "Microsoft-Windows-Sysmon" AND event.code: 1 AND winlog.event_data.IntegrityLevel: System AND process.parent.name: msiexec.exe AND process.name: (cmd.exe OR conhost.exe OR powershell.exe OR pwsh.exe))
OR
(event.provider: Microsoft-Windows-Security-Auditing AND event.code: 4688 AND winlog.event_data.TokenElevationType: "%%1936" AND winlog.event_data.MandatoryLabel: "S-1-16-16384" AND process.parent.name: msiexec.exe AND process.name: (cmd.exe OR conhost.exe OR powershell.exe OR pwsh.exe))
في الحالات التي تكون فيها بيانات التتبع المتاحة محدودة، يمكن للباحثين جمع نشاط أعمق على المضيف باستخدام تسجيل الإقلاع في Process Monitor. يستطيع Procmon التقاط نشاط النظام منخفض المستوى مثل إنشاء العمليات، والوصول إلى الملفات، وعمليات السجل، وتحميل برامج التشغيل، ونشاط الخدمات بدءًا من مرحلة مبكرة جدًا في عملية إقلاع Windows في Microsoft Windows. يمكن تصدير سجل الإقلاع الملتقط إلى CSV وتحويله إلى NDJSON وإدخاله في SIEM لمزيد من البحث والتحليل. يمكن أن يوفر هذا النهج رؤية إضافية عند التحقيق في تقنيات رفع الصلاحيات أو الاستمرارية التي قد لا تظهر في مصادر التسجيل القياسية. راجع قسم procmon لمزيد من المعلومات.
لإظهار مدى شيوع ذلك مع البرامج الخارجية المُهيأة بشكل خاطئ.
| CVE | Vendor / Product | Path(s) / File(s) | Loads as SYSTEM | CWE | Notes |
|---|
| CVE-2025-42598 | Epson Printer Drivers | C:\ProgramData\EPSON\EPSON Series Dlls | spoolsv.exe / PrintIsolationHost.exe | CWE-276 | DLL overwrite → SYSTEM |
| CVE-2025-64669 | Windows Admin Center | C:\ProgramData\WindowsAdminCenter\Updater | WindowsAdminCenterUpdater.exe | CWE-276 | DLL Hijacking |
| CVE-2019-19363 | Ricoh Printer Drivers | C:\ProgramData\RICOH_DRV\ | PrintIsolationHost.exe | CWE-264* | DLL planting → SYSTEM |
| CVE-2025-1729 | Lenovo TrackPoint | C:\ProgramData\Lenovo\TPQM\Assistant | TPQMAssistant.exe | DLL Hijacking, Schtasks | |
| CVE-2025-47962 | Microsoft Windows SDK | C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin | cryptsp.dll | CWE-284 | DLL Hijacking, Service |
| CVE-2025-11772 | Synaptics Fingerprint | C:\ProgramData\Synaptics\CheckFPDatabase.exe | WTSAPI32.dll etc | DLL Hijacking USB Co-Installers | |
| CVE-2020-5896 | BIG IP F5 Client | C:\Windows\Temp\f5tmp\cachecleaner.exe | cachecleaner.dll | CWE-276 | DLL planting → SYSTEM |
| CVE-2020-13885 | Citrix Workspace App | %PROGRAMDATA%\Citrix\Citrix Workspace ####\webio.dll | Citrix services / uninstall | CWE-276 | DLL planting → SYSTEM |
| CVE-2018-17778 | SnowAgent | C:\Windows\Temp\cpuz143\cpuz143_x64.sys | snowagent.exe CPUID SDK | SYS file planting → SYSTEM | |
| CVE-2026-3991 | Symantec DLP Agent for Windows | C:\VontuDev\workDir\openssl\output\x64\Release\SSL\openssl.cnf | edpa.exe | LPE openssl.cnf | |
| CVE-2025-8069 | AWS Client VPN | C:\usr\local\windows-x86_64-openssl-localbuild\ssl | LPE openssl.cnf | ||
| CVE-2025-2272 | ForcePoint Endpoint DLP | C:\usr\local\ssl\openssl.cnf | ENdPointClassifier.exe | LPE openssl.cnf | |
| CVE-2025-13176 | ESET Inspect EDR | C:\src\vcpkg\packages\openssl_x64-windows-static\openssl.cnf | ElConnector.exe | LPE openssl.cnf | |
| CVE-2024-6975 | Cato Client | C:\Work\WinVPNClient\ThirdParty\openssl\openssl-3.1.1\VS2022\SSL64\openssl.cnf | winvpnclient.cli.exe | LPE openssl.cnf | |
| CVE-2023–6338 | Lenovo UDC | C:\J\w\prod\BUildSIngleReference....... | UDClientService.exe | LPE openssl.cnf | |
| CVE-2023-41840 | FortiClient Windows OpenSSL component | CWE-426 | openssl.cnf | ||
| CVE-2021-21999 | VMWare Workstation tools | LPE openssl.cfg | |||
| CVE-2020-8224 | Nextcloud windows desktop application | C:\usr\local\ssl\openssl.cnf | nextcloud.exe | LPE openssl.cnf | |
| CVE-2020–26050 | SaferVPN | C:\etc\ssl\openssl.cnf | C:\Program Files (x86)\SaferVPN for Windows\bin\openvpn.exe | LPE openssl.cfg | |
| CVE-2019-12572 | PIA Windows service | C:\etc\ssl\openssl.cnf | pia-service.exe | LPE openssl.cnf | |
| CVE-2024-34474 | Clario for Desktop | C:\ProgramData\Clario\ | ClarioService.exe | CWE-276 | Loads DLLs from ProgramData |
| CVE-2022-34043 | NoMachine (Windows) | C:\ProgramData\NoMachine\var\uninstall\ | Uninstaller | CWE-732 | DLL hijack in uninstall folder |
| CVE-2020-15145 | Composer-Setup (Windows) | C:\ProgramData\ComposerSetup\bin\composer.bat (+ DLLs) | Maintenance/repair actions | CWE-276 | Writable bin → LPE |
| CVE-2019-14935 | 3CX Phone for Windows | %PROGRAMDATA%\3CXPhone for Windows\PhoneApp\ | Startup / elevated context | CWE-732 | Everyone:Full Control |
| CVE-2024-54131 | Kolide Launcher | C:\ProgramData\Kolide\Launcher-[ID]\data\ | Launcher service | CWE-276 | Weak perms → DLL load |
| CVE-2021-28098 | Forescout SecureConnector | %PROGRAMDATA%\ForeScout SecureConnector\ | SecureConnector service | CWE-264* | Writable log → symlink → SYSTEM |
| CVE-2019-15752 | Docker Desktop (Windows) | %ProgramData%\DockerDesktop\version-bin\docker-credential-wincred.exe | Docker auth flow | CWE-276 | EXE planting → SYSTEM |
| CVE-2022-39959 | Panini Everest Engine | %PROGRAMDATA%\Panini\Everest Engine\EverestEngine.exe | Engine service (SYSTEM) | CWE-276 | Unquoted path → EXE planting |
| CVE-2018-10204 | PureVPN (Windows) | %PROGRAMDATA%\purevpn\config\config.ovpn | openvpn.exe (service) | CWE-276 | Writable config → DLL load |
| CVE-2020-27643 | 1E Client (Windows) | %PROGRAMDATA%\1E\Client\ | Client service | CWE-276 | Writable dir → LPE |
| CVE-2020-1985 | Palo Alto Secdo Agent | C:\ProgramData\Secdo\Logs\ | Secdo service | CWE-276 | Incorrect default perms |
| CVE-2024-36495 | Faronics WINSelect | C:\ProgramData\WINSelect\WINSelect.wsd / Faronics\StorageSpace\WS\WINSelect.wsd | WINSelect service | CWE-276 | Config writable → LPE |
| CVE-2024-20656 | Visual Studio Setup WMI | C:\ProgramData\Microsoft\VisualStudio\SetupWMI\MofCompiler.exe | Repair action (SYSTEM) | CWE-276 | Replace binary → SYSTEM |
| CVE-2025-3224 | Docker Desktop (Windows) | C:\ProgramData\Docker\config\ | Updater (high priv) | CWE-276 | Creatable/deletable path → LPE |