mercredi 23 juillet 2008
Vous avez reçu un colis^W malware !
Par Sylvain SARMEJEANNE, mercredi 23 juillet 2008 à 14:27 :: General
Depuis la semaine dernière, nous voyons arriver dans nos boîtes à spam de nombreux messages ayant pour objet un soit-disant problème de livraison d'un paquet UPS. Le but est toujours le même : inciter la victime à exécuter le malware en pièce jointe par une dose d'ingénierie sociale.
Prise de contact...
Voici un exemplaire que nous avons reçu :

La pièce jointe est un fichier ZIP contenant un unique fichier exécutable. Celui-ci reprend l'icône des documents Microsoft Word afin de ne pas éveiller trop de soupçons. Cette pseudo-ruse peut sembler d'un autre âge, mais n'oublions pas par exemple que Windows Vista masque encore par défaut les extensions des fichiers connus...
Commençons par une
analyse antivirale avec les principaux moteurs du marché. Comme malheureusement trop souvent, la détection par les anti-virus est décevante, seuls 7 sur 18 détectant notre échantillon (NB : quelques heures plus tard, ce nombre atteignait 13) :

Il s'agirait donc d'une variante de ZBot. Afin d'avoir une idée générale du fonctionnement du malware, poursuivons par une
exécution du binaire en sandbox. Il se recopie sur le système sous le nom C:\WINDOWS\system32\ntos.exe :

Il modifie la clé Winlogon de HKLM pour assurer sa survie à chaque redémarrage du système, en y ajoutant le chemin vers ntos.exe :


Il crée aussi le répertoire wsnpoem pour y stocker des fichiers :

Côté réseau, le malware cherche à contacter un serveur russe via HTTP, certainement pour y chercher des mises à jour ou pour télécharger un fichier de configuration :

Unpacking
Les présentations étant faites, regardons de plus près de quoi le malware est fait. Premier réflexe, le packer est-il connu ? Une réponse négative nous étant donnée par PEiD, il va donc falloir y aller au radar.
Le but du jeu est d'arriver le plus tôt possible au point d'entrée original (OEP), sans nécessairement s'attarder sur chaque détail du packer (il ne s'agit pas de réaliser un unpacker par exemple). On peut tout de même s'attarder sur la récupération de l'adresse des fonctions. Tout se passe dans la fonction en 0x4014e6 :
- chargement d'une bibliothèque avec LoadLibraryA() (ici advapi32.dll)
- récupération en boucle de fonctions dans cette bibliothèque avec GetProcAddress() (ici RegDeleteValueA())
- boucle sur les bibliothèques restantes

Il faut rester vigilant lors de l'unpacking, le code se déchiffrant au fur et à mesure de l'exécution. Par exemple avant :

Apres :

Une fois le malware dépacké, reste à l'analyser (techniques de rootkit, chiffrement des flux, du fichier de configuration, etc), ce qui est une toute autre histoire...
Une vulnérabilité
Microsoft a publié hier soir un