Practical Malware Analysis - Lab 01x3

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-3 (Lab01-03.exe)

1 - Does either file match any existing antivirus signatures

Le fichier est reconnu par presque la totalité des solutions antivirales disponibles: 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.

La taille des sections et leurs absences de nom du binaire laissent penser que ce dernier est packé: image-left L’utilitaire PEiD le confirme, et est capable d’identifier avec quel packer le programme a été packé: image-left À l’inverse du post précédent, dans lequel je détaille le processus pour dumper la version claire d’un binaire qui est packé, j’utiliserai ici le plugin OllyDump.

Je commence donc par ouvrir le binaire dans OllyDbg. Le point d’entrée du programme packé est ici à l’adresse 0x00405000: image-left Je cherche ensuite l’EOP (point d’entrée original du programme) via le plugin OllyDump. Celui-ci me retourne une EOP à l’adresse <0x00401090> (très proche du point d’entrée initiale, ce qui est bon signe): image-left Pour vérifier si le plugin à bien trouvée l’EOP, il suffit de demander à OllyDbg d’analyser le code à partir de cette adresse (clic droit sur l’adresse, puis “Analyse Code”). Le deux premières instructions correspondent bien au prologue d’une fonction assembleur, ce qui confirme que l’EOP trouvée est bonne: image-left Enfin, il ne reste plus qu’à sauvegarder le contenu du binaire dépacké, toujours via le plugin OllyDump (“Dump Debugged Process”). L’analyse du programme malveillant peut désormais commencer.

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

Dependency Walker retourne l’unique une unique librairie “OLE32.dll”. image-left En réalité, cette librairie charge msvcrt.dll, GDI32.dll, KERNEL32.dll et bien d’autres librairies additionnelles.

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

L’analyse du code indique que le programme n’interagit pas avec la machine infectée et ne drop aucun autre fichiers. Il n’y a donc pas de signature “hôte”.

En revanche, l’adresse “http://www.malwareanalysisbook.com/ad.html” peux servir pour créer une signature réseau: image-left

Analyse du malware:

Le logiciel malveillant n’effectue que très peux d’action sur le système. Celui-ci se contente d’ouvrir un navigateur Internet Explorer sur l’URL citée plus tôt: image-left

Pour ce faire, la libraire COM est initialisée avec la fonction OleInitialize, puis créé avec CoCreateInstance: image-left

Ensuite, la fonction permettant d’ouvrir le navigateur est appelée, avec comme argument l’URL souhaitée: image-left

Le call de la fonction est dynamiquement calculée. Mais avec l’aide d’un débugger, il est possible d’atteindre cette fameuse fonction: image-left

NdrClientCall2 fonctionne comme une interface entre le programme et d’autres logiciels. Ici, ce sera le navigateur Internet Explorer. Le programme se termine de lui-même juste après.

Le programme analysé se content donc d’ouvrir un navigateur internet sur une page précise, rien de plus.