Présentation
Les chercheurs de Proofpoint ont récemment découvert qu'une campagne d'e-mails de faible ampleur ciblait un important fournisseur de services financiers. L'attaque en question est notable pour plusieurs raisons :
- Sa portée était extrêmement ciblée : les quelques e-mails malveillants, en nombre limité, étaient envoyés aux utilisateurs d'une seule organisation.
- Les e-mails s'accompagnaient d'une pièce jointe Microsoft Word qui, pour échapper à la détection, n'utilisait pas de macro mais un objet incorporé, lui-même fortement obfusqué.
- La charge utile était un enregistreur de frappes, encore inconnu et codé en dur qui transmettait les journaux des ordinateurs infectés à deux adresses Gmail.
Si l'emploi d'objets incorporés à la place des macros n'est pas une nouveauté, les macros malveillantes restent pour l'instant le vecteur favori de la plupart des pirates. Toutefois, cette technique devrait selon nous s'étendre en 2017.
Analyse
Le document Microsoft Word joint aux e-mails s'intitule « info.doc ». L'image qu'il contient invite l'utilisateur à cliquer pour installer Microsoft Silverlight et pouvoir afficher le contenu (Figure 1).
Figure 1 : Document leurre
Un examen plus approfondi révèle que ce document ne contient pas de macro, mais un « Objet d’environnement du Gestionnaire de liaisons » (Figure 2).
Figure 2 : Un clic droit sur l'image permet de voir qu'il s'agit d'un objet incorporé et non un lien.
L'option « Propriétés » indique qu'il s'agit d'un fichier Visual Basic Script (Figure 3).
Figure 3 : Propriétés de l'objet incorporé
Lorsqu'on extrait ce script Visual Basic, on y trouve un fichier obfusqué (ou camouflé) par l'insertion systématique de la chaîne « We are safe » entre chaque caractère (Figure 4).
Figure 4 : Extrait du code obfusqué inclus dans le script Visual Basic, avec la fonction chargée de le désobfusquer
Les trois premières lignes du code contiennent la fonction de désobfuscation chargée de remplacer toutes les chaînes « We are safe » par des chaînes vides. La Figure 5 montre le code désobfusqué.
Figure 5 : Code désobfusqué
Notez qu'à la 6e ligne, ce code exécute une requête HTTP GET adressée à https://a[.]pomf[.]cat/sfkpiff.exe, suivie d'une chaîne de points d'interrogation. Nous pensons que cette chaîne n'est simplement pas prise en compte par le site demandé. Lors de notre analyse, le fichier avait déjà été retiré du site pomf[.]cat, un site d'hébergement gratuit qui permet à quiconque de charger des fichiers en tout anonymat et qui héberge souvent des exécutables malveillants.
Pour pouvoir analyser ce malware plus en profondeur, nous en avons réussi à en récupérer un échantillon dans un référentiel public de logiciels malveillants. Le vidage mémoire du processus malveillant révèle les points suivants (Figure 6) :
- Une requête réseau adressée à http[:]//icanhazip[.]com autorise le malware à identifier l'adresse IP publique de la machine infectée.
- Occurrence de l'API « GetAsyncKeyState ». Les enregistreurs de frappes utilisent souvent cette API Windows pour identifier les touches du clavier sur lesquelles l'utilisateur appuie. L'appel de l'API GetAsyncKeyState 10 fois par seconde indique un enregistreur de frappes de base.
Figure 6 : Vidage mémoire du malware non identifié
Un examen plus minutieux du vidage mémoire confirme qu'il s'agit bien d'un enregistreur de frappes (Figure 7).
Figure 7 : Le vidage mémoire confirme la fonction d'enregistreur de frappes.
Bien que nous ne le montrions pas ici, ce malware transmet également ces journaux à deux adresses Gmail codées en dur, par le biais d'un serveur SMTP Gmail.
À ce jour, nous n'avons pas encore identifié l'enregistreur de frappes en question. Il est écrit en langage AutoIt et utilise d'autres outils, par exemple l'outil de récupération du mot de passe Lazagne qu'il télécharge depuis le site hxxp://0v3rfl0w[.]com. Les vecteurs de propagation sont très intéressants et les fonctions du malware lui-même sont plutôt simples.
Conclusion
À mesure que les pirates innovent et ne se contentent plus de macros malveillantes, il devient indispensable que les organisations revoient entièrement la manière dont elles empêchent le contenu malveillant d'atteindre leurs utilisateurs. Si bon nombre d'entreprises bloquent les macros Microsoft Office malveillantes par l'application de stratégies ou sensibilisent leurs utilisateurs aux risques inhérents à l'activation du contenu des macros, les attaquants sont désormais en mesure d'exploiter d'autres outils et de créer des documents « armés » pour propager leurs malware. Dans ce cas, il s'agit d'un script Visual Basic incorporé dans un document Microsoft Word et dont la charge utile est un enregistreur de frappes.
Indicateurs de compromission (IOC)
IOC |
Type d'IOC |
Description |
8b7845f5487847085753f940dbbd65c7e75e6be48918fcf9f0d98df169607003 |
SHA256 |
Pièce jointe |
https://a[.]pomf[.]cat/sfkpiff.exe |
URL |
Enregistreur de frappes hébergé (retiré depuis) |
9a0b0832ac47b48475901269a0eb67f6287a2da64ec9a5cc8faf351ecd91d0e3 |
SHA256 |
Enregistreur de frappes |
Couverture ET et ETPRO Suricata/Snort
2819671 || ETPRO TROJAN AutoIt téléchargeant l'outil de récupération de mots de passe Lazagne
2019935 || ET TROJAN AutoIt téléchargeant le programme malveillant EXE - Likely
2807400 || Téléchargement du fichier ETPRO MALWARE AutoIt EXE ou DLL Windows
2008350 || Agent d'outil d'automatisation Windows ET POLICY AutoIt inclus dans la requête HTTP - Potentiellement hostile