DePriMon ist ein schädlicher Downloader. Dieser äußert sich durch ein mehrstufiges Angriffsschema und viele unübliche Cyber-Techniken. Die Malware registriert sich als neuer Local Port Monitor auf den Computern und erreicht dadurch Persistenz. Dieser Trick fällt unter die „Port Monitor“-Technik in der MITRE ATT&CK Wissensdatenbank.

Die Malware nutzt „Windows Default Print Monitor“ als Name, weswegen wir diese „DePriMon“ tauften. Aufgrund der Komplexität und der modularen Architektur glauben wir, dass es sich hierbei um ein Framework handelt.

Laut ESET-Telemetriedaten ist DePriMon seit mindestens März des Jahres 2017 aktiv. DePriMon wurde in einem Privatunternehmen mit Sitz in Mitteleuropa und auf Dutzenden von Computern im Nahen Osten entdeckt.

Da einige der C&C-Server Domain-Names arabische Wörter enthielten, gehen wir davon aus, dass es sich um eine regionsspezifische Malware-Kampagne handelt. Dabei verdient sie jedoch über diese Grenzen hinweg Aufmerksamkeit, denn DePriMon ist eine sorgfältig geschriebene Malware, die auf umfangreiche, gut angewendete Verschlüsselungsmethoden zurückgreift.

Um sich vor dieser Bedrohung zu schützen, analysierten wir die neu entdeckte Malware gründlich und fokussierten uns dabei vor allem auf den Downloader. Allerdings kennen wir den initialen Kompromittierungsvektor genauso wenig, wie die endgültige Payload, die auf den Rechnern der Opfer verteilt werden soll.

Wir wollen an dieser Stelle darauf hinweisen, dass DePriMon in einigen Fällen zusammen mit der ColoredLambert-Malware in kurzen zeitlichen Abständen gefunden wurde. ColoredLambert wird von der Cyberspionagegruppe Lamberts (auch bekannt als Longhorn) verwendet und taucht im Zusammenhang mit dem Vault 7 Leak der CIA auf. Unsere Kollegen von Symantec und Kaspersky stellten ihre Analysen dazu im April des Jahres 2017 vor.

Technische Analyse von DePriMon

Sowohl Second als auch Third Stage werden mit Hilfe der (uns nicht bekannten) First Stage auf die Festplatte des Opfers gespielt. Die Second Stage installiert sich selbstständig und lädt die Third Stage unter Verwendung eines verschlüsselten, festcodierten Pfads. Eine mögliche Erklärung dafür ist, dass die Konfiguration dafür erst nach dem Stattfinden der First Stage durchgeführt wird.

Die beschriebene Installationstechnik ist einzigartig. Grundlegend ist diese in der MITRE ATT&CK-Wissensdatenbank unter den Punkten Persistence und Privilege Escalation tactics als „Port-Monitors“ beschrieben. Wir glauben, dass DePriMon das erste öffentliche dargestellte Malware-Sample ist, das diese Technik einsetzt.

Die Second Stage registriert die Third Stage DLL als Port Monitor, indem der Registry-Schlüssel mit folgendem Wert angelegt wird:

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Windows Default Print Monitor
Driver = %PathToThirdStageDLL%

Beim Systemstart wird die injizierte DLL von spoolsv.exe mit SYSTEM-Berechtigungen geladen, was diese Technik zusammen mit der Einzigartigkeit dieser Methode für Angreifer sehr effektiv macht.

Die Second Stage überprüft regelmäßig, ob sich im % system32%- Ordner eine Datei mit demselben Namen wie der DLL-Datei (ohne die „.dll“- Erweiterung) der dritten Stufe befindet. Die Trigger-Datei kann eine Deinstallation auslösen. Sollte DePriMon sie finden, werden sowohl diese Datei als auch die eigenen Komponenten auf sichere Weise entfernt, indem zuerst die Binärdateien überschrieben und anschließend gelöscht werden.

Third Stage

