InvisiMole: überraschend ausgestattete Spyware seit 2013 unentdeckt

InvisiMole: überraschend ausgestattete Spyware seit 2013 unentdeckt

InvisiMole ist eine voll ausgerüstete Spyware, deren reichhaltige Fähigkeiten mit anderen Spionage-Tools konkurrieren können. Neuste ESET-Forschungen haben ergeben, dass die Spyware für mindestens fünf Jahre gegen eine sehr kleine Anzahl von hochwertigen Zielen eingesetzt wurde.

InvisiMole ist eine voll ausgerüstete Spyware, deren reichhaltige Fähigkeiten mit anderen Spionage-Tools konkurrieren können. Neuste ESET-Forschungen haben ergeben, dass die Spyware für mindestens fünf Jahre gegen eine sehr kleine Anzahl von hochwertigen Zielen eingesetzt wurde.

Das ist der Modus Operandi zwei schädlicher Komponenten von InvisiMole. Sie können einen Computer in eine Video-Kamera verwandeln. Die Angreifer können live verfolgen (sehen und hören), was beispielsweise im Büro des Opfers passiert. Als ungeladene Gäste greifen die InvisiMole-Operatoren auf das Computersystem zu, beobachten das Opfer und stehlen seine Geheimnisse.

Die ESET-Telemetriedaten deuten darauf hin, dass die bösartigen Akteure hinter der Malware seit mindestens 2013 aktiv sind. Das Cyber-Spionage-Tool wurde allerdings erst jetzt gefunden, als ESET-Sicherheitssoftware kompromittierte Computer in der Ukraine und Russland entdeckte.

Die Spyware arbeitet sehr zielgerichtet. Insofern ist es auch nicht verwunderlich, dass die Kompromittierungsrate sich nur auf ein paar Computersysteme beschränkt.

InvisiMole ist modular aufgebaut. Es gibt die Wrapper DLL sowie zwei andere Module, die sich in den Resources verstecken. Hierbei handelt es sich gut ausgestattete Backdoors. Diese gestatten der Malware möglichst viele Informationen über das Opfer zu sammeln.

Einige Maßnahmen sollen verhindern, dass die Spyware beim kompromittierten User irgendeine Form der Aufmerksamkeit hervorruft. Das erlaubt der Malware für lange Zeit unbemerkt auf dem Computersystem des Opfers zu verweilen. Wie die Spyware ihren Weg auf die Maschinen fand, ist Gegenstand weiterer Untersuchungen. Alle Kompromittierungswege sind vorstellbar, wie beispielsweise die Installation der Malware mit Hilfe physischen Zugangs zum Computer.

Installation und Persistenz von InvisiMole

Zunächst möchten wir die Wrapper DLL näher betrachten, die mit dem Free Pascal Compiler kompiliert wurde. Aus unseren Telemetriedaten entnehmen wir, dass man die DLL im Windows-Ordner platziert, getarnt als legitim erscheinende mpr.dll Bibliotheksdatei mit einer gefälschten Versionsinfo-Ressource.

Die Wrapper DLL stellt sich als legitime mpr.dll Bibliothek dar, sowohl mit Namen als auch mit Versionsinfo

Abbildung 1: Die Wrapper DLL stellt sich als legitime mpr.dll Bibliothek dar, sowohl mit Namen als auch mit Versionsinfo

Bis jetzt haben wir noch keine Wrapper DLL mit unterschiedlichen Namen gesehen. Allerdings gibt es Hinweise im DLL-Code, dass er auch fxsst.dll oder winmm.dll lauten kann.

Über das Zweckentfremden einer DLL (Hijacking) kann die Malware beispielsweise gestartet werden. Durch die Platzierung im gleichen Ordner wie explorer.exe, wird die Wrapper DLL während des Windows Startvorgangs in den Windows Explorer Prozess geladen, anstatt der legitimen Bibliothek, die sich im %windir%\system32 Ordner befindet.

Bei den Untersuchungen fanden wir 32- und 64-bit Versionen der Spyware. Damit sind Persistenz-Techniken auf beiden Architekturen funktionsfähig.

