
Caricatore riflessivo definito dall'utente basato su Rust per payload di Cobalt Strike. Evita le pagine di memoria RWX per la sicurezza OPSEC. Include uno strumento di estrazione per l'estrazione della sezione del caricatore.

Un Reflective Loader User-Defined per Cobalt Strike scritto interamente in Rust. Volevo solo capire quanto fosse difficile realizzarlo. A quanto pare, non è poi così difficile. Potrei aggiungere una funzionalità di sleep obfuscation a un certo punto. Al momento è solo un loader di base senza funzionalità particolari. L'unica funzionalità di "sicurezza opsec" è che non utilizza pagine RWX in nessun momento.
Scarica la release e carica il file .cna.
Potresti compilarlo da solo. Assicurati di usare la toolchain MSVC e il profilo release. Puoi usare l'extractor incluso per estrarre la sezione .text del loader. Per esempio:
cd extractor
cargo run --release -- ../target/release/crabloader.exe ../bin/crabloader.bin
Ho usato questo profilo per i test: https://github.com/BC-SECURITY/Malleable-C2-Profiles/blob/master/APT/apt1_virtuallythere.profile
Non contiene impostazioni per modificare gli indicatori di memoria, solo roba di rete. Quindi suppongo che tutte le impostazioni predefinite funzionino. Se cambi l'header MZ con magic_mz_x64, il loader non funzionerà perché cerca quell'header.