Serveur d'impression

S'enregistre en tant que «Moniteur d'impression par défaut», mais c'est un téléchargeur malveillant. Rencontrez DePriMon – Bien choisir son serveur d impression

Le 25 novembre 2019 - 12 minutes de lecture

Les chercheurs d'ESET ont découvert un nouveau téléchargeur avec un roman, jamais vu auparavant dans la technique d'installation sauvage

DePriMon est un téléchargeur malveillant qui comporte plusieurs étapes et qui utilise de nombreuses techniques non traditionnelles. Pour assurer la persistance, le logiciel malveillant enregistre un nouveau moniteur de port local – une astuce relevant de la technique «Moniteurs de port» de la base de connaissances MITRE ATT & CK. Pour cela, le logiciel malveillant utilise le nom «Moniteur d'impression par défaut de Windows»; c’est pourquoi nous l’avons nommé DePriMon. En raison de sa complexité et de son architecture modulaire, nous le considérons comme un framework.

Selon notre télémétrie, DePriMon est actif depuis mars 2017 au moins. DePriMon a été détecté dans une entreprise privée basée en Europe centrale et dans des dizaines d'ordinateurs au Moyen-Orient.

Certains des noms de domaine utilisés en tant que serveurs C & C contiennent des mots arabes, qui donnent une indication sur une campagne spécifique à une région. Cependant, DePriMon mérite une attention au-delà de la distribution géographique de ses cibles: il s’agit d’un malware soigneusement écrit, avec beaucoup de cryptage qui est utilisé correctement.

Pour aider les défenseurs à se protéger de cette menace, nous avons analysé en détail ce logiciel malveillant récemment découvert, en nous concentrant sur le téléchargeur lui-même. Comme nous manquons d’étapes initiales, que nous appellerons ici «la première étape», nous ne connaissons pas la distribution initiale ni le vecteur de compromis. Le type de charge utile finale utilisé dans les attaques est une autre question à laquelle il reste à répondre.

Toutefois, il convient de noter que, dans quelques cas, DePriMon a été détecté avec un logiciel malveillant ColoredLambert sur les mêmes ordinateurs dans un délai très court. ColoredLambert est utilisé par le groupe de cyberespionage Lamberts (aussi appelé Longhorn) et est lié à la fuite des capacités de la CIA dans Vault 7. Nos collègues de Symantec et de Kaspersky ont publié leurs analyses en avril 2017.

Analyse technique

Deuxième étape

Les deuxième et troisième étapes de DePriMon sont livrées sur le disque de la victime lors de la première étape. La deuxième étape s’installe et charge la troisième étape à l’aide d’un chemin chiffré et codé en dur. L'une des explications possibles est qu'il a été configuré après la première étape de l'attaque.

La technique d'installation décrite est unique. En principe, il est décrit dans la taxonomie de MITRE ATT & CK en tant que «contrôleurs de port», sous les tactiques de persistance et d’escalade de privilèges. Nous pensons que DePriMon est le premier exemple de malware utilisant cette technique jamais décrite publiquement.

La deuxième étape enregistre la DLL de troisième étape en tant que moniteur de port en créant la clé de registre et la valeur suivantes:

HKLM SYSTEM CurrentControlSet Control Print Moniteurs Moniteur d'impression par défaut Windows
Pilote =% PathToThirdStageDLL%

Des droits d'administrateur sont requis pour créer cette clé de registre.

Au démarrage du système, la DLL enregistrée sera chargée par spoolsv.exe avec SYSTÈME les privilèges, qui, combinés avec le caractère unique de cette méthode, rendent cette technique très efficace pour les attaquants.

La deuxième étape vérifie régulièrement s’il existe un fichier dans % system32% dossier portant le même nom que le fichier DLL du troisième étage mais sans l’extension «.dll». Ce fichier sert de déclencheur de désinstallation. Si DePriMon le trouve, il supprime à la fois ce fichier et ses propres composants de manière sécurisée en écrasant les fichiers binaires, puis en les supprimant.

Étape trois

