Les chercheurs d'ESET ont analysé deux campagnes du groupe APT OilRig : Outer Space (2021) et Juicy Mix (2022). Ces deux campagnes de cyberespionnage visaient exclusivement des organisations israéliennes, ce qui correspond à l'intérêt du groupe pour le Moyen-Orient, et utilisaient le même scénario : OilRig a d'abord compromis un site web légitime pour l'utiliser comme serveur C&C, puis a utilisé des droppers VBS pour livrer une porte dérobée C#/.NET à ses victimes, tout en déployant une variété d'outils post-compromission principalement utilisés pour l'exfiltration de données sur les systèmes cibles.

Pour sa campagne Outer Space, OilRig a utilisé une porte dérobée C#/.NET simple et non documentée que nous avons baptisée Solar, ainsi qu'un nouveau téléchargeur, SampleCheck5000 (ou SC5k), qui utilise l'API Microsoft Office Exchange Web Services pour la communication C&C. Pour la campagne Juicy Mix, les acteurs de la menace ont amélioré Solar pour créer la porte dérobée Mango, qui possède des capacités et des méthodes d'obscurcissement supplémentaires. Outre la détection de l'ensemble d'outils malveillants, nous avons également informé le CERT israélien des sites web compromis.

Points clés de ce billet de blog :

  • ESET a observé deux campagnes OilRig qui se sont déroulées en 2021 (Outer Space) et 2022 (Juicy Mix).
  • Les opérateurs ont exclusivement ciblé des organisations israéliennes et compromis des sites web israéliens légitimes pour les utiliser dans leurs communications C&C.
  • Pour chaque campagne, ils ont utilisé une nouvelle porte dérobée C#/.NET de premier niveau, qui n'était pas documentée auparavant : Solar in Outer Space, puis son successeur Mango in Juicy Mix.
  • Les deux portes dérobées ont été déployées par des droppers VBS, vraisemblablement diffusés par des courriels de spearphishing.
  • Divers outils post-compromission ont été déployés dans les deux campagnes, notamment le téléchargeur SC5k qui utilise l'API Microsoft Office Exchange Web Services pour la communication C&C, ainsi que plusieurs outils permettant de voler des données de navigation et des informations d'identification à partir de Windows Credential Manager.

OilRig, également connu sous le nom d'APT34, Lyceum ou Siamesekitten, est un groupe de cyberespionnage actif depuis au moins 2014 et généralement considéré comme basé en Iran. Le groupe cible les gouvernements du Moyen-Orient et divers secteurs d'activité, notamment la chimie, l'énergie, la finance et les télécommunications. OilRig a mené la campagne d'espionnage DNS en 2018 et 2019, qui a ciblé des victimes au Liban et aux Émirats arabes unis. En 2019 et 2020, OilRig a poursuivi ses attaques avec la campagne HardPass, qui a utilisé LinkedIn pour cibler des victimes du Moyen-Orient dans les secteurs de l'énergie et du gouvernement. En 2021, OilRig a mis à jour sa porte dérobée DanBot et a commencé à déployer les portes dérobées Shark, Milan et Marlin, mentionnées dans l'édition T3 2021 du rapport ESET sur les menaces.

Dans ce billet de blog, nous présentons une analyse technique des portes dérobées Solar et Mango, du dropper VBS utilisé pour diffuser Mango et des outils post-compromission déployés dans chaque campagne.

Attribution

Le lien initial qui nous a permis de relier la campagne Outer Space à OilRig est l'utilisation du même extracteur de données Chrome personnalisé (suivi par les chercheurs d'ESET sous le nom de MKG) que dans la campagne Out to Sea. Nous avons observé la porte dérobée Solar déployer le même échantillon de MKG que dans la campagne Out to Sea sur le système de la cible, ainsi que deux autres variantes.

Outre le chevauchement des outils et du ciblage, nous avons également constaté de nombreuses similitudes entre la porte dérobée Solar et les portes dérobées utilisées dans le cadre de la campagne Out to Sea, principalement en ce qui concerne le chargement et le téléchargement : solar et Shark, une autre porte dérobée OilRig, utilisent des URI avec des schémas de téléchargement simples pour communiquer avec le serveur C&C, avec un "d" pour le téléchargement et un "u" pour l'envoi ; en outre, le téléchargeur SC5k utilise des sous-répertoires d'envoi et de téléchargement tout comme d'autres portes dérobées OilRig, à savoir ALMA, Shark, DanBot et Milan. Ces résultats confirment que le coupable d'Outer Space est bien OilRig.