Als Alternativen zum DLL-Hijacking sind auch andere Lade- und Persistenz-Methoden möglich. Die Wrapper-DLL exportiert eine Funktion namens GetDataLength. Wenn diese Funktion aufgerufen wird, überprüft die DLL, ob sie vom Prozess rundll32.exe mit explorer.exe oder svchost.exe als übergeordnetem Prozess geladen wurde – nur dann startet auch die Nutzlast der Malware. Das deutet auf andere Persistenzmethoden hin – durch Aufgabenplanung (bspw. mit svchost.exe als übergeordneter Prozess) oder durch die Installation in einen Startup Registry Key (dann ist explorer.exe der übergeordnete Prozess).

Unabhängig von der Persistenzmethode ist das Verhalten der Malware und der tatsächlichen Payload in allen Fällen gleich. Die Wrapper DLL lädt zwei Module aus den Resources. Die Module nennen sich RC2FM und RC2CL. Wenn das DLL Hijacking erfolgreich war, lädt auch die legitime Bibliothek in den explorer.exe Prozess, um den normalen Ablauf von Anwendungen nicht zu stören – und um unauffällig zu bleiben.

Export-Funktionen vom Wrapper DLL

Abbildung 2: Export-Funktionen vom Wrapper DLL

Technische Analyse von InvisiMole

Das genaue Datum der Kompilierung der Malware ist unbekannt. Die neusten Wrapper DLL Samples haben die Malware-Autoren so manipuliert, dass der PE-Zeitstempel auf Null gesetzt ist. Während unserer Recherche haben wir jedoch eine frühere Version der Malware mit einem PE-Zeitstempel vom 13. Oktober 2013 gefunden, so dass das Kompilierungsdatum späterer Versionen mit hoher Wahrscheinlichkeit aktueller ist.

Der Kompilierungszeitstempel ist bei neueren Samples auf Null.

Abbildung 3: Der Kompilierungszeitstempel ist bei neueren Samples auf Null.

Verschlüsselung und Entschlüsselung

Die Malware versucht ihre Spuren zu verwischen. Sie schützt sich vor den neugierigen Augen von Admins und Analysten durch die Verschlüsselung von Zeichenfolgen, internen Dateien, Konfigurationsdaten und der Netzwerkkommunikation. Während das RC2FM-Modul eine Handvoll benutzerdefinierter Verschlüsselungscodes verwendet, teilen die Wrapper-DLL und das RC2CL-Modul eine bestimmte Verschlüsselungsroutine für alle Zwecke, insbesondere für die Entschlüsselung anderer in die Wrapper-DLL eingebetteter Malware-Module.

Verschlüsselungsroutine, die in allen Samples verwendet wird (decompiled & disassembled)

Abbildung 4: Verschlüsselungsroutine, die in allen Samples verwendet wird (decompiled & disassembled)

Das RC2FM Modul

Das kleinere RC2FM Modul von beiden enthält eine Backdoor, die bis zu 15 Befehle unterstützt. Diese werden auf Anweisung des Angreifers auf dem betroffenen Computer ausgeführt. Das Modul wurde entwickelt, um verschiedene Änderungen am System vorzunehmen, bietet aber auch eine Reihe von Befehlen zur Cyberspionage.

Eine Option zur Protokollierung ist in der gesamten Datei implementiert, aber der Name der Protokolldatei ist im analysierten Sample nicht konfiguriert. Das deutet darauf hin, dass nur während der Entwicklung der Malware eine Protokollierung verwendet wurde.

Netzwerkkommunikation

Das Modul kommuniziert mit C&C-Servern, dessen Adressen entweder fest im Sample codiert sind oder später von den Angreifern aktualisiert werden.

Darüber hinaus ist das Modul im Stande selbst dann die C&C-Server zu erreichen, wenn auf der kompromittierten Maschine ein Proxy konfiguriert ist. Falls keine direkte Verbindung möglich ist, versucht das Modul eine Verbindung zu irgendeinem der C&C-Server über die lokal konfigurierten Proxies oder Web Browser (Firefox, Pale Moon, and Opera) konfigurierten Proxies herzustellen.

Das RC2FM Modul kann soweit in das System vordringen, dass es Liste der kürzlich ausgeführten Anwendungen abrufen kann. Dann sucht es nach speziellen portablen Browser-Anwendungen wie:

  • FirefoxPortable.exe
  • OperaPortable.exe
  • Run waterfox.exe
  • OperaAC.exe
  • Palemoon-Portable.exe

