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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Metamorph — أداة سطر أوامر لنظام Windows مكتوبة بلغة C تقوم بإنشاء وتهيئة جلسات AutoLogger ثابتة لتتبع الأحداث في Windows (ETW). | Kitploit
أدوات/GitHubGitHub/synacktiv/metamorph
أدوات دفاعيةآليات الاستمراريةجمع المعلوماتما بعد الاستغلالتحليل البرمجيات الخبيثةالاستجابة للحوادث
GitHubsynacktiv/metamorph

Metamorph

أداة سطر أوامر لنظام Windows مكتوبة بلغة C تقوم بإنشاء وتهيئة جلسات AutoLogger ثابتة لتتبع الأحداث في Windows (ETW).

عرض المستودع
8منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Metamorph

مقدمة

هذه الأداة هي أداة مساعدة لسطر الأوامر لنظام ويندوز مكتوبة بلغة C، تقوم بإنشاء وتهيئة جلسات AutoLogger الثابتة لتتبع أحداث ويندوز (ETW). تبدأ جلسات AutoLogger تلقائيًا بتتبع مزوّدي ETW محددين عند إقلاع النظام، مما يجعلها مفيدة لالتقاط الأحداث التي تحدث في مرحلة مبكرة من عملية الإقلاع أو لسيناريوهات المراقبة المستمرة.

تتيح هذه الأداة اختيار قوائم محددة مسبقًا من مزوّدي ETW المرتبطين بمنتجات EDR معروفة لتضمينها في جلسة AutoLogger عبر وسائط سطر الأوامر. كما تقوم بدمج الإعدادات إذا كان المزوّد نفسه مشمولًا في أكثر من قائمة مختارة، مما يضمن استخدام أعلى مستوى تسجيل ودمج علامات الكلمات المفتاحية بشكل مناسب لتحقيق أقصى تغطية للأحداث بناءً على القوائم المحددة.

الميزات

  • إنشاء جلسات AutoLogger ثابتة لتتبع أحداث ويندوز (ETW) عبر إعدادات التسجيل (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\Metamorph).
  • تبدأ تلقائيًا عند إقلاع النظام.
  • تتيح اختيار قوائم مزوّدين محددة مسبقًا (-Defender, -Crowdstrike, -MDE, -Sentinelone, -Cortex).
  • خيار لتفعيل جميع المزوّدين من جميع القوائم (-All).
  • خيار لتفعيل المزوّدين المزعجين (يتم حذف بعضهم تلقائيًا لتجنب ملء الأقراص خلال ثوانٍ): (-noisy)
  • دمج إعدادات المزوّدين المكررة:
    • يُبقي أعلى Level محدد بين جميع التكرارات لمزوّد معين.
    • يجمع علامات MatchAnyKeyword باستخدام OR على مستوى البت من جميع التكرارات (بغض النظر عن المستوى) لضمان أوسع تغطية للكلمات المفتاحية.
    • يستخدم MatchAllKeyword من إدخال الإعداد الذي قدّم أعلى مستوى.
  • اسم جلسة ومسار ملف سجل قابلان للتهيئة (معرّفان كثوابت في الكود).

التجميع

تحتاج إلى مترجم C، مثل المترجم المرفق مع Visual Studio.

  1. افتح ملف Metamorph.sln
  2. اختر "Release" ومعمارية هدفك (x64/x86)
  3. قم بالتجميع واستمتع

لا توجد استيرادات غير قياسية، لذا يجب أن يكون التجميع باستخدام Cl ممكنًا دون عناء كبير.

دليل الاستخدام

مهم: تعدّل هذه الأداة سجل ويندوز (HKEY_LOCAL_MACHINE) ولذلك تتطلب صلاحيات المسؤول (Administrator) لتعمل بشكل صحيح.

  • افتح نافذة موجه الأوامر أو PowerShell بصلاحيات المسؤول وقم بتشغيل الملف التنفيذي من هناك.
root@kitploit:~
.\Metamorph.exe <options>

# Enable only providers from Defender
.\Metamorph.exe -Defender

# Enable providers from Defender and MDE, merging duplicates
.\Metamorph.exe -Defender -MDE

# Enable all providers from all engines, merging duplicates
.\Metamorph.exe -All

# Enabling one provider, also with noisy ones, because why not filling disk space after all?
.\Metamorph.exe -All -noisy

بعد التهيئة، يجب إعادة تشغيل النظام لبدء تشغيل المزوّد المُسجَّل حديثًا.

التنظيف اليدوي

لتنظيف هذا المزوّد، يجب على المستخدم:

  1. فتح regedit.exe
  2. الانتقال إلى (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\Metamorph)
  3. النقر بزر الماوس الأيمن لحذف مفتاح التسجيل المذكور أعلاه.
  4. إعادة تشغيل النظام

استغلال النتائج

يوفر ETW رؤية عميقة في أحداث وقت التشغيل. يمكن استغلال ذلك لكشف الأنشطة المشبوهة المحتملة التي قد تشير إلى نشاط برمجيات خبيثة أو تقنيات إخفاء. بمجرد التثبيت، يجب أن توفر المزوّدات نفس مستوى تتبع "سجل الأحداث" الذي يوفره حل EDR "المُستنسخ". يجب أن يسهّل ذلك البحث عن مؤشرات الاختراق (IOC) التي قد تتركها الأدوات الداخلية.