En ce qui concerne les liens entre la campagne Juicy Mix et OilRig, outre le fait qu'elle visait des organisations israéliennes - ce qui est typique de ce groupe d'espionnage - il existe des similitudes de code entre Mango, la porte dérobée utilisée dans le cadre de cette campagne, et Solar. En outre, les deux portes dérobées ont été déployées par des droppers VBS utilisant la même technique d'obscurcissement des chaînes de caractères. Le choix des outils de post-compromission utilisés dans Juicy Mix reflète également les campagnes précédentes d'OilRig.

Aperçu de la campagne Outer Space

Nommée en raison de l'utilisation d'un schéma de dénomination basé sur l'astronomie dans les noms de fonctions et les tâches, Outer Space est une campagne OilRig datant de 2021. Dans cette campagne, le groupe a compromis un site israélien de ressources humaines et l'a ensuite utilisé comme serveur C&C pour sa porte dérobée C#/.NET non documentée, Solar. Solar est une porte dérobée simple dotée de fonctionnalités de base telles que la lecture et l'écriture sur disque et la collecte d'informations.

Par l'intermédiaire de Solar, le groupe a ensuite déployé un nouveau téléchargeur SC5k, qui utilise l'API des services Web d'Office Exchange pour télécharger des outils supplémentaires à exécuter, comme le montre la figure 1. Afin d'exfiltrer les données de navigation du système de la victime, OilRig a utilisé un destructeur de données Chrome appelé MKG.

Figure_01_OuterSpace_overview
Figure 1. Vue d'ensemble de la chaîne de compromission Outer Space d'OilRig

Aperçu de la campagne Juicy Mix

En 2022, OilRig a lancé une autre campagne ciblant les organisations israéliennes, cette fois-ci avec un ensemble d'outils mis à jour. Nous avons baptisé cette campagne Juicy Mix en raison de l'utilisation d'une nouvelle porte dérobée d'OilRig, Mango (d'après son nom d'assemblage interne et son nom de fichier, Mango.exe). Dans cette campagne, les auteurs de la menace ont compromis un site web légitime de portail d'emploi israélien pour l'utiliser dans les communications C&C. Les outils malveillants du groupe ont été utilisés dans le cadre d'une opération de piratage. Les outils malveillants du groupe ont ensuite été déployés contre une organisation de soins de santé, également basée en Israël.

La porte dérobée de premier niveau Mango est le successeur de Solar, également écrite en C#/.NET, avec des changements notables, notamment des capacités d'exfiltration, l'utilisation d'API natives et l'ajout d'un code d'évasion de la détection.

Outre Mango, nous avons également détecté deux outils de vidage de données de navigateur non documentés auparavant, utilisés pour voler les cookies, l'historique de navigation et les informations d'identification des navigateurs Chrome et Edge, ainsi qu'un outil de vol du gestionnaire d'informations d'identification Windows, que nous attribuons tous à OilRig. Ces outils ont tous été utilisés contre la même cible que Mango, ainsi que contre d'autres organisations israéliennes compromises en 2021 et 2022. La figure 2 présente une vue d'ensemble de l'utilisation des différents composants dans le cadre de la campagne Juicy Mix.

Figure_01_OuterSpace_overview
Figure 2. Vue d'ensemble des composants utilisés dans la campagne Juicy Mix d'OilRig

Analyse technique

Dans cette section, nous présentons une analyse technique des portes dérobées Solar et Mango et du téléchargeur SC5k, ainsi que d'autres outils déployés sur les systèmes ciblés dans le cadre de ces campagnes.

Droppers VBS

Pour s'implanter dans le système de la cible, des droppers Visual Basic Script (VBS) ont été utilisés dans les deux campagnes, qui ont très probablement été diffusés par des courriels de spearphishing. Notre analyse ci-dessous se concentre sur le script VBS utilisé pour diffuser Mango (SHA-1 : 3699B67BF4E381847BF98528F8CE2B966231F01A) ; notez que le dropper de Solar est très similaire.

L'objectif du dropper est de fournir la porte dérobée Mango intégrée, de programmer une tâche pour la persistance et d'enregistrer le compromis avec le serveur C&C. La porte dérobée intégrée est stockée sous forme de fichier de données. La porte dérobée intégrée est stockée sous la forme d'une série de sous-chaînes base64, qui sont concaténées et décodées en base64. Comme le montre la figure 3, le script utilise également une technique simple de désobfuscation de chaînes, dans laquelle les chaînes sont assemblées à l'aide d'opérations arithmétiques et de la fonction Chr.

Figure_03_Mango_string_obfuscation
Figure 3. Technique de désobfuscation de chaînes utilisée par le dropper VBS d'OilRig pour Mango

