Die ‚Pinguin‘-Turla-APT

Kürzlich wurde ein interessantes Malware-Sample zu einem AV-Multiscanner-Service hochgeladen. Sofort war unser Interesse geweckt, denn es scheint sich dabei um ein bisher unbekanntes Teil eines größeren Puzzles zu handeln. Das Puzzle, das wir meinen, ist „Turla“, eine der komplexesten APTs überhaupt.

Wir haben bereits früher über die Turla APT, ihre Epic Turla-Operationen und die Verbindung zu Agent.btz berichtet.

penquin_3

Bisher war jedes einzelne Turla-Sample, das uns untergekommen ist, für die Microsoft Windows-Familie, 32- und 64 Bit Betriebssysteme, konstruiert. Das kürzlich aufgetauchte Turla-Sample ist deswegen ungewöhnlich, weil es das erste Turla-Sample ist, das Linux-Betriebssysteme angreift, das wir entdeckt haben.

penquin

Die jüngst entdeckte Turla-Komponente unterstützt Linux für weiter reichenden Systemsupport auf Opfer-Sites. Das Angriffstool ist ein weiteres Teil aus dem Set neben dem Snake Rootkit und den Komponenten, die vor ein paar Jahren als erstes mit diesem Bedrohungsakteur in Verbindung gebracht wurden. Wir vermuten, dass diese Komponente jahrelang auf einer Opfer-Site gelaufen ist, aber wir haben noch keine konkreten Daten, die diese Behauptung bestätigen.

Das Turla-Modul für Linux ist eine ausführbare Datei in C/C++ die statisch gegen eine Vielzahl von Bibliotheken gelinkt ist, die ihre Dateigröße bei weitem übersteigen. Es wurde von Symbolinformationen befreit, vermutlich eher, um die Analyseleistung zu steigern, als die Dateigröße zu verringern. Seine Funktionalität beinhaltet verborgene Netzwerkkommunikation und willkürliche entfernte Befehlsausführung sowie entfernte Verwaltung. Ein großer Teil des Codes dieser Komponente basiert auf öffentlichen Quellen.

Md5 Größe Name
0994d9deb50352e76b0322f48ee576c6 627.2 kb N/A (beschädigte Datei)
14ecd5e6fc8e501037b54ca263896a11 637.6 kb HEUR:Backdoor.Linux.Turla.gen

Allgemeine ausführbare Charakteristika:

ELF 32-bit LSB ausführbare Datei, Intel 80386, Version 1 (SYSV), statisch verlinkt, für GNU/Linux 2.2.5, stripped

Statisch verlinkte Bibliotheken:

  • glibc2.3.2 – die GNU C Library
  • openssl v0.9.6 – eine ältere OpenSSL-Bibliothek
  • libpcap – die Bibliothek von tcpdump zum Mitschneiden von Netzwerkverkehr

Hartcodiertes C&C, bekannte Turla-Aktivität: news-bbc.podzone[.]org
Die Domain hat die folgende pDNS IP: 80.248.65.183

Anmerkung: Die C&C-Domain wird aktuell von Kaspersky Lab auf einen Sinkhole-Server umgeleitet.

Funktionale Beschreibung

Bei diesem Sample handelt es sich um eine auf cd00r Quellen basierende Stealth Backdoor.

Diese auf cd00r basierende Turla-Malware ist in der Lage sich zu tarnen, ohne erhöhte Privilegien zu benötigen, während sie willkürlich entfernt Befehle ausführt. Sie kann nicht via netstat, einem gängigen Verwaltungstool, detektiert werden. Sie verwendet Techniken, die keinen Root-Zugriff erforderlich machen, wodurch sie problemloser auf mehr Opfer-Hosts laufen kann. Selbst wenn sie ein regulärer Nutzer mit eingeschränkten Privilegien startet, kann sie weiterhin einkommende Pakete abfangen und eingehende Befehle auf dem System ausführen.

Inbetriebnahme und Ausführung

