Gacrux Malware

Gacrux Malware Descrizione

Gacrux è una minaccia malware scritta in C che mostra una combinazione piuttosto peculiare di sollevamento di interi moduli e sezioni di codice da progetti open source con un caricatore PE personalizzato. Nonostante l'uso liberale del codice open-source e alcuni bug, il Gacrux Malware viene venduto nei forum degli hacker sotterranei. Secondo il ricercatore di infosec KrabsOnSecurity, Gacrux sembra essere stato ispirato da un altro malware chiamato Smoke Loader.

Tecniche anti-analisi e anti-VM

Sebbene la maggior parte di essi possa essere circumnavigata facilmente, Gacrux è comunque dotato di alcune misure anti-analisi. La minaccia prima cerca di interrompere il debug IDA implementando false restituzioni e salti che inducono IDA a disassemblare le istruzioni successive in modo impreciso. Come ulteriore misura di offuscamento, due funzioni vengono crittografate su disco da Gacrux Malware. Come identificatore per essere potenzialmente eseguito in un ambiente sandbox, Gacrux controlla lo spazio disponibile su disco e la dimensione della RAM.

Metodi anti-debug aggiuntivi sono sparsi in tutto il codice del malware. La maggior parte di essi viene iniettata in importanti segmenti di funzioni e interrompe l'intero processo se rileva un debugger o un ambiente VM.

Il meccanismo di persistenza viene stabilito tramite una procedura finestra responsabile del controllo del file installato e della creazione di un file .lnk di avvio. La procedura viene chiamata periodicamente all'interno del contesto di explorer.exe.

Il malware Gacrux prende in prestito codice open source

Tra i moduli che compongono l'infrastruttura di Gacrux, molti sono stati tolti da progetti gratuiti ospitati direttamente su servizi Web legittimi. Ad esempio, il modulo syscall della minaccia è una copia quasi identica di un crittografo open-source, mentre il caricatore dei moduli è preso dal progetto Memory Module trovato direttamente su Github.

Il codice raccolto può anche essere trovato come parte della primitiva di esecuzione che sfrutta SetPropA in un metodo copiato da implementazioni open source. Per la sua iniezione di codice, Gacrux sfrutta due diverse primitive di scrittura a seconda che venga eseguita su un'architettura a 32 bit o 64 bit. Per i sistemi a 32 bit, il malware utilizza " NtCreateSection / NtMapViewOfSection ", mentre per i sistemi a 64 bit utilizza " NtAllocateVirtualMemory / NtWriteVirtualMemory. '