Sommaire :
- Introduction
- Profil de menace
- Chaîne d'infection
- Campagne-1
- Analyse de Decoy :
- Analyse technique
- Empreinte digitale du malware ROKRAT
- Campagne-2
- Analyse de leurre
- L'analyse technique
- Analyse détaillée du fichier Decoded tony31.dat
- Conclusion
- Seqrite Protections
- MITRE Att&ck :
- IoCs
Introduction :
Chercheurs de sécurité à Seqrite Des laboratoires ont récemment mis au jour deux campagnes distinctes menées par le groupe APT « Kimsuky », également connu sous le nom de « Black Banshee ». Ce groupe cible activement la Corée du Sud en utilisant des tactiques évolutives. Dans le cadre de ces campagnes, les acteurs malveillants ont diffusé deux documents à l'effigie du gouvernement sud-coréen comme appâts, ciblant spécifiquement les entités gouvernementales en Corée du Sud.
Dans cet article, nous allons approfondir les détails techniques des campagnes découvertes lors de notre analyse. Nous examinerons les différentes étapes de l'infection, en commençant par un e-mail de phishing contenant une pièce jointe de type LNK (raccourci). Ce fichier LNK était conçu pour diffuser un script VBA (Visual Basic for Applications) obscurci. Après avoir désobscurci le script, nous avons découvert qu'il était responsable de la diffusion de deux fichiers supplémentaires : un fichier PDF et un fichier ZIP. Le fichier ZIP contenait quatre fichiers malveillants : deux fichiers journaux (1.log et 2.log), un script VBA (1.vba) et un script PowerShell (1.ps1). Les deux campagnes impliquaient le même ensemble de fichiers malveillants.
Chaîne d'infection:

Premiers résultats :
Campagne-1 :
Lors de la première campagne, nous avons identifié un document relatif à une réduction d'impôt et à un paiement d'impôt sur les revenus, qui contenait la même pièce jointe LNK malveillante. Cette pièce jointe a ensuite déployé un script VBScript malveillant, facilitant ainsi une nouvelle compromission.

Sur la base de nos premières conclusions, nous avons découvert que l’adversaire utilisait un document différent contenant le même contenu de fichier LNK.
Campagne-2 :
Dans le cadre de la deuxième campagne, nous avons appris que la Corée du Sud avait adopté une nouvelle politique visant à prévenir la récidive chez les délinquants sexuels. Cette initiative consiste à diffuser un document détaillé décrivant la réglementation, qui a été partagé avec les ménages, les crèches, les jardins d'enfants et diverses administrations locales, notamment les autorités des communes et des villages, ainsi que les centres communautaires de quartier. Cependant, des pirates informatiques, notamment des cybercriminels, exploitent ce processus de diffusion en envoyant des courriels trompeurs contenant des pièces jointes dangereuses. Ces courriels ciblent les destinataires résidentiels et le personnel clé des administrations locales.

Les attaquants ont exploité la diffusion de ces informations et de ce document en les faisant circuler par courriel, sous le nom de fichier 성범죄자 신상정보 고지 .pdf.lnk (Sex Offender Personal Information Notification.pdf.lnk). Cette pièce jointe contient un fichier LNK malveillant, qui représente une menace pour la cybersécurité des destinataires.
Analyse technique et méthodologie :
Campagne 1 et 2 :
Nous avons téléchargé le fichier « 28f2fcece68822c38e72310c911ef007f8bd8fd711f2080844f666b7f371e9e1.lnk » de la campagne 1 et « 성범죄자 신상정보 고지.pdf.lnk » de la campagne 2 (Sex Offender Personal Information Notification.pdf.lnk), partagés par courriel. Lors de l'analyse de ce fichier LNK, il semble qu'il récupère des fichiers supplémentaires depuis un serveur C2 externe, comme illustré ci-dessous.


Le fichier a été téléchargé à partir de l'URL fournie ci-dessus et enregistré dans le dossier Temp, comme indiqué ci-dessous.




Le fichier téléchargé depuis le serveur C2 semble être un VBScript obscurci. Après avoir obscurci le script avec DE, nous avons découvert deux fichiers supplémentaires : un PDF et un ZIP.

La première section du fichier est codée en chaînes Base64.

