Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-97798-exploit — CVE-2026-97798 Windows Error Reporting - حقن أوامر للوصول إلى SYSTEM | Kitploit
أدوات/GitHubGitHub/g4sp4rcs/cve-2026-97798-exploit
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالما بعد الاستغلالالفريق الأحمرتطوير الحمولات
GitHubg4sp4rcs/cve-2026-97798-exploit

CVE-2026-97798-exploit

CVE-2026-97798 Windows Error Reporting - حقن أوامر للوصول إلى SYSTEM

عرض المستودع
425منذ 7 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-97798 — حقن وسائط في Windows Error Reporting للوصول إلى SYSTEM

[!WARNING] هذا المستودع مخصص لأبحاث الثغرات الأمنية المصرّح بها والتحقق المختبري المُتحكَّم به. يفشل إثبات المفهوم بشكل آمن (fails closed) عندما يتعذّر عليه تحديد تطبيق واحد متوافق لـ faultrep.dll!SpawnDataCollector.

CVE-2026-97798 هي ثغرة رفع صلاحيات محلية في مسار Time Travel Debugging الخاص بـ Windows Error Reporting (WER). يمكن لطالب غير متمتع بالامتيازات الحفاظ على صيغة سطر أوامر يتحكم بها المهاجم عبر حدود امتيازات WER. يقوم المجمِّع المرفوع الصلاحيات لاحقًا بدمج هذا الإدخال في سطر أوامر TTTracer.exe دون الحفاظ على حدود الوسائط. وبالتالي تُفسَّر مفاتيح -out و-launch المحقونة بواسطة مسجّل TTD كخيارات للمسجّل، مما يسمح بتشغيل ملف تنفيذي يختاره المهاجم باستخدام رمز المجمِّع المرفوع الصلاحيات.

يحوّل إثبات المفهوم أحادي الملف المضمّن هذا الأصل البدائي إلى صدفة تفاعلية بصلاحيات NT AUTHORITY\SYSTEM. وقد تم التحقق منه من حساب مستخدم قياسي ومن حساب مسؤول متوسط التكامل ومُرشَّح بواسطة UAC.

صدفة SYSTEM تفاعلية

فيديو

محتويات المستودع

المسارالوصف
src/CVE-2026-97798.cppمصدر الاستغلال الكامل أحادي الصورة
bin/CVE-2026-97798.exeنسخة مخبرية x64 قابلة لإعادة الإنتاج
build.ps1نص بناء حتمي باستخدام LLVM-MinGW
assets/system-shell.pngإثبات whoami الملتقط من الجهاز الافتراضي المعزول

لا توجد ملفات PDF للتقرير مضمّنة بعد؛ لا يزال البحث المطوّل قيد التحرير.

السبب الجذري

يعبر التدفق المعرّض للثغرة عدة مكوّنات:

low/medium-integrity process
  -> faultrep.dll!CElevatedDataCollection::ControlTimeTravelDebugging
  -> faultrep.dll!SpawnDataCollector
  -> Windows Error Reporting service (elevated collector)
  -> CDataCollection::ControlTimeTravelDebugging
  -> TtdControl::LaunchRecordingProcess
  -> TTTracer.exe / TTDRecord.dll command-line parser
  -> attacker-controlled -launch target

يحتوي الطلب على قيمة Process تبدأ بملف تنفيذي مشروع لكنها تُلحق مفاتيح TTD إضافية. يطبّق التنفيذ المصاب قائمة حظر ضعيفة تعتمد على مطابقة الاسم الدقيق، ثم يُدرج سلسلة العملية مباشرةً في سطر أوامر المسجّل ذي الصلاحيات العالية. ولأن قيمة العملية لا تُسلسَل كوسيط واحد، فإن المسافات فيها تصبح فواصل وسائط عندما يحلّل TTTracer الناتج.

من حيث المفهوم، فإن الجزء المُحقَن هو:

