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
Empire — Empire ist ein Post-Exploitation-Agent für PowerShell und Python. | Kitploit
Tools/GitHubGitHub/empireproject/empire
Privilege EscalationPayload-GenerierungPersistenzmechanismenExploitationLaterale BewegungPost-ExploitationPenetrationstestsCommand and ControlRed TeamingArchived
GitHubempireproject/empire

Empire

7.9k2.9kvor 6 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

Empire ist ein Post-Exploitation-Agent für PowerShell und Python.

Repository anzeigenWebseite

Invoke-Obfuscation v1.8

Invoke-Obfuscation Screenshot

Einleitung

Invoke-Obfuscation ist ein PowerShell v2.0+ kompatibler PowerShell-Befehls- und Skript-Obfuskator.

Hintergrund

Im Herbst 2015 begann ich, die Flexibilität der PowerShell-Sprache zu erforschen und katalogisierte die verschiedenen Möglichkeiten, eine Handvoll gängiger Techniken umzusetzen, die Angreifer regelmäßig verwenden.

Zunächst konzentrierte ich mich auf codierte Befehle und Remote-Download-Cradle-Syntaxen. Dabei entdeckte ich, dass verschiedene Escape-Zeichen, die die Ausführung des Befehls nicht behinderten, in den Befehlszeilenargumenten erhalten blieben – sowohl im laufenden Prozess als auch in den Protokollen der Security EID 4688 und Sysmon EID 1-Ereignisprotokolle. Dies führte mich dazu, systematisch Wege zur Verschleierung jeder Art von „Token“ zu untersuchen, der in einem PowerShell-Befehl oder -Skript vorkommt.

Anschließend erforschte ich obskurere Methoden der Zeichenkettenverschleierung, verschiedene Kodierungs-/Verschlüsselungstechniken (wie ASCII/Hex/Oktal/Binär und sogar SecureString) und schließlich PowerShell-Starttechniken, um die Befehlszeilenargumente von powershell.exe zu abstrahieren und zurück zum Eltern- und sogar Großelternprozess zu verschieben.

Zweck

Angreifer und Schadsoftware verwenden mittlerweile extrem einfache Verschleierungstechniken, um den Großteil des Befehls vor den Befehlszeilenargumenten von powershell.exe zu verbergen. Ich habe dieses Tool entwickelt, um dem Blue Team dabei zu helfen, verschleierte Befehle zu simulieren – basierend auf dem, was mir derzeit syntaktisch in PowerShell 2.0-5.0 möglich erscheint –, damit sie ihre Erkennungsfähigkeiten für diese Techniken testen können.

Der alleinige Zweck des Tools ist es, alle Annahmen zu widerlegen, die wir als Verteidiger darüber haben könnten, wie PowerShell-Befehle in der Befehlszeile erscheinen können. Ich hoffe, dass es das Blue Team dazu ermutigt, zusätzlich zur Aktualisierung der PowerShell-Protokollierung auf Module, ScriptBlock und Transkriptionsprotokollierung auch nach Verschleierungsindikatoren in der Befehlszeile zu suchen, da diese Quellen die meisten Aspekte der von diesem Tool generierten Verschleierungstechniken vereinfachen.

Verwendung

Obwohl alle Verschleierungsebenen in separate Skripte ausgelagert wurden, werden die meisten Benutzer die Funktion Invoke-Obfuscation als einfachste Möglichkeit empfinden, die Verschleierungstechniken zu erkunden und zu visualisieren, die dieses Framework derzeit unterstützt.

Installation

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

Zur Installation:

root@kitploit:~
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation

Lizenz

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

Versionshinweise

v1.0 – 2016-09-25 DerbyCon 6.0 (Louisville, Kentucky USA): Öffentliche Veröffentlichung von Invoke-Obfuscation.

v1.1 – 2016-10-09 SANS DFIR Summit (Prag, Tschechische Republik): Hinzugefügt: -f Formatoperator-Umordnungsfunktionalität für alle zutreffenden TOKEN-Verschleierungsfunktionen. Außerdem zusätzliche Syntaxoptionen zum Setzen von Variablenwerten.

v1.2 – 2016-10-20 CODE BLUE (Tokio, Japan): Hinzugefügt: Typ-TOKEN-Verschleierung (direkte Typumwandlung mit Zeichenkettenverschleierungsoptionen für den Typnamen).

v1.3 – 2016-10-22 Hacktivity (Budapest, Ungarn): Hinzugefügt: Zwei neue LAUNCHERs: CLIP+ und CLIP++. Außerdem zusätzliche (und einfachere) Array-Zeichenkonvertierungssyntax für alle ENCODING-Funktionen, die For-EachObject/% nicht benötigt.

v1.4 – 2016-10-28 BruCON (Gent, Belgien): Hinzugefügt: Neue BXOR-ENCODING-Funktion. Außerdem verbesserte zufällige Groß-/Kleinschreibung für alle Komponenten aller ENCODING-Funktionen sowie für PowerShell-Ausführungsflags aller LAUNCHERs. Schließlich wurde die Kurzform -EP für -ExecutionPolicy zu allen LAUNCHERs hinzugefügt sowie die optionale ganzzahlige Darstellung des PowerShell-Ausführungsflags -WindowStyle: Normal (0), Hidden (1), Minimized (2), Maximized (3).

