Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Metamorph — Ein in C geschriebenes Befehlszeilen-Dienstprogramm für Windows, das persistente Event Tracing for Windows (ETW) AutoLogger-Sitzungen erstellt und konfiguriert. | Kitploit
Tools/GitHubGitHub/synacktiv/metamorph
DefensivwerkzeugePersistenzmechanismenInformationsbeschaffungPost-ExploitationMalware-AnalyseIncident Response
GitHubsynacktiv/metamorph

Metamorph

Ein in C geschriebenes Befehlszeilen-Dienstprogramm für Windows, das persistente Event Tracing for Windows (ETW) AutoLogger-Sitzungen erstellt und konfiguriert.

Repository anzeigen
87vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Metamorph

Einleitung

Dieses Tool ist ein Befehlszeilenprogramm für Windows, das in C geschrieben ist und persistente Event Tracing for Windows (ETW)-AutoLogger-Sitzungen erstellt und konfiguriert. AutoLogger starten automatisch die Ablaufverfolgung bestimmter ETW-Anbieter beim Systemstart, was sie nützlich macht, um Ereignisse zu erfassen, die früh im Bootprozess auftreten, oder für Szenarien mit kontinuierlicher Überwachung.

Dieses Tool ermöglicht die Auswahl vordefinierter Listen von ETW-Anbietern, die mit bekannten EDR-Lösungen in Verbindung stehen, um sie über Befehlszeilenargumente in die AutoLogger-Sitzung aufzunehmen. Es führt Konfigurationen zusammen, wenn derselbe Anbieter in mehreren ausgewählten Listen enthalten ist, und stellt sicher, dass die höchste Protokollierungsstufe verwendet wird und Schlüsselwort-Flags entsprechend kombiniert werden, um die Ereignisabdeckung basierend auf den ausgewählten Listen zu maximieren.

Funktionen

  • Erstellt persistente ETW-AutoLogger-Sitzungen über die Registrierungskonfiguration (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\Metamorph).
  • Startet automatisch beim Systemstart.
  • Ermöglicht die Auswahl vordefinierter Anbieterlisten (-Defender, -Crowdstrike, -MDE, , ).