La troisième étape, chargée de télécharger la ou les principales charges utiles des opérateurs de DePriMon, met également en œuvre des techniques intéressantes.

Pour les communications C & C, il utilise l'implémentation Microsoft de SSL / TLS, Secure Channel, à la place des API communes telles que WinHTTP ou WinInet. Sa configuration est très complexe, de même que la façon dont le logiciel malveillant le gère. Enfin, les auteurs ont déployé des efforts considérables en matière de cryptage, rendant le logiciel malveillant DePriMon plus difficile à analyser.

Communication C & C

DePriMon communique en toute sécurité via TLS, mais pas à un niveau élevé comme dans le cas typique des programmes malveillants. La connexion est initialisée avec un socket Windows et peut continuer avec l'initialisation d'une session SSPI (Security Support Provider Interface) authentifiée avec le SSP Negotiate / NTLM. Après cela, DePriMon utilise Schannel.

SSPI est utilisé / non utilisé en fonction d'un indicateur particulier dans le fichier de configuration et peut utiliser les paramètres de proxy locaux de la machine. L'implémentation est similaire à cet exemple fourni par Microsoft.

L’implémentation de TLS via Malware via Schannel est semblable à cet exemple de Coast Research & Development. Cela inclut la création d'informations d'identification, la prise de contact du client et la vérification du certificat de serveur.

Figure 1. Partie de l'implémentation SSPI générée par le décompilateur Hex-Rays

Une fois la communication établie, la troisième étape chiffre et déchiffre les messages manuellement à chaque fois.

Configuration

Les données de configuration pour la troisième étape de DePriMon ont 27 membres, ce qui est un nombre inhabituellement élevé pour un téléchargeur. Il est crypté avec AES-256 et incorporé dans le binaire.

Lors de la première exécution, la troisième étape de DePriMon (le programme de téléchargement lui-même) décrypte les données de configuration avec la clé 2 (voir la section IoC), les chiffre avec la clé 3 et stocke le fichier de configuration crypté dans un dossier temporaire. Le nom de fichier du fichier de configuration est créé selon le processus suivant: À partir du deuxième octet, la valeur de la clé 2 est transformée en un nombre en base 36 mais codé à l'aide de l'alphabet personnalisé «abc… xyz012… 789». L'extension du fichier de configuration est «.tmp».

Un exemple de chemin de fichier de configuration: % temp% rb1us0wm99sslpa1vx.tmp.

Lors de la deuxième exécution, le programme de téléchargement lit les données de configuration dans le fichier, et non à partir de lui-même. Ainsi, l'attaquant peut facilement mettre à jour la configuration.

Grâce à sa conception sécurisée, la configuration n'est pas laissée en mémoire sous forme non chiffrée. Chaque fois que le téléchargeur doit utiliser un élément du fichier de configuration, il déchiffre le fichier de configuration, récupère le membre et le chiffre à nouveau.

Cette conception protège la fonction principale du malware, la communication C & C, contre les analyses de mémoire.

Figure 2. Partie du code visible par le décompilateur Hex-Rays, qui illustre comment le programme malveillant DePriMon décrypte le fichier de configuration, enregistre quelques membres dans des variables locales et le chiffre à nouveau.

Le fichier de configuration présente un intérêt particulier:

  • Deux entrées pour les noms d'utilisateur et deux membres pour les mots de passe – pour le serveur proxy s'il est défini sur la machine. Cela signifie que les attaquants se préparent à poursuivre leur attaque via un proxy avec des informations d'identification. Cependant, nous n’avons pas vu de fonctionnalité permettant de voler ces détails, il semble donc que cela se fasse dans une autre phase de l’attaque.
  • Trois entrées pour trois serveurs C & C, chacun utilisé à une occasion différente.
  • Trois entrées pour trois ports, chacun utilisé à une autre occasion.
  • Indicateurs indiquant si le téléchargeur initialise une connexion via SSPI (Security Support Provider Interface) avec un proxy possible ou uniquement avec un socket (décrit plus loin).