Après décodage, nous avons trouvé un fichier PDF.

La deuxième partie du VBScript est également encodée en Base64. Après l'avoir décodée, nous avons découvert un fichier ZIP.


Les fichiers Zip contiennent les numéros de fichiers ci-dessous.

Dans l'archive ZIP, quatre fichiers ont été identifiés : un script VBScript, un script PowerShell et deux fichiers texte encodés en Base64. Ces fichiers contiennent des données obscurcies qui, après une analyse plus approfondie, pourraient fournir des renseignements cruciaux sur les fonctionnalités et les objectifs du malware. Les figures suivantes illustrent le contenu encodé des deux fichiers texte, qui sera ensuite décodé et analysé afin d'élucider la phase suivante de la chaîne d'attaque.


Le fichier 1.vbs utilise des techniques d'obfuscation avancées, utilisant les fonctions chr() et CLng() pour construire dynamiquement des caractères et appeler des commandes à l'exécution. Cette stratégie contourne efficacement les mécanismes de détection basés sur les signatures, permettant au script d'échapper à la détection lors de l'exécution.
À la fin du script, les caractères concaténés forment une commande complète, qui est ensuite exécutée. Cette commande est probablement conçue pour invoquer le script PowerShell 1.ps1, en passant 1.log comme argument pour la suite du traitement.

Lors de la tentative de désobfuscation du VBScript, nous avons découvert l'exécution de ligne de commande suivante, qui déclenche ensuite le script PowerShell pour un traitement ultérieur.

Lors de l'exécution du fichier 1.vbs, il a déclenché l'invocation du fichier 1.ps1, comme illustré dans l'instantané ci-dessous.


Le script 1.ps1 inclut une fonction conçue pour décoder les données codées en Base64 à partir du fichier 1.log et exécuter le script résultant.


Le script 1.ps1 récupère le numéro de série du BIOS, un identifiant système unique, de l'hôte compromis. Ce numéro est ensuite utilisé pour créer un répertoire dédié dans le dossier temporaire du système, garantissant ainsi que les fichiers liés à l'attaque sont stockés à un emplacement spécifique à la machine compromise, comme illustré dans l'instantané ci-dessus.
En tant qu'exemple compatible avec les machines virtuelles, le script vérifie s'il s'exécute dans un environnement de machine virtuelle. S'il détecte une machine virtuelle, il supprime les quatre fichiers associés à l'attaque (1.vbs, 1.ps1, 1.log et tous les fichiers de charge utile stockés dans le répertoire portant le numéro de série), interrompant ainsi son exécution, comme illustré.
Le script comprend 11 fonctions qui définissent les phases ultérieures de l'opération du malware, notamment l'exfiltration de données, le vol d'informations sur les portefeuilles de cryptomonnaies et l'établissement de communications de commandement et de contrôle (C2). Ces fonctions sont essentielles à l'exécution de l'attaque, facilitant la réalisation des objectifs du malware et assurant une communication permanente avec l'auteur de la menace.
Liste des fonctions malveillantes récupérées à partir d'un fichier journal :
- Téléverser un fichier †
La fonction de téléchargement exfiltre les données en les transmettant au serveur par blocs de 1 Mo, ce qui lui permet de gérer efficacement les fichiers volumineux. Le script attend une réponse du serveur et, s'il reçoit un code d'état HTTP « 200 », il poursuit son exécution. Si la réponse diffère, le script interrompt son exécution. Chaque bloc est envoyé via une requête HTTP POST, la fonction vérifiant le succès de chaque itération de téléchargement avant de poursuivre.

- GetExWFile():
La fonction GetExWFile parcourt un ensemble de tables de hachage prédéfinies contenant les extensions de portefeuilles de cryptomonnaies. Lorsqu'une correspondance est trouvée, elle identifie les fichiers .ldb et .log associés à ces extensions en vue de leur exfiltration. Ces fichiers sont ensuite transférés vers le dossier de destination spécifié par la variable $Storepath .

