MemoryEvasion
Um loader de evasão de memória do Cobalt Strike para redteamers, suporta payloads x86/x64 com ou sem stager e com perfil (testado em windows7/10, winserver 2012)
Como ocorre a evasão?
- Hook nas funções Sleep, CreateProcessA, CreateHeap, GetProcessHeap antes de o shellcode ser carregado na memória.
- Cria um novo heap para o perfil do beacon. Quando o beacon chama as funções GetProcessHeap ou CreateHeap, retorna o handle do novo heap.
- Quando o beacon chama a função sleep, criptografamos as memórias onde o beacon e o perfil estão localizados e, quando o sleep termina, descriptografamos.
Por que fazer Hook em GetProcessheap e CreateHeap
- O beacon de 64 bits chama GetProcessHeap para obter a memória do perfil do beacon.
- O beacon de 32 bits não chama GetProcessHeap para obter a memória do perfil do beacon. Ele usa CreateHeap para criar um novo heap e obter a memória para armazenar o perfil do beacon a partir desse heap.
Demonstração

Referências
Este projeto não teria sido possível sem o seguinte: