
Invoke-ArgFuscator ist ein Open-Source-PowerShell-Modul für mehrere Plattformen, das dabei hilft, verschleierte Befehlszeilen für gängige systemnative ausführbare Dateien zu generieren.
░█░█▄░█░█▒█░▄▀▄░█▄▀▒██▀░▒░ ▄▀▄▒█▀▄░▄▀▒▒█▀░█▒█░▄▀▀░▄▀▀▒▄▀▄░▀█▀░▄▀▄▒█▀▄░ ░█░█▒▀█░▀▄▀░▀▄▀░█▒█░█▄▄░▀▀░█▀█░█▀▄░▀▄█░█▀░▀▄█▒▄██░▀▄▄░█▀█░▒█▒░▀▄▀░█▀▄░
Invoke-ArgFuscator ist ein quelloffenes, plattformübergreifendes PowerShell-Modul, das dabei hilft, verschleierte Befehlszeilen für gängige systemnative ausführbare Dateien unter Windows, Linux und macOS zu generieren.
👉 Nutzen Sie die interaktive Version von ArgFuscator auf ArgFuscator.net 🚀
Befehlszeilen-Verschleierung (T1027.010) ist die Tarnung der wahren Absicht eines Befehls durch die Manipulation der Befehlszeile eines Prozesses. Unter Windows, Linux und macOS parsen viele Anwendungen übergebene Befehlszeilenargumente auf unerwartete Weise, was zu Situationen führt, in denen das Einfügen, Löschen und/oder Ersetzen bestimmter Zeichen den Ausführungsablauf des Programms nicht verändert. Erfolgreiche Befehlszeilen-Verschleierung kann Verteidigungsmaßnahmen wie AV- und EDR-Software aushebeln und in einigen Fällen die Erkennung vollständig umgehen.
Obwohl frühere Forschung die Risiken der Befehlszeilen-Verschleierung hervorgehoben hat, meist mit anekdotischen Beispielen verwundbarer (systemnativer) Anwendungen, besteht eine Wissenslücke in Bezug auf diese Technik. Dieses Projekt möchte diese Lücke schließen, indem es eine zentrale Ressource bereitstellt, die verschiedene Techniken zur Verschleierung von Befehlszeilen dokumentiert und demonstriert und die Anfälligkeit gängiger Anwendungen für jede dieser Techniken erfasst.
Dieses Modul funktioniert auf jedem Betriebssystem, das PowerShell/pwsh unterstützt; dazu gehören Windows, macOS und Linux.
brew bereits installiert ist, führen Sie brew install powershell/tap/powershell aus, um die neueste Version von PowerShell zu installieren. Weitere Installationsmöglichkeiten finden Sie in Microsofts Dokumentation.Der einfachste Weg, dieses Modul zu installieren, ist der folgende PowerShell-Befehl:
Install-Module -Name Invoke-ArgFuscator
Um das Modul zu verwenden, rufen Sie die Funktion Invoke-ArgFuscator innerhalb von PowerShell auf, zum Beispiel:
a. Um eine Befehlszeile, die Sie verschleiern möchten, als Befehlszeilenargument zu übergeben (vorausgesetzt, sie wird von ArgFuscator.net unterstützt):
# Windows
powershell /c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
b. Um Ihre eigenen Modelldateien1 zu verwenden:
# Windows
powershell /c "Invoke-ArgFuscator -InputFile path\to\file.json"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -InputFile path/to/file.json"
Klonen Sie dieses Repository auf Ihr Gerät.
Rufen Sie Invoke-ArgFuscator.ps1 über PowerShell auf, zum Beispiel:
a. Um interaktiv zu arbeiten, übergeben Sie den Pfad einer Modelldatei1 über die Standardeingabe (stdin):
# Windows
powershell .\Invoke-ArgFuscator.ps1
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1
b. Um den Pfad zur Modelldatei1 als Befehlszeilenargument zu übergeben:
# Windows
powershell .\Invoke-ArgFuscator.ps1 -InputFile "path\to\file.json"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -InputFile "path/to/file.json"
c. Um eine Befehlszeile, die Sie verschleiern möchten, als Befehlszeilenargument zu übergeben:
Beachten Sie, dass sich der Ordner models/ im selben Ordner wie Invoke-ArgFuscator.ps1 befinden muss.
# Windows
powershell .\Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
Da Invoke-ArgFuscator ein PowerShell-Modul ist, können Sie die Funktionalität dieses Projekts zu Ihrem eigenen PowerShell-Projekt hinzufügen.
Um Invoke-ArgFuscator zu nutzen, fügen Sie
Import-Module Invoke-ArgFuscator
zu Ihrer PowerShell-Datei hinzu und rufen Sie es wie folgt auf:
Invoke-ArgFuscator -InputFile $InputFile -n $n
Invoke-ArgFuscator -Command $Command -Platform $Platform -n $n
wobei
$InputFile ein string, der einen (relativen/absoluten) Dateipfad zur Modelldatei enthält; $Profile eine ganze Zahl größer oder gleich 0, die den Profilindex innerhalb des angegebenen Dateipfads darstellt, der angesteuert werden soll (optional); und $n ein integer größer als 0 für die Anzahl der zu erzeugenden verschleierten Befehlszeilen-Äquivalente (optional); oder,$Command ein string, der die Befehlszeile enthält, die Sie verschleiern möchten; $Platform ein string mit der entsprechenden Plattform (z. B. windows, optional); und $n ein integer größer als 0 für die Anzahl der zu erzeugenden verschleierten Befehlszeilen-Äquivalente (optional).Diese können über ArgFuscator.net über die Option 'Download' erzeugt oder von GitHub heruntergeladen werden. ↩ ↩2 ↩3