Sollte ein Opfer einen dieser portablen Browser mit einem konfigurierten Proxy-Server verwenden, kann die Malware das in den Benutzereinstellungen auslesen und den Proxy für die Kommunikation mit seinen C&C-Servern verwenden.

Die C&C-Kommunikation besteht aus einer Reihe von HTTP GET- und POST-Anfragen, wie in Abbildung 5 gezeigt. Die verschlüsselte Anfrage enthält eine PC-Kennung und einen Zeitstempel sowie einige optional andere Daten. Wir möchten erwähnen, dass das RC2FM Modul im Gegensatz zu den anderen InvisiMole-Bauteilen eine Reihe von Verschlüsselungsmethoden (Variationen einer einfachen XOR-Verschlüsselungsroutine) verwendet.

Beispiel einer zum C&C-Server gesendeten Anfrage vom RC2FM Modul

Abbildung 5: Beispiel einer zum C&C-Server gesendeten Anfrage vom RC2FM Modul

Nachdem der Computer des Opfers erfolgreich mit dem C&C-Server verbunden ist, beginnt der Download zusätzlicher Daten. Diese lokalen Backdoor-Befehle soll der Computer später interpretieren.

Fähigkeiten von RC2FM

Das RC2FM Modul unterstützt Befehle zum Auflisten grundlegender Systeminformationen und zur Ausführung einfacher Systemänderungen. Es enthält aber auch einige Spyware-Funktionen. Wenn es benötigt wird, können die Angreifer das Mikrofon auf dem kompromittierten Computer aus der Ferne aktivieren und mithören. Die Audio-Aufnahmen im MP3-Format sind mit einer echten lame.dll-Bibliothek codiert, die von der Malware zuvor heruntergeladen wurde.

Die Malware kann aber auch auf andere Weise die Privatsphäre der Opfer beschneiden. Durch andere Backdoor-Befehle können Screenshots aufgenommen werden.

Die Malware überwacht auch alle fest installierten und beweglichen Datenträger. Beim Einstecken eines neuen Datenträgers erstellt die Malware eine komplette Liste aller darauf befindlichen Dateien.

Mit Hilfe eines Befehls können alle gesammelten Daten an die Angreifer übermittelt werden.

Backdoor-Befehle

Die unten stehende Tabelle listet alle 15 unterstützten Befehle auf. Die Backdoor-Interpreter-Funktion ist in Abbildung 6 dargestellt.

Command IDCommand description
0List information about mapped drives, list files in a folder, list network shares
2Create, move, rename, execute or delete a file, delete a directory using the specified path
4Open a file, set the file pointer to the file beginning
5Close a previously opened file
6Write data into a previously opened file
7Modify file times / delete a file
8Open a file, set the file pointer to the end of the file
10Modify file times / delete a file
12Search files by supplied file mask in a specified directory
13Take a screenshot
14Upload or modify files with internal data
15Record sound using input audio devices, list available devices, send recordings, change configuration
16Check whether this module currently has any files open
17Update list of C&C servers
19Create, set, copy, enumerate or delete the specified registry keys or values
Backdoor-Interpreter-Funktion (Original und nach unserer Analyse - geändert mit Group Nodes-Funktionalität von IDA Pro für bessere Lesbarkeit)

Abbildung 6: Backdoor-Interpreter-Funktion (Original und nach unserer Analyse – geändert mit Group Nodes-Funktionalität von IDA Pro für bessere Lesbarkeit)

Das RC2CL Modul

Das RC2CL-Modul ist auch eine Backdoor mit umfangreichen Cyberspionage-Funktionen. Es wird von der Wrapper DLL (und gleichzeitig mit dem RC2FM-Modul) gestartet. Dieses Modul ist komplexer und sammelt möglichst viele Daten über den kompromittierten Computer, anstatt Systemänderungen vorzunehmen.

Interessanterweise gibt es im RC2CL-Modul eine Option, um die Backdoor-Funktionalität auszuschalten und als Proxy zu fungieren. In diesem Fall deaktiviert die Malware die Windows-Firewall und erstellt einen Server, der die Kommunikation zwischen einem Client und einem C&C-Server oder zwischen zwei Clients überträgt.

Netzwerkkommunikation