-Sentinelone
-Cortex
  • Option, alle Anbieter aus allen Listen zu aktivieren (-All).
  • Option, laute Anbieter zu aktivieren (einige werden automatisch gelöscht, um ein sofortiges Füllen der Festplatten zu vermeiden): (-noisy)
  • Führt doppelte Anbieterkonfigurationen zusammen:
    • Behält die höchste Level-Angabe aller Duplikate für einen Anbieter bei.
    • Kombiniert MatchAnyKeyword-Flags mittels bitweisem ODER aus allen Duplikaten (unabhängig von der Stufe), um die breiteste Schlüsselwortabdeckung zu gewährleisten.
    • Verwendet das MatchAllKeyword aus dem Konfigurationseintrag, der die höchste Stufe bereitgestellt hat.
  • Konfigurierbarer Sitzungsname und Protokolldateipfad (als Konstanten im Code definiert).
  • Kompilierung

    Sie benötigen einen C-Compiler, z. B. den in Visual Studio enthaltenen.

    1. Öffnen Sie die Datei Metamorph.sln
    2. Wählen Sie "Release" und Ihre Zielarchitektur (x64/x86)
    3. Kompilieren und genießen

    Es gibt keine nicht standardmäßigen Imports, daher sollte die Cl-Kompilierung ohne große Probleme möglich sein.

    Bedienungsanleitung

    Wichtig: Dieses Tool ändert die Windows-Registrierung (HKEY_LOCAL_MACHINE) und erfordert daher Administratorrechte, um korrekt zu funktionieren.

    • Öffnen Sie ein Eingabeaufforderungs- oder PowerShell-Fenster als Administrator und führen Sie die ausführbare Datei von dort aus.
    root@kitploit:~
    .\Metamorph.exe <optionen>
    
    # Nur Anbieter von Defender aktivieren
    .\Metamorph.exe -Defender
    
    # Anbieter von Defender und MDE aktivieren, Duplikate zusammenführen
    .\Metamorph.exe -Defender -MDE
    
    # Alle Anbieter aller Engines aktivieren, Duplikate zusammenführen
    .\Metamorph.exe -All
    
    # Einen Anbieter aktivieren, auch mit lauten, warum nicht schließlich die Festplatte füllen?
    .\Metamorph.exe -All -noisy
    

    Nach der Initialisierung muss ein Neustart erfolgen, damit der neu registrierte Anbieter startet.

    Manuelle Bereinigung

    Um diesen Anbieter zu bereinigen, muss man:

    1. regedit.exe öffnen
    2. Navigieren Sie zu (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\Metamorph)
    3. Klicken Sie mit der rechten Maustaste, um den zuvor genannten Registrierungsschlüssel zu löschen.
    4. Neu starten

    Auswertung der Ergebnisse

    ETW bietet tiefe Einblicke in Laufzeitereignisse. Dies kann genutzt werden, um potenziell verdächtige Aktivitäten zu erkennen, die auf Malware-Aktivitäten oder Verschleierungstechniken hindeuten könnten. Nach der Installation sollten die Anbieter dieselbe Stufe an "Event Log"-Telemetrie liefern wie das "geklonte" EDR. Dies sollte die Forschung nach IOCs erleichtern, die von internen Tools hinterlassen werden könnten.

    Nachdem das System neu gestartet wurde und die interessierenden Anwendungen ausgeführt wurden, enthält die .etl-Datei (z. B. Metamorph.etl) die erfassten Ereignisse.

    Die erzeugte Datei (C:\Windows\System32\LogFiles\WMI\Metamorph.etl.00x) kann von verschiedenen öffentlichen Tools verarbeitet werden, wie zum Beispiel:

    • Der Ereignisanzeige selbst
    • Perfview
    • fügen Sie Ihr bevorzugtes ETW-Tool hier ein

    Nota bene: Metamorph verwendet zirkuläre Protokolldateien, um sie nach einem Neustart nicht versehentlich zu verlieren, aber einige Tools benötigen, dass die Dateien mit .etl enden. Sie müssen also das Suffix vor der Verwendung entfernen.

    Außerdem ist es möglich, die .etl-Datei für schnelles Greppen in eine CSV-Datei zu konvertieren:

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

    Praktisches Beispiel mit Powershell und fileless .NET, geladen mit Assembly.Load

    Ausführen einer fileless-Binärdatei über Assembly.Load()

    Nehmen wir an, wir haben das folgende Powershell-Programm, das eine Datei mit Assembly.Load lädt:

    root@kitploit:~
    [Reflection.Assembly]:https://raw.githubusercontent.com/synacktiv/metamorph/main/: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" }
    

    Dieses Skript führt im Wesentlichen einen Angriff aus, wie er auch mit dem Tool impersonate.exe durchgeführt werden könnte.

    1. Öffnen Sie eine PowerShell-Eingabeaufforderung mit Administratorrechten
    2. Führen Sie poc.ps1 aus
    3. Warten Sie einige Minuten, um sicherzustellen, dass alle ETW-Puffer in die .etl-Datei geleert wurden

    Analyse

    1. Öffnen Sie Perfview mit Administratorrechten
    2. Laden Sie Ihre .etl-Datei über das Dashboard und doppelklicken Sie auf Ereignisse, um auf alle Anbieterdaten zuzugreifen

    1. Navigieren Sie durch die Liste der Anbieter, um Daten basierend auf Ihren Aktionen zu untersuchen

    1. Wählen Sie den relevanten Anbieter zur Inspektion aus (hier Microsoft-Windows-Powershell/Exécuterunecommandedistante)

    1. Inspizieren von Microsoft-Windows-DotNETRuntime/Loader/AssemblyLoad

    Am Ende haben EDR und Analysten also die Möglichkeit, eine Signaturanalyse basierend auf dem AssemblyName für bekannte Binärdateien durchzuführen (wie: "Rubeus") und ansonsten haben sie die Möglichkeit, PowerShell-Skripte (einschließlich Kommentaren) für die Post-Mortem-Analyse abzurufen.

    Mitwirken

    Wenn Sie dieses Tool nützlich finden, können Sie Ihre eigenen (oder andere) Lösungen gemäß den Anweisungen in CONTRIBUTING.md hinzufügen. Ich werde versuchen, es regelmäßig zu aktualisieren, aber da es vollständig von Lösungen abhängt, die während Pentests gefunden werden, können Sie gerne einen PR einreichen, wenn Sie möchten, dass Ihre Änderungen für alle verfügbar sind.

    Tool herunterladen