Rechercher

Analyse de la campagne de malspam ModiRat

ModiRat : des campagnes qui ciblent particulièrement la France.

ModiRat : description

ModiRat est un malware de type banking trojan codé en .net. Il inclut les fonctions standards de cette famille de malwares tels que le keylogging, le vol de données bancaires, l’enregistrement vidéo ou la prise de screenshots. Via des modules complémentaires poussés par le C2, il peut également permettre à l’attaquant de disposer d’un accès à distance à la machine visée.

En septembre 2020, les chercheurs de Sophos ont publié un article analysant une attaque visant à diffuser ModiRat. Ils ont d’ailleurs constaté la présence de mots en français ainsi qu’un ciblage d’entreprises françaises.

Depuis le début d’année notre CyberSOC a détecté plusieurs campagnes ModiRat. Elles présentent toutes des caractéristiques similaires et ciblent toujours particulièrement la France.

Malspam : détails de l’attaque

La méthode de distribution s’effectue par e-mails contenant un lien URL. Dans la très grande majorité des cas, nous constatons que :

  • L’attaquant utilise une adresse e-mail liée au nom de domaine d’une entreprise française. L’adresse IP émettrice ne fait pas partie des serveurs e-mails de ces entreprises, nous supposons donc une usurpation du nom de domaine. En effet, pour les cas analysés, il n’y a aucun mécanisme de protection de type SPF ou DMARC mis en place.
  • Il utilise également les noms de grands groupes d’assurance français comme alias à l’adresse mail émettrice.
  • Le sujet contient très souvent les patterns “Dossier” suivis d’un numéro à 9 chiffres.
  • Chaque mail contient une URL qui, via une redirection, pointe vers une archive Zip. Les dernières URL vues sont de la forme suivante : {random_values}.xyz/\d{1}/. Néanmoins, par le passé nous avons aussi constaté des valeurs non-aléatoires comme cestpasdifficile[.]xyz/2/ ou acheterdomaine[.]xyz/1/

Que ce soit dans les noms de domaines usurpés, l’alias ou encore le sujet, nous constatons de nombreux liens avec la France.

L’URL de l’e-mail mène à une redirection qui pointe vers le site hébergeant une archive Zip. Dans plusieurs cas, l’attaquant a utilisé un service de transfert de fichiers. L’archive contient un script VBS.

ModiRat : infection

Le script contient un certain nombre d’instructions visant à infecter la machine ciblée. Dans un premier temps, il va créer 3 clefs dans HKCU\Software. Dans notre cas de figure, ces clefs sont nommées ei et f.

  • Le clef e contient une chaîne de caractères. Lorsque nous remplaçons les caractères ! par A puis que nous inversons le sens des caractères, nous obtenons une chaîne base64 qui une fois décodée correspond à un exécutable .Net.
  • Les clefs i et f contiennent quant à elles des chaînes de 0 et de 1 (binaire) qui une fois décodées correspondent également à des exécutables .Net.

Ensuite, le script va créer un fichier script dans la appdata/roaming de l’utilisateur courant. Ce fichier est nommé {computer_name}.js. Ce script va contenir les instructions visant à charger le payload.

Enfin, il crée une tache planifiée nommée {computer_name} qui va s’exécuter toutes les minutes et lancer le script précédemment créé. Mécanisme de persistance MITRE T1053.005.

 

A noter également la présence de sleep dans le script. Le temps d’exécution des sandbox étant bien souvent limité, il s’agit donc d’une technique simpliste d’évasion utilisée par l’attaquant.

MoDiRAT : exécution

Etape 1 : loader VBS

La tâche planifiée va ensuite exécuter le script précédemment créé. Comme documenté dans la publication de Sophos, ce script vérifie si un process msbuild.exe est en court d’exécution(1). Si ce n’est pas le cas, il va lancer Powershell MITRE T1059.001. Il se sert ensuite de la commande SendKeys de VBS pour passer les instructions à Powershell. Il s’agit très certainement d’une technique pour évader les mécanismes de détection basées sur l’analyse de cmdline.

Le script Powershell va lire le contenu de la clef HKCU\Software\e et opérer une transformation (inversion du sens de lecture et décode base64). Le résultat obtenu est un exécutable (.net Assembly) qui va être chargé par PowerShell.

Etape 2 : loader .net

Le payload chargé par Powershell va simplement lire, décoder et charger le contenu de la clef HKCU\Software\i. Il s’agit là encore d’un exécutable .net

Etape 3 : injection du malware

Une fois chargé, le payload i va quant à lui exécuter msbuild.exe, lire et décoder le contenu de la clef HKCU\Software\f puis injecter le payload f dans msbuild.exe via une méthode nommée R. Il s’agit d’une technique de process hollowing MITRE T1055.012

