Gacrux Malware

Gacrux Malware Beskrivelse

Gacrux er en malware-trussel skrevet i C, der viser en ret mærkelig kombination af at løfte hele moduler og kodesektioner fra open source-projekter med en skræddersyet PE-loader. På trods af den liberale brug af open source-kode og en hel del bugs sælges Gacrux Malware på underjordiske hackerfora. Ifølge infosec-forsker KrabsOnSecurity ser Gacrux ud til at være inspireret af en anden malware kaldet Smoke Loader .

Anti-analyse og anti-VM-teknikker

Selvom de fleste af dem let kan omgåes, er Gacrux ikke desto mindre udstyret med en hel del anti-analyseforanstaltninger. Truslen forsøger først at forstyrre IDA-fejlretning ved at implementere falske returneringer og spring, der får IDA til at adskille de efterfølgende instruktioner unøjagtigt. Som en yderligere tilsløringsforanstaltning krypteres to funktioner på disken af Gacrux Malware. Som en identifikator for potentielt at blive udført i et sandkassemiljø kontrollerer Gacrux den tilgængelige diskplads og RAM-størrelse.

Yderligere anti-debugging-metoder sprinkles gennem hele malware-koden. De fleste af dem injiceres i vigtige funktionssegmenter og styrter hele processen, hvis de opdager en fejlretning eller et VM-miljø.

Persistensmekanismen etableres gennem en Window-procedure, der er ansvarlig for at kontrollere den installerede fil og oprette en opstart .lnk-fil. Proceduren kaldes periodisk inden for sammenhængen med explorer.exe.

Gacrux Malware låner open source-kode

Blandt modulerne, der omfatter Gacruxs infrastruktur, er flere blevet løftet direkte fra gratis projekter, der er hostet på legitime webservices. For eksempel er trusselens syscall-modul en næsten identisk kopi af en open source-krypterer, mens indlæseren til modulerne er taget fra Memory Module-projektet, der findes direkte på Github.

Samlet kode kan også findes som en del af den primitive udførelse, der udnytter SetPropA i en metode kopieret fra open source-implementeringer. Til sin kodeindsprøjtning udnytter Gacrux to forskellige skriveprimitiver afhængigt af om den udføres på en 32-bit arkitektur eller 64-bit. Til 32-bit-systemer bruger malware ' NtCreateSection / NtMapViewOfSection ', mens det til 64-bit-systemer anvender ' NtAllocateVirtualMemory / NtWriteVirtualMemory. ''