بعد إعادة تشغيل النظام وتشغيل التطبيقات ذات الاهتمام، سيحتوي ملف .etl (مثل Metamorph.etl) على الأحداث الملتقطة.

يمكن استيعاب الملف المُنشأ (C:\Windows\System32\LogFiles\WMI\Metamorph.etl.00x) بواسطة عدة أدوات عامة مثل:

  • عارض الأحداث نفسه (Event Viewer)
  • Perfview
  • ضع أداتك المفضلة لتتبع ETW هنا

ملاحظة مهمة: يستخدم Metamorph ملفات سجل دائرية لتجنب فقدانه عن طريق الخطأ بعد إعادة التشغيل، ولكن بعض الأدوات تحتاج إلى أن ينتهي الملف بالامتداد .etl، لذا ستحتاج إلى إزالة اللاحقة قبل الاستخدام.

أيضًا، من الممكن أساسًا تحويل ملف .etl إلى ملف CSV للبحث السريع:

root@kitploit:~
tracerpt MyKeywordMergedETWLogger.etl -o logdump.csv -of CSV

مثال عملي مع PowerShell و .NET عديم الملفات المحمّل عبر Assembly.Load

تنفيذ ملف ثنائي عديم الملفات عبر Assembly.Load()

لنفترض أن لدينا برنامج PowerShell التالي الذي يقوم بتحميل ملف باستخدام Assembly.Load:

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/synacktiv/metamorph/HEAD/:Load(%5BSystem.Convert%5D::FromBase64String(%22TVqQAAMAAAAEAAAA/8AALgAAAAAAAAAQAAAAAA%5B...%5DAAAAAAAAAAAAA%22))


#Récupération du handle sur le process cible
    $ProcessDesiredAccess = 0x00000400
    $InheritHandle = 0
    $ProcessId = $PID
    $hProcess = [api32.run]::OpenProcess($ProcessDesiredAccess, $InheritHandle, $ProcessId)
    if($hProcess -eq 0){ Write-Output "OpenProcess Error" }

#Récupération du handle sur le token du process cible
    $hToken = [IntPtr]::Zero
    $TokenDesiredAccess = 0x00000006
    $Success = [api32.run]::OpenProcessToken($hProcess, $TokenDesiredAccess, [ref]$hToken)
    if(-not $Success){ Write-Output "OpenProcessToken Error" }
    
#Duplication du token
    $DesiredAccess = 0x10000000
    $SecurityAttribute = New-Object api32.run+_SECURITY_ATTRIBUTES
    $SecurityAttribute.lpSecurityDescriptor = [IntPtr]::Zero
    $SecurityAttribute.bInheritHandle = $true
    $ImpersonationLevel = 3
    $TokenType = 1
    $hDuplicatedToken = [IntPtr]::Zero
    $Success = [api32.run]::DuplicateTokenEx($hToken, $DesiredAccess,[ref]$SecurityAttribute, $ImpersonationLevel, $TokenType,[ref]$hDuplicatedToken)
    if(-not $Success) { Write-Debug "DuplicateTokenEx Error" }

#Creation du cmd avec le token dupliqué
    $LogonFlags = 0
    $ApplicationName = "cmd.exe"
    $CommandLine = "/K whoami /all"
    $CreationFlags = 0x00000010
    $Environnement = [IntPtr]::Zero
    $CurrentDirectory = "c:\windows\system32"
    $StartUpinformation = New-Object api32.run+STARTUPINFOA                                    
    $ProcessInformation = New-Object api32.run+_PROCESS_INFORMATION
    $Success = [api32.run]::CreateProcessWithTokenW($hDuplicatedToken, $LogonFlags,$ApplicationName, $CommandLine, $CreationFlags, $Environnement, $CurrentDirectory, [ref]$StartUpinformation,[ref]$ProcessInformation)
    if(-not $Success) { Write-Debug "CreateProcessWithTokenW Error" }

يقوم هذا السكربت أساسًا بتنفيذ هجوم مشابه لما يمكن أن ينفذه أداة impersonate.exe.

  1. افتح موجه PowerShell بصلاحيات المسؤول (admin)
  2. شغّل poc.ps1
  3. انتظر بضع دقائق للتأكد من أن جميع مخازن ETW المؤقتة قد تم تفريغها في ملف .etl

التحليل

  1. افتح Perfview بصلاحيات المسؤول
  2. حمّل ملف .etl الخاص بك من خلال لوحة المعلومات وانقر نقرًا مزدوجًا على الأحداث للوصول إلى بيانات جميع المزوّدين

  1. تصفّح قائمة المزوّدين للتحقيق في البيانات بناءً على ما قمت به

  1. اختر المزوّد المناسب لفحصه (هنا Microsoft-Windows-Powershell/Exécuterunecommandedistante)

  1. فحص Microsoft-Windows-DotNETRuntime/Loader/AssemblyLoad

في النهاية، تتاح لـ EDR والمحللين فرصة إجراء تحليل التوقيعات استنادًا إلى AssemblyName للملفات الثنائية المعروفة (مثل: "Rubeus")، وبخلاف ذلك، لديهم إمكانية استرجاع سكربتات PowerShell (بما في ذلك التعليقات) لتحليل ما بعد الحادث.

المساهمة

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

تنزيل الأداة