Gacrux Malware

Gacrux Malware-Beschreibung

Gacrux ist eine in C geschriebene Malware-Bedrohung, die eine ziemlich eigenartige Kombination aus dem Entfernen ganzer Module und Codeabschnitte aus Open Source-Projekten mit einem maßgeschneiderten PE-Loader zeigt. Trotz der liberalen Verwendung von Open-Source-Code und einiger Fehler wird die Gacrux-Malware in unterirdischen Hackerforen verkauft. Laut dem Infosec-Forscher KrabsOnSecurity scheint Gacrux von einer anderen Malware namens Smoke Loader inspiriert worden zu sein.

Anti-Analyse- und Anti-VM-Techniken

Obwohl die meisten von ihnen leicht umrundet werden können, ist Gacrux dennoch mit einigen Anti-Analyse-Maßnahmen ausgestattet. Die Bedrohung versucht zunächst, das IDA-Debugging zu stören, indem gefälschte Rückgaben und Sprünge implementiert werden, die dazu führen, dass IDA die nachfolgenden Anweisungen ungenau zerlegt. Als zusätzliche Verschleierungsmaßnahme werden zwei Funktionen von der Gacrux-Malware auf der Festplatte verschlüsselt. Als Kennung für die potenzielle Ausführung in einer Sandbox-Umgebung überprüft Gacrux den verfügbaren Speicherplatz und die Ram-Größe.

Zusätzliche Anti-Debugging-Methoden sind im gesamten Code der Malware verteilt. Die meisten von ihnen werden in wichtige Funktionssegmente eingefügt und stürzen den gesamten Prozess ab, wenn sie einen Debugger oder eine VM-Umgebung erkennen.

Der Persistenzmechanismus wird durch eine Fensterprozedur eingerichtet, die für die Überprüfung der installierten Datei und die Erstellung einer .lnk-Startdatei verantwortlich ist. Die Prozedur wird regelmäßig im Kontext von explorer.exe aufgerufen.

Die Gacrux-Malware leiht sich Open-Source-Code aus

Unter den Modulen, aus denen sich die Infrastruktur von Gacrux zusammensetzt, wurden einige aus kostenlosen Projekten entfernt, die direkt auf legitimen Webdiensten gehostet werden. Beispielsweise ist das Syscall-Modul der Bedrohung eine nahezu identische Kopie eines Open-Source-Verschlüsselers, während der Loader für die Module aus dem direkt auf Github gefundenen Speichermodul-Projekt stammt.

Der gesammelte Code kann auch als Teil des Ausführungsprimitivs gefunden werden, das SetPropA in einer Methode ausnutzt, die aus Open-Source-Implementierungen kopiert wurde. Für die Code-Injection nutzt Gacrux zwei verschiedene Schreibprimitive, je nachdem, ob es auf einer 32-Bit-Architektur oder einer 64-Bit-Architektur ausgeführt wird. Bei 32-Bit-Systemen verwendet die Malware ' NtCreateSection / NtMapViewOfSection ', während bei 64-Bit-Systemen ' NtAllocateVirtualMemory / NtWriteVirtualMemory ' verwendet wird.