Gacrux Malware

Gacrux Malware Beschrijving

Gacrux is een malwarebedreiging geschreven in C die een nogal eigenaardige combinatie laat zien van het optillen van hele modules en codesecties uit open source-projecten met een op maat gemaakte PE-lader. Ondanks het liberale gebruik van open-sourcecode en nogal wat bugs, wordt de Gacrux Malware verkocht op ondergrondse hackerforums. Volgens infosec-onderzoeker KrabsOnSecurity lijkt Gacrux geïnspireerd te zijn door een andere malware genaamd Smoke Loader.

Anti-analyse en anti-VM-technieken

Hoewel de meeste van hen gemakkelijk kunnen worden omzeild, is Gacrux niettemin uitgerust met nogal wat anti-analysemaatregelen. De dreiging probeert eerst IDA-foutopsporing te verstoren door nepretouren en sprongen te implementeren die ervoor zorgen dat IDA de daaropvolgende instructies onnauwkeurig uit elkaar haalt. Als een extra versluieringsmaatregel worden twee functies op schijf versleuteld door de Gacrux Malware. Als identificatie voor mogelijk uitvoering in een sandbox-omgeving, controleert Gacrux de beschikbare schijfruimte en Ram-grootte.

Extra anti-foutopsporingsmethoden worden door de gehele code van de malware verspreid. De meeste worden geïnjecteerd in belangrijke functiesegmenten en laten het hele proces crashen als ze een debugger of een VM-omgeving detecteren.

Het persistentiemechanisme wordt tot stand gebracht via een vensterprocedure die verantwoordelijk is voor het controleren van het geïnstalleerde bestand en het maken van een .lnk-opstartbestand. De procedure wordt periodiek aangeroepen in de context van explorer.exe.

De Gacrux Malware leent open-sourcecode

Onder de modules waaruit de infrastructuur van Gacrux bestaat, zijn er verschillende verwijderd uit gratis projecten die rechtstreeks op legitieme webservices worden gehost. De syscall-module van de dreiging is bijvoorbeeld een bijna identieke kopie van een open-source encryptor, terwijl de lader voor de modules rechtstreeks uit het Memory Module-project op Github wordt gehaald.

Verzamelde code kan ook worden gevonden als onderdeel van de uitvoeringsprimitief die SetPropA exploiteert in een methode die is gekopieerd van open-source-implementaties. Voor de code-injectie maakt Gacrux gebruik van twee verschillende schrijfprimitieven, afhankelijk van of het wordt uitgevoerd op een 32-bits architectuur of 64-bits. Voor 32-bits systemen gebruikt de malware ' NtCreateSection / NtMapViewOfSection ', terwijl het voor 64-bits systemen ' NtAllocateVirtualMemory / NtWriteVirtualMemory' gebruikt.