
.NET-Assembly-Loader mit patcheslosem AMSI- und ETW-Bypass
PatchlessCLRLoader ist ein Fork von InlineExecute-Assembly, um .NET-Assemblys zu laden und die Ausgabe an einen Mailslot zu leiten. Ich habe es zu einem eigenständigen Loader mit der folgenden Implementierung umgeschrieben:
Hinweis: Der Loader unterstützt derzeit nur das Setzen von HWBP im Hauptthread.
Die Verwendung von Hardware-Breakpoints für den Patchless-Bypass hat gegenüber herkömmlichen Patching-Techniken mehrere Vorteile. Erstens vermeidet sie die Verwendung allgemein bekannter APIs wie NtProtectVirtualMemory, die von Sicherheitslösungen eng überwacht werden. Zweitens erfordern Hardware-Breakpoints keine Änderung an den Dateien, die von Dateiintegritätsüberwachung oder EDR erkannt werden könnte, was zu einem relativ unauffälligen Ansatz führt.
BOF-Version, die von InlineExecute-Assembly portiert wurde https://github.com/VoldeSec/PatchlessInlineExecute-Assembly
AES-verschlüsselte Nutzlast

Ausführen
PatchlessCLRLoader.exe <payload> <key> <arguments>
Lokale Nutzlast


Der Prozess kann aufgrund einer Zugriffsverletzung während der CLR hängen bleiben, aber dieses Problem kann mithilfe der Ausgabefunktion der geladenen .NET-Assembly umgangen werden, sofern diese unterstützt wird. (z. B. -outputfile von Seatbelt). Fehlerbehebung ausstehend.
@rad9800 Implementierung des Patchless-Hooks
InlineExecute-Assembly - https://github.com/anthemtotheego/InlineExecute-Assembly