Die Malware kommuniziert mit einem der C&C-Server über einen TCP-Socket. Von einem Client gesendete Nachrichten ähneln dem HTTP-Protokoll Man beachten jedoch das ungültige http verb „HIDE“ in Abbildung 7.

Beispiel für eine Anforderung, die vom RC2CL-Modul an den C&C-Server gesendet wurde

Abbildung 7: Beispiel für eine Anforderung, die vom RC2CL-Modul an den C&C-Server gesendet wurde

Fähigkeiten von RC2CL

Abhängig von den empfangenen Befehlen kann die Backdoor verschiedene Aktionen auf dem kompromittierten Computer ausführen. Gewöhnliche Backdoors unterstützen häufig Befehle wie Dateisystemoperationen, Dateiausführungen, Registrierungsschlüssel-Manipulationen oder Remote Shell Aktivierung. Diese Spyware unterstützt alle Anweisungen und noch viel mehr – ihre 84 Befehle bieten Angreifern alles, was sie brauchen, um ihre Opfer eingehender zu studieren.

Die Malware kann betroffene Computer inspizieren und verschiedene Daten bereitstellen. Diese können Systeminformationen über Prozesse, laufende Anwendungen, geladene Treiber enthalten aber auch Netzwerkinformationen inklusive der IP Forward Table und die Internetgeschwindigkeit.

InvisiMole ist in der Lage aktivierte drahtlose Netzwerke auf dem kompromittierten System scannen. Die Malware zeichnet Informationen wie die SSID und die MAC-Adresse der sichtbaren WLAN-Zugangspunkte auf. Diese Daten können dann mit öffentlichen Datenbanken verglichen werden, so dass die Angreifer den Standort des Opfers über die Ortung verfolgen können.

Andere Befehle können Informationen über die Benutzer des kompromittierten Computers, über ihre User Accounts sowie vergangene Sitzungen abrufen.

Auch die auf dem kompromittierten Computer installierte Software ist von besonderem Interesse. Welche Programme sind auf dem System installiert? Welche werden bei jedem Systemstart oder jeder Benutzeranmeldung automatisch ausgeführt? Welche Programme werden von einem bestimmten Benutzer verwendet? Hegen die Angreifer Interesse an diesen wertvollen Informationen, sind sie nur einen Klick davon entfernt.

Die Spyware kann außerdem dazu benutzt werden, nach kürzlich verwendeten Dokumenten oder anderen interessanten Dateien zu suchen. Sie überwacht bestimmte Verzeichnisse und Wechseldatenträger, meldet Änderungen und schöpft beliebige Dateien aus dem Dateisystem ab.