Die Third Stage von DePriMon ist für das Herunterladen der eigentlichen Nutzlaste(n) verantwortlich. Außerdem birgt sie einige andere interessante Features.

Für die C&C-Kommunikation kommt die Microsoft-Implementierung von SSL/TLS (Secure Channel) anstelle gängiger APIs wie WinHTTP oder WinInet zum Einsatz.

Die Konfiguration ist sehr komplex, ebenso wie die Malware damit umgeht. Schließlich haben die Malware-Entwickler erhebliche Anstrengungen in die Verschlüsselung gesteckt, wodurch eine Analyse der DePriMon-Malware sehr erschwert wird.

C&C-Kommunikation

DePriMon kommuniziert sicher über TLS, jedoch nicht auf einem so hohen Niveau, wie man es bei dieser Art Malware erwarten würde. Die Verbindung wird mit Hilfe eines Windows-Sockets initialisiert und via Authenticated Security Support Provider Interface (SSPI) Session fortgeführt (Negotiate/NTLM SSP). Danach greift DePriMon auf Schannel zurück.

SSPI wird gemäß einer bestimmten Flag in der Konfigurationsdatei verwendet oder nicht und kann auf die lokalen Proxy-Einstellungen des Computers zurückgreifen. Die Implementierung ähnelt dem von Microsoft bereitgestellten Beispiel.

Die TLS-Implementierung der Malware über Schannel ähnelt dem Beispiel von Coast Research & Development. Es umfasst das Erstellen von Anmeldeinformationen, das Ausführen des Client-Handshakes und das Überprüfen des Serverzertifikats.

Abbildung 1: Teil der SSPI-Implementierung als Hex-Rays Compiler Output

Abbildung 1: Teil der SSPI-Implementierung als Hex-Rays Compiler Output

Nachdem die Kommunikation hergestellt wurde, verschlüsselt und entschlüsselt die Third Stage die Nachrichten jedes Mal manuell.

Konfiguration

Die Konfigurationsdatei von DePriMons Third Stage besitzt 27 Member, was eine ungewöhnlich hohe Zahl für einen Downloader bedeutet. Sie ist mit AES-256 verschlüsselt und in die Binärdatei eingebettet.

Während des ersten Durchlaufs entschlüsselt DePriMons Third Stage (der Donwloader selbst) die Konfigurationsdatei mit Schlüssel 2 (siehe IoC-Bereich weiter unten), verschlüsselt diese wiederum mit Schlüssel 3 und speichert diese so in einem temporären Ordner. Der Dateiname für die Konfigurationsdatei wird folgendermaßen erstellt: Ab dem zweiten Byte wird der Wert von Schlüssel 2 in eine Zahl mit Basis 36 umgewandelt, die jedoch mit dem benutzerdefinierten Alphabet „abc… xyz012… 789“ verschlüsselt wird. Die Erweiterung der Konfigurationsdatei lautet „.tmp“.

Ein Konfigurationsdateipfad sieht dann beispielsweise so aus: %temp%\rb1us0wm99sslpa1vx.tmp.

Während des zweiten Durchlaufs liest der Downloader die Konfigurationsdaten aus der Datei und nicht von sich selbst. Auf diese Weise kann der Angreifer die Konfiguration problemlos aktualisieren.

Dank des sicheren Designs bleibt die Konfiguration nicht unverschlüsselt im Speicher. Jedes Mal, wenn der Downloader ein Element der Konfigurationsdatei verwenden muss, entschlüsselt er die Konfigurationsdatei, ruft das Member ab und verschlüsselt die Datei erneut.

Dieses Vorgehen schützt die Hauptfunktion der Malware – die C&C-Kommunikation – vor forensischen Untersuchungen des Speichers.

Abbildung 2: Ein Teil des Codes, der vom Hex-Rays-Dekompiler angezeigt wird, zeigt, wie die DePriMon-Malware die Konfigurationsdatei entschlüsselt, einige Member in lokalen Variablen speichert und erneut verschlüsselt.

