
UDRL Cobalt Strike qui effectue un piétinement de modules avancé en utilisant VEH pour intercepter les appels, démapper les modules pendant le sommeil, et remapper des modules frais pour éviter les IOCs.
Astral Projection est un UDRL (User-Defined Reflective Loader) pour Cobalt Strike qui effectue un « module stomping » avancé.
L'UDRL charge un module via LoadLibraryExW, puis manipule ses structures internes en installant un VEH pour intercepter des appels stratégiques. Cela lui permet de voler le handle de section de la DLL sacrifiée et d'améliorer ses droits d'accès pour une utilisation ultérieure dans le masque de sommeil. Pendant le sommeil, il décharge le module tout en conservant les entrées PEB intactes, puis recharge un module frais pour éviter tout IOC pendant le sommeil.
Ce projet est construit avec Crystal Palace. Une partie du code a été empruntée au projet Crystal-Kit.
Un article technique détaillant les techniques utilisées est disponible ici.
stage {
set sleep_mask "false";
set cleanup "true";
transform-obfuscate { }
}
post-ex {
set cleanup "true";
set smartinject "true";
}
crystalpalace.jar dans le répertoire client de Cobalt Strike.Astral_Projection.cna.