
PowerShell Remote Download Cradle Generator & Obfuskator

Invoke-CradleCrafter ist ein PowerShell v2.0+ kompatibler Generator und Obfuskator für PowerShell Remote Download Cradles.
Im Herbst 2016, nach der Veröffentlichung von Invoke-Obfuscation, aktualisierte ich weiterhin meine Tabelle mit PowerShell Remote Download Cradles, in der Annahme, dass ich eines Tages ein „Cradle-Auswahlmenü“ in Invoke-Obfuscation einbauen könnte. Diese Liste bestand aus Cradles, die mir unbekannt waren, und viele von ihnen wurden in der Praxis nicht (oder gar nicht) beobachtet.
Da Invoke-Obfuscation jedoch entwickelt wurde, um beliebige PowerShell-Befehle oder -Skripte zu obfuskieren, gab es bestimmte Obfuskationstechniken, die ich in Bezug auf die Erstellung individueller Cradles einbeziehen musste, die nicht in Invoke-Obfuscation integriert werden konnten.
Dies führte dazu, dass ich diese Cradle-Forschung in ein separates Projekt auslagerte, obwohl Sie die Ausgabe von Invoke-CradleCrafter jederzeit in Invoke-Obfuscation eingeben und den Spaß fortsetzen können. Da Invoke-CradleCrafter viel stärker kontrolliert ist, hat es mir ermöglicht, Obfuskationstechniken zu integrieren, die sich völlig von den in Invoke-Obfuscation vorhandenen Techniken unterscheiden.
Einige der neuen Obfuskationstechniken in diesem Tool umfassen Token-Obfuskation durch Datentyp-Enumeration und Platzhalterabgleich sowie die Neuanordnung der Befehlsstruktur durch Einführung zusätzlicher Variablen und Variablensyntaxen.
Schließlich unterstützt das Tool über 10 Aufrufsyntaxen, die über die am weitesten verbreiteten Invoke-Expression und IEX hinausgehen.
Invoke-CradleCrafter dient dazu, Blue Teams und Red Teams bei der einfachen Erkundung, Generierung und Obfuskation von PowerShell Remote Download Cradles zu unterstützen. Darüber hinaus hilft es Blue Teams, die Wirksamkeit von Erkennungen zu testen, die für die Ausgabe von Invoke-Obfuscation funktionieren, aber bei Invoke-CradleCrafter möglicherweise versagen, da es keine Zeichenfolgenverkettungen, Kodierungen, Backticks, Typumwandlungen usw. enthält.
Eine weitere wichtige Komponente dieser Forschung und Toolentwicklung war die effektive Hervorhebung des allgemeinen Verhaltens und der Artefakte, die bei der Ausführung jedes Cradles zurückbleiben. Ich habe versucht, diese Informationen hervorzuheben, wenn Sie zum ersten Mal einen neuen Cradle-Typ in den interaktiven Menüs des Tools auswählen.
Letztendlich hilft das Wissen über das Verhalten und die Artefakte jedes Cradles dem Blue Team, diese Cradles besser zu erkennen. Dieses Wissen sollte auch dem Red Teamer zugutekommen, um fundiertere Entscheidungen darüber zu treffen, welches Cradle in einem bestimmten Szenario verwendet werden soll.
Obwohl alle Cradles durch direkten Aufruf der Out-Cradle-Funktion erstellt werden können, macht die Komplexität der beweglichen Teile für alle gestapelten obfuskierten Komponenten die Verwendung der Invoke-CradleCrafter-Funktion zum einfachsten Weg, die Cradle-Syntaxen und Obfuskationstechniken zu erkunden und zu visualisieren, die dieses Framework derzeit unterstützt.
Der Quellcode für Invoke-CradleCrafter wird auf Github gehostet, und Sie können ihn von diesem Repository herunterladen, forken und überprüfen (https://github.com/danielbohannon/Invoke-CradleCrafter). Bitte melden Sie Probleme oder Feature-Wünsche über den mit diesem Projekt verbundenen Bug-Tracker von Github.
Zur Installation:
Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
Invoke-CradleCrafter wird unter der Apache-2.0-Lizenz veröffentlicht.
v1.0 - 2017-04-28 x33fcon (Gdynia, Polen): Öffentliche Veröffentlichung von Invoke-CradleCrafter.
v1.1 - 2017-05-11 NOPcon (Istanbul, Türkei): 3 neue speicherbasierte Cradles hinzugefügt:
v1.1.1 - 2018-01-08: 1 neues speicherbasiertes Cradle hinzugefügt:
v1.1.2 - 2018-02-05: User-Agent-Strings zur Cradle-Info hinzugefügt