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.
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.
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.
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.
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.
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.
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 |
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.
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 |
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.