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
Invoke-DOSfuscation — Cmd.exe Kommando-Verschleierungsgenerator & Erkennungs-Test-Harness | Kitploit
Tools/GitHubGitHub/danielbohannon/invoke-dosfuscation
DefensivwerkzeugeFuzzingPenetrationstestsCommand and ControlRed TeamingIncident Response
GitHubdanielbohannon/invoke-dosfuscation

Invoke-DOSfuscation

Cmd.exe Kommando-Verschleierungsgenerator & Erkennungs-Test-Harness

Repository anzeigen
948140vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Invoke-DOSfuscation v1.0

Invoke-DOSfuscation Bildschirmfoto

Einführung

Invoke-DOSfuscation ist ein mit PowerShell v2.0+ kompatibles cmd.exe-Befehlsverschleierungsframework. (Whitepaper: https://www.fireeye.com/blog/threat-research/2018/03/dosfuscation-exploring-obfuscation-and-detection-techniques.html)

Hintergrund

In den letzten Jahren als Incident-Response-Berater habe ich eine Vielzahl von Verschleierungs- und Umgehungstechniken beobachtet, die von mehreren Bedrohungsakteuren eingesetzt wurden. Einige dieser Techniken sind unglaublich komplex, während andere geschmackvoll einfach sind, aber beide Kategorien werden eingesetzt, um der Erkennung zu entgehen. In meiner Erfahrung habe ich festgestellt, dass APT32 und FIN7 die verlockendsten Verschleierungstechniken anwenden, und ihre Kreativität ist bemerkenswert.

Im Juni 2017, nach einer Reihe von schrittweisen Befehlszeilenverschleierungstechniken, verwendete FIN7 eine Umgebungsvariablen-String-Ersetzungsfähigkeit, die in cmd.exe nativ ist und von deren Existenz ich zu diesem Zeitpunkt nicht einmal wusste. Angetrieben durch diese Entdeckung verfasste ich gemeinsam mit Nick Carr (@ItsReallyNick) einen Blogbeitrag namens Verschleierung in freier Wildbahn: Gezielte Angreifer führen bei Umgehungstechniken, in dem wir die Verschleierungstechniken mehrerer Gruppen hervorhoben, die wir in freier Wildbahn identifiziert hatten.

Am folgenden Wochenende erkundete ich diese native cmd.exe-Ersetzungsfunktionalität, baute und veröffentlichte ein einfaches Proof-of-Concept-Tool namens Out-FINcodedCommand. Sobald ich diesen POC veröffentlicht hatte, trat ich einen Schritt zurück und dachte: „Vielleicht gibt es noch mehr Verschleierungsmöglichkeiten in cmd.exe, die ich erkunden und für die ich Erkennungen entwickeln sollte, bevor wir entdecken, dass sie in freier Wildbahn verwendet werden."

Das war die Geburtsstunde meiner Forschung, die mich schließlich zur Entwicklung dieses Invoke-DOSfuscation-Frameworks führte.

Zweck

Angreifer setzen zunehmend Verschleierungstechniken ein, um Erkennungen zu umgehen, die stark auf Befehlszeilenargumentwerten basieren. Um dem entgegenzuwirken, habe ich fünf Monate lang Verschleierungs- und Kodierungstechniken erforscht und entwickelt, die in cmd.exe nativ sind, um robuste Erkennungen für diese Kerntechniken zu erstellen, die ich in freier Wildbahn noch nicht gesehen habe.

Der alleinige Zweck dieses Frameworks ist es, Verteidigern zu ermöglichen, tausende von einzigartig verschleierten Beispielbefehlen zufällig zu generieren, um ihre Erkennungsfähigkeiten gegen diese Techniken zu testen und abzustimmen. Ich habe meinen vollständigen Testrahmen in diese Veröffentlichung aufgenommen, um diesen Erkennungstestprozess zu automatisieren.

In vielerlei Hinsicht ermöglicht dieses Framework Verteidigern, die Verschleierungstechniken von cmd.exe zu fuzzen, und beim Bau dieses Tools entdeckte ich zahlreiche zusätzliche Verschleierungsmöglichkeiten, die ich in meiner ursprünglichen Forschung nicht aufgedeckt hatte.

Ich habe diese Informationen auch im November 2017 mit Microsoft geteilt und nach Möglichkeiten gefragt, zusätzliche Einblicke in die internen Abläufe von cmd.exe bei der Verwendung der Kerntechniken zu geben, die die Bausteine aller in dieses Framework integrierten Verschleierungsfunktionen sind.

Als Verteidiger ist das Endziel dieser Forschung und Entwicklung, das Bewusstsein zu schärfen und Veränderungen voranzutreiben, die Endbenutzern helfen, sich besser gegen die sich ständig ändernden TTPs (Tools, Techniques and Procedures) der Angreifer zu schützen.

Verwendung

Während alle Verschleierungskomponenten als eigenständige formale Funktionen entwickelt wurden, werden die meisten Benutzer die Invoke-DOSfuscation-Funktion als den einfachsten Weg empfinden, die Verschleierungstechniken, die dieses Framework unterstützt, zu erkunden und zu visualisieren. Für das Fuzzing und die tiefgehende Erkundung der zahlreichen Abstimmungsoptionen für jede Verschleierungskategorie wird jedoch empfohlen, die einzelnen Funktionen direkt außerhalb des Invoke-DOSfuscation-Funktionswrappers zu verwenden.

Um Verteidigern den einfachen Einstieg in das Fuzzing und Testen von Erkennungsideen zu ermöglichen, enthält dieses Framework auch ein zusätzliches Modul, Invoke-DOSfuscationTestHarness.psm1, das automatisch mit dem Rest des Projekts importiert wird. Die beiden wichtigsten Funktionen in diesem Modul für Verteidiger sind:

  1. Invoke-DosTestHarness – Generiert (mit Standard-Argumenteinstellungen) über 1000 zufällig verschleierte Befehle aus einer Liste von Testbefehlen sowohl für die Payload-Integrität als auch für Erkennungszwecke. Jede Testrahmen-Iteration randomisiert alle verfügbaren Funktionsargumente und ruft die vier Verschleierungsfunktionen direkt auf, anstatt die standardisierteren -ObfuscationLevel-Werte (1-3) zu verwenden, die die menügesteuerte Invoke-DOSfuscation-Funktion standardmäßig verwendet. Dies erzeugt eine deutlich breitere Palette von Verschleierungsausgaben, gegen die man gründlichere Erkennungen aufbauen kann. Jeder verschleierte Befehl wird dann gegen die zweite Funktion geprüft:
  2. Get-DosDetectionMatch – Überprüft einen eingegebenen Befehl (String) gegen alle Regex-Erkennungswerte, die im $regexDetectionTerms-Array der Funktion eingegeben sind. Dies wird automatisch von Invoke-DosTestHarness aufgerufen, kann aber auch eigenständig aufgerufen werden.

Am Ende jedes Testrahmen-Aufrufs werden Statistiken zur korrekten Befehlsausführung und Erkennung angezeigt, damit Verteidiger schnell erkennen können, welche Befehle 0 oder nur 1-2 Erkennungstreffer haben und welche möglicherweise eine bessere Abdeckung benötigen.

Schließlich, um zu vermeiden, dass Verteidiger den Testrahmen ausführen müssen, um loszulegen, habe ich 1000 Beispielbefehle im Samples-Verzeichnis bereitgestellt, aufgeteilt auf jede der vier Verschleierungsfunktionen. Die Formate umfassen .txt-Dateien sowie Security- und Sysmon-.evtx-Dateien. Ich habe ein paar Beispiel-Erkennungsregeln im $regexDetectionTerms-Array in Invoke-DOSfuscationTestHarness.psm1 hinzugefügt, aber Sie werden viele weitere Regeln hinzufügen und testen wollen, während Sie die verschleierten Beispielbefehle testen). Zusätzlich zu den .txt-Dateien mit den Rohbefehlen gibt es .evtx-Dateien, die die Prozessausführungsprotokolle (Sysmon EID 1-Ereignisse) für jeden der 1000 Beispielbefehle enthalten. Diese Ereignisprotokolle sind enorm hilfreich, um Indikatoren basierend auf nuancierten Kindprozessausführungen zu erstellen, die Nebenprodukte mehrerer Bausteintechniken sind, auf denen Invoke-DOSfuscation aufbaut.

