Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
acCOMplice — أدوات لاكتشاف واستغلال اختطافات COM | Kitploit
أدوات/GitHubGitHub/nccgroup/accomplice
آليات الاستمراريةما بعد الاستغلالالفريق الأحمرتطوير الحمولات
GitHubnccgroup/accomplice

acCOMplice

أدوات لاكتشاف واستغلال اختطافات COM

عرض المستودع
33951منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

acCOMplice

شريكك في اختطاف COM

المؤلف: David Tulis (@kafkaesqu3)

نظرة عامة

يحتوي هذا المستودع على نماذج أكواد وإثباتات مفاهيم لاستكشاف اختطاف COM. اختطاف COM هو تقنية استغلال لاحقة على نظام Windows، ويمكن استخدامها لتحقيق الثبات (persistence) أو التهرب من الدفاع (defense evasion).

لمزيد من المعلومات حول واجهة COM، وكيفية العثور على نقاط الاختطاف، وتقنيات إساءة استخدام الاختطاف، يُرجى الرجوع إلى العرض المقدَّم في Derbycon 9، COM Hijacking Techniques.

  • الشرائح: https://www.slideshare.net/DavidTulis1/com-hijacking-techniques-derbycon-2019
  • العرض: https://www.youtube.com/watch?v=pH14BvUiTLY

المشروع

  • COMHijackToolkit: سكربت Powershell يحتوي على سكربتات مساعدة للتعامل مع اختطافات COM. أبرز المزايا:
    • Extract-HijackableKeysFromProcmonCSV: يحلل ملف CSV مُصدَّر من Procmon للبحث عن الكائنات القابلة للاختطاف
    • Hijack-CLSID: يختطف CLSID باستخدام DLL معيّن
    • Hijack-MultipleKeys: يختطف عدة CLSIDs في وقت واحد باستخدام DLL معيّن. هذا مفيد للعثور على CLSIDs التي يتم تفعيلها بشكل متكرر
  • InjectionTemplates: 3 قوالب تم استعراضها في عرض Derbycon
    • إنشاء عملية جديدة باستخدام CreateProcess
    • الحقن في عملية قائمة باستخدام CreateRemoteThread
    • قياس أعمار الخيوط في العملية الحالية باستخدام CreateThread
  • COMinject: إثبات مفهوم يوضح كيف يمكن استخدام اختطافات COM لتنفيذ عمليات حقن/ترحيل بين العمليات
  • masterkeys.csv: بعض المفاتيح لتجربتها
  • procmon-filters: فلاتر لـ Procmon للمساعدة في تحديد الاختطافات واستغلالها

أمثلة

COMHijackToolkit

سكربت Powershell يحتوي على سكربتات مساعدة للتعامل مع اختطافات COM. أبرز المزايا:

عرض جميع CLSIDs لكائنات COM وموقع التنفيذ على القرص

root@kitploit:~
$keys = Get-CLSIDRegistryKeys -RegHive HKCR
$results = $keys | % {$guid = Extract-GUIDFromText $_; Map-GUIDToDLL -guid $guid 2> $null }

إجراء مسح شامل لـ CLSIDs على النظام

