
Carregador Reflexivo Definido pelo Utilizador baseado em Rust para payloads do Cobalt Strike. Evita páginas de memória RWX para segurança OPSEC. Inclui uma ferramenta extratora para extração da seção do loader.

Um Loader Reflexivo Definido pelo Usuário do Cobalt Strike escrito inteiramente em Rust. Eu só queria descobrir o quão difícil seria construí-lo. Acontece que não é tão difícil. Posso adicionar um recurso de ofuscação de sono em algum momento. No momento, é apenas um loader básico sem nenhum recurso especial. O único recurso de "segurança opsec" é que ele não usa páginas RWX em nenhum momento.
Baixe o release e carregue o arquivo .cna.
Você pode compilá-lo você mesmo. Certifique-se de usar o toolchain MSVC e o perfil release. Você pode usar o extrator incluído para extrair a seção .text do loader. Por exemplo:
cd extractor
cargo run --release -- ../target/release/crabloader.exe ../bin/crabloader.bin
Usei este perfil para teste: https://github.com/BC-SECURITY/Malleable-C2-Profiles/blob/master/APT/apt1_virtuallythere.profile
Ele não contém configurações para alterar indicadores de memória, apenas coisas de rede. Então, presumo que todos os padrões funcionem. Se você alterar o cabeçalho MZ com magic_mz_x64, o loader não funcionará, pois ele procura por esse cabeçalho.