MemoryEvasion
Загрузчик Cobalt Strike для обхода обнаружения в памяти для redteamers, поддерживает x86/x64 stager/stagerless полезные нагрузки с профилем (протестировано на windows7/10, winserver 2012)
Как происходит обход?
- Перехватываются функции Sleep, CreateProcessA, CreateHeap, GetProcessHeap до загрузки шеллкода в память.
- Создаётся новая куча для профиля beacon. Когда beacon вызывает функцию GetProcessHeap или CreateHeap, возвращается дескриптор новой кучи.
- Когда beacon вызывает функцию sleep, мы шифруем память, где расположены beacon и профиль, а когда sleep завершается, мы их расшифровываем.
Зачем перехватывать GetProcessheap и CreateHeap
- 64-битный beacon вызывает GetProcessHeap для получения памяти под профиль beacon.
- 32-битный beacon не вызывает GetProcessHeap для получения памяти под профиль beacon. Он использует CreateHeap для создания новой кучи и получает память для хранения профиля beacon из этой кучи.
Демонстрация

Ссылки
Этот проект был бы невозможен без следующего: