Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Metamorph — विंडोज़ के लिए C में लिखी गई एक कमांड-लाइन उपयोगिता जो विंडोज़ के लिए इवेंट ट्रेसिंग (ETW) AutoLogger के स्थायी सत्र बनाती और कॉन्फ़िगर करती है। | Kitploit
उपकरण/GitHubGitHub/synacktiv/metamorph
रक्षात्मक उपकरणस्थायित्व तंत्रजानकारी एकत्र करनापोस्ट-शोषणमालवेयर विश्लेषणघटना प्रतिक्रिया
GitHubsynacktiv/metamorph

Metamorph

विंडोज़ के लिए C में लिखी गई एक कमांड-लाइन उपयोगिता जो विंडोज़ के लिए इवेंट ट्रेसिंग (ETW) AutoLogger के स्थायी सत्र बनाती और कॉन्फ़िगर करती है।

रिपॉजिटरी देखें
82 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Metamorph

परिचय

यह टूल Windows के लिए एक कमांड-लाइन उपयोगिता है जो C में लिखी गई है और persistent Event Tracing for Windows (ETW) AutoLogger सत्र बनाती और कॉन्फ़िगर करती है। AutoLogger सिस्टम बूट होने पर विशिष्ट ETW प्रदाताओं (providers) का ट्रेसिंग स्वचालित रूप से शुरू कर देते हैं, जिससे वे बूट प्रक्रिया के आरंभिक चरण में होने वाली घटनाओं को कैप्चर करने या निरंतर निगरानी परिदृश्यों के लिए उपयोगी बन जाते हैं।

यह टूल कमांड-लाइन तर्कों के माध्यम से AutoLogger सत्र में शामिल करने के लिए ज्ञात EDR से संबंधित ETW प्रदाताओं की पूर्वनिर्धारित सूचियों (lists) का चयन करने की अनुमति देता है। यदि एक ही प्रदाता कई चयनित सूचियों में शामिल है, तो यह कॉन्फ़िगरेशन को मर्ज करता है, यह सुनिश्चित करते हुए कि उच्चतम लॉगिंग स्तर का उपयोग किया जाता है और चयनित सूचियों के आधार पर ईवेंट कवरेज को अधिकतम करने के लिए कीवर्ड फ़्लैग उचित रूप से संयोजित किए जाते हैं।

विशेषताएँ

  • रजिस्ट्री कॉन्फ़िगरेशन (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\Metamorph) के माध्यम से persistent ETW AutoLogger सत्र बनाता है।
  • सिस्टम बूट पर स्वचालित रूप से प्रारंभ होता है।
  • पूर्वनिर्धारित प्रदाता सूचियों के चयन की अनुमति देता है (-Defender, -Crowdstrike, -MDE, -Sentinelone, -Cortex)।
  • सभी सूचियों से सभी प्रदाताओं को सक्षम करने का विकल्प (-All)।
  • noisy प्रदाताओं को सक्षम करने का विकल्प (कुछ को डिस्क को सेकंडों में भरने से बचाने के लिए स्वचालित रूप से हटा दिया जाता है): (-noisy)
  • डुप्लिकेट प्रदाता कॉन्फ़िगरेशन को मर्ज करता है:
    • किसी प्रदाता के लिए सभी डुप्लिकेट्स में निर्दिष्ट उच्चतम Level रखता है।
    • सबसे व्यापक कीवर्ड कवरेज सुनिश्चित करने के लिए सभी डुप्लिकेट्स से MatchAnyKeyword फ़्लैग को bitwise OR का उपयोग करके जोड़ता है (स्तर की परवाह किए बिना)।
    • उस कॉन्फ़िगरेशन प्रविष्टि से MatchAllKeyword का उपयोग करता है जिसने उच्चतम स्तर प्रदान किया।
  • कॉन्फ़िगर करने योग्य सत्र नाम और लॉग फ़ाइल पथ (कोड में स्थिरांक के रूप में परिभाषित)।

संकलन

आपको एक C कंपाइलर की आवश्यकता है, जैसे कि Visual Studio के साथ शामिल किया गया कंपाइलर।

  1. Metamorph.sln फ़ाइल खोलें
  2. "Release" और अपना लक्षित आर्किटेक्चर (x64/x86) चुनें
  3. संकलित करें और आनंद लें

कोई गैर-मानक इम्पोर्ट नहीं हैं, इसलिए Cl संकलन बिना किसी परेशानी के संभव होना चाहिए।

उपयोग गाइड

महत्वपूर्ण: यह टूल Windows रजिस्ट्री (HKEY_LOCAL_MACHINE) को संशोधित करता है और इसलिए सही ढंग से चलाने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है।

  • एक Command Prompt या 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 रनटाइम इवेंट्स में गहरी दृश्यता प्रदान करता है। इसका उपयोग संभावित रूप से संदिग्ध गतिविधियों का पता लगाने के लिए किया जा सकता है, जो मैलवेयर गतिविधि या अस्पष्टीकरण (obfuscation) तकनीकों का संकेत दे सकती हैं। एक बार इंस्टॉल होने के बाद, प्रदाताओं को "क्लोन" किए गए EDR के समान "Event log" टेलीमेट्री स्तर प्रदान करना चाहिए। इससे आंतरिक टूल्स द्वारा छोड़े जा सकने वाले IOC की खोज में आसानी होनी चाहिए।

सिस्टम के रीबूट होने और रुचि के एप्लिकेशन चलने के बाद, .etl फ़ाइल (जैसे, Metamorph.etl) में कैप्चर की गई घटनाएँ होंगी।

जनरेट की गई फ़ाइल (C:\Windows\System32\LogFiles\WMI\Metamorph.etl.00x) को कई सार्वजनिक टूल्स द्वारा इन्जेस्ट किया जा सकता है, जैसे:

  • Event Viewer स्वयं
  • Perfview
  • अपना पसंदीदा ETW टूल यहाँ डालें

Nota bene: Metamorph सर्कुलर लॉग फ़ाइलों का उपयोग कर रहा है ताकि रीबूट के बाद इसे गलती से खोया न जाए, लेकिन कुछ टूल्स को आवश्यकता होती है कि फ़ाइल .etl के साथ समाप्त हो, इसलिए उपयोग से पहले आपको प्रत्यय हटाना होगा।

इसके अलावा, कच्चे grep के लिए .etl फ़ाइल को CSV फ़ाइल में परिवर्तित करना संभव है:

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

Powershell और Assembly.Load के साथ लोड किए गए fileless .NET का व्यावहारिक उदाहरण

Assembly.Load() के माध्यम से fileless बाइनरी निष्पादित करना

मान लीजिए हमारे पास निम्नलिखित 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 प्रॉम्प्ट खोलें
  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 करें।

टूल डाउनलोड करें