Practical Malware Analysis - Lab 01x4

Cette série de writeups couvre les différents exercices du lab “Practical Malware Analysis”. Ce premier chapitre à pour but d’introduire à l’analyse statique basique de différents samples.

Lab 1-4 (Lab01-04.exe)

1 - Does either file match any existing antivirus signatures

Le binaire est reconnu comme malveillant: image-left

2 - Are there any indications that this file is packed or obfuscated? If so, what are these indicators? If the file is packed, unpack it if possible.

Le binaire ne semble pas packé d’après la taille des différentes sections: image-left Enfin, PEiD confirme le fait que le programme n’est pas packé: image-left

3 - Do any imports hint at this program’s functionality? If so, which imports are they and what do they tell you?

Le programme va visiblement être capable de modifier les permissions de certaines ressources: image-left Mais aussi de manipuler le filesystem de la machine infectée, en créant, déplaçant, localisant et ouvrant des fichiers. Le programme va donc très certainement laisser des traces sur un système infecté. image-left Chose très importante à noter: En cherchant à afficher la liste des chaînes de caractères présentes dans le binaire, je me suis rendu-compte que celui-ci contenait un autre programme, de par la présence de trop nombreuses sections a des endroits différents du code, et au double prologue “This program cannot be run in DOS mode.”.

Afin d’extraire le second programme, j’utilise RessourceHacker, qui identifie bien un autre binaire au sein du premier. Ce deuxième programme semble bien plus court, et comporte notamment une fonction capables de télécharger des ressources distantes sur une machine infectée: image-left

4 - What host- or network-based indicators could be used to identify this malware on infected machines?

Le premier programme fait allusion au programme “winlogon.exe”: image-left Mais aussi à l’exécutable suivant: image-left Au programme “winup.exe”: image-left Le deuxième programme fait allusion au programme “wupdmgrd.exe”. À noter que l’orthographe ne correspond pas à l’exécutable homonyme natif aux systèmes Windows: image-left Enfin, une URL est présente dans les chaînes du programme: image-left Sachant que ce deuxième binaire est capable de télécharger des ressources, il est possible d’imaginer que le logiciel malveillant va contacter cette adresse à un certain moment.

Au vu des informations acquises et des fonctions utilisés, il semblerait que le premier programme puisse déposer le second en le camouflant au sein d’exécutables Windows légitimes, de façon à le rendre persistant. Le deuxième module va certainement, quant à lui, télécharger des ressources additionnels.

###Analyse complète: ###Stage 1: Le malware commence par charger les différentes fonctions issues de DLL externes dont il a besoin pour fonctionner, à savoir EnumProcessModules, GetModuleBaseNameA et EnumProcess depuis psapi.dll: image-left

Les fonctions importées sont appelées sans argument afin de tester leur fonctionnement: image-left

Si l’import des fonctions s’est déroulé sans problèmes, une liste des processus tournant sur le système est récupérée: image-left

Le programme boucle ensuite sur la totalité des processus retournées. Pour chaque processus, le PID sera extrait et passé en argument à la fonction func_FindInjectionProcess: image-leftimage-left

Cette fonction cherche le processus “winlogon.exe” parmi l’entièreté des processus systèmes: image-left

Si le processus “winlogon.exe” est trouvé, le malware s’injecte dedans: image-left

Ensuite, l’exécutable situé sous “C:\Windows\system32\wupdmgr.exe” est sauvegardé sous ““%APPDATA%\winup.exe” : image-left

Pour terminer, le malware va charger la ressource interne “BIN/101” (qui est en fait un autre exécutable). Le fichier précédemment déplacé va être recréé ( C:\Windows\system32\wupdmgr.exe), et le contenu de la ressource chargée y sera écrite: image-left

Enfin, l’exécutable fraîchement droppé est exécuté: image-left

Ce lot d’instructions clos le fonctionnement de ce programme.

En résumé, le binaire malicieux est un droper, qui va s’injecter sous le processus winlogon.exe. Une fois injecté, le malware extrait un second fichier de ses ressources internes. Le contenu de ce deuxième fichier est placé à la place du binaire légitime wupdmgr.exe, avant d’être lancé.

Stage 2:

Le stage 2 du malware va droit au but. Celui-ci lance l’instance de winup.exe désormais sous “%APPDATA%”: image-left

Une ressource externe est ensuite téléchargée depuis l’URL “http://www.practicalmalwareanalysis.com/updater.exe” via la fonction URLDownloadToFileA. Le fichier téléchargé va remplacer l’ancienne version de wupdmgrd.exe sous “C:\windows\system32”, avant d’être lui aussi exécuté: image-left

Le cœur du binaire se content ici uniquement de télécharger un nouveau composant et de le placer en sécurité avant de l’exécuter.