root@kitploit:~
$HKCR_keys = Get-CLSIDRegistryKeys -RegHive HKCR
$HKCR_keys | where-object {$_ -like "*inprocserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*inprocserver32"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver32"} | Measure-Object

$HKLM_keys = Get-CLSIDRegistryKeys -RegHive HKLM
$HKLM_keys | Measure-Object
$HKCU_keys = Get-CLSIDRegistryKeys -RegHive HKCU
$HKCU_keys | Measure-Object
root@kitploit:~
explorer:{69486DD6-C19F-42e8-B508-A53F9F8E67B8}
explorer:{9E175B6D-F52A-11D8-B9A5-505054503030}
explorer:{30CC9D06-7E62-4966-9777-BC3442E788BD}
explorer:{3eef301f-b596-4c0b-bd92-013beafce793}
explorer:{682159d9-c321-47ca-b3f1-30e36b2ec8b9}
explorer:{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
explorer:{9aa46009-3ce0-458a-a354-715610a075e6}
explorer:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
explorer:{AC36A05C-FB95-4C7A-868C-A43CC8D2D926}
explorer:{B52D54BB-4818-4EB9-AA80-F9EACD371DF8}
explorer:{c2f03a33-21f5-47fa-b4bb-156362a2f239}

العثور على CLSIDs تشير إلى DLL غير موجود على النظام:

root@kitploit:~
Find-MissingLibraries

InjectionTemplates

3 قوالب إثبات مفهوم لإساءة استخدام اختطاف COM، كما تم استعراضها في عرض Derbycon 9:

  • HijackDLL-Process: إنشاء عملية جديدة عند تحميل DLL
  • HijackDLL-CreateRemoteThread: تنفيذ تقنية حقن الخيوط باستخدام استدعاء CreateRemoteThread API عند تحميل DLL
  • HijackDLL-Threads: مفيد لقياس عمر الخيوط التي يتم تشغيلها في DLL بعد الاختطاف

COMinject

إثبات مفهوم لإظهار كيف يمكن استخدام اختطاف COM لعمليات حقن العمليات:

  • COMInjectDotNet: عميل إثبات مفهوم يقوم بحقن DLL في عملية مدعومة عبر اختطاف COM
  • COMInjectTarget: المكتبة الهدف التي يتم حقنها في عملية

الخطوة الأولى هي تنفيذ الاختطاف:

root@kitploit:~
COMInjectDotNet.exe chrome.exe C:\COM\COMInjectTarget.dll

لن يتم تفعيل الاختطاف فورًا، وقد يتطلب تشغيل التطبيق (إذا لم يكن قيد التشغيل حاليًا)، أو بعض الإجراءات الأساسية داخل التطبيق. من المحتمل وجود CLSIDs أفضل تُفعَّل بشكل أكثر تكرارًا، لكن هذه كافية.

سيقوم COMInjectTarget.dll بتسجيل تقدمه في ملف سجل داخل C:\COM. يبدو هذا أكثر استقرارًا من استخدام شيء مثل AllocConsole من داخل عملية أخرى والطباعة على وحدة التحكم.

يوضح ما يلي الـ DLL المحقون وهو يعمل من داخل عملية chrome.exe الرئيسية:

root@kitploit:~
[*] chrome pid=9104 ppid=4900 (count 0)
[*] chrome pid=9104 ppid=4900 (count 1)
[*] chrome pid=9104 ppid=4900 (count 2)
[*] chrome pid=9104 ppid=4900 (count 3)
[*] chrome pid=9104 ppid=4900 (count 4)
[*] chrome pid=9104 ppid=4900 (count 5)

العمليات المدعومة حاليًا هي:

  • explorer (الافتراضي)
  • chrome
  • excel
  • word
  • outlook

المراجع والاعتمادات

لمعرفة المزيد عن COM واختطافات COM:

  • Leo Loobeek (@leoloobeek):
    • COMProxy، الذي استعرت منه كودًا بشكل كبير
    • Proxying COM For Stable Hijacks
  • Matt Nelson (@enigma0x3):
    • Userland Persistence with Scheduled Tasks and COM Handler Hijacking
  • سلسلة @bohops حول اختطافات COM:
    • Abusing the COM Registry Structure: CLSID, LocalServer32, & InprocServer32
    • Abusing the COM Registry Structure (Part 2): Hijacking & Loading Techniques
  • James Forshaw (@tiraniddo):
    • Having Fun with COM
    • COM in 60 seconds
    • OleViewDotNet
  • Casey Smith (@subtee) + @enimga0x3:
    • Windows Operating System Archaeology (الشرائح, الكود)
تنزيل الأداة