- Obtenir les données du navigateur ():
Le script vérifie si l'un des navigateurs suivants (Edge, Firefox, Chrome ou Naver Whale) est actif afin d'extraire les données de profil utilisateur, notamment les cookies, les identifiants de connexion, les favoris et les données web. Avant de collecter ces informations, le script interrompt les processus du navigateur pour garantir un accès ininterrompu. Il récupère ensuite les données des extensions installées et des fichiers cache, tels que webcacheV01.dat, pour chaque navigateur identifié. Pour certains navigateurs, il effectue également des opérations de déchiffrement pour déverrouiller les clés chiffrées, ce qui lui permet d'extraire des informations sensibles, qui sont ensuite stockées avec la clé de chiffrement principale déchiffrée.

- Télécharger le fichier () :
La fonction de téléchargement de fichier télécharge n'importe quel fichier en fonction de la commande C2.

- RegisterTask() :
Il crée une persistance pour les fichiers « 1.log » et « 1.vbs ».

- Envoyer ():
La fonction send() télécharge toutes les informations collectées sur le serveur après les avoir compressées dans un fichier ZIP nommé « init.zip ». Elle renomme ensuite le fichier ZIP en « init.dat » et supprime tous les fichiers de sauvegarde du système après le téléchargement.

Le flux d'exécution des fonctions suit une séquence où plusieurs actions sont effectuées au cours de l'attaque. Parmi ces fonctions, l'une déclenche une autre commande PowerShell qui appelle le fichier 2.log, responsable des activités d'enregistrement des frappes.



Le contenu décodé du fichier 2.log est présenté ci-dessus. Il contient un script qui importe les fonctions essentielles de l'API Windows pour détecter les frappes, récupérer les titres des fenêtres et gérer les états du clavier. Ce script exécute des actions telles que la surveillance du presse-papiers, l'enregistrement des frappes et l'enregistrement des titres des fenêtres.


Conclusion
Comme on l'a constaté, les acteurs malveillants utilisent des techniques complexes et chronophages, interconnectées pour renforcer leur capacité d'évasion. Contrairement à d'autres logiciels de vol de données, celui-ci se concentre principalement sur les informations liées au réseau, qui peuvent être exploitées pour la reconnaissance active. Étant donné que ce logiciel cible des données sensibles d'utilisateurs, il est crucial de se protéger avec une solution de sécurité fiable telle que… Seqrite L'antivirus dans le paysage numérique actuel. Seqrite Dans notre laboratoire, nous offrons des capacités de détection de ces logiciels malveillants à différents stades d'infection, ainsi qu'une protection contre les menaces les plus récentes.
Seqrite Protection:
- Trojan.49424.SL
- Trojan.49422.C
MITRE ATT&CK :
| Accès initial | T1566.001 | Hameçonnage : pièce jointe de harponnage |
| De bout en bout | T1059.001
T1059.005 |
Interpréteur de commandes et de scripts : PowerShell
Interpréteur de commandes et de scripts : Visual Basic |
| Persistence | T1547.001 | Exécution de démarrage automatique au démarrage ou à l'ouverture de session : clés d'exécution du registre/dossier de démarrage |
| Évasion défensive | T1140 | Désobscurcir/décoder des fichiers ou des informations |
| Accès aux informations d'identification | T1555.003 | Informations d'identification des magasins de mots de passe : informations d'identification des navigateurs Web |
| Découverte | T1082 | Découverte des informations système |
| Collection | T1056.001 | Capture d'entrée : enregistrement de frappe |
| Commander et contrôler | T1071.001 | Protocole de couche d'application : protocoles Web |
| exfiltration | T1041 | Exfiltration sur le canal C2 |
IoC :
| MD5 | Nom du fichier |
| 1119A977A925CA17B554DCED2CBABD8 | *.lnk |
| 64677CAE14A2EC4D393A81548417B61B | 1.log |
| F0F63808E17994E91FD397E3A54A80CB | 2.log |
| A3353EA094F45915408065D03AE157C4 | prevenue.hta |
| CE4549607E46E656D8E019624D5036C1 | 1.vbs |
| 1B90EFF0B4F54DA72B19195489C3AF6C | *.lnk |
| 1D64508B384E928046887DD9CB32C2AC | 성범죄자 신상정보 고지.pdf.lnk |
C2
- hxxps[:]//cdn[.]glitch[.]global/
- hxxp[:]//srvdown[.]ddns.net
Auteurs
Dixit Panchal
Kartik Jivani
Soumen Birmanie