v1.5 – 2016-11-04 Blue Hat (Redmond, Washington USA): Hinzugefügt: WMIC-LAUNCHER mit etwas Randomisierung der WMIC-Befehlszeilenargumente.

v1.6 – 2017-01-24 Blue Hat IL (Tel Aviv, Israel):

  • CLI-Funktionalität hinzugefügt: Z.B.: Invoke-Obfuscation -ScriptBlock {Write-Host 'CLI FTW!'} -Command 'Token\All\1, Encoding\1,Launcher\Stdin++\234,Clip' -Quiet -NoExit
  • UNDO-Funktionalität hinzugefügt, um jeweils eine Verschleierungsschicht zu entfernen.
  • Whitespace-Verschleierung aus Token\All\1 entfernt, um die Verschleierung großer Skripte zu beschleunigen.
  • Prozessargumentbaum-Ausgabe für alle Launcher hinzugefügt, um Verteidigern zu helfen.
  • Automatische Erkennung des Basis-Menüs hinzugefügt, um die Verwendung von BACK oder HOME zu vermeiden: Z.B.: Wenn Sie TOKEN, dann ALL, dann 1 ausgeführt haben, tippen Sie einfach LAUNCHER, um zum LAUNCHER-Menü zu gelangen, ohne HOME oder BACK eingeben zu müssen, um zum Hauptmenü zurückzukehren.
  • Multi-Befehl-Syntax hinzugefügt, die von CLI und interaktivem Modus verwendet wird: Z.B.: Token\All\1,String\3,Encoding\5,Launcher\Ps\234,Clip
  • Regex-Fähigkeit zu allen Menü- und Verschleierungsbefehlen hinzugefügt: Z.B.: Token**,String[13],Encoding(1|6),Launcher.*[+]{2}\234,Clip
  • OUT FILEPATH-Einzelbefehl-Funktionalität hinzugefügt.
  • Dekodierung hinzugefügt, wenn powershell -enc-Syntax als SCRIPTBLOCK-Wert eingegeben wird.
  • Alias ForEach zu ForEach-Object/% randomisierte Syntaxoptionen in allen ENCODING-Funktionen hinzugefügt.
  • -Key -Ke -K KEY-Substring-Syntaxoptionen zu Out-SecureStringCommand.ps1 hinzugefügt.
  • Gründlichere Groß-/Kleinschreibungs-Randomisierung für alle \Home\String-Verschleierungsfunktionen hinzugefügt.
  • -ST/-STA (Single-Threaded Apartment)-Flags zu CLIP+- und CLIP++-Launcher-Funktionen hinzugefügt, da diese bei Ausführung unter PowerShell 2.0 erforderlich sind.
  • Get-Item/GI/Item-Syntax überall dort hinzugefügt, wo Get-ChildItem zum Abrufen von Variablenwerten verwendet wird.
  • Set-Item-Variableninstantiierungssyntax zur TYPE-Verschleierungsfunktion hinzugefügt.
  • Zusätzliche Invoke-Expression/IEX-Syntax unter Verwendung von PowerShell-Automatikvariablen und Umgebungsvariablenwertverkettungen in Out-ObfuscatedStringCommand.ps1s Out-EncapsulatedInvokeExpression-Funktion hinzugefügt und auf alle Launcher-, STRING- und ENCODING-Funktionen kopiert, um zahlreiche Befehlszeilensyntaxen für IEX bereitzustellen.
  • Zwei neue JOIN-Syntaxen für String\Reverse und alle ENCODING-Verschleierungsoptionen hinzugefügt:
  1. [String]::Join('',$string)-JOIN-Syntax hinzugefügt
  2. OFS-Variablen-JOIN-Syntax (Output Field Separator-Automatikvariable) hinzugefügt
  • Zwei weitere SecureString-Syntaxen zu Encoding\5 hinzugefügt:
  1. PtrToStringAnsi / SecureStringToGlobalAllocAnsi
  2. PtrToStringBSTR / SecureStringToBSTR
  • Sechs GetMember-Alternativsyntaxen für mehrere SecureString-Member hinzugefügt:
  1. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[3].Name).Invoke
  2. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[5].Name).Invoke
  3. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[2].Name).Invoke
  4. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[4].Name).Invoke
  5. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[0].Name).Invoke
  6. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[1].Name).Invoke
  • Out-ObfuscatedTokenCommand.ps1 aktualisiert, sodass die VARIABLE-Verschleierung Variablen nicht in ${} einschließt, wenn sie bereits eingeschlossen sind (damit ${${var}} nicht passiert, da dies Fehler verursacht).
  • Invoke-Obfuscation.psm1 durch Invoke-Obfuscation.psd1 ersetzt (danke @Carlos_Perez).
  • Mehrere TOKEN-Ebene-Verschleierungsfehler behoben, gemeldet von @cobbr_io und @IISResetMe.

v1.7 – 2017-03-03 nullcon (Goa, Indien):

  • 3 neue LAUNCHERs hinzugefügt: RUNDLL, RUNDLL++ und MSHTA++
  • Zusätzliche ExecutionContext-Platzhaltervariablen-Strings hinzugefügt

v1.8 – 2017-07-27 Black Hat (Las Vegas, Nevada USA):

  • 2 neue ENCODING-Optionen hinzugefügt: Sonderzeichen und Leerzeichen
Tool herunterladen