mercredi 25 février 2009

Hall of Spame

We like getting spam messages. But for business purposes of course! We need to receive and analyze spam e-mails. We could probably introduce a category of posts related to the dumbest, trickiest or funniest spam campaigns and call it: the "Hall of Shame for spam" or "Hall of Spame".

For example, I received yesterday this one :



From: <cindy22@onemers.com>
Date: Mon, Feb 23, 2009 at 12:29 AM
Subject:
To:

Hi there!

It has been long time since we did not meet. I hope everything is okay with you. I found a great medicine shop on the net. I ordered some meds and got my orders in 3 days to my postbox.They are cheap and quality. I thought that you may be interested.Here is their advertisement :

- Man's Health, Anti-Depressants, Antibiotics, Cholesterol, Diabetes, Diuretic, Pain, Sexual Health, Erectile dysfunction, Sleep Aids and Weight Loss medicines - Worldwide shipping - Always fresh discounts - Always full anonymity - Always making you a happy customer!

Choose us and you will feel well: Always!

http://www.e-surepaint.com


This obviously represents the usual fraudulent pharmacy spam e-mail, promoting a website using the well-known "European Pharmacy" template. But take the time to read the first sentence again. Funny, isn't it?

jeudi 12 février 2009

Conficker et la limite de connexions TCP par seconde

Le désormais tristement célèbre ver Conficker n'en finit pas de sortir de nouveaux tours de son chapeau, non pas qu'il se mette à jour via les noms de domaine qu'il génère, mais parce que son étude par reverse engineering révèle à chaque fois de nouvelles astuces.
L'ISC a déjà posté deux billets indiquant entre autres la capacité du ver à corriger en mémoire la vulnérabilité MS08-067 par laquelle il se propage, mais aussi que celui-ci implémente un équivalent de la Red Pill de Joanna Rutkowska pour détecter une éventuelle machine virtuelle et s'endormir pour un long moment.

Voyons de notre côté quelques nouveautés à propos de Conficker.
Tout d'abord, si vous avez toujours dans votre parc des machines sous Windows NT 4.0, le ver n'en a que faire, il ne s'intéressera qu'aux versions de Windows supérieures ou égales à 5 :

Les dinosaures sont donc saufs, pour cette fois :-)

Deuxième point : comment Conficker s'occupe de supprimer la limite de 10 connexions TCP par seconde introduite par Microsoft pour justement empêcher une propagation trop rapide de vers. Certains éditeurs antivirus nous ont mis en garde sur l'action du virus qui consiste à modifier la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ TcpNumConnections à la valeur 0xfffffe. Toutefois, cette clé de registre ne sera pas créée sur un système sur lequel elle n'existe pas, mais si elle est présente, elle sera modifiée uniquement si sa valeur diffère de 0xfffffe : De plus, ce contrôle sur la clé de registre ne sera effectué que sous Windows 2000 et sous Windows XP, sous réserve que le Service Pack soit inférieur à 2, comme nous le montre le contrôle suivant : Les autres versions auront droit à un traitement un peu plus intéressant.

Chargement d'un pilote

Pour les versions 5.1 supérieures à SP2, 5.2 et 6.0, une nouvelle fonction est appelée, après que le processus ait acquis les privilèges SeLoadDriverPrivilege. Dans celle-ci, un nouveau contrôle de la version de l'OS est effectué afin d'écarter les versions 5.2 (Windows 2003) sans Service Pack. Dans le cas où la version est correcte, le ver va alors ouvrir le pilote tcpip.sys à la recherche de certains patterns. Dans le cas de Windows XP, il s'agit de la suite d'octets FF D6 C7 05, suivi de la valeur 0A (correspondant à 10 en décimal, le nombre de connexions simultanées autorisées par seconde). Cette suite d'octet correspond à la partie suivante du pilote, chargée d'affecter la valeur 0A à une variable qui est ensuite utilisée pour voir si de nouvelles connexions peuvent être initiées : Dans le cas de Vista, c'est directement le bloc effectuant la comparaison qui est recherché : Si ces valeurs sont trouvées dans le pilote, Conficker va alors remplir une structure de 3 DWORDs, avec les valeurs suivantes :

  • l'offset de la valeur à modifier dans le pilote (la valeur 0A pour XP, l'offset du saut conditionnel JA pour Vista)
  • la valeur actuelle à cet offset
  • la nouvelle valeur à y affecter (0x1000000 pour XP, 0 pour Vista (correspondant donc à un saut vers la prochaine instruction, ce qui revient ici à NOPer le saut))