A noter la fonction R.HandleRun dans laquelle est codé en dur le paramètre de la cmdline. Cette valeur est un bon marqueur pour repérer l’exécution du malware.

ModiRat : détails

Le payload stocké dans HKCU\Software\f est chargé dans msbuild.exe, il correspond à notre malware. Nous retrouvons d’ailleurs le pattern “MoDi RAT V0.1 Build1 dans les strings du binaire. Le point d’entrée pointe vers une class qui contient une fonction de connexion aux C2. Ces derniers sont spécifiés en variables.

L’analyse du code permet de mieux cerner les fonctionnalités du malware et les commandes paramétrées. Nous pouvons notamment citer :

  • info: le malware retourne des informations sur l’environnement système formalisé ainsi : info||timestamp d’infection||numéro de série du disque dur||Hostname/Username||OS version is {user or admin}||antivirus||info ISP||Boss2019||localip||IP de la machine||Boss2019 A noter que pour obtenir l’information sur l’ISP, le malware utilise le service hxxps://ipwhois[.]app/xml.
  • dp pour DesktopPreview : un screenshot est envoyé au C2.
  • Plugin suivi du point d’entrée, lorsque le C2 envoie un plugin additionnel et PluginRun pour exécuter un plugin.
  • Aw pour SendActiveWindows: retourne le nom de la fenêtre active.

Il contient également des fonctionnalités types keylogger mais aussi d’enregistrement vidéo. On retrouve également une fonction en lien avec les vols de données bancaires. Elle s’appuie sur hxxps://lookup.binlist[.]net

Les flux avec le C2 n’étant pas chiffrés, l’ensemble des communications avec le C2 peut être visualisé.  Dans l’échange vu sur notre sandbox, le malware a envoyé les informations système au C2 ainsi que deux screenshot du bureau. En outre le C2 lui a envoyé deux plugins, il s’agit de dlls. La première se nomme Startup.dll et la deuxième RemoteDesktop.dll.

Concernant la partie enregistrement vidéo, le malware s’appuie sur un outil tiers : ffmpeg.exe qui dans ce cas est téléchargé sur hxxps://www.azedpack[.]com/ffmpeg.zipIl s’agit très certainement d’un site compromis par l’attaquant pour y déposer ce package.

Enfin, dans les ordres passés, nous constatons que le C2 demande un enregistrement d’une minute pour les fenêtres web dont le titre contient le nom de grandes banques françaises.RAT va ainsi enregistrer tout ce qui se passe sur une fenêtre de navigateur web dont le titre correspondrait à ces banques. A noter également que le C2 envoie une liste de BINs (Bank Identification Number) encodé en b64.

L’URL du binaire ainsi que les paramètres d’enregistrement sont d’ailleurs stockés dans HKCU\Software\FFMPEG_URL, Screen_Numbers, Capturing_Interval, Recording_Time et Windows_Title_List

Détection de ModiRat

Outre le comportement e-mail particulièrement marquant qui permet d’identifier et bloquer le vecteur, il est également possible d’identifier ce malware via l’exécution du process Msbuild.exe associé à la cmdline #cmd

Il est également possible de se baser sur les artefacts laissés par le malware sur la machine tels que le fichier script ou les clefs de registres créées ainsi que la tâche planifiée.

Côté signaux faibles, une attention particulière peut être portée aux machines qui effectueraient des requêtes vers ipwhois[.]app et lookup.binlist[.]net surtout si précédées par une connexion vers un site à faible prévalence dont le tld est xyz.

Conclusion

Notre CyberSOC suit cet attaquant depuis plusieurs semaines. L’attaquant cible particulièrement la France et son mode opératoire reste stable. De plus, le nombre de pattern en langue française suggère que l’attaquant est francophone.

Si son mode opératoire n’est pas très avancé, les payloads ne sont ni obfusqués ni chiffrés. Le flux réseau avec le C2 n’est pas chiffré et l’exécution du malware via PowerShell n’est pas très discret puisque les fenêtres ne sont pas masquées. Nous notons cependant quelques mécanismes intéressants comme l’utilisation Wscript.SendKeys qui permet de masquer les cmdline PowerShell.

Références MITRE Att&CK

IoCs

Les IOCs et références MITRE ATT&CK sont téléchargeables ici

Notes :

(1)ModiRAT va être injecté dans msbuild, il s’agit donc d’un mécanisme de contrôle visant à exécuter le malware uniquement s’il n’est pas déjà actif.

Pour découvrir les offres d’accompagnement de notre équipe CyberSOC, n’hésitez pas à consulter cette page.