Abbildung 2: Ein Teil des Codes, der vom Hex-Rays Compiler angezeigt wird, zeigt, wie die DePriMon-Malware die Konfigurationsdatei entschlüsselt, einige Member in lokalen Variablen speichert und erneut verschlüsselt.

In der Konfigurationsdatei sind besonders folgende Einträge von Interesse:

  • Zwei Einträge für Benutzernamen und zwei Member für Kennwörter - für den Proxyserver, wenn er auf dem Computer eingerichtet ist. Das bedeutet, dass Angreifer darauf vorbereitet sind, ihren Angriff über einen Proxy mit Anmeldeinformationen fortzusetzen. Wir haben jedoch noch keine Funktionen zum Stehlen dieser Details gesehen. Es scheint, als ob das in einer anderen Phase des Angriffs geschieht.
  • Drei Einträge für drei C&C-Server - jeder für einen anderen Anlass.
  • Drei Einträge für drei Ports – auch jeder für einen anderen Anlass.
  • Flags, die angeben, ob der Downloader eine Verbindung über das Security Support Provider Interface (SSPI) mit einem möglichen Proxy oder nur mit Hilfe eines Sockets (weiter unten beschrieben) initialisiert.

Neben den C&C-Servern, die aus den Malware-Samples extrahiert wurden, fanden wir zusätzliche Domains und Server, die wahrscheinlich mit DePriMon in Zusammenhang stehen.

Verschlüsselungsmethode von DePriMon

Die Malware bedient sich am AES-Verschlüsselungsalgorithmus mit drei verschiedenen 256-bit-Schlüsseln für jeweils unterschiedliche Zwecke (die Schlüssel sind im IoC-Abschnitt gelistet).

  • Schlüssel 1: Dient der Entschlüsselung verschiedener empfindlicher Zeichenketten in der Malware.
  • Schlüssel 2: Zur Ver- und Entschlüsselung der Konfigurationsdaten im Speicher verwendet (wie zuvor beschrieben). Dieser Schlüssel wird auch zum Erzeugen des dritten gebraucht.
  • Schlüssel 3: Dient der Ver- und Entschlüsselung der Konfigurationsdatei auf der Festplatte. Dieser Schlüssel ist nicht fest in die Malware programmiert, sondern leitet sich aus einem 32-Byte-Array ab, dass anschließend verschlüsselt wird. Das Array entsteht wie folgt: Die ersten 4 Bytes bestehen aus der Volume-Seriennummer des Systemlaufwerks, und die verbleibenden 28 Bytes enthalten Werte zwischen 5 und 32. Dieses Array wird mit Hilfe von Schlüssel 2 verschlüsselt, womit man letztendlich Schlüssel 3 erhält.

Fazit

DePriMon ist ein ungewöhnlicher und ausgereifter Downloader. Die verantwortlichen Malware-Entwickler haben viel Arbeit in das Setup der Architektur und das Zusammensetzen kritischer Komponenten gesteckt.

Die DePriMon-Malware wird in den Speicher geladen und von dort direkt als Programmbibliothek (DLL) ausgeführt. Auf die Festplatte wird diese zu keinem Zeitpunkt geschrieben. Die Malware verfügt über eine überraschend umfangreiche Konfigurationsdatei mit mehreren interessanten Elementen, deren Verschlüsselung sachgemäß implementiert ist, was die C&C-Kommunikation wirksam schützt.

Insgesamt ist DePriMon ein sehr mächtiges, flexibel einsetzbares und persistentes Tool, um Nutzlasten auf Rechnern zu verteilen und auszuführen oder auch, um ein paar grundlegende Informationen über das System und den User zu sammeln.

Indicators of Compromise (IoCs)

ESET detection names

Win32/DePriMon
Win64/DePriMon

SHA-1 hashes

