Gacrux Malware

Description de Gacrux Malware

Gacrux est une menace de malware écrite en C qui affiche une combinaison assez particulière de suppression de modules entiers et de sections de code de projets open source avec un chargeur PE sur mesure. Malgré l'utilisation libérale du code open source et de nombreux bogues, le logiciel malveillant Gacrux est vendu sur des forums de pirates souterrains. Selon le chercheur KrabsOnSecurity, Gacrux semble avoir été inspiré par un autre malware appelé Smoke Loader.

Techniques anti-analyse et anti-VM

Bien que la plupart d'entre eux puissent être facilement contournés, Gacrux est néanmoins équipé de plusieurs mesures anti-analyse. La menace essaie d'abord de perturber le débogage IDA en implémentant de faux retours et sauts qui obligent IDA à désassembler les instructions suivantes de manière inexacte. En guise de mesure d'obscurcissement supplémentaire, deux fonctions sont cryptées sur disque par le logiciel malveillant Gacrux. En tant qu'identifiant pour potentiellement être exécuté dans un environnement sandbox, Gacrux vérifie l'espace disque disponible et la taille de la RAM.

Des méthodes anti-débogage supplémentaires sont saupoudrées dans tout le code du malware. La plupart d'entre eux sont injectés dans des segments de fonction importants et bloquent l'ensemble du processus s'ils détectent un débogueur ou un environnement de VM.

Le mécanisme de persistance est établi via une procédure de fenêtre chargée de vérifier le fichier installé et de créer un fichier de démarrage .lnk. La procédure est appelée périodiquement dans le contexte de explorer.exe.

Le logiciel malveillant Gacrux emprunte du code open source

Parmi les modules qui composent l'infrastructure de Gacrux, plusieurs ont été retirés de projets gratuits hébergés directement sur des services Web légitimes. Par exemple, le module syscall de la menace est une copie presque identique d'un chiffreur open-source, tandis que le chargeur des modules est extrait du projet Memory Module trouvé directement sur Github.

Le code collecté peut également être trouvé dans le cadre de la primitive d'exécution qui exploite SetPropA dans une méthode copiée à partir d'implémentations open source. Pour son injection de code, Gacrux utilise deux primitives d'écriture différentes selon qu'elle est exécutée sur une architecture 32 bits ou 64 bits. Pour les systèmes 32 bits, le logiciel malveillant utilise « NtCreateSection / NtMapViewOfSection », tandis que pour les systèmes 64 bits, il utilise « NtAllocateVirtualMemory / NtWriteVirtualMemory. '