
UDRL для Cobalt Strike, который выполняет продвинутое затирание модулей с использованием VEH для перехвата вызовов, разгружает модули во время сна и перезагружает свежие модули для обхода IOCs.
Astral Projection — это UDRL (User-Defined Reflective Loader) для Cobalt Strike, который выполняет продвинутую модульную подмену (module stomping).
UDRL загружает модуль с помощью LoadLibraryExW, затем манипулирует его внутренностями, устанавливая VEH для перехвата стратегических вызовов, что позволяет ему украсть дескриптор секции жертвенной DLL и повысить её права доступа для последующего использования в спящей маске (sleep mask). Во время сна он отменяет отображение модуля, оставляя записи PEB нетронутыми, затем повторно отображает новый модуль, чтобы избежать любых IOC во время сна.
Этот проект построен с использованием Crystal Palace. Некоторый код был заимствован из проекта Crystal-Kit.
Технический пост в блоге, подробно описывающий используемые техники, можно найти здесь
stage {
set sleep_mask "false";
set cleanup "true";
transform-obfuscate { }
}
post-ex {
set cleanup "true";
set smartinject "true";
}
crystalpalace.jar в каталог клиента Cobalt Strike.Astral_Projection.cna.