Die Malware kann die Windows Benutzerkontensteuerung (UAC) aktivieren und deaktivieren. Selbst das Umgehen der UAC ist möglich, sodass man mit Dateien in einer eigentlich sicheren Umgebung ohne Admin-Rechte arbeiten kann (Dazu mehr unter https://wikileaks.org/ciav7p1/cms/page_3375231.html). Wenn die Malware unter dem explorer.exe-Prozess ausgeführt wird, kann sie ein erhöhtes COM-Objekt erstellen und es zum Löschen oder Verschieben von Dateien an andere Standorte verwenden, für die Administratorrechte erforderlich sind.

Viel beunruhigender ist die Tatsache, dass die Angreifer mit Hilfe der Malware die Webcam und das Mikrofon einschalten können – um dann zu Spionieren, wie etwa durch das Aufnehmen von Screenshots oder Audio-Aufnahmen. Die spezielle Eigenschaft, nicht nur den üblichen ganzen Fensterinhalt aufzunehmen, sondern jedes einzelne Fenster für sich, hilft den Angreifern noch mehr Informationen aus sich sonst überlappenden Fenstern zu gewinnen.

Außerdem wird einer der Backdoor-Befehle dazu verwendet, den Inhalt von Treibern durch die folgenden Namen zu ersetzen:

  • blbdrive.sys
  • compbatt.sys
  • secdrv.sys

Wir stellten bisher nicht fest, dass die Angreifer diese Befehle verwendeten. Wahrscheinlich legen sie mehr Wert auf höhere Persistenz bei den 32-bit Architekturen.

Obwohl die Backdoor in der Lage ist, das Computersystem zu stören (z. B. um einen Benutzer auszuloggen, einen Prozess zu beenden oder das System herunterzufahren), stellt es meistens passive Operationen bereit. Alle Aktivitäten sollen soweit wie möglich verborgen bleiben.

Die Malware schnüffelt auch an interessanten Stellen auf dem System herum, liest neuere Dokumente oder modifiziert sogar Dateien. Das hinterlässt Spuren auf dem System und könnte einen Verdacht beim Opfer aufkommen lassen, da der Zeitpunkt des letzten Zugriffs oder der letzten Änderung der Dateien mit jeder Aktivität geändert wird. Um das zu verhindern, stellt die Malware immer wieder die ursprünglichen Dateizugriffs- oder -modifizierungszeiten her. Auf diese Weise bemerkt der Benutzer die Operationen der Malware nicht.

Ein anderes Beispiel für die Bemühungen der Malware-Entwickler, dass die Spyware unentdeckt bleibt, ist der Umgang mit zurückbleibenden Spuren. Die Malware sammelt eine Menge sensibler Daten, die vorübergehend in Dateien gespeichert und nach der Übertragung an den C&C-Server gelöscht werden. Selbst die gelöschten Dateien können von einem erfahrenen Systemadministrator wiederhergestellt werden, was zur Untersuchung des Angriffs beitragen könnte. Das ist möglich, weil einige Daten auch nach dem Löschen einer Datei noch auf einer Festplatte zurückbleiben. Um das zu verhindern, kann die Malware alle Dateien restlos löschen, d.h. sie überschreibt zuerst die Daten in einer Datei mit Nullen und/oder zufälligen Bytes, und erst dann wird die Datei gelöscht.

Interner Speicher

Die Backdoor-Konfiguration und die gesammelten Daten werden an einem von zwei Orten gespeichert – in einem Arbeitszverzeichnis und in funktionsfähigen Registrierungsschlüsseln. Ein wesentlicher Teil des Backdoor-Befehlssatzes ist dazu bestimmt, die Speicherorte und deren Inhalte zu bearbeiten.

Der Speicherort des Arbeitsverzeichnisses wird durch Anweisungen vom Remote-Server bestimmt. Das Verzeichnis wird als temporärer Speicher für Dateien verwendet, die gesammelte Daten über den kompromittierten Computer enthalten. Die Dateien zeichnet eine gemeinsame Namenskonvention, derselbe Verschlüsselungsalgorithmus und eine ähnliche Struktur aus. Sie werden durch eine einfache Variante der XOR-Verschlüsselung verschlüsselt. Diese Verschlüsselung verwendet man auch bei allen anderen Malware-Komponenten. Der Dateityp kann aus den 4-Byte-Steuersequenzen am Dateianfang abgeleitet werden.

Das Arbeitsverzeichnis ist nicht nur ein Speicher für die gesammelten Daten, sondern beherbergt auch eine Kopie der legitimen Anwendung WinRAR.exe. Die Angreifer verwenden das Kompressionstool innerhalb der Malware, um abgeschöpfte Daten zu komprimieren.

Die Registrierungsschlüssel speichern Konfigurationsdaten sowie eine Dateiliste im Arbeitsverzeichnis. Die Daten werden mithilfe der Zlib-Komprimierung gepackt, die in der Malware-Binärdatei implementiert und mit der gleichen Verschlüsselung wie die internen Dateien verschlüsselt ist.

Subdirectory nameFile nameControl sequencesFile content
\~mrc_%random%.tmp932101DAAudio recordings
\~src_%random%.tmp958901DAAudio recordings
\~wbc_%random%.tmp938901DAWebcam photos
sc\~sc%random%.tmpDFE43A08Screenshots
~zlp\zdf_%random%.dataB1CBF218Zlib-compressed packages
~lcf\tfl_%random%C0AFF208Internal data
fl_%timestamp%\strcn%num%\fdata.datA1CAF108Data from removable drives
fl_%timestamp%\strcn%num%\index.datBAAB0019Data from removable drives
Winrar\WinRAR.exe-Copy of a legitimate application
Winrar\comment.txt--
Winrar\descript.ion--
Winrar\Default.SFX--
Winrar\main.ico --

Backdoor-Befehle

Die zweite Backdoor bietet mehr als achtzig Befehle, die das Arbeitsverzeichnis und die Registrierungsschlüssel zum Speichern ihrer Zwischenergebnisse und Konfigurationsdaten verwenden. Das Diagramm des Backdoor-Interpreters ist in Abbildung 8 dargestellt.

Etwa ein Drittel der Befehle dient dem Lesen und Aktualisieren der in der Registrierung gespeicherten Konfigurationsdaten. Der Rest der Befehle ist in der folgenden Tabelle aufgeführt.

Command ID(s)Command description
4List information about files in a directory
6Upload a file
20List information about active processes
22Terminate a process by ID
24Execute a file
26Delete a file
28Get the IP forward table
30Write data to a file
31Sleep
38List account information
40List information about services on the system
42List information about loaded drivers
43Collect basic system information (computer name, OS version, memory status, local time, drive information, configured proxy information, system and process DEP policy…)
44List installed software
46List local users and session information
48List applications accessed by users
52Create a directory structure
78Create a remote shell
81Execute a command via a remote shell
91Enable/disable UAC
93Log off the user/shutdown/restart the system
101Monitor and record changes in the specified directories
103Delete directories
109Turn the monitor on/off/onto standby
120Capture screenshots of the display/active windows
126Capture screenshots of the display/active windows & update configuration data
130List information about resources on unmapped drives
132Rename/move a file, modify create/access/write times of the file to the given values
134List information about recently opened files
152Disconnect (previously connected) remote drives
155Create/delete a registry key, set/delete a registry key value, or enumerate registry values/keys/data
159, 161Disable routing/firewall, create a proxy server on a specified port
172Repeatedly display a dialog requesting the user to reboot the computer
175Bypass UAC to manipulate a file
177Create and write a file, set the create/access/modify times
181Remove all system restore points
183Drop (legitimate) WinRAR components
185Add files to a password-protected archive (password = "12KsNh92Dwd")
187Decrypt, unpack and load a DLL, load executables from its resources RC2CL, RC2FM
189Create a system restore point
191Extract a password-protected archive (12KsNh92Dwd)
193Modify an encrypted file
195Restart itself after the primary process finishes
197Send 198 bytes of data hardcoded in the sample
199Rename/move a file
206Decrypt, unpack and load a DLL, load executables from its resources RC2CL, RC2FM
211Upload collected information (captured screenshots, audio recordings, etc.)
213List information about active windows
218API for recording input audio devices
220API for capturing webcam photos
224List files executed with each system start
226List information about enabled wireless networks (MAC address, SSID, beacon interval)
228Drop a Zlib-compressed package

 Backdoor-Interpreter-Funktion I

Backdoor-Interpreter-Funktion (Original und nach unserer Analyse, geändert mit Group Nodes-Funktionalität von IDA Pro für bessere Lesbarkeit)

Abbildung 8: Backdoor-Interpreter-Funktion (Original und nach unserer Analyse, geändert mit Group Nodes-Funktionalität von IDA Pro für bessere Lesbarkeit)

Fazit

InvisiMole ist eine voll ausgerüstete Spyware, deren reichhaltige Fähigkeiten mit anderen Spionage-Tools konkurrieren können.

Wir wundern uns über die Malware-Entwickler, die beschlossen, zwei Module mit überlappenden Fähigkeiten einzusetzen. Man könnte meinen, dass das kleinere Modul RC2FM als Aufklärungswerkzeug verwendet und das größere Modul RC2CL nur bei interessanten Zielen eingesetzt wird. Dies ist jedoch nicht der Fall – beide Module starten gleichzeitig. Eine weitere mögliche Erklärung ist, dass die Module möglicherweise von verschiedenen Malware-Entwicklern stammen und dann einfach gebündelt wurden, um den Malware-Operatoren einen komplexeren Funktionsumfang zu bieten.

Die Malware verwendet nur wenige Techniken, um Erkennungen und Analysen zu vermeiden. Dennoch konnte sie für eine sehr kleine Anzahl von hochwertigen Zielen eingesetzt werden und blieb mindestens fünf Jahre lang unentdeckt.

Indicators of Compromise (IoCs)

Eine vollständige und umfassende Liste von IoCs, C&C-Servern sowie Registrierungsschlüsseln und -werten befindet sich auf GitHub.

Hier können Sie mitdiskutieren