MemoryEvasion
Un cargador de evasión de memoria de Cobalt Strike para redteamers, compatible con payloads x86/x64 stager/stagerless con perfil (probado en windows7/10, winserver 2012)
¿Cómo evita?
- Engancha las funciones Sleep, CreateProcessA, CreateHeap y GetProcessHeap antes de que el shellcode se cargue en memoria.
- Crea un nuevo heap para el perfil de beacon. Cuando beacon llama a las funciones GetProcessHeap o CreateHeap, devuelve el identificador del nuevo heap.
- Cuando beacon llama a la función sleep, ciframos las memorias donde se encuentran beacon y el perfil, y cuando el sleep termina, las desciframos.
¿Por qué enganchar GetProcessHeap y CreateHeap?
- El beacon de 64 bits llama a GetProcessHeap para obtener la memoria del perfil de beacon.
- El beacon de 32 bits no llama a GetProcessHeap para obtener la memoria del perfil de beacon. Utiliza CreateHeap para crear un nuevo heap y obtener la memoria para almacenar el perfil de beacon desde ese heap.
Demo

Referencias
Este proyecto no habría sido posible sin lo siguiente: