Patch AMSI
Abordei o assunto de como realizar o patch no amsi.dll no post Patch-Amsi e utilizei esse patch em outro post In-Memory-Execution.
Código "novo"
Bom, a única coisa que fiz foi aplicar o patch sem precisar executar nada no PowerShell.
Você pode encontrar o código aqui: GitHub.Como funciona:
- 1 Localiza o processo powershell.exe e obtém seu ID.
- 2 Carrega a biblioteca amsi.dll e encontra a função AmsiScanBuffer.
- 3 Calcula o endereço do AmsiScanBuffer + 0x95 para chegar no endereço necessário da função para aplicar o patch.
- 4 Modifica as permissões de memória para permitir a escrita e altera um byte (de 0x74 para 0x75), conseguindo assim "desativar" a verificação de segurança do AMSI.
- 5 Restaura as permissões de memória e finaliza.