Um die Ausführung zu starten, benötigt der Prozess zwei Parameter: Die ID (einen numerischen Wert, der als Teil des „magischen Pakets zur Authentifizierung“ genutzt wird) und einen existierenden Netzwerk-Interface-Namen. Die Parameter können auf zwei verschiedene Arten eingegeben werden: STDIN oder von einem Dropper, der das Sample startet. Das ist KEIN Befehlszeilenparameter, es ist ein realer User, der den Angreifer umgehend auffordert, die Eingabeparameter bereitzustellen. Nachdem die ID und der Interfacename eingegeben und der Prozess gestartet wurde, wird die PID des Backdoor-Prozesses zurückgeschickt. Hier ein Screenshot dieses simplen Interfaces:

penquin_1

Während es keinen ursprünglichen Netzwerk-Callback gibt, unterhält ein Codeabschnitt den hartkodierten c2-String „news-bbc.podzone[.]org“. Dieser voll qualifizierte Domainname wurde erstmals im Jahr 2010 eingerichtet, was zu der Annahme verleitet, das diese Binärdatei erst recht kurze Zeit in dem String der Turla-Kampagnen vorhanden ist. Und während wir keine weitere Datei-Downloadaktivität von diesem Server mit diesem Tool beobachten konnten, ist es wahrscheinlich, dass es als eine Art Dateiserver beteiligt war.

Magische Pakete für das entfernte Ausführen von Befehlen

Das Modul verlinkt PCAP-Bibliotheken statisch und verwendet diesen Code, um einen RAW Socket zu erhalten, wendet einen Filter auf ihn an und fängt Pakete ab, die auf bestimmte Bedingungen untersucht werden (das *original cd00r verwendete diese Methode zuerst, basierend auf Ports und SYN-Paketen). Diese Bedingung wird hier ausgedrückt (sie basiert auf dem ID-Eingabewert bei der Inbetriebnahme durch die Angreifer):

ID = 123 Filter = (tcp[8:4] & 0xe007ffff = 0xe003bebe) or (udp[12:4] & 0xe007ffff = 0xe003bebe) ID = 321 Filter = (tcp[8:4] & 0xe007ffff = 0x1bebe) or (udp[12:4] & 0xe007ffff = 0x1bebe)

In einfachen Worten – es sucht nach einer ACK-Nummer im TCP-Header oder dem zweiten Byte von dem UDP-Paketkörper.

Wird so ein Paket erhalten und der Bedingungscheck ist erfolgreich, springt die Ausführung zu den Inhalten der Paket-Payload und erstellt einen regulären Socket. Die Backdoor behandelt diesen Socket wie eine Datei mit Lese-/Schreib-Operationen. In diesem Code wird nicht das typische recv/send verwendet. Es benutzt diesen neuen Socket, um sich mit der Quelle der Adresse des „magischen Pakets“ zu verbinden. Daraufhin gibt es seine eigene PID und IP an die entfernte Adresse weiter und startet eine Endlosschleife zum Empfang entfernter Befehle. Kommt ein Befehl herein, so wird er mit einem „/bin/sh -c „-Skript ausgeführt.

Weitere Analysen der Funktionalität des Samples werden wir an dieser Stelle veröffentlichen.

Fazit

Obgleich bekannt war, dass Linux-Varianten für das Turla-Framework existieren, haben wir bisher keine in freier Wildbahn beobachten können.

Dieses spezifische Modul scheint aus offiziellen Quellen zusammengesetzt worden zu sein, wobei die Angreifer verschiedene Funktionen hinzugefügt haben. Ein Teil des Schadcodes scheint inaktiv zu sein, vielleicht handelt es sich dabei um Überbleibsel älterer Versionen des Implantats. Der vielleicht interessanteste Teil ist ein ungewöhnlicher C&C-Mechanismus, der auf TCP/UDP-Paketen basiert, sowie der C&C-Hostname, der zur bereits bekannten Turla-Aktivität passt.

Die Entdeckung dieses Turla-Moduls wirft eine große Frage auf: Wie viele andere unbekannte Turla-Varianten gibt es noch?

Update: Nach der Veröffentlichung dieses Blogposts haben wir ein weiteres Turla-Modul für Linux entdeckt, das eine andere Malwaregeneration als die bisher bekannten Samples repräsentiert:

penquin_2

Das neue Sample wurde von unseren Produkten mit heuristischen Methoden entdeckt, aufgrund von Ähnlichkeiten zu vorher detektierten Samples.

Md5 Größe Name
19fbd8cbfb12482e8020a887d6427315 801,561 bytes HEUR:Backdoor.Linux.Turla.gen

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.