Il convient de noter qu’outre les serveurs C & C extraits d’exemples de logiciels malveillants, nous avons identifié des domaines et des serveurs supplémentaires susceptibles d’être associés à ce logiciel malveillant.

Cryptage

Le logiciel malveillant utilise l'algorithme de chiffrement AES avec trois clés différentes de 256 bits à des fins différentes (ces clés sont répertoriées dans la section IoC).

  • Clé 1: pour le décryptage de diverses chaînes sensibles dans le malware.
  • Clé 2: Pour le cryptage et le décryptage des données de configuration en mémoire (comme décrit précédemment). Cette clé est également utilisée pour générer la troisième clé.
  • Clé 3: Pour le cryptage et le décryptage du fichier de configuration sur le disque.

Cette clé n'est pas codée en dur, mais dérivée à l'aide d'un tableau de 32 octets qui est ensuite chiffré. Le tableau est généré comme suit: les 4 premiers octets sont le numéro de série du volume du lecteur système et les 28 octets restants contiennent les valeurs 5 à 32. Ce tableau est chiffré avec la clé 2, ce qui donne la clé 3.

Conclusion

DePriMon est un téléchargeur exceptionnellement avancé dont les développeurs ont déployé des efforts supplémentaires pour configurer l’architecture et concevoir les composants critiques.

DePriMon est téléchargé en mémoire et exécuté directement à partir de celui-ci en tant que DLL à l'aide de la technique de chargement des DLL par réflexion. Il n'est jamais stocké sur le disque. Il possède un fichier de configuration étonnamment volumineux avec plusieurs éléments intéressants, son cryptage est correctement implémenté et protège efficacement la communication C & C.

DePriMon est donc un outil puissant, flexible et persistant conçu pour télécharger et exécuter une charge utile, ainsi que pour collecter des informations de base sur le système et ses utilisateurs.

Indicateurs de compromis (IoC)

Noms de détection ESET

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

Domaines

Domaine adresse IP
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

Clés – exemple

Clé 1: C097CF17DC3303BC8155534350464E50176ACA63842B0973831D8C6C8F136817
Clé 2: 8D35913F80A23E820C23B3125ABF57901BC9A7B83283FB2B240193ABDEDE52B9
Touche 3: dérivée comme décrit précédemment.

Noms de fichiers

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

Techniques MITRE ATT & CK

Tactique ID prénom La description
Persistance T1013 Moniteurs de port DePriMon installe l'un de ses composants en tant que moniteur de port pour assurer la persistance.
Défense Evasion T1036 Mascarade DePriMon place ses composants dans le dossier System32 avec des noms imitant les DLL système courantes.
T1107 Suppression de fichier DePriMon peut se supprimer en toute sécurité en écrasant ses fichiers avec des données aléatoires, puis en les supprimant.
T1112 Modifier le registre DePriMon ajoute une entrée de registre dans HKLM SYSTEM CurrentControlSet Control Print Monitors pour atteindre la persistance.
T1134 Manipulation de jetons d'accès DePriMon obtient un jeton utilisateur pour obtenir des informations sur les paramètres de proxy sur la machine.
T1140 Désobfuscation / décodage de fichiers ou d'informations DePriMon chiffre certaines de ses chaînes et son fichier de configuration en utilisant AES-256.
Découverte T1007 Découverte du service système DePriMon peut répertorier les services enregistrés sur le système.
T1057 Découverte de processus DePriMon peut répertorier les processus en cours d'exécution sur le système.
T1082 Découverte d'informations système DePriMon collecte diverses informations sur le système.
T1124 Découverte de l'heure du système DePriMon vérifie régulièrement l'heure du système et effectue diverses actions, telles que la désinstallation.
Commander et contrôler T1043 Port couramment utilisé DePriMon utilise les ports 443 et 8080 pour la communication C & C.
T1071 Protocole de couche d'application standard DePriMon utilise HTTP pour la communication C & C.
T1090 Proxy de connexion DePriMon utilise les paramètres de proxy locaux pour rendre ses communications moins suspectes.


ESET Recherche

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.