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:
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: Enfin, PEiD confirme le fait que le programme n’est pas packé:
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: 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é. 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:
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”: Mais aussi à l’exécutable suivant: Au programme “winup.exe”: 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: Enfin, une URL est présente dans les chaînes du programme: 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:
Les fonctions importées sont appelées sans argument afin de tester leur fonctionnement:
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:
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:
Cette fonction cherche le processus “winlogon.exe” parmi l’entièreté des processus systèmes:
Si le processus “winlogon.exe” est trouvé, le malware s’injecte dedans:
Ensuite, l’exécutable situé sous “C:\Windows\system32\wupdmgr.exe” est sauvegardé sous ““%APPDATA%\winup.exe” :
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:
Enfin, l’exécutable fraîchement droppé est exécuté:
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%”:
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é:
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.