En outre, le dropper VBS de Mango ajoute un autre type d'obscurcissement des chaînes et du code pour configurer la persistance et s'enregistrer auprès du serveur C&C. Comme le montre la figure 4, pour désobfusquer certaines chaînes, le script remplace tous les caractères de l'ensemble #*+-_)(}{@$%^& par 0, puis divise la chaîne en nombres à trois chiffres qui sont ensuite convertis en caractères ASCII à l'aide de la fonction Chr . Par exemple, la chaîne 116110101109117+99111$68+77{79$68}46-50108109120115}77 se traduit par Msxml2.DOMDocument.

Figure_03_Mango_string_obfuscation
Figure 4. Fonction d'obscurcissement des chaînes de caractères utilisée par le dropper VBS de Mango

Une fois la porte dérobée intégrée au système, le dropper crée une tâche programmée qui exécute Mango (ou Solar, dans l'autre version) toutes les 14 minutes. Enfin, le script envoie un nom encodé en base64 de l'ordinateur compromis via une requête POST afin d'enregistrer la porte dérobée auprès de son serveur C&C.

Porte dérobée Solar

Solar est la porte dérobée utilisée dans la campagne Outer Space d'OilRig. Dotée de fonctionnalités de base, cette porte dérobée peut être utilisée, entre autres, pour télécharger et exécuter des fichiers et exfiltrer automatiquement des fichiers mis en scène.

Nous avons choisi le nom Solar en nous basant sur le nom de fichier utilisé par OilRig, Solar.exe. Il s'agit d'un nom approprié puisque la porte dérobée utilise un schéma de dénomination astronomique pour les noms de ses fonctions et tâches utilisées dans le binaire(Mercure, Vénus, Mars, Terre et Jupiter).

Solar commence à s'exécuter en effectuant les étapes illustrées dans Figure 5.

Figure_03_Mango_string_obfuscation
Figure 5. Flux d'exécution initial de Solar

La porte dérobée crée deux tâches, Earth et Venus, qui s'exécutent en mémoire. Il n'y a pas de fonction d'arrêt pour ces deux tâches, qui s'exécutent donc indéfiniment. Earth est programmée pour s'exécuter toutes les 30 secondes et Venus est programmée pour s'exécuter toutes les 40 secondes.

LaTerre est la tâche principale, responsable de la majeure partie des fonctions de Solar. Elle communique avec le serveur C&C à l'aide de la fonction MercuryToSun, qui envoie des informations de base sur le système et la version du logiciel malveillant au serveur C&C, puis gère la réponse du serveur. Earth envoie les informations suivantes au serveur C&C :

  • La chaîne (@) <nom d'hôte du système> ; la chaîne entière est cryptée.
  • La chaîne 1.0.0.0, cryptée (peut-être un numéro de version).
  • La chaîne 30000, cryptée (peut-être la durée d'exécution programmée de Earth en millisecondes).

Le cryptage et le décryptage sont mis en œuvre dans des fonctions appelées respectivement JupiterE et JupiterD. Toutes deux appellent une fonction nommée JupiterX, qui met en œuvre une boucle XOR comme le montre la figure 6.

Figure_03_Mango_string_obfuscation
Figure 6. La bouclefor
de
JupiterX utilisée pour crypter et décrypter les données

La clé est dérivée d'une variable de chaîne globale codée en dur, 6sEj7*0B7#7, et d'un nonce: dans ce cas, une chaîne hexagonale aléatoire de 2 à 24 caractères. Après le cryptage XOR, le codage base64 standard est appliqué.

Le serveur web d'une société israélienne de ressources humaines, qu'OilRig a compromis à un moment donné avant de déployer Solar, a été utilisé comme serveur C&C :

http://organization.co[.]il/project/templates/office/template.aspx?rt=d&sun=<encrypted_MachineGuid>&rn=<encryption_nonce>

Avant d'être ajouté à l'URI, le nonce de chiffrement est chiffré et la valeur de la chaîne d'interrogation initiale, rt, est fixée à d, ce qui signifie probablement "téléchargement".

La dernière étape de la fonction MercuryToSun consiste à traiter la réponse du serveur C&C. Pour ce faire, elle récupère une sous-catégorie de l'URI et la transmet au serveur. Pour ce faire, elle récupère une sous-chaîne de la réponse, qui se trouve entre les caractères QQ@ et @kk. Cette réponse est une chaîne d'instructions séparées par des astérisques(*) qui est traitée dans un tableau. Earth exécute ensuite les commandes de la porte dérobée, qui comprennent le téléchargement de charges utiles supplémentaires à partir du serveur, l'établissement d'une liste de fichiers sur le système de la victime et l'exécution d'exécutables spécifiques.

La sortie des commandes est ensuite compressée par gzip à l'aide de la fonction Neptune et chiffrée avec la même clé de chiffrement et un nouveau nonce. Les résultats sont ensuite téléchargés sur le serveur C&C, ainsi :

http://organization.co[.]il/projet/templates/office/template.aspx?rt=u&sun=<MachineGuid>&rn=<new_nonce>

MachineGuid et le nouveau nonce sont cryptés avec la fonction JupiterE , et ici la valeur de rt est fixée à u, probablement pour "upload".

Venus, l'autre tâche planifiée, est utilisée pour l'exfiltration automatisée de données. Cette petite tâche copie le contenu des fichiers d'un répertoire (également nommé Venus) vers le serveur C&C. Ces fichiers sont probablement déposés ici par des pirates. Ces fichiers sont probablement déposés ici par un autre outil OilRig, qui n'a pas encore été identifié. Après avoir téléchargé un fichier, la tâche le supprime du disque.

Porte dérobée Mango

Pour sa campagne Juicy Mix, OilRig est passé de la porte dérobée Solar à la porte dérobée Mango. Son flux de travail est similaire à celui de Solar et ses capacités se chevauchent, mais il y a néanmoins plusieurs changements notables :

  • Utilisation de TLS pour les communications C&C.
  • Utilisation d'API natives, plutôt que d'API .NET, pour exécuter des fichiers et des commandes shell.
  • Bien qu'il ne soit pas activement utilisé, un code d'évasion de la détection a été introduit.
  • La prise en charge de l'exfiltration automatisée(Venus dans Solar) a été supprimée ; à la place, Mango prend en charge une commande de porte dérobée supplémentaire pour l'exfiltration de fichiers sélectionnés.
  • La prise en charge du mode journal a été supprimée et les noms des symboles ont été obscurcis.

Contrairement au système de dénomination astronomique de Solar, Mango obscurcit les noms de ses symboles, comme on peut le voir dans Figure 7 .

Figure_03_Mango_string_obfuscation
Figure 7. Contrairement à son prédécesseur Solar (à gauche), les symboles de Mango ont été obscurcis

Outre l'obscurcissement des noms de symboles, Mango utilise également la méthode d'empilement des chaînes de caractères (comme le montre Figure 8) pour obscurcir les chaînes de caractères, ce qui complique l'utilisation de méthodes de détection simples.

Figure_03_Mango_string_obfuscation
Figure 8. Mango utilise l'empilement de chaînes de caractères pour obscurcir les chaînes et contrecarrer les mécanismes de détection simples

Comme Solar, la porte dérobée Mango commence par créer une tâche en mémoire, programmée pour s'exécuter indéfiniment toutes les 32 secondes. Cette tâche communique avec le serveur C&C et exécute les commandes de la porte dérobée, à l'instar de la tâche Earth de Solar. Alors que Solar crée également Venus, une tâche d'exfiltration automatisée, cette fonctionnalité a été remplacée dans Mango par une nouvelle commande de porte dérobée.

Dans la tâche principale, Mango génère d'abord un identifiant de victime, <victimID>, à utiliser dans les communications C&C . L'identifiant est calculé sous la forme d'un code MDD, qui est utilisé pour identifier la victime. L'identifiant est calculé sous la forme d'un hachage MD5 de <nom de la machine><nom d'utilisateur>, formaté sous la forme d'une chaîne hexadécimale.

Pour demander une commande de porte dérobée, Mango envoie ensuite la chaîne d@<victimID>@<nom de machine>|<nom d'utilisateur> au serveur C&C http://www.darush.co[.]il/ads.asp - un portail d'emploi israélien légitime, probablement compromis par OilRig avant cette campagne. Nous avons informé l'organisation nationale israélienne CERT de la compromission.

Le corps de la requête est construit comme suit :

  • Les données à transmettre sont cryptées par XOR à l'aide de la clé de cryptage Q&4g, puis encodées en base64.
  • Une chaîne pseudo-aléatoire de 3 à 14 caractères est générée à partir de l'alphabet suivant (tel qu'il apparaît dans le code) : i8p3aEeKQbN4klFMHmcC2dU9f6gORGIhDBLS0jP5Tn7o1AVJ.
  • Les données chiffrées sont insérées dans une position pseudo-aléatoire au sein de la chaîne générée, entre les délimiteurs [ @ et @].

Pour communiquer avec son serveur C&C, Mango utilise le protocole TLS (Transport Layer Security), qui est utilisé pour fournir une couche supplémentaire de chiffrement.

De même, la commande de porte dérobée reçue du serveur C&C est cryptée par XOR, codée en base64, puis placée entre [@ et @] dans le corps de la réponse HTTP. La commande elle-même est soit NCNT (auquel cas aucune action n'est entreprise), soit une chaîne de plusieurs paramètres délimités par @, comme indiqué dans le tableau 1 , qui répertorie les commandes de porte dérobée de Mango. Notez que <Arg0> ne figure pas dans le tableau, mais qu'il est utilisé dans la réponse au serveur C&C.

Tableau 1. Liste des commandes de porte dérobée de Mango

Arg1

Arg2

Arg3

Action taken

Return value

1 or empty string

+sp <optional arguments>

N/A

Executes the specified file/shell command (with the optional arguments), using the native CreateProcess API imported via DllImport. If the arguments contain [s], it is replaced by C:\Windows\System32\.

Command output.

+nu

N/A

Returns the malware version string and C&C URL.

<versionString>|<c2URL>; in this case:

1.0.0|http://www.darush.co[.]il/ads.asp

+fl <optional directory name>

N/A

Enumerates the content of the specified directory (or current working directory).

Directory of <directory path>

For each subdirectory:

<last_write_time> <DIR> <subdirectory name>

For each file:

<last_write_time> FILE <file size> <filename>

<number of subdirectories> Dir(s)

<number of files> File(s)

+dn <file name>

N/A

Uploads the file content to the C&C server via a new HTTP POST request formatted: u@<victimID>@<machine name>|<username>@<file path>@2@<base64encodedFileContent>.

One of:

·       file[<filename>] is uploaded to server.

·       file not found!

·       file path empty!

2

Base64-encoded data

Filename

Dumps the specified data into a file in the working directory.

file downloaded to path[<fullFilePath>]

Chaque commande de porte dérobée est traitée dans un nouveau thread, et les valeurs de retour sont ensuite encodées en base64 et combinées avec d'autres métadonnées. Enfin, cette chaîne est envoyée au serveur C&C en utilisant le même protocole et la même méthode de cryptage que ceux décrits ci-dessus.

Technique d'évasion de détection non utilisée

Il est intéressant de noter que nous avons trouvé une technique d'évasion de détection inutilisée dans Mango. La fonction responsable de l'exécution des fichiers et des commandes téléchargés depuis le serveur C&C prend un deuxième paramètre facultatif - un identifiant de processus. S'il est défini, Mango utilise alors l'API UpdateProcThreadAttribute pour donner une valeur à l'attribut PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY(0x20007) pour le processus spécifié : PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON(0x100000000000), comme indiqué dans Figure 9.

Figure_03_Mango_string_obfuscation
Figure 9. Code d'évasion du produit de sécurité inutilisé dans la porte dérobée Mango

L'objectif de cette technique est d'empêcher les solutions de sécurité des points finaux de charger leurs crochets de code en mode utilisateur via une DLL dans ce processus. Bien que le paramètre n'ait pas été utilisé dans l'échantillon que nous avons analysé, il pourrait être activé dans les versions futures.

Version 1.1.1

Sans rapport avec la campagne Juicy Mix, nous avons trouvé en juillet 2023 une nouvelle version de la porte dérobée Mango (SHA-1 : C9D18D01E1EC96BE952A9D7BD78F6BBB4DD2AA2A), téléchargée sur VirusTotal par plusieurs utilisateurs sous le nom Menorah.exe. La version interne de cet échantillon est passée de 1.0.0 à 1.1.1, mais le seul changement notable est l'utilisation d'un serveur C&C différent, http://tecforsc-001-site1.gtempurl[.]com/ads.asp.

Avec cette version, nous avons également découvert un document Microsoft Word (SHA-1 : 3D71D782B95F13EE69E96BCF73EE279A00EAE5DB) contenant une macro malveillante qui ouvre la porte dérobée. La figure 10 montre le faux message d'avertissement, qui incite l'utilisateur à activer les macros pour le document, et le contenu leurre qui s'affiche ensuite, alors que le code malveillant s'exécute en arrière-plan.

Figure 10. Document Microsoft Word contenant une macro malveillante qui laisse tomber Mango v1.1.1

Outils post-compromission

Dans cette section, nous examinons une sélection d'outils post-compromission utilisés dans les campagnes Outer Space et Juicy Mix d'OilRig, visant à télécharger et à exécuter des charges utiles supplémentaires et à voler des données sur les systèmes compromis.

Téléchargeur SampleCheck5000 (SC5k)

SampleCheck5000 (ou SC5k) est un téléchargeur utilisé pour télécharger et exécuter des outils OilRig supplémentaires. Il se distingue par l'utilisation de l'API Microsoft Office Exchange Web Services pour la communication C&C : les attaquants créent des brouillons de messages dans ce compte de messagerie et y cachent les commandes de la porte dérobée. Par la suite, le téléchargeur se connecte au même compte et analyse les brouillons pour récupérer les commandes et les charges utiles à exécuter.

SC5k utilise des valeurs prédéfinies - URL Microsoft Exchange, adresse électronique et mot de passe - pour se connecter au serveur Exchange distant, mais il offre également la possibilité de remplacer ces valeurs à l'aide d'un fichier de configuration dans le répertoire de travail actuel nommé setting.key. Nous avons choisi le nom SampleCheck5000 en nous basant sur l'une des adresses électroniques utilisées par l'outil dans le cadre de la campagne Outer Space.

Une fois que SC5k s'est connecté au serveur Exchange distant, il récupère tous les courriels dans le répertoire Drafts , les trie par ordre d'ancienneté et ne conserve que les brouillons comportant des pièces jointes. Il passe ensuite en revue chaque brouillon contenant une pièce jointe, à la recherche de pièces jointes JSON contenant des "données" dans le corps du message. Il extrait la valeur des données clés du fichier JSON, décode et déchiffre la valeur en base64 et appelle cmd.exe pour exécuter la chaîne de ligne de commande résultante. SC5k enregistre ensuite la sortie de l'exécution de cmd.exe dans une variable locale.

À l'étape suivante de la boucle, le téléchargeur communique les résultats aux opérateurs OilRig en créant un nouveau message électronique sur le serveur Exchange et en l'enregistrant en tant que brouillon (sans l'envoyer), comme le montre la figure 11. Une technique similaire est utilisée pour exfiltrer des fichiers d'un dossier de stockage local. En tant que dernière étape de la boucle, SC5k enregistre également la sortie de la commande dans un format crypté et compressé sur le disque.

Figure_03_Mango_string_obfuscation
Figure 11. Création d'un message électronique par SC5k

Dumpers de données de navigateur

Les opérateurs d'OilRig ont l'habitude d'utiliser des destructeurs de données de navigateur dans le cadre de leurs activités post-compromission. Nous avons découvert deux nouveaux voleurs de données de navigateur parmi les outils post-compromission déployés dans le cadre de la campagne Juicy Mix, parallèlement à la porte dérobée Mango. Ils déversent les données de navigation volées dans le répertoire %TEMP% dans des fichiers nommés Cupdate et Eupdate (d'où nos noms : CDumper et EDumper).

Ces deux outils sont des voleurs de données de navigateur en C#/.NET, qui collectent les cookies, l'historique de navigation et les informations d'identification des navigateurs Chrome (CDumper) et Edge (EDumper). Nous concentrons notre analyse sur CDumper, car les deux voleurs sont pratiquement identiques, à l'exception de quelques constantes.

Lorsqu'il est exécuté, CDumper crée une liste d'utilisateurs ayant installé Google Chrome. Lors de l'exécution, le voleur se connecte aux bases de données SQLite Chrome Cookies, History et Login Data sous %APPDATA%\Local\Google\Chrome\User Data, et collecte les données du navigateur, y compris les URL visités et les logins enregistrés, à l'aide de requêtes SQL.

Les valeurs des cookies sont ensuite décryptées et toutes les informations collectées sont ajoutées à un fichier journal nommé C:\Users\<user>\AppData\Local\Temp\Cupdate, en clair. Cette fonctionnalité est mise en œuvre dans les fonctions de CDumper appelées CookieGrab (voir Figure 12), HistoryGrab et PasswordGrab. Notez qu'aucun mécanisme d'exfiltration n'est mis en œuvre dans CDumper, mais que Mango peut exfiltrer des fichiers sélectionnés par le biais d'une commande de porte dérobée.

Figure_03_Mango_string_obfuscation
Figure 12. La fonction CookieGrab de CDumper extrait et décrypte les cookies du magasin de données de Chrome

Dans Outer Space et dans la campagne précédente Out to Sea, OilRig a utilisé un extracteur de données Chrome C/C++ appelé MKG. Comme CDumper et EDumper, MKG était également capable de voler les noms d'utilisateur et les mots de passe, l'historique de navigation et les cookies du navigateur. Ce "Chrome data dumper" est généralement déployé dans les emplacements de fichiers suivants (le premier emplacement étant le plus courant) :

  • %USERS%\public\programmes\vmwaredir\<random_14_character_string>\mkc.exe
  • %USERS%\Public\M64.exe

Voleur de Windows Credential Manager

Outre les outils de vidage des données du navigateur, OilRig a également utilisé un voleur de Windows Credential Manager dans le cadre de la campagne Juicy Mix. Cet outil vole les informations d'identification à Windows Credential Manager et, comme CDumper et EDumper, les stocke dans le répertoire %TEMP% - cette fois dans un fichier nommé IUpdate (d'où le nom IDumper). Contrairement à CDumper et EDumper, IDumper est implémenté sous la forme d'un script PowerShell.

Comme pour les outils de dumper de navigateur, il n'est pas rare qu'OilRig recueille des informations d'identification à partir du gestionnaire d'informations d'identification de Windows. Auparavant, les opérateurs d'OilRig ont été observés en train d'utiliser VALUEVAULT, un outil de vol d'informations d'identification compilé par Go et accessible au public (voir la campagne HardPass de 2019 et une campagne de 2020), dans le même but.

Conclusion

OilRig continue d'innover et de créer de nouveaux implants dotés de capacités similaires à celles d'une porte dérobée, tout en trouvant de nouveaux moyens d'exécuter des commandes sur des systèmes distants. Le groupe a amélioré sa porte dérobée C#/.NET Solar de la campagne Outer Space pour créer une nouvelle porte dérobée appelée Mango pour la campagne Juicy Mix. Le groupe déploie un ensemble d'outils personnalisés post-compromission qui sont utilisés pour collecter des informations d'identification, des cookies et l'historique de navigation des principaux navigateurs et du gestionnaire d'informations d'identification de Windows. Malgré ces innovations, OilRig continue de s'appuyer sur des méthodes bien établies pour obtenir des données sur les utilisateurs.

Pour toute question concernant nos recherches publiées sur WeLiveSecurity, veuillez nous contacter à l'adresse threatintel@eset.com.
ESET Research propose des rapports privés de renseignements sur les APT et des flux de données. Pour toute question concernant ce service, visitez la page ESET Threat Intelligence.

IoCs

Fichiers

SHA-1

Filename

ESET detection name

Description

3D71D782B95F13EE69E96BCF73EE279A00EAE5DB

MyCV.doc

VBA/OilRig.C

Document with malicious macro dropping Mango.

3699B67BF4E381847BF98528F8CE2B966231F01A

chrome_log.vbs

VBS/TrojanDropper.Agent.PCC

VBS dropper.

1DE4810A10FA2D73CC589CA403A4390B02C6DA5E

Solar.exe

MSIL/OilRig.E

Solar backdoor.

CB26EBDE498ECD2D7CBF1BC498E1BCBB2619A96C

Mango.exe

MSIL/OilRig.E

Mango backdoor (v1.0.0).

C9D18D01E1EC96BE952A9D7BD78F6BBB4DD2AA2A

Menorah.exe

MSIL/OilRig.E

Mango backdoor (v1.1.1).

83419CBA55C898FDBE19DFAFB5B1B207CC443190

EdgeUpdater.exe

MSIL/PSW.Agent.SXJ

Edge data dumper.

DB01095AFEF88138C9ED3847B5D8AF954ED7BBBC

Gr.exe

MSIL/PSW.Agent.SXJ

Chrome data dumper.

BE01C95C2B5717F39B550EA20F280D69C0C05894

ieupdater.exe

PowerShell/PSW.Agent.AH

Windows Credential Manager dumper.

6A1BA65C9FD8CC9DCB0657977DB2B03DACDD8A2A

mkc.exe

Win64/PSW.Agent.AW

MKG - Chrome data dumper.

94C08A619AF2B08FEF08B131A7A59D115C8C2F7B

mkkc.exe

Win64/PSW.Agent.AW

MKG - Chrome data dumper.

CA53B8EB76811C1940D814AAA8FE875003805F51

cmk.exe

Win64/PSW.Agent.AW

MKG - Chrome data dumper.

BE9B6ACA8A175DF61F2C75932E029F19789FD7E3

CCXProcess.exe

MSIL/OilRig.A

SC5k downloader (32-bit version).

2236D4DCF68C65A822FF0A2AD48D4DF99761AD07

acrotray.exe

MSIL/OilRig.D

SC5k downloader (64-bit version).

EA8C3E9F418DCF92412EB01FCDCDC81FDD591BF1

node.exe

MSIL/OilRig.D

SC5k downloader (64-bit version).

Réseau

IP

Domain

Hosting provider

First seen

Details

199.102.48[.]42

tecforsc-001-site1.gtempurl[.]com

MarquisNet

2022-07-29

N/A

Techniques ATT&CK de MITRE

Ce tableau a été construit en utilisant la version 13 du cadre ATT&CK de MITRE.

Tactic

ID

Name

Description

Resource Development

T1584.004

Compromise Infrastructure: Server

In both Outer Space and Juicy Mix campaigns, OilRig has compromised legitimate websites to stage malicious tools and for C&C communications.

T1587.001

Develop Capabilities: Malware

OilRig has developed custom backdoors (Solar and Mango), a downloader (SC5k), and a set of credential-theft tools for use in its operations.

T1608.001

Stage Capabilities: Upload Malware

OilRig has uploaded malicious components to its C&C servers, and stored prestaged files and commands in the Drafts email directory of an Office 365 account for SC5k to download and execute.

T1608.002

Stage Capabilities: Upload Tool

OilRig has uploaded malicious tools to its C&C servers, and stored prestaged files in the Drafts email directory of an Office 365 account for SC5k to download and execute.

Initial Access

T1566.001

Phishing: Spearphishing Attachment

OilRig probably distributed its Outer Space and Juicy Mix campaigns via phishing emails with their VBS droppers attached.

Execution

T1053.005

Scheduled Task/Job: Scheduled Task

OilRig’s IDumper, EDumper, and CDumper tools use scheduled tasks named ie<user>, ed<user>, and cu<user> to execute themselves under the context of other users.

Solar and Mango use a C#/.NET task on a timer to iteratively execute their main functions.

T1059.001

Command and Scripting Interpreter: PowerShell

OilRig’s IDumper tool uses PowerShell for execution.

T1059.003

Command and Scripting Interpreter: Windows Command Shell

OilRig’s Solar, SC5k, IDumper, EDumper, and CDumper use cmd.exe to execute tasks on the system.

T1059.005

Command and Scripting Interpreter: Visual Basic

OilRig uses a malicious VBScript to deliver and persist its Solar and Mango backdoors.

T1106

Native API

OilRig’s Mango backdoor uses the CreateProcess Windows API for execution.

Persistence

T1053.005

Scheduled Task/Job: Scheduled Task

OilRig’s VBS dropper schedules a task named ReminderTask to establish persistence for the Mango backdoor.

Defense Evasion

T1036.005

Masquerading: Match Legitimate Name or Location

OilRig uses legitimate or innocuous filenames for its malware to disguise itself from defenders and security software.

T1027.002

Obfuscated Files or Information: Software Packing

OilRig has used SAPIEN Script Packager and SmartAssembly obfuscator to obfuscate its IDumper tool.

T1027.009

Obfuscated Files or Information: Embedded Payloads

OilRig’s VBS droppers have malicious payloads embedded within them as a series of base64 substrings.

T1036.004

Masquerading: Masquerade Task or Service

In order to appear legitimate, Mango’s VBS dropper schedules a task with the description Start notepad at a certain time.

T1070.009

Indicator Removal: Clear Persistence

OilRig’s post-compromise tools delete their scheduled tasks after a certain time period.

T1140

Deobfuscate/Decode Files or Information

OilRig uses several obfuscation methods to protect its strings and embedded payloads.

T1553

Subvert Trust Controls

SC5k uses Office 365, generally a trusted third party and often overlooked by defenders, as a download site.

T1562

Impair Defenses

OilRig’s Mango backdoor has an (as yet) unused capability to block endpoint security solutions from loading their user-mode code in specific processes.

Credential Access

T1555.003

Credentials from Password Stores: Credentials from Web Browsers

OilRig’s custom tools MKG, CDumper, and EDumper can obtain credentials, cookies, and browsing history from Chrome and Edge browsers.

T1555.004

Credentials from Password Stores: Windows Credential Manager

OilRig’s custom credential dumping tool IDumper can steal credentials from the Windows Credential Manager.

Discovery

T1082

System Information Discovery

Mango obtains the compromised computer name.

T1083

File and Directory Discovery

Mango has a command to enumerate the content of a specified directory.

T1033

System Owner/User Discovery

Mango obtains the victim’s username.

T1087.001

Account Discovery: Local Account

OilRig’s EDumper, CDumper, and IDumper tools can enumerate all user accounts on the compromised host.

T1217

Browser Information Discovery

MKG dumps Chrome history and bookmarks.

Command and Control

T1071.001

Application Layer Protocol: Web Protocols

Mango uses HTTP in C&C communications.

T1105

Ingress Tool Transfer

Mango has the capability to download additional files from the C&C server for subsequent execution.

T1001

Data Obfuscation

Solar and SC5k use a simple XOR-encryption method along with gzip compression to obfuscate data at rest and in transit.

T1102.002

Web Service: Bidirectional Communication

SC5k uses Office 365 for downloading files from and uploading files to the Drafts directory in a legitimate email account.

T1132.001

Data Encoding: Standard Encoding

Solar, Mango, and MKG base64 decodes data before sending it to the C&C server.

T1573.001

Encrypted Channel: Symmetric Cryptography

Mango uses an XOR cipher with the key Q&4g to encrypt data in C&C communication.

T1573.002

Encrypted Channel: Asymmetric Cryptography

Mango uses TLS for C&C communication.

Exfiltration

T1041

Exfiltration Over C2 Channel

Mango, Solar, and SC5k use their C&C channels for exfiltration.