Les chercheurs d'ESET fournissent une analyse d'une attaque menée par un acteur menaçant proche de la Chine, non divulgué, que nous avons nommé Blackwood, et qui, selon nous, opère depuis au moins 2018. Les attaquants ont livré un implant sophistiqué, que nous avons nommé NSPX30, par l'intermédiaire de l'adversaire. -in-the-middle (AitM) attaque en détournant les demandes de mise à jour de logiciels légitimes.
Points clés de cet article de blog :
- Nous avons découvert l'implant NSPX30 déployé via les mécanismes de mise à jour de logiciels légitimes tels que Tencent QQ, WPS Office et Sogou Pinyin.
- Nous avons détecté l'implant dans des attaques ciblées contre des entreprises chinoises et japonaises, ainsi que contre des individus situés en Chine, au Japon et au Royaume-Uni.
- Nos recherches ont retracé l'évolution du NSPX30 jusqu'à une petite porte dérobée de 2005 que nous avons baptisée Project Wood, conçue pour collecter des données sur ses victimes.
- NSPX30 est un implant à plusieurs étages qui comprend plusieurs composants tels qu'un compte-gouttes, un installateur, des chargeurs, un orchestrateur et une porte dérobée. Ces deux derniers ont leurs propres ensembles de plugins.
- L'implant a été conçu autour de la capacité des attaquants à intercepter des paquets, permettant aux opérateurs NSPX30 de cacher leur infrastructure.
- NSPX30 est également capable de s'inscrire sur liste blanche dans plusieurs solutions antimalware chinoises.
- Nous attribuons cette activité à un nouveau groupe APT que nous avons baptisé Blackwood.
Profil de Bois Noir
Blackwood est un groupe APT aligné sur la Chine, actif depuis au moins 2018 et se livrant à des opérations de cyberespionnage contre des individus et des entreprises chinois et japonais. Blackwood a la capacité de mener des attaques d'adversaire au milieu pour livrer l'implant que nous avons nommé NSPX30 grâce à des mises à jour de logiciels légitimes, et de cacher l'emplacement de ses serveurs de commande et de contrôle en interceptant le trafic généré par l'implant.
Aperçu de la campagne
En 2020, une recrudescence d’activités malveillantes a été détectée sur un système ciblé situé en Chine. La machine est devenue ce que nous appelons communément un « aimant à menaces », car nous avons détecté des tentatives d’attaquants d’utiliser des kits d’outils malveillants associés à différents groupes APT : Panda évasif, LuoYu, et un troisième acteur menaçant que nous suivons sous le nom de LittleBear.
Sur ce système, nous avons également détecté des fichiers suspects qui n'appartenaient pas aux boîtes à outils de ces trois groupes. Cela nous a amené à lancer une enquête sur un implant que nous avons nommé NSPX30 ; nous avons pu retracer son évolution jusqu’en 2005.
Selon la télémétrie ESET, l'implant a été détecté sur un petit nombre de systèmes. Les victimes comprennent :
- individus non identifiés localisés en Chine et au Japon,
- un individu non identifié de langue chinoise connecté au réseau d'une université publique de recherche de premier plan au Royaume-Uni,
- une grande société manufacturière et commerciale en Chine, et
- le bureau en Chine d'une société japonaise dans le secteur de l'ingénierie et de la fabrication.
Nous avons également observé que les attaquants tentent de compromettre à nouveau les systèmes si l'accès est perdu.
La figure 1 est une répartition géographique des cibles de Blackwood, selon la télémétrie ESET.
Évolution du NSPX30
Au cours de nos recherches sur l’implant NSPX30, nous avons retracé son évolution jusqu’à un de ses premiers ancêtres – une simple porte dérobée que nous avons baptisée Project Wood. Le plus ancien échantillon du projet Wood que nous avons pu trouver a été compilé en 2005 et semble avoir été utilisé comme base de code pour créer plusieurs implants. L’un de ces implants, à partir duquel NSPX30 a évolué, a été nommé DCM par ses auteurs en 2008.
La figure 2 illustre une chronologie de ces développements, basée sur notre analyse des échantillons de notre collection et la télémétrie ESET, ainsi que sur la documentation publique. Cependant, les événements et les données documentés ici constituent encore une image incomplète de près de deux décennies de développement et d’activités malveillantes d’un nombre inconnu d’acteurs malveillants.
Dans les sections suivantes, nous décrivons certaines de nos conclusions concernant le projet Wood, DCM et NSPX30.
Projet Bois
Le point de départ de l'évolution de ces implants est une petite porte dérobée compilée le 9 janvierth, 2005, selon les horodatages présents dans l'en-tête PE de ses deux composants – le chargeur et la porte dérobée. Ce dernier a la capacité de collecter des informations sur le système et le réseau, ainsi que d'enregistrer les frappes au clavier et de prendre des captures d'écran.
Nous avons nommé la porte dérobée Project Wood, en nous basant sur un nom de mutex récurrent, comme le montre la figure 3.
Les horodatages de compilation ne sont pas des indicateurs fiables, car ils peuvent être falsifiés par des attaquants ; par conséquent, dans ce cas précis, nous avons pris en compte des points de données supplémentaires. Premièrement, les horodatages de l’en-tête PE des échantillons du chargeur et de la porte dérobée ; voir le tableau 1. Il n'y a qu'une différence de 17 secondes dans le temps de compilation des deux composants.
Tableau 1. Horodatages de compilation PE dans les composants de l'échantillon de 2005
SHA-1 |
Nom de fichier |
Horodatage de compilation PE |
Description |
9A1B575BCA0DC969B134 |
MainFuncOften.dll |
2005-01-09 08:21:22 |
Porte dérobée du projet Wood. L'horodatage de la table d'exportation correspond à l'horodatage de la compilation PE. |
834EAB42383E171DD6A4 |
N/D |
2005-01-09 08:21:39 |
Le chargeur Project Wood contient la porte dérobée intégrée en tant que ressource. |
Le deuxième point de données provient de l'échantillon de compte-gouttes qui a été compressé à l'aide de UPX. Cet outil insère sa version (Figure 4) dans le fichier compressé résultant – dans ce cas, la version UPX 1.24, qui était publié dans 2003, avant la date de compilation de l'échantillon.
Le troisième point de données correspond aux métadonnées valides des PE Rich Headers (Figure 5) qui indiquent que l'échantillon a été compilé à l'aide de Visual Studio 6.0, publié dans 1998, avant la date de compilation de l'échantillon.
Nous estimons qu'il est peu probable que les horodatages, les métadonnées Rich Headers et la version UPX aient tous été manipulés par les attaquants.
Documentation publique
D’après une papier technique publié par le SANS Institute en septembre 2011, une porte dérobée anonyme et non attribuée (Project Wood) a été utilisée pour cibler une personnalité politique de Hong Kong via des courriels de spearphishing.
En octobre 2014, G DATA a publié un rapport d'une campagne baptisée Opération TooHash, qui a depuis été attribuée au Gelsemium Groupe APT. Le rootkit G DATA nommé DirectsX charge une variante de la porte dérobée du Project Wood (voir Figure 6) avec certaines fonctionnalités vues dans DCM et plus tard dans NSPX30, telles que l'inscription sur liste blanche dans les produits de cybersécurité (détaillées plus loin, dans le tableau 4).
DCM alias Dark Spectre
Le premier projet Wood a servi de base de code pour plusieurs projets ; l'un d'eux est un implant appelé DCM (voir Figure 7) par ses auteurs.
Le rapport de Tencent de 2016 décrit une variante DCM plus développée qui s'appuie sur les capacités AitM des attaquants pour compromettre ses victimes en fournissant le programme d'installation DCM sous forme de mise à jour logicielle et pour exfiltrer les données via des requêtes DNS vers des serveurs légitimes. La dernière fois que nous avons observé l’utilisation de DCM dans une attaque, c’était en 2018.
Documentation publique
Le DCM a été documenté pour la première fois par la société chinoise Jiangmin en 2012, bien qu'il soit resté sans nom à ce moment-là, et a ensuite été nommé Dark Specter par Tencent en 2016.
NSPX30
Le plus ancien échantillon de NSPX30 que nous avons trouvé a été compilé le 6 juin.th, 2018. NSPX30 a une configuration de composants différente de celle de DCM car son fonctionnement a été divisé en deux étapes, s'appuyant entièrement sur la capacité AitM de l'attaquant. Le code de DCM a été divisé en composants plus petits.
Nous avons nommé l'implant d'après les chemins PDB trouvés dans les exemples de plugins :
- Z:Espace de travailmm32NSPX30Pluginspluginb001.pdb
- Z:WorkspaceCodeMMX30ProtrunkMMPluginshookdllReleasehookdll.pdb
Nous pensons que NSP fait référence à sa technique de persistance : la DLL du chargeur persistant, qui sur le disque est nommée msnsp.dll, est nommé en interne mynsp.dll (d'après les données de la table d'exportation), probablement parce qu'il est installé en tant que Winsock namespaix pfournisseur (NSP).
Enfin, à notre connaissance, NSPX30 n’a pas été documenté publiquement avant cette publication.
L'analyse technique
Grâce à la télémétrie ESET, nous avons déterminé que les machines sont compromises lorsqu'un logiciel légitime tente de télécharger des mises à jour à partir de serveurs légitimes à l'aide du protocole HTTP (non chiffré). Les mises à jour de logiciels piratés incluent celles de logiciels chinois populaires tels que Tencent QQ, Sogou Pinyin et WPS Office.
Une illustration de la chaîne d'exécution telle que vue dans la télémétrie ESET est présentée dans la figure 8.
Dans le tableau 2, nous fournissons un exemple d'URL et d'adresse IP vers lesquelles le domaine a été résolu sur le système de l'utilisateur au moment du téléchargement.
Tableau 2. URL observée, adresse IP du serveur et nom de processus d'un composant de téléchargement légitime
URL |
Vu la première fois |
adresse IP |
ASN |
Downloader |
http://dl_dir.qq[.]com/ |
2021-10-17 |
183.134.93[.]171 |
AS58461 (CHINANET) |
Tencentdl.exe |
Selon la télémétrie ESET et les informations DNS passives, les adresses IP observées dans d'autres cas sont associées à des domaines d'éditeurs de logiciels légitimes ; nous avons enregistré jusqu'à des millions de connexions sur certains d'entre eux, et nous avons vu des composants logiciels légitimes téléchargés à partir de ces adresses IP.
Hypothèse d'implantation de réseau
Nous ne savons pas exactement comment les attaquants sont capables de fournir NSPX30 sous forme de mises à jour malveillantes, car nous n'avons pas encore découvert l'outil qui permet aux attaquants de compromettre initialement leurs cibles.
Sur la base de notre propre expérience avec des acteurs de menace alignés sur la Chine qui présentent ces capacités (Panda évasif ainsi que les Les sorciers), ainsi que des recherches récentes sur les implants de routeur attribuées à Black Tech ainsi que les Dragon Camaro (alias Panda mustang), nous pensons que les attaquants déploient un implant réseau dans les réseaux des victimes, éventuellement sur des appareils réseau vulnérables tels que des routeurs ou des passerelles.
Le fait que nous n'ayons trouvé aucune indication de redirection du trafic via DNS pourrait indiquer que lorsque l'implant réseau hypothétique intercepte le trafic HTTP non crypté lié aux mises à jour, il répond avec le compte-gouttes de l'implant NSPX30 sous la forme d'une DLL, d'un fichier exécutable ou d'une archive ZIP. contenant la DLL.
Précédemment, nous avons mentionné que l'implant NSPX30 utilise la capacité d'interception de paquets des attaquants afin d'anonymiser son infrastructure C&C. Dans les sous-sections suivantes, nous décrirons comment ils procèdent.
Interception HTTP
Pour télécharger la porte dérobée, l'orchestrateur exécute une requête HTTP (Figure 9) vers le site Web de Baidu – un moteur de recherche et fournisseur de logiciels chinois légitime – avec un nom particulier. User-Agent se faisant passer pour Internet Explorer sous Windows 98. La réponse du serveur est enregistrée dans un fichier à partir duquel le composant de porte dérobée est extrait et chargé en mémoire.
Les URI de requête est personnalisé et inclut des informations provenant de l’orchestrateur et du système compromis. Dans les requêtes non interceptées, l'émission d'une telle requête au serveur légitime renvoie un code d'erreur 404. Une procédure similaire est utilisée par la porte dérobée pour télécharger des plugins, en utilisant une méthode légèrement différente. URI de requête.
L'implant réseau aurait simplement besoin de rechercher les requêtes HTTP GET pour www.baidu.com avec ce vieux particulier User-Agent et analyser les URI de requête pour déterminer quelle charge utile doit être envoyée.
Interception UDP
Lors de son initialisation, la porte dérobée crée un socket d'écoute UDP passif et laisse le système d'exploitation attribuer le port. Il peut y avoir des complications pour les attaquants utilisant des portes dérobées passives : par exemple, si des pare-feu ou des routeurs utilisant NAT empêchent les communications entrantes depuis l'extérieur du réseau. De plus, le contrôleur de l’implant doit connaître l’adresse IP exacte et le port de la machine compromise pour contacter la porte dérobée.
Nous pensons que les attaquants ont résolu ce dernier problème en utilisant le même port sur lequel la porte dérobée écoute les commandes pour exfiltrer également les données collectées, de sorte que l'implant réseau saura exactement où transférer les paquets. La procédure d'exfiltration des données, par défaut, commence après la création du socket et consiste en des requêtes DNS pour le microsoft.com domaine; les données collectées sont ajoutées au paquet DNS. La figure 10 montre une capture de la première requête DNS envoyée par la porte dérobée.
La première requête DNS est envoyée à 180.76.76[.]11:53 (un serveur qui, au moment de la rédaction, n'expose aucun service DNS) et pour chacune des requêtes suivantes, l'adresse IP de destination est remplacée par l'adresse suivante, comme le montre la figure 11.
Les 180.76.76.0/24 Le réseau appartient à Baidu et, fait intéressant, certains des serveurs situés à ces adresses IP exposent des services DNS, tels que 180.76.76.76, qui est celui de Baidu service DNS public.
Nous pensons que lorsque les paquets de requêtes DNS sont interceptés, l'implant réseau les transmet au serveur des attaquants. L'implant peut facilement filtrer les paquets en combinant plusieurs valeurs pour créer une empreinte digitale, par exemple :
- Adresse IP de destination
- Port UDP (nous avons observé 53, 4499et la 8000),
- ID de transaction de la correspondance de requête DNS 0xFEAD,
- nom de domaine, et,
- Requête DNS avec des données superflues ajoutées.
Réflexions finales
Utiliser la capacité AitM des attaquants pour intercepter les paquets est un moyen intelligent de masquer l'emplacement de leur infrastructure C&C. Nous avons observé des victimes situées hors de Chine – c’est-à-dire au Japon et au Royaume-Uni – contre lesquelles l’orchestrateur a pu déployer la porte dérobée. Les attaquants ont ensuite envoyé des commandes à la porte dérobée pour télécharger des plugins ; par exemple, la victime du Royaume-Uni a reçu deux plugins conçus pour collecter des informations et des discussions auprès de Tencent QQ. Par conséquent, nous savons que le système AitM était en place et fonctionnait, et nous devons supposer que le mécanisme d’exfiltration l’était également.
Certains serveurs – par exemple, dans le 180.76.76.0/24 réseau – semble être Anycasted, ce qui signifie qu'il peut y avoir plusieurs serveurs géolocalisés dans le monde pour répondre aux demandes entrantes (légitimes). Cela suggère que l'interception du réseau est probablement effectuée plus près des cibles plutôt que plus près du réseau de Baidu. L'interception depuis un FAI chinois est également peu probable, car Baidu possède une partie de son infrastructure réseau en dehors de la Chine, de sorte que les victimes en dehors de la Chine ne peuvent pas passer par un FAI chinois pour accéder aux services de Baidu.
NSPX30
Dans les sections suivantes, nous décrirons les principales étapes d’exécution du malware.
Étape 1
La figure 12 illustre la chaîne d'exécution lorsque le composant légitime charge une DLL dropper malveillante qui crée plusieurs fichiers sur le disque.
Le compte-gouttes exécute RsStub.exe, un composant logiciel légitime du produit anti-programme malveillant chinois Rising Antivirus, qui est utilisé à mauvais escient pour charger latéralement les logiciels malveillants. comx3.dll.
La figure 13 illustre les principales étapes franchies lors de l'exécution de ce composant.
Quand RsStub.exe en cours ExitProcess, la fonction de chargement du shellcode est exécutée à la place du code de fonction API légitime.
Le chargeur décrypte la DLL du programme d'installation à partir du fichier comx3.dll.txt; le shellcode charge ensuite la DLL d'installation en mémoire et appelle son point d'entrée.
DLL du programme d'installation
Le programme d'installation utilise des techniques de contournement UAC tirées d'implémentations open source pour créer un nouveau processus élevé. Le choix utilisé dépend de plusieurs conditions, comme le montre le tableau 3.
Tableau 3. Condition principale et sous-conditions respectives qui doivent être remplies pour appliquer une technique de contournement UAC
Les conditions vérifient la présence de deux processus : nous pensons que avp.exe est un composant du logiciel anti-programme malveillant de Kaspersky, et rstray.exe un composant de Rising Antivirus.
Le programme d'installation tente de désactiver la soumission d'échantillons par Windows Defender et ajoute une règle d'exclusion pour la DLL du chargeur. msnsp.dll. Pour ce faire, il exécute deux commandes PowerShell via cmd.exe :
- cmd /c powershell -inputformat aucun -outputformat aucun -NonInteractive -Command Set-MpPreference -SubmitSamplesConsent 0
- cmd /c powershell -inputformat aucun -outputformat aucun -NonInteractive -Command Add-MpPreference -ExclusionPath «C: Program Files (x86) Common Filesmicrosoft sharedTextConvmsnsp.dll»
Le programme d'installation supprime ensuite la DLL du chargeur persistant dans C:Fichiers de programme (x86)Fichiers communsMicrosoft sharedTextConvmsnsp.dll et en établit la persistance à l'aide de l'API WSCInstallNameSpace pour installer la DLL en tant que Fournisseur d'espace de noms Winsock nommé msnsp, comme le montre la figure 14.
En conséquence, la DLL sera chargée automatiquement chaque fois qu'un processus utilise Winsock.
Enfin, le programme d'installation supprime la DLL du chargeur mshlp.dll et la DLL de l'orchestrateur chiffrée WIN.cfg à C:ProgramDataWindows.
Étape 2
Cette étape commence par l'exécution de msnsp.dll. La figure 15 illustre la chaîne de chargement à l'étape 2.
Orchestrateur
La figure 16 illustre les principales tâches effectuées par l'orchestrateur, qui incluent l'obtention de la porte dérobée et le chargement des plugins.
Une fois chargé, l'orchestrateur crée deux threads pour effectuer ses tâches.
Fil d'orchestration 1
L'orchestrateur supprime le fichier dropper d'origine du disque et tente de charger la porte dérobée depuis msfmtkl.dat. Si le fichier n'existe pas ou ne parvient pas à s'ouvrir, l'orchestrateur utilise les API Internet Windows pour ouvrir une connexion au site légitime de la société chinoise Baidu comme expliqué précédemment.
La réponse du serveur est enregistrée dans un fichier temporaire soumis à une procédure de validation ; si toutes les conditions sont remplies, la charge utile chiffrée qui se trouve à l'intérieur du fichier est écrite dans un nouveau fichier et renommée comme msfmtkl.dat.
Une fois le nouveau fichier créé avec la charge utile chiffrée, l'orchestrateur lit son contenu et déchiffre la charge utile à l'aide de RC4. Le PE résultant est chargé en mémoire et son point d'entrée est exécuté.
Fil d'orchestration 2
En fonction du nom du processus en cours, l'orchestrateur effectue plusieurs actions, notamment le chargement de plugins et l'ajout d'exclusions pour autoriser les DLL du chargeur dans les bases de données locales de trois produits logiciels anti-programme malveillant d'origine chinoise.
Le tableau 4 décrit les actions entreprises lorsque le nom du processus correspond à celui d'une suite logicielle de sécurité dans laquelle l'orchestrateur peut autoriser ses chargeurs.
Tableau 4. Actions de l'orchestrateur lors de l'exécution dans un processus portant le nom d'un logiciel de sécurité spécifique
Nom du processus |
Logiciel ciblé |
Action |
qqpcmgr.exe qqpctray.exe qqpcrtp.exe |
Tentatives de chargement de la DLL légitime TAVinterface.dll pour utiliser la fonction exportée CréerTaveInstance pour obtenir une interface. Lors de l’appel d’une deuxième fonction depuis l’interface, elle transmet un chemin de fichier en paramètre. |
|
360safe.exe 360tray.exe |
Tentatives de chargement de la DLL légitime deepscancloudcom2.dll pour utiliser les fonctions exportées XDOuvre, XDAddRecordsExet la XDCermer, il ajoute une nouvelle entrée dans le fichier de base de données SQL vitessemem2.hg. |
|
360sd.exe |
Tentatives d'ouverture du fichier sl2.db to ajoute une structure binaire codée en base64 qui contient le chemin d'accès à la DLL du chargeur. |
|
kxescore.exe kxetray.exe |
Tentatives de chargement de la DLL légitime securitykxescankhistory.dll pour utiliser la fonction exportée KSDllGetClassObject pour obtenir une interface. Lorsqu'il appelle l'une des fonctions de la vtable, il transmet un chemin de fichier en paramètre. |
Le tableau 5 décrit les actions entreprises lorsque le nom du processus correspond à celui du logiciel de messagerie instantanée sélectionné. Dans ces cas, l'orchestrateur charge les plugins depuis le disque.
Tableau 5. Actions d'Ochestrator lors de l'exécution dans un processus portant le nom d'un logiciel de messagerie instantanée spécifique
Nom du processus |
Logiciel ciblé |
Action |
qq.exe |
Tente de créer un mutex nommé OBTENIR LE VERROUILLAGE DES MESSAGES QQ. Si le mutex n'existe pas déjà, il charge les plugins c001.dat, c002.datet la c003.dat à partir du disque. |
|
wechat.exe |
Charge le plugin c006.dat. |
|
télégramme.exe |
Charge le plugin c007.dat. |
|
skype.exe |
Charge le plugin c003.dat. |
|
cc.exe |
Inconnu; peut-être Chat en nuage. |
|
raidcall.exe |
||
yy.exe |
Inconnu; éventuellement une demande de Réseau social YY. |
|
aliim.exe |
Charge le plugin c005.dat. |
Après avoir terminé les actions correspondantes, le fil revient.
Groupe de plugins « c »
D’après notre analyse du code de l’orchestrateur, nous comprenons qu’au moins six plugins du groupe « c » pourraient exister, dont seulement trois nous sont connus à l’heure actuelle.
Le tableau 6 décrit les fonctionnalités de base des plugins identifiés.
Tableau 6. Description des plugins du groupe « c »
Nom du plug-in |
Description |
c001.dat |
Vole des informations dans les bases de données QQ, notamment les informations d'identification, les journaux de discussion, les listes de contacts, etc. |
c002.dat |
Accroche plusieurs fonctions de Tencent QQ KernelUtil.dll ainsi que les Common.dll à la mémoire du QQ.exe processus, permettant l'interception de messages directs et de groupe, ainsi que des requêtes SQL vers des bases de données. |
c003.dat |
Hooks plusieurs API : - CoCreateInstance - waveInOpen - vagueInFermer - waveInAddBuffer - vagueSortieOuverte - waveOutWrite - vagueSortieFermer Cela permet au plugin d'intercepter les conversations audio dans plusieurs processus. |
Détourné
Nous avons déjà partagé plusieurs détails sur l'objectif fondamental de la porte dérobée : communiquer avec son contrôleur et exfiltrer les données collectées. La communication avec le contrôleur repose principalement sur l'écriture des données de configuration du plugin dans un fichier non crypté nommé licence.dat, et en invoquant des fonctionnalités à partir de plugins chargés. Le tableau 7 décrit les commandes les plus pertinentes gérées par la porte dérobée.
Tableau 7. Description de certaines des commandes gérées par la porte dérobée
ID de commande |
Description |
Assistance |
Crée ou ferme un shell inversé et gère les entrées et les sorties. |
Assistance |
Déplace un fichier avec les chemins fournis par le contrôleur. |
0x1C |
Désinstalle l'implant. |
0x1E |
Collecte des informations sur les fichiers à partir d'un répertoire spécifié ou collecte les informations sur le lecteur. |
Assistance |
Termine un processus avec un PID donné par le contrôleur. |
Groupes de plugins « a » et « b »
Le composant de porte dérobée contient ses propres DLL de plug-in intégrées (voir Tableau 8) qui sont écrites sur le disque et confèrent à la porte dérobée ses capacités de base d'espionnage et de collecte d'informations.
Tableau 8. Descriptions des groupes de plugins « a » et « b » intégrés dans la porte dérobée
Nom du plug-in |
Description |
a010.dat |
Collecte les informations sur les logiciels installés à partir du registre. |
b010.dat |
Prend des captures d'écran. |
b011.dat |
Enregistreur de frappe de base. |
Conclusion
Nous avons analysé les attaques et les capacités d'un acteur menaçant que nous avons nommé Blackwood, qui a mené des opérations de cyberespionnage contre des individus et des entreprises en Chine, au Japon et au Royaume-Uni. Nous avons cartographié l'évolution du NSPX30, l'implant personnalisé déployé par Blackwood, depuis 2005 jusqu'à une petite porte dérobée que nous avons nommée Project Wood.
Il est intéressant de noter que l’implant Project Wood de 2005 semble être l’œuvre de développeurs expérimentés dans le développement de logiciels malveillants, compte tenu des techniques mises en œuvre, ce qui nous laisse penser que nous n’en savons pas encore davantage sur l’histoire de la porte dérobée primordiale.
Pour toute question concernant nos recherches publiées sur WeLiveSecurity, veuillez nous contacter à menaceintel@eset.com.
ESET Research propose des rapports d'intelligence APT privés et des flux de données. Pour toute demande concernant ce service, rendez-vous sur Intelligence des menaces ESET .
COI
Fichiers
SHA-1 |
Nom de fichier |
Nom de détection ESET |
Description |
625BEF5BD68F75624887D732538B7B01E3507234 |
minibrowser_shell.dll |
Win32/Agent.AFYI |
Compte-gouttes initial NSPX30. |
43622B9573413E17985B3A95CBE18CFE01FADF42 |
comx3.dll |
Win32/Agent.AFYH |
Chargeur pour l'installateur. |
240055AA125BD31BF5BA23D6C30133C5121147A5 |
msnsp.dll |
Win32/Agent.AFYH |
Chargeur persistant. |
308616371B9FF5830DFFC740318FD6BA4260D032 |
mshlp.dll |
Win32/Agent.AFYH |
Chargeur pour l'orchestrateur. |
796D05F299F11F1D78FBBB3F6E1F497BC3325164 |
comx3.dll.txt |
Win32/TrojanDropper.Agent.SWR |
Installateur décrypté. |
82295E138E89F37DD0E51B1723775CBE33D26475 |
WIN.cfg |
Win32/Agent.AFYI |
Orchestrateur décrypté. |
44F50A81DEBF68F4183EAEBC08A2A4CD6033DD91 |
msfmtkl.dat |
Win32/Agent.VKT |
Porte dérobée décryptée. |
DB6AEC90367203CAAC9D9321FDE2A7F2FE2A0FB6 |
c001.dat |
Win32/Agent.AFYI |
Plugin d’identification et de vol de données. |
9D74FE1862AABAE67F9F2127E32B6EFA1BC592E9 |
c002.dat |
Win32/Agent.AFYI |
Plugin d'interception de messages Tencent QQ. |
8296A8E41272767D80DF694152B9C26B607D26EE |
c003.dat |
Win32/Agent.AFYI |
Plugin de capture audio. |
8936BD9A615DD859E868448CABCD2C6A72888952 |
a010.dat |
Win32/Agent.VKT |
Plugin de collecte d'informations. |
AF85D79BC16B691F842964938C9619FFD1810C30 |
b011.dat |
Win32/Agent.VKT |
Plugin enregistreur de frappe. |
ACD6CD486A260F84584C9FF7409331C65D4A2F4A |
b010.dat |
Win32/Agent.VKT |
Plugin de capture d'écran. |
Réseau
IP |
Domaine |
Fournisseur d'hébergement |
Vu la première fois |
Détails |
104.193.88[.]123 |
www.baidu[.]com |
Pékin Baidu Netcom Science et Technology Co., Ltd. |
2017-08-04 |
Site Web légitime contacté par l'orchestrateur et les composants de porte dérobée pour télécharger les charges utiles. La requête HTTP GET est interceptée par AitM. |
183.134.93[.]171 |
dl_dir.qq[.]com |
IRT‑CHINANET‑ZJ |
2021-10-17 |
Partie de l'URL à partir de laquelle le compte-gouttes a été téléchargé par un logiciel légitime. |
Techniques d'ATT&CK D'ONGLET
Ce tableau a été construit avec version 14 du cadre MITRE ATT&CK.
Tactique |
ID |
Nom |
Description |
Développement des ressources |
Développer des capacités : logiciels malveillants |
Blackwood a utilisé un implant personnalisé appelé NSPX30. |
|
Accès initial |
Compromis de la chaîne d’approvisionnement |
Le composant compte-gouttes de NSPX30 est fourni lorsque des demandes légitimes de mise à jour logicielle sont interceptées via AitM. |
|
Internationaux |
Interpréteur de commandes et de scripts : PowerShell |
Le composant d'installation de NSPX30 utilise PowerShell pour désactiver la soumission d'échantillons de Windows Defender et ajoute une exclusion pour un composant de chargeur. |
|
Interpréteur de commandes et de scripts : Shell de commandes Windows |
Le programme d'installation du NSPX30 peut utiliser cmd.exe lorsque vous tentez de contourner l'UAC. La porte dérobée du NSPX30 peut créer une coque inversée. |
||
Interpréteur de commandes et de scripts : Visual Basic |
Le programme d'installation de NSPX30 peut utiliser VBScript lorsqu'il tente de contourner l'UAC. |
||
API native |
Installateur du NSPX30 et utilisation de la porte dérobée CréerProcessA/W API pour exécuter des composants. |
||
Persistence |
Flux d'exécution de piratage |
Le chargeur du NSPX30 est automatiquement chargé dans un processus au démarrage de Winsock. |
|
Elévation de Privilèges |
Exécution déclenchée par un événement |
Le programme d'installation de NSPX30 modifie le registre pour modifier la valeur d'une clé de bouton multimédia (APPCOMMAND_LAUNCH_APP2) pour pointer vers son exécutable de chargeur. |
|
Mécanisme de contrôle d'élévation des abus : contournement du contrôle de compte d'utilisateur |
Le programme d'installation du NSPX30 utilise trois techniques pour tenter de contourner l'UAC. |
||
Évasion défensive |
Désobscurcir/décoder des fichiers ou des informations |
Les fichiers d'installation, d'orchestrateur, de porte dérobée et de configuration du NSPX30 sont déchiffrés avec RC4, ou des combinaisons d'instructions bit à bit et arithmétiques. |
|
Altérer les défenses : désactiver ou modifier les outils |
Le programme d'installation de NSPX30 désactive la soumission d'exemples de Windows Defender et ajoute une exclusion pour un composant de chargeur. L'orchestrateur du NSPX30 peut modifier les bases de données du logiciel de sécurité pour autoriser ses composants de chargement. Les logiciels ciblés incluent : Tencent PC Manager, 360 Safeguard, 360 Antivirus et Kingsoft AntiVirus. |
||
Suppression de l'indicateur : suppression de fichier |
NSPX30 peut supprimer ses fichiers. |
||
Suppression de l'indicateur : Effacer la persistance |
NSPX30 peut supprimer sa persistance. |
||
Exécution de commandes indirectes |
Le programme d'installation de NSPX30 exécute PowerShell via Command Shell de Windows. |
||
Masquage : correspond à un nom ou à un emplacement légitime |
Les composants du NSPX30 sont stockés dans le dossier légitime %PROGRAMDATA%Intel. |
||
Modifier le registre |
Le programme d'installation de NSPX30 peut modifier le registre lorsqu'il tente de contourner l'UAC. |
||
Fichiers ou informations obscurcis |
Les composants du NSPX30 sont stockés cryptés sur le disque. |
||
Fichiers ou informations obscurcis : charges utiles intégrées |
Le compte-gouttes du NSPX30 contient des composants intégrés. Le chargeur du NSPX30 contient un shellcode intégré. |
||
Exécution du proxy binaire système : Rundll32 |
Le programme d'installation du NSPX30 peut être chargé via rundll32.exe. |
||
Accès aux informations d'identification |
Adversaire au milieu |
L'implant NSPX30 est livré aux victimes via des attaques AitM. |
|
Informations d'identification des magasins de mots de passe |
Plugin NSPX30 c001.dat peut voler les informations d'identification des bases de données Tencent QQ. |
||
Découverte |
Découverte de fichiers et de répertoires |
La porte dérobée et les plugins du NSPX30 peuvent répertorier les fichiers. |
|
Registre de requête |
NSPX30 a010.dat Le plugin collecte diverses informations sur les logiciels installés à partir du registre. |
||
Découverte de logiciels |
NSPX30 a010.dat Le plugin collecte des informations du registre. |
||
Découverte des informations système |
La porte dérobée du NSPX30 collecte des informations système. |
||
Découverte de la configuration réseau du système |
La porte dérobée du NSPX30 collecte diverses informations sur la carte réseau. |
||
Découverte des connexions réseau du système |
La porte dérobée du NSPX30 collecte les informations sur la carte réseau. |
||
Propriétaire du système/Découverte des utilisateurs |
La porte dérobée du NSPX30 collecte des informations sur le système et les utilisateurs. |
||
Collection |
Capture d'entrée : enregistrement de frappe |
Plugin NSPX30 b011.dat est un enregistreur de frappe de base. |
|
Archiver les données collectées : archiver via la bibliothèque |
Les plugins NSPX30 compressent les informations collectées à l'aide de zlib. |
||
Capture audio |
Plugin NSPX30 c003.dat enregistre les flux audio d’entrée et de sortie. |
||
Collecte automatisée |
L'orchestrateur et la porte dérobée du NSPX30 lancent automatiquement des plugins pour collecter des informations. |
||
Mise en scène des données : mise en place des données locales |
Les plugins du NSPX30 stockent les données dans des fichiers locaux avant l'exfiltration. |
||
Capture d'écran |
Plugin NSPX30 b010.dat prend des captures d'écran. |
||
Commander et contrôler |
Protocole de couche d'application : protocoles Web |
L'orchestrateur et les composants de porte dérobée du NSPX30 téléchargent les charges utiles via HTTP. |
|
Protocole de couche application : DNS |
La porte dérobée du NSPX30 exfiltre les informations collectées à l'aide du DNS. |
||
Codage des données : Codage standard |
Les données collectées pour l'exfiltration sont compressées avec zlib. |
||
Obfuscation des données |
La porte dérobée du NSPX30 chiffre ses communications C&C. |
||
Protocole de couche non applicative |
La porte dérobée du NSPX30 utilise UDP pour ses communications C&C. |
||
procuration |
Les communications du NSPX30 avec son serveur C&C sont proxy par un composant non identifié. |
||
exfiltration |
Exfiltration automatisée |
Lorsqu'elle est disponible, la porte dérobée du NSPX30 exfiltre automatiquement toutes les informations collectées. |
|
Limites de taille de transfert de données |
La porte dérobée du NSPX30 exfiltre les données collectées via des requêtes DNS avec une taille de paquet fixe. |
||
Exfiltration via un protocole alternatif : Exfiltration via un protocole non-C2 non chiffré |
La porte dérobée du NSPX30 exfiltre les informations collectées à l'aide du DNS. |
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://www.welivesecurity.com/en/eset-research/nspx30-sophisticated-aitm-enabled-implant-evolving-since-2005/
- :possède
- :est
- :ne pas
- :où
- $UP
- 08
- 1
- 10
- 11
- 12
- 13
- 14
- 15%
- 16
- 17
- 179
- 180
- 19
- 2005
- 2008
- 2011
- 2014
- 2016
- 2018
- 2020
- 24
- 360
- 7
- 75
- 77
- 8
- 9
- 90
- 98
- a
- Capable
- Qui sommes-nous
- abusé
- accès
- Selon
- Compte
- actes
- infection
- activité
- acteurs
- ajout
- Supplémentaire
- En outre
- propos
- adresses
- Ajoute
- Après
- à opposer à
- Agent
- aka
- Tous
- liste d'autorisation
- presque
- déjà
- aussi
- alternative
- Bien que
- an
- selon une analyse de l’Université de Princeton
- il analyse
- analysé
- ainsi que les
- antivirus
- tous
- api
- Apis
- apparaît
- encore
- Application
- Appliquer
- APT
- Archive
- SONT
- autour
- AS
- Evaluer
- associé
- assumer
- At
- attaquer
- Attaques
- tentative
- tenter
- Tentatives
- acoustique
- auteurs
- automatiquement
- disponibles
- RETOUR
- détourné
- Backdoors
- Baidu
- basé
- Essentiel
- BE
- car
- devenez
- était
- before
- va
- CROYONS
- LES MEILLEURS
- Bitwise
- tous les deux
- construit
- bouton (dans la fenêtre de contrôle qui apparaît maintenant)
- by
- contourner
- appelé
- appel
- Appels
- Campagne
- CAN
- capacités
- aptitude
- capable
- capturer
- réalisée
- maisons
- cas
- chaîne
- Change
- modifié
- le chat
- Chine
- chinois
- CISA
- clair
- plus
- Se ferme
- CO
- code
- Base de code
- recueillir
- collection
- collectionneur
- recueille
- COM
- комбинации
- combinant
- vient
- communément
- communiquer
- Communication
- Communications
- Sociétés
- Société
- compilé
- compléter
- complications
- composant
- composants électriques
- compromis
- Compromise
- condition
- conditions
- Conduire
- configuration
- connecté
- connexion
- Connexions
- considéré
- consiste
- contact
- contient
- contenu
- des bactéries
- contrôleur
- conversations
- SOCIÉTÉ
- Correspondant
- pourriez
- engendrent
- créée
- crée des
- Lettres de créance
- Courant
- Customiser
- Cyberespionnage
- Cybersécurité
- Foncé
- données
- points de données
- Base de données
- bases de données
- Date
- DCM
- DCM
- décennies
- Réglage par défaut
- livrer
- livré
- livrer
- dépend
- déployer
- déployé
- déployer
- décrire
- décrit
- la description
- un
- destination
- détaillé
- détails
- détecté
- Détection
- Déterminer
- déterminé
- développé
- mobiles
- Développement
- développements
- DID
- différence
- différent
- découvrez
- découvert
- distribution
- divisé
- dns
- do
- Documentation
- documenté
- domaine
- domaines
- download
- Drops
- pendant
- chacun
- "Early Bird"
- même
- élevée
- emails
- intégré
- permet
- permettant
- codage
- crypté
- engageant
- Moteur
- ENGINEERING
- entrée
- erreur
- établit
- événements
- évolution
- évolué
- évolution
- exactement
- exemple
- exécuter
- réalisé
- Exécute
- exécution
- exécution
- exfiltration
- exposer
- exister
- d'experience
- expliqué
- explorateur
- Exporter
- fait
- échoue
- Fonctionnalités:
- Figure
- Déposez votre dernière attestation
- Fichiers
- une fonction filtre
- Trouvez
- résultats
- empreinte digitale
- pare-feu
- Prénom
- fixé
- Abonnement
- Pour
- formulaire
- Avant
- trouvé
- de
- d’étiquettes électroniques entièrement
- fonction
- fonctions
- généré
- géographique
- obtenez
- GitHub
- Donner
- donné
- Go
- Réservation de groupe
- Groupes
- ait eu
- Poignées
- Vous avez
- têtes
- ici
- Cacher
- haut profil
- Histoire
- Hong
- Hong Kong
- Comment
- Cependant
- HTML
- http
- HTTPS
- ID
- identifié
- if
- illustre
- image
- implémentations
- mis en œuvre
- in
- comprendre
- inclut
- Y compris
- Nouveau
- Augmente
- indiquer
- les indications
- Indicateurs
- individuel
- individus
- d'information
- Infrastructure
- initiale
- possible
- initié
- contribution
- Messages
- Inserts
- à l'intérieur
- installer
- instance
- plutôt ;
- Institut
- Des instructions
- Intelligence
- Interfaces
- intérieurement
- Internet
- développement
- enquête
- IP
- IP dédiée
- adresses IP
- ISP
- émission
- IT
- SES
- lui-même
- Janvier
- Japon
- Japonais
- juin
- ACTIVITES
- Royaume
- Savoir
- spécialisées
- connu
- Kong
- gros
- Nom de famille
- plus tard
- lancer
- couche
- conduisant
- au
- LED
- à gauche
- légitime
- Allons-y
- Probable
- Liste
- Écoute
- écoute
- Liste
- charge
- chargeur
- chargement
- charges
- locales
- situé
- emplacement
- bloquer
- Style
- perdu
- Ltd
- click
- Les machines
- Entrée
- majeur
- malveillant
- malware
- manager
- manipulé
- fabrication
- Match
- allumettes
- assorti
- Mai..
- sens
- mécanisme
- mécanismes
- Médias
- Mémoire
- mentionné
- message
- messages
- la ficelle d'étiquettes/étiquettes volantes en carton
- Métadonnées
- Microsoft
- pourrait
- des millions
- modifier
- PLUS
- (en fait, presque toutes)
- la plupart
- plusieurs
- must
- prénom
- Nommé
- Besoin
- Besoins
- réseau et
- réseaux
- Nouveauté
- aucune
- Aucun
- Remarquer..
- nombre
- observée
- obtenir
- obtention
- a eu lieu
- octobre
- of
- Offres Speciales
- Bureaux
- Vieux
- plus vieux
- on
- ONE
- uniquement
- ouvert
- open source
- d'exploitation
- le système d'exploitation
- opération
- Opérations
- opérateurs
- or
- de commander
- Origine
- original
- Autre
- nos
- ande
- sortie
- au contrôle
- plus de
- propre
- propriété
- P&E
- paquets
- page
- paramètre
- partie
- particulier
- passes
- passif
- Mot de Passe
- chemin
- chemins
- PC
- particulier
- effectuer
- effectué
- effectue
- persistance
- image
- Place
- Plaintext
- Platon
- Intelligence des données Platon
- PlatonDonnées
- veuillez cliquer
- s'il vous plaît contactez
- plug-in
- plugins
- Point
- des notes bonus
- politique
- Populaire
- peut-être
- PowerShell
- présence
- représentent
- empêcher
- précédemment
- Avant
- Privé
- Probablement
- Problème
- procédure
- processus
- les process
- Produit
- Produits
- Programme
- Projet
- projets
- protocole
- fournir
- à condition de
- de voiture.
- procuration
- public
- Publication
- publiquement
- publié
- but
- requêtes
- plutôt
- nous joindre
- reçu
- récent
- record
- Articles
- récurrent
- reportez-vous
- se réfère
- en ce qui concerne
- inscrit
- enregistrement
- en relation
- pertinent
- s'appuyer
- reste
- enlèvement
- supprimez
- répondre
- rapport
- Rapports
- nécessaire
- demandes
- un article
- chercheurs
- résolu
- ressource
- ceux
- réponse
- résultat
- résultant
- Retours
- inverser
- Rich
- hausse
- toupie
- Règle
- même
- sauvé
- Sciences
- Science et technologie
- screenshots
- Rechercher
- moteur de recherche
- Deuxièmement
- secondes
- les sections
- sécurité
- Logiciel de sécurité
- sur le lien
- sembler
- semble
- vu
- choisi
- envoyé
- Septembre
- servi
- serveur
- serveurs
- service
- Services
- Sets
- plusieurs
- commun
- coquillage
- montré
- Spectacles
- similaires
- étapes
- simplement
- depuis
- SIX
- Taille
- légèrement différente
- petit
- faibles
- So
- Réseaux sociaux
- Logiciels
- composants logiciels
- mise à jour logicielle
- Solutions
- résolu
- quelques
- sophistiqué
- groupe de neurones
- spécifié
- spectre
- scission
- espionnage
- SQL
- Étape
- étapes
- Standard
- Commencer
- j'ai commencé
- Commencez
- Étapes
- Encore
- Boutique
- stockée
- flux
- Chaîne
- structure
- studio
- sujet
- Soumission
- tel
- Suggère
- suite
- se pose
- soupçonneux
- combustion propre
- Système
- table
- Prenez
- tâches
- prend
- Target
- des campagnes marketing ciblées,
- objectifs
- tâches
- technique
- techniques
- Technologie
- temporaire
- Tencent
- que
- qui
- Les
- au Royaume-Uni
- Le Royaume-Uni
- le monde
- leur
- Les
- thème
- puis
- Là.
- donc
- Ces
- l'ont
- Troisièmement
- this
- ceux
- menace
- acteurs de la menace
- trois
- Avec
- fiable
- calendrier
- horodatage
- à
- outil
- tracer
- suivre
- Commerce
- circulation
- transférer
- déclenché
- deux
- Uk
- comprendre
- Uni
- Royaume Uni
- université
- inconnu
- improbable
- ANONYME
- Mises à jour
- Actualités
- URL
- us
- utilisé
- d'utiliser
- Utilisateur
- Usages
- en utilisant
- Info de contact.
- validation
- Plus-value
- Valeurs
- Variante
- divers
- vérifier
- version
- vertical
- via
- Victime
- victimes
- Visiter
- visuel
- Vulnérable
- était
- Façon..
- we
- web
- Site Web
- WELL
- ont été
- Quoi
- quand
- chaque fois que
- qui
- qui
- Wikipédia
- sera
- fenêtres
- comprenant
- du bois.
- activités principales
- de travail
- world
- pourra
- écriture
- code écrit
- encore
- zéphyrnet
- Zip