
Ein Amsi-Bypass-Payload, der unter Windows 11 funktioniert
Technische Details finden Sie im Artikel: https://medium.com/@gustavshen/bypass-amsi-on-windows-11-75d231b2cac6
HRESULT AmsiOpenSession(
[in] HAMSICONTEXT amsiContext,
[out] HAMSISESSION *amsiSession
);
Dieses PowerShell-Skript kann verwendet werden, um AMSI zu umgehen, indem AmsiOpenSession gepatcht wird. Laut den Assembler-Codes wird die Funktion mit einem E_INVALIDARG-Fehler beendet, wenn irgendeine der folgenden Bedingungen erfüllt ist.

Dieses Skript patcht AmsiOpenSession, indem es RCX auf 0 setzt.

Das Patchen von AmsiOpenSession kann AMSI für Assembly.Load() nicht umgehen.
HRESULT AmsiScanBuffer(
[in] HAMSICONTEXT amsiContext,
[in] PVOID buffer,
[in] ULONG length,
[in] LPCWSTR contentName,
[in, optional] HAMSISESSION amsiSession,
[out] AMSI_RESULT *result
);
Dieses PowerShell-Skript kann verwendet werden, um AMSI zu umgehen, indem AmsiScanBuffer gepatcht wird. Das Skript patcht AmsiScanBuffer, indem es RAX auf den Wert des Fehlers E_INVALIDARG setzt und sofort zurückkehrt.

Das Patchen von AmsiScanBuffer kann AMSI für Assembly.Load() umgehen.

Diese Datei enthält Einzeiler-Payloads, die in der aktuellen PowerShell-Sitzung verwendet werden können und AMSI sofort umgehen. Sie können AMSI jedoch nicht für Assembly.Load() umgehen.
Details finden Sie in dieser Datei.