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 ID Command description
0 List information about mapped drives, list files in a folder, list network shares
2 Create, move, rename, execute or delete a file, delete a directory using the specified path
4 Open a file, set the file pointer to the file beginning
5 Close a previously opened file
6 Write data into a previously opened file
7 Modify file times / delete a file
8 Open a file, set the file pointer to the end of the file
10 Modify file times / delete a file
12 Search files by supplied file mask in a specified directory
13 Take a screenshot
14 Upload or modify files with internal data
15 Record sound using input audio devices, list available devices, send recordings, change configuration
16 Check whether this module currently has any files open
17 Update list of C&C servers
19 Create, 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 name File name Control sequences File content
\ ~mrc_%random%.tmp 932101DA Audio recordings
\ ~src_%random%.tmp 958901DA Audio recordings
\ ~wbc_%random%.tmp 938901DA Webcam photos
sc\ ~sc%random%.tmp DFE43A08 Screenshots
~zlp\ zdf_%random%.data B1CBF218 Zlib-compressed packages
~lcf\ tfl_%random% C0AFF208 Internal data
fl_%timestamp%\strcn%num%\ fdata.dat A1CAF108 Data from removable drives
fl_%timestamp%\strcn%num%\ index.dat BAAB0019 Data 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
4 List information about files in a directory
6 Upload a file
20 List information about active processes
22 Terminate a process by ID
24 Execute a file
26 Delete a file
28 Get the IP forward table
30 Write data to a file
31 Sleep
38 List account information
40 List information about services on the system
42 List information about loaded drivers
43 Collect basic system information (computer name, OS version, memory status, local time, drive information, configured proxy information, system and process DEP policy…)
44 List installed software
46 List local users and session information
48 List applications accessed by users
52 Create a directory structure
78 Create a remote shell
81 Execute a command via a remote shell
91 Enable/disable UAC
93 Log off the user/shutdown/restart the system
101 Monitor and record changes in the specified directories
103 Delete directories
109 Turn the monitor on/off/onto standby
120 Capture screenshots of the display/active windows
126 Capture screenshots of the display/active windows & update configuration data
130 List information about resources on unmapped drives
132 Rename/move a file, modify create/access/write times of the file to the given values
134 List information about recently opened files
152 Disconnect (previously connected) remote drives
155 Create/delete a registry key, set/delete a registry key value, or enumerate registry values/keys/data
159, 161 Disable routing/firewall, create a proxy server on a specified port
172 Repeatedly display a dialog requesting the user to reboot the computer
175 Bypass UAC to manipulate a file
177 Create and write a file, set the create/access/modify times
181 Remove all system restore points
183 Drop (legitimate) WinRAR components
185 Add files to a password-protected archive (password = "12KsNh92Dwd")
187 Decrypt, unpack and load a DLL, load executables from its resources RC2CL, RC2FM
189 Create a system restore point
191 Extract a password-protected archive (12KsNh92Dwd)
193 Modify an encrypted file
195 Restart itself after the primary process finishes
197 Send 198 bytes of data hardcoded in the sample
199 Rename/move a file
206 Decrypt, unpack and load a DLL, load executables from its resources RC2CL, RC2FM
211 Upload collected information (captured screenshots, audio recordings, etc.)
213 List information about active windows
218 API for recording input audio devices
220 API for capturing webcam photos
224 List files executed with each system start
226 List information about enabled wireless networks (MAC address, SSID, beacon interval)
228 Drop 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.