tel que l'on peut le voir ici : Un pilote basique est ensuite déposé dans %SystemRoot%. Celui-ci est lancé en tant que service, puis le fichier est supprimé du disque. S'en suit alors l'envoi d'une IOCTL appelant la fonction 0x800 du pilote malveillant en lui passant en argument la structure précédemment remplie : Le ver continue ensuite en terminant puis supprimant le service. Propre et efficace, le pilote ne reste sur la machine que quelques courts instants ! Du côté du pilote, celui-ci récupère l'adresse de base du pilote tcpip.sys, vérifie que la valeur à l'offset fournit en argument correspond bien à la valeur attendue, puis y affecte la nouvelle valeur directement en mémoire. Le pilote est ainsi directement modifié en mémoire, sans laisser de trace sur le disque.

A bientôt pour de nouvelles aventures Confickeresques !

mercredi 11 février 2009

Patch day de Février

Ce deuxième patch day de l'année a vu la publication de 4 bulletins par Microsoft, courant un total de 8 vulnérabilités. Deux de ces bulletins sont qualifiés de critiques :

MS09-002 : deux vulnérabilités de type corruption de mémoire dans Internet Explorer, pouvant permettre l'exécution de code arbitraire (Réf Lexsi 11284).

MS09-003 : corruption de mémoire pouvant permettre l'exécution de code arbitraire et mauvaise validation des commandes MAPI pouvant entrainer un déni de service dans Exchange (Réf Lexsi 11285).

Les bulletins suivants sont qualifiés d'importants :

MS09-004 : une vulnérabilité de type corruption de mémoire dans SQL Server, pouvant permettre l'exécution de code arbitraire. Cette vulnérabilité était déjà connue et Microsoft avait déjà publié des solutions de contournement (Réf Lexsi 11037).

MS09-005 : trois vulnérabilités dans Office Visio, pouvant permettre l'exécution de code arbitraire (Réf Lexsi 11287).

Microsoft a aussi mis à jour son outil de suppression des logiciels malveillants (MSRT). Cet outil s'est révélé fort utile contre les infections massives par le ver Conficker en début d'année. Ce mois-ci, c'est Srizbi qui entre dans la liste des malware ciblés par cet outil.

Pour rappel, Srizbi est un malware dont le but est de transformer la machine infectée en relai de Spam. Sa particularité est d'être entièrement en kernel-mode : l'intégralité du code malveillant est exécuté en mode noyau, ce qui lui permet de mieux se dissimuler de l'utilisateur de la machine infectée.
Il a été estimé que Srizbi était responsable de plus de la moitié des spams reçus quotidiennement, jusqu'à la fermeture de l'hébergeur bullet-proof Mc Colo en Novembre 2008.

vendredi 6 février 2009

Noms de domaine de Conficker / Downadup A et B et remarque sur l'Autorun

Février est maintenant démarré, et Conficker est toujours présent au sein de nombreux réseaux d'entreprise. En effet, la nature des vecteurs de propagation utilisés et la difficulté à identifier les systèmes infectés compliquent grandement son éradication.

Une des caractéristiques des différentes variantes de Conficker est d'utiliser un algorithme interne pour générer chaque jour 250 noms de domaine potentiels sur lesquels le malware pourra par exemple récupérer un nouveau contenu à exécuter. Partant de ce principe, une méthode détournée pour détecter les machines infectées dans un réseau peut consister à observer les requêtes émises à destination de tout ou partie de ces domaines.

A cet effet, et à partir de l'analyse de plusieurs spécimens de Conficker A et B, notre collègue Florent a généré deux listes de noms de domaine, par semaine et jusqu'à fin Février, pour chacune des deux variantes (il ne faudrait pas oublier Conficker.A, qui semble encore bien actif dans certains réseaux) :

Il est par exemple possible d'utiliser les listes dans vos proxies filtrants, ou encore de modifier vos serveurs DNS internes pour rediriger le trafic à destination de ces domaines malveillants vers un serveur Web de l'entreprise (joli pot de miel pour vos machines infectées, toutes vos IPs sont dans vos logs !).

Pour répondre à une autre interrogation concernant la propagation par clefs USB, il est amusant de noter que Conficker s'adapte à la langue du système infecté quand il propose, grâce à la fonctionnalité Autoplay, son frauduleux "Ouvrir le dossier pour afficher les fichiers" :

En effet, il récupère via la fonction GetModuleHandleA un handle sur la bibliothèque shell32.dll, pour charger la chaine de uID "17154" de cette même ressource avec la fonction LoadStringA. Sur un système français, cela correspond à "Ouvrir le dossier pour afficher les fichiers". Sympa, si la chaine obtenue est de taille nulle, il prend alors la chaine par défaut "Open folder to view files" :