Process=CVE-2026-97798-payload.exe
  -out ..\..\Users\Public\Documents\CVE97798\trace
  -launch ..\..\Users\Public\Documents\CVE97798\CVE-2026-97798-payload.exe
  --payload;

المسارات النسبية مقصودة. يُدرج WER أيضًا هذه البيانات في اسم مسار .ttdconfig؛ إذ تُدخل بادئة محرك مطلقة نقطتين وتفشل بـ ERROR_INVALID_NAME. يتجنب المسار بأسلوب الاجتياز هذا التعارض في المحلّل مع التطبيع إلى الدليل العام المُتحكَّم به.

هذه مشكلة حقن وسائط (CWE-88)، وليست حقن أوامر shell تقليديًا. لا حاجة إلى cmd.exe /c عند نقطة الضعف: إذ يفسّر TTTracer نفسه المفاتيح المحقونة.

تصميم PoC أحادي الملف

لا يتطلب الاستخدام العادي سوى CVE-2026-97798.exe. تعيد صورة PE نفسها الدخول إلى ذاتها في عدة أوضاع داخلية:

  1. تحلّل جدول استثناءات PE64 المحمّل وتستخرج faultrep.dll!SpawnDataCollector ديناميكيًا من الدالة الفريدة التي تحتوي على opcode جامع WER وثوابت البروتوكول. لا يُضمَّن أي RVA خاص ببناء معيّن.
  2. تبدأ عميل وحدة التحكم المدمج لديها وتنشئ حالة الإثبات الخاصة بها.
  3. تحصل على جامع WER المرفوع الصلاحيات وتُرسل طلب TTD المصمَّم.
  4. يُشغّل TTTracer الصورة نفسها في وضع الحمولة.
  5. تكشف الحمولة cmd.exe حقيقيًا عبر أنابيب مسماة، ما يتيح لوحدة تحكم مرئية في جلسة المستخدم التفاعل مع shell أُنشئ في الجلسة 0.

يبقى الملف الموزَّع ملف EXE واحدًا. في وقت التشغيل، يُهيّئ نسختين مستعارتين من الصورة نفسها: واحدة لوحدة التحكم المدمجة وأخرى للحمولة المرفوعة الصلاحيات. تُستخدم النسخة المستعارة للحمولة أيضًا كهدف -onlaunch الخاص بـ TTTracer، بحيث يراقب المسجّل العملية التي يُشغّلها فعليًا ويخرج عند انتهاء مرحلة الحمولة القصيرة تلك. يعيد PoC تعيين حالة TTD القديمة قبل كل تشغيل ومرة أخرى بعد نجاح الحمولة، ما يمنع تشغيلًا متقطعًا من إفشال التنفيذ التالي بـ HRESULT 0x80070032.

بالنسبة لمستخدم عادي، يصل مسار الجامع المرفوع الصلاحيات إلى SYSTEM مباشرة. أما بالنسبة لمسؤول مُرشَّح عبر UAC، فيُشغّل WER الحمولة أولًا باستخدام رمز المسؤول المرتفع المرتبط—يبقى اسم الحساب دون تغيير، لكن TokenIsElevated=true. ثم يعيد PoC الدخول إلى الصورة نفسها بصلاحيات SYSTEM. يحاول أولًا إنشاء عملية برمز SYSTEM مباشرة، ويستخدم إدخالًا قصير الأجل في Task Scheduler كخيار احتياطي؛ ويُحذف المهمة الاحتياطية فورًا بعد التشغيل.

البيئة المتحقَّق منها

المكوّنالقيمة المتحقَّق منها
نظام التشغيلWindows 11 24H2 x64، البناء 26100.9550
faultrep.dll المصاب10.0.26100.9549
مقارنة الإصدار المُصلَحfaultrep.dll 10.0.26100.9711
TTTracer / TTDRecord1.11.580.0
فحص المحلّل الديناميكي9549: RVA 0x4CEB0؛ 9711: RVA 0x4E40C
SHA-256 الخاص بـ PoCC7B8FAFB132D69E9BD5A398AE183107155129C7080A87D56EFE55572450B4147