02B38F6E8B54885FA967851A5580F61C14A0AAB6
03E047DD4CECB16F513C44599BF9B8BA82D0B7CB
0996C280AB704E95C9043C5A250CCE077DF9C8B2
15EBE328A501B1D603E66762FBB4583D73E109F7
1911F6E8B05E38A3C994048C759C5EA2B95CE5F7
2B30BE3F39DEF1F404264D8858B89769E6C032D9
2D80B235CDF41E09D055DD1B01FD690E13BE0AC7
6DB79671A3F31F7A9BB870151792A56276619DC1
6FAB7AA0479D41700981983A39F962F28CCFBE29
7D0B08654B47329AD6AE44B8FF158105EA736BC3
7E8A7273C5A0D49DFE6DA04FEF963E30D5258814
8B4F3A06BA41F859E4CC394985BB788D5F76C85C
94C0BE25077D9A76F14A63CBF7A774A96E8006B8
968B52550062848A717027C512AFEDED19254F58
9C4BADE47865E8111DD3EEE6C5C4BC83F2489F5B
AA59CB6715CFFF545579861E5E77308F6CAEAC36
C2388C2B2ED6063EACBA8A4021CE32EB0929FAD2
CA34050771678C65040065822729F44B35C87B0C
D38045B42C7E87C199993AB929AD92ADE4F82398
E272FDA0E9BA1A1B8EF444FF5F2E8EE419746384
E2D39E290201010F49652EE6116FD9B35C9AD882
F413EEE3CFD85A60D7AFC4D4ECC4445BB1F0B8BC

Domains

Domain IP address
img.dealscienters[.]net 138.59.32.72
teknikgorus[.]com 88.119.179.17
wnupdnew[.]com 190.0.226.147
babmaftuh[.]com 185.56.89.196
alwatantrade[.]com 188.241.60.109
shayalyawm[.]com 5.226.168.124
elehenishing[.]com 185.225.17.77
almawaddrial[.]com 46.151.212.202
mdeastserv[.]com 46.151.212.201

Keys - example

Key 1: C097CF17DC3303BC8155534350464E50176ACA63842B0973831D8C6C8F136817
Key 2: 8D35913F80A23E820C23B3125ABF57901BC9A7B83283FB2B240193ABDEDE52B9
Key 3: Derived as described earlier.

Filenames

dpnvmrs.dll
hp3mlnv.dll
hp4mlnv.dll
hp5nhd.dll
hp6nhd.dll
hpjdnb64.dll
hpmdnel3b.dll
ifssvc.dll
ifssvcmgr.dll
msprtmon64.dll
msptromn.dll
plamgr.dll
ppcrlchk.dll
ppcrlupd.dll
prntapt.dll
prntqdl64.dll
pscript6f.dll
pscript6s.dll
shprn64.dll
stprn32.dll
winmnprt.dll

MITRE ATT&CK techniques

Tactic ID Name Description
Persistence T1013 Port Monitors DePriMon installs one of its components as a port monitor for achieving persistence.
Defense Evasion T1036 Masquerading DePriMon places its components into the System32 folder with names mimicking common system DLLs.
T1107 File Deletion DePriMon can delete itself securely by overwriting its files with random data and then deleting them.
T1112 Modify Registry DePriMon adds registry entry in HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors to achieve persistence.
T1134 Access Token Manipulation DePriMon obtains a user token for obtaining information about the proxy settings on the machine.
T1140 Deobfuscate/Decode Files or Information DePriMon encrypts some of its strings and its configuration file using AES-256.
Discovery T1007 System Service Discovery DePriMon can list registered services on the system.
T1057 Process Discovery DePriMon can list running processes on the system.
T1082 System Information Discovery DePriMon collects various information about the system.
T1124 System Time Discovery DePriMon regularly checks system time and performs various actions based on it, such as uninstallation.
Command And Control T1043 Commonly Used Port DePriMon uses ports 443 and 8080 for C&C communication.
T1071 Standard Application Layer Protocol DePriMon uses HTTP for C&C communication.
T1090 Connection Proxy DePriMon uses local proxy settings to make its communication less suspicious.