Depuis quelques jours, les serveurs de messageries sont sous le joux d’une campagne massive de messages malveillants.
Encore un nouveau rançongiciel ! Décidément, ils sont à la mode : cela fait plus d’un an qu’on se prend vague sur vague des Locky et consort. Le principe est quasiment toujours le même : un message avec une pièce jointe qui va téléchargé une charge qui chiffre les données sur votre poste et ses partages réseaux…
Cependant la dernière campagne est intéressante pour deux raisons :
Premièrement, même si le vecteur de contamination reste le même : fichier office avec des macro. Le code de ces dernières n’est pas aussi obfusqué que d’habitude. Preuve que les pirates se lassent peut-être : en tous les cas, la puissance olevba ou oledump peut s’exprimer pleinement pour en extraire rapidement des informations pertinentes à l’analyse et la recherche d’IOC.
| IOC | http://juyinggroup.c | URL | | | om/g76ub76 | | | IOC | ll32.exe | Executable file name | | IOC | P.dll | Executable file name | | IOC | rundll32.exe | Executable file name (obfuscation: VBA | | | | expression)
Le code VBA des macros laisse aussi paraitre que les auteurs seraient hispaniques. En effet, bon nombre de variables et noms de fonction sont directement pris de l’Espagnol. Voici quelques exemples :
For i = 1 To Len(permiso) letra = Mid(permiso, i, 1) If letra = "A" Then Alta = True End If If letra = "B" Then Baja = True End If If letra = "M" Then modi = True End If If letra = "C" Then Consu = True End If Next i If Len(permiso) = 0 Then Consu = False modi = False Alta = False Baja = False End If
Info ou intox de la part des attaquants ?
La seconde nouveauté concerne l’exécution de la charge:
Notons que le code de la macro ne télécharge plus directement un exécutable mais un blop binaire qui est par la suite déchiffré (XOR avec une clé de 32 caractères). Ce stratagème permet à la charge de passer inaperçue même au travers d’un proxy HTTP. Une fois déchiffrée cette charge est toujours un fichier PE mais ce n’est pas un exécutable EXE mais une bibliothèque de liens dynamiques (ie : une DLL).
jshmendes@cb:~$ file charge.bin charge.bin: PE32 executable (DLL) (console) Intel 80386 (stripped to external PDB), for MS Windows
Cette DLL est alors exécutée à l’aide de rundll32.exe avec la commande suivante :
Call Shell("rund" & "ll32.exe " & moyaMANUNAUUUKA & ",qwerty", vbHide)
Cet appel à travers rundll32.exe présente l’avantage de contourner les éventuelles restrictions AppLocker présentes sur le poste ciblé : Non seulement la charge s’exécute même s’il y a un filtrage sur les fichiers DLL, mais en plus les journaux d’événements ne voient rien, rendant l’investigation moins triviale.
Notons qu’il s’agit ici d’une limitation connue d’AppLocker (Et non ce n’est pas une vulnérabilité d’après Microsoft). Rajoutons que ce n’est pas la seule technique pour contourner une politique de restriction d’exécution sous Windows, mais que c’est probablement la plus efficace et la plus simple à mettre en oeuvre.
Cette limitation laisse donc les postes vulnérables à cette nouvelle campagne de rançongiciel qui prend le doux nom d’Odin (en référence à l’extension utilisée pour renommer les fichiers chiffrés). Après Locky, voici donc une autre divinité de la mythologie nordique qui met à mal la sécurité des données.