Pikabot

Zscaler analysiert neuen Trojaner Pikabot

Zscaler analysiert neuen Trojaner Pikabot

Die Zscaler-Security-Analysten beobachten seit Anfang des Jahres eine neue Backdoor mit dem Namen Pikabot, die für die Verbreitung von Cobalt-Strike eingesetzt wird. Jetzt legt das ThreatlabZ-Team eine technische Analyse vor . Die bösartige Backdoor ist modular aufgebaut und verfügt über einen Loader und eine Kernkomponente, die den Großteil der Funktionen implementiert. Es kommen eine Reihe an Anti-Analysetechniken zum Einsatz, die die Erkennung der schädlichen Aktivitäten erschwert. Im Rahmen der Analyse wurde eine Ähnlichkeit mit Qakbot hinsichtlich des Verbreitungsmodus, der Kampagnen und des Malware-Verhaltens festgestellt, ohne Hinweise, ob es sich um die gleichen Malware-Autoren handelt. Sie ist in der Lage, Befehle von einem Command-and-Control-Server zu empfangen, der für die Einschleusung von beliebigem Shellcode, DLLs oder ausführbaren Dateien sorgt.

Nach der Erstinfektion durch den Loader implementiert das Kernmodul die bösartige Funktionalität, die die Fähigkeit zur Ausführung beliebiger Befehle und zur Injektion der eigentlichen Payload umfasst. Dabei wird ein Code-Injektor verwendet, der das Kernmodul entschlüsselt. Sie verwenden eine Reihe von Anti-Analyse-Techniken, wie die Windows API-Funktion Beep, um die Ausführung zu verzögern, die Windows API-Funktionen CheckRemoteDebuggerPresent oder das Nachladen von falschen Libraries, um Sandboxen zu erkennen. Zusätzlich werden Systeminformationen, wie Memory oder die Anzahl der Prozessoren abgefragt. Darüber hinaus wird das öffentliche Tool ADVobfuscator eingesetzt, um wichtige Strings der Malware zu verschleiern. Wenn die Anti-Analyse Tests fehlschlagen, terminiert Pikabot die Ausführung.

Beim Nachladen der Kernmodule geht Pikabot wie folgt vor: Zuerst wird ein Satz an png-Bildern geladen, die im Ressourcen-Bereich gespeichert sind. Diese werden durch einen bitwise XOR-Vorgang decodiert. Jedes der Bilder enthält dabei einen verschlüsselten Teil des Kernmoduls. Zur Entschlüsselung des Codes über AES (CBC Modus) kommt ein 32-byte Key zum Einsatz, bei dem die ersten 16 Bytes der verschlüsselten Daten als Initialisierungsvektor eingesetzt werden. Nach der Entschlüsselung der Haupt-Payload kreiert der Pikabot-Injektor einen Prozess über einen Datenpfad, wie WerFault und injiziert das Kernmodul.

Ähnlich dem Injektor setzt auch das Kernmodul auf zusätzliche Anti-Analyse-Checks, wie beispielsweise eine „Schlaffunktion“ zur Verzögerung der Ausführung. Dabei kommt die API-Funktion NtContinue mit einem Timer zur Aktivierung zum Einsatz. Zusätzlich zu diesen Tests wird die Sprache des infizierten Systems erfasst. Wird dabei eine der folgenden Sprachen entdeckt, wird die weitere Ausführung abgebrochen: Georgisch, Kasachisch, Usbekisch, Tadschikisch, Russisch, Ukrainisch, Weißrussisch oder Slowenisch. Ein solches Vorgehen wird häufig bei Bedrohungsakteuren aus GUS-Staaten beobachtet, um der Strafverfolgung zu entgehen. Nach Abschluss des Ladevorgangs registriert Pikabot den kompromittierten Host auf dem Command und Control-Server mit Hilfe gesammelter Systeminformation. Ähnlich wie bei anderen Botnets wird dabei ein einzigartiger Identifier erstellt. Wenn die Registrierung abgeschlossen ist, startet Pikabot seine Aktivität mit Abfragen an den Server.

Insgesamt handelt es sich bei Pikabot um eine neue Malware-Familie, die umfangreiche Anti-Analyse-Techniken einsetzt, um einer Entdeckung zu entgehen. Sie bietet außerdem allgemeine Backdoor-Funktionen zum Laden von Shellcode und Ausführen beliebiger zweistufiger Binärdateien.