يمرّ المحلّل على جدول استثناءات x64 ويتطلب دالة واحدة تحتوي على إعداد الإطار الكبير الخاص بالجامع، وopcode الطلب 0xD0000002، وحجم الرسالة 0x578، ومهلة الانتظار 10000، وتعيينات أخطاء الانتظار/الخدمة الثلاثة المتوقعة. وقد جرى التحقق منه مقابل كلا بنائي faultrep.dll المرفقين، واختباره سلبيًا مقابل صور PE غير ذات صلة. لا يُخزَّن أي رقم بناء أو RVA. إذا غيّر بناء مستقبلي ذلك التنفيذ بما يكفي لجعل المطابقة غامضة أو غير مكتملة، يتوقف PoC قبل إجراء أي استدعاء غير مباشر.

الاستخدام

استخدم لقطة قابلة للتخلص منها من البناء المصاب. من PowerShell أو موجه أوامر غير مرفوع الصلاحيات:

.\bin\CVE-2026-97798.exe

عند النجاح، تطبع وحدة التحكم المدمجة:

[CVE-2026-97798] Exploit shell token:
nt authority\system

يُكتب الدليل القابل للقراءة آليًا أدناه:

C:\Users\Public\Documents\CVE97798\system-proof.txt

يمكن أيضًا اختبار أداة التحليل مقابل ملف DLL x64 دون اتصال دون إطلاق الثغرة الأمنية:

.\bin\CVE-2026-97798.exe --resolve C:\path\to\faultrep.dll

للتحقق المسبق من ملف DLL الخاص بالنظام المثبّت، أيضًا دون إثارة المسار المعرّض للثغرة:

.\bin\CVE-2026-97798.exe --preflight

أنتج التحقق الناجح من المسؤول المفلتر:

cve=CVE-2026-97798
user=NT AUTHORITY\SYSTEM
is_system=true
is_elevated=true
payload_session=0
shell_session=0
spawn_error=0

البناء

ثبّت سلسلة أدوات LLVM-MinGW بنية x64 وضع x86_64-w64-mingw32-clang++.exe في PATH، أو مرّر مساره المطلق صراحةً:

.\build.ps1

# or
.\build.ps1 -Compiler C:\toolchains\llvm-mingw\bin\x86_64-w64-mingw32-clang++.exe

البناء ثابت ويكتم طابع وقت رابط PE، لذا فإن مدخلات المصدر وسلسلة الأدوات المتطابقة تنتج نفس تجزئة الملف التنفيذي.

التنظيف

أغلق وحدة تحكم PoC أولاً. من وحدة تحكم مخبرية مرفوعة الصلاحيات، إذا ظلت حالة TTD نشطة:

Stop-Process -Name TTTracer,TTDInject -Force -ErrorAction SilentlyContinue
C:\Windows\System32\TTTracer.exe -cleanup
Remove-Item -Recurse -Force C:\Users\Public\Documents\CVE97798

يُعد استرجاع لقطة الجهاز الظاهري القابل للتخلص منه خطوة التنظيف النهائية المفضلة.

الكشف والمعالجة

تشمل بيانات القياس المفيدة عمليات تنفيذ غير متوقعة لـ TTTracer.exe من WER، وسطور أوامر تحتوي على مفاتيح -onlaunch أو -out أو -launch متكررة أو غير معتادة، وعمليات فرعية للمسجّل تُطلق من أدلة قابلة للكتابة من قبل المستخدم. اربط نشاط WER وسطور أوامر TTTracer ومعرّف العملية المنشئة (creator PID) ورفع مستوى الرمز المميز (token elevation) وتجزئات الملفات بدلاً من التنبيه على TTTracer وحده.

ثبّت تحديث Microsoft الذي يحتوي على إصدار faultrep.dll رقم 10.0.26100.9711 أو تحديث لاحق يحل محله. يعطّل التنفيذ المصحّح مسار طلب TTD القديم قبل وصول البيانات غير الموثوقة إلى المسجّل.

المراجع

تنزيل الأداة