Um zu beginnen, zeigen Sie verschleierte Beispielbefehle an, die nicht mit einer Ihrer aktuellen Erkennungsregeln übereinstimmen, indem Sie einfach ausführen:

(Get-Content .\Samples\STATIC_1-of-4_Out-DosConcatenatedCommand.txt) | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }

Um sowohl verschleierte Befehle als auch Kindprozesse aus Ausführungsereignisprotokollen zu testen, die in Security EID 4688 aufgezeichnet wurden, führen Sie einfach aus:

(Get-WinEvent -Path .\Samples\DYNAMIC_SECURITY_EID4688_1-of-4_Out-DosConcatenatedCommand.evtx) | where-object { $_.Message } | foreach-object { ($_.Message.Split("`n") | select-string '^\tProcess Command Line:\t') -replace '^\tProcess Command Line:\t','' } | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }

Installation

Der Quellcode für Invoke-DOSfuscation wird auf Github gehostet, und Sie können ihn aus diesem Repository herunterladen, forken und überprüfen (https://github.com/danielbohannon/Invoke-DOSfuscation). Bitte melden Sie Probleme oder Funktionsanfragen über den Github-Bug-Tracker, der mit diesem Projekt verbunden ist.

So installieren Sie:

root@kitploit:~
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation

Lizenz

Invoke-DOSfuscation wird unter der Apache-2.0-Lizenz veröffentlicht.

Versionshinweise

v1.0 – 23.03.2018 Black Hat Asia (Singapur): Öffentliche Veröffentlichung von Invoke-DOSfuscation.

Tool herunterladen