
Amsi Bypass payload that works on Windwos 11
기술적 세부 사항은 다음 기사에서 확인할 수 있습니다: https://medium.com/@gustavshen/bypass-amsi-on-windows-11-75d231b2cac6
HRESULT AmsiOpenSession(
[in] HAMSICONTEXT amsiContext,
[out] HAMSISESSION *amsiSession
);
이 PowerShell 스크립트는 AmsiOpenSession을 패치하여 AMSI를 우회하는 데 사용할 수 있습니다. 어셈블리 코드에 따르면 다음 조건 중 하나라도 충족되면 함수는 E_INVALIDARG 오류와 함께 종료됩니다.

이 스크립트는 RCX를 0으로 설정하여 AmsiOpenSession을 패치합니다.

AmsiOpenSession 패치는 Assembly.Load()에 대한 AMSI를 우회할 수 없습니다
HRESULT AmsiScanBuffer(
[in] HAMSICONTEXT amsiContext,
[in] PVOID buffer,
[in] ULONG length,
[in] LPCWSTR contentName,
[in, optional] HAMSISESSION amsiSession,
[out] AMSI_RESULT *result
);
이 PowerShell 스크립트는 AmsiScanBuffer를 패치하여 AMSI를 우회하는 데 사용할 수 있습니다. 이 스크립트는 RAX를 E_INVALIDARG 오류 값으로 설정하고 즉시 반환하여 AmsiScanBuffer를 패치합니다.

AmsiScanBuffer 패치는 Assembly.Load()에 대한 AMSI를 우회할 수 있습니다

이 파일에는 현재 PowerShell 세션에서 사용하여 즉시 AMSI를 우회할 수 있는 원라이너 페이로드가 포함되어 있습니다. 그러나 Assembly.Load()에 대한 AMSI는 우회할 수 없습니다.
자세한 내용은 이 파일에서 확인할 수 있습니다.