Le royaume de Eric Buist >> Informatique >> Problèmes marquants >> Quelques bogues résolus >> Bogues logiciels résolus
Me contacter Plan du site
<< Virus sur MSN SirCam, un autre virus Quand KDE se fait vieux et parle chinois... >>

SirCam, un autre virus

Le virus sur MSN n'était pas très compliqué à éradiquer. Probablement qu'un logiciel anti-virus aurait réussi à le faire sans difficulté. Mais il existe des virus plus coriaces dont celui auquel j'ai été confronté le vendredi, 21 septembre 2001 au soir. Cette fois-ci, ça a failli être la réinstallation longue et pénible de Windows sur le Pentium III, l'ordinateur familial.

Tout a commencé lorsque ma mère a consulté son courriel et s'est rendue compte qu'elle avait reçu une trentaine de messages. Après examen, nous avons constaté que ces messages provenaient d'adresses Hotmail inconnues, ma soeur a été suspectée, mais puisqu'elle n'utilise pas Outlook Express, c'était peu probable que ce soient des messages pour elle. Il allait falloir faire un scan anti-virus, car qui sait ce que cela pourrait être.

Un peu plus tard dans la soirée, lorsque l'ordinateur a été libre, j'ai fait le scan qui n'a rien révélé, aussi simple que cela. J'ai donc laissé la chose en plan pour le moment, mais durant la soirée, ma mère a de nouveau reçu un paquet de messaegs. Il allait falloir faire quelque chose. Il était possible que ce soit quelqu'un qui nous envoie tout ça et dans ce cas, ajouter un filtre dans Outlook Express s'imposait, voire même changer notre adresse de courrier! Ce qui n'a naturellement pas de bon sens. Cela pouvait également provenir de la machine elle-même.

Un peu plus tard encore, je me suis décidé à analyser plus profondément la chose. J'ai appuyé sur CTRL+ALT+DEL pour voir ce qui tournait; deux programmes suspects: SaveNow et CnBabe. J'ai désactivé CnBabe, ce qui a fait planter Explorer, puis j'ai consulté le courriel: encore des messages suspects. J'ai tenté de désactiver SaveNow, le flot de messages suspects a cessé.

Parlons un peu des messages eux-mêmes. Ces derniers sont des retours d'erreur de différents serveurs. Les messages seraient partis de notre machine et envoyés à d'autres de façon aléatoire et en cas d'erreur, ça rebondit. Le message que la bêbite tentait d'envoyer s'adressait à un prof de bio et traitait de quelque chose sur laquelle il demandait des conseils. Le message contenait un document Word très suspect, un fichier à l'extension .doc.com qu'un curieux, mon frère ou ma soeur, a ouvert, ce qui a infecté la machine.

Mais pour le moment, je pensais que c'était SaveNow et je l'ai désactivé. Mais un nouveau message a été envoyé... J'ai tenté de savoir d'où venait CnBabe, le second suspect. C'était le module fonctionnel de Common Names, une extension de Internet Explorer dont l'utilité m'échappe. Grâce à un logiciel du nom de PrcView, j'ai ensuite tenté de visualiser les processus sur la machine, aucune information additionnelle.

J'ai tenté d'aller fouiller dans la Base de Registre afin de savoir qu'est-ce qui aurait pu démarrer et être suspect. La clé HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run ne contenait rien de suspect, HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run non plus! La clé RunServices, quant à elle, contenait une référence du nom de Driver32 à C:\Windows\System\SCam32.exe. Que pouvait bien être ce fichier? Un driver de caméra numérique, de scanner, je n'en savais rien. Je ne pouvais prendre le risque de le supprimer, car cela pourrait mener à la nécessité de réinstaller Windows!

Je suis finalement allé sur le site de McAfee, section supérieure Anti-Virus, section gauche DAT files puis j'ai télécharger le plus récent SuperDAT. Je l'ai installé et l'anti-virus ainsi mis à jour, j'ai tenté un second scan global.

Quelques temps après, j'apprenais que SCam32.exe constituait le virus W32/SirCam@MM, ce qui est peu éloquent mais tout de même une bonne hypothèse. Il est parfaitement plausible que le virus passe son temps à envoyer des e-mail à des addresses aléatoires. Cela provoque bien entendu un flot accru vers le serveur SMTP et il est même envisageable que cela soit à l'origine des deux pannes de connexion au cours de la semaine d'avant.

McAfee m'offrait de débarrasser le système du virus, ce que je fis bien entendu! Bon, restait à redémarrer et espérer que la suppression du fichier n'affecterait pas le fonctionnement du système. Le redémarrage se fit sans problème sauf que telle ne fut pas ma surprise lorsque je vis de nouveau le fichier sur le disque, comme si de rien n'était. J'ai tenté de le supprimer, croyant que McAfee ne l'avait pas fait, puis j'ai redémarré, il est revenu!

J'ai tenté de redémarrer en mode MS-DOS et de là, j'ai tapé cd \Windows\System puis dir scam32.exe, aucun fichier de ce nom! Après plusieurs recherches du fichier, rien. Je suis retourné dans Windows, il était toujours là, comme si de rien n'était! Là, je commençais à avoir un peu peur: est-ce que cela pouvait être un espèce de fichier fantôme ou un fichier virtuel? Comment trouver le véritable virus? Et s'il se trouvait crypté à l'intérieur du code exécutable d'amorce de Windows! Il était tard et il faudrait plus de temps pour enrayer l'anomalie... ou pour réinstaller Windows!

Je tentai un dernier essai: démarrer VShield qui ralentit la machine, voilà pourquoi il ne tourne pas en permanence. Le programme ne cessait de me dire que le virus était dans le fichier et lorsque je le supprimais, il revenait toujours!

J'en étais à l'hypothèse que SCam32.exe tournait comme service (à noter que la clé Driver32 revenait aussi après suppression.) et recréait son exécutable toutes les n unités de temps. Lors de la fermeture de Windows, le cossin changeait de nom et modifiait la Base de Registre pour refléter ce changement. Au démarrage, il redevenait SCam32.exe et le règne continuait. Windows est ainsi fait que n'importe quoi peut entrer dedans, j'aimerais tant qu'on passe tous à Linux!

Le lendemain matin, samedi le 22 septembre 2001, je suis revenu à la charge avec Norton Utilities 2001. Le CD pouvait contenir une version DOS d'un Éditeur de Registre qui me permettrait d'approfondir le problème. Il n'en fut rien et je dus tenter autre chose. Une disquette système ne contient rien non plus pour l'édition sous DOS du Registre, il faut absolument y penser avant et faire des sauvegardes régulièrement.

Je découvris finalement que SCam32.exe constituait un fichier caché, voilà pourquoi je ne le trouvais pas! Sous Windows, j'avais activé l'affichage de Tous les fichiers. Je retournai sous DOS et je tapai, dans C:\Windows\System, dir /A SCAM32.EXE. Il était là! Je le décachai avec attrib -h SCAM32.EXE puis la commande del SCAM32.EXE eut vite raison de lui. Mais lors du redémarrage de Windows, il réapparut!

Pas le choix, il allait falloir faire un scan sous DOS. La commande de scan ne se trouvait pas dans le répertoire du logiciel McAfee VirusScan, j'ai cru à ce moment que je ne pourrais le faire, qu'ils avaient seulement une version Windows! Toutefois, en regardant l'appel dans le fichier autoexec.bat, j'ai pu localiser scan et l'exécuter avec la commande scan /ADL /ALL /CLEAN. Mais c'était super long, cela ne finirait jamais.

L'anti-virus a de nouveau détecté SCam32.exe et l'a supprimé, fiou! Mais il a bloqué et ne cessait de loader dans le répertoire Temporary Internet Files. N'ayant pas l'intention de passer la journée là-dessus, j'ai interrompu l'opération et tenté un redémarrage, le fichier est revenu. J'ai effectué quelques tests pour savoir si le code responsable de la régénération ne pourrait pas se trouver dans le MBR, non, car sous DOS, le fichier ne se recréait jamais.

Je tentai de faire un scan des exécutables seulement, mais cela se bloqua à Temporary Internet Files une nouvelle fois. J'arrêtai tout, je lançai smartdrv, un ancien programme de cache utilisé sous DOS et encore disponible avec Windows dans des cas de figure comme celui-là. Le scan global put alors se faire plus rapidement et deux fichiers ont été déclarés infectés. Mais pas supprimés d'après ce que le programme me disait...

À tout hasard, m'attendant à peu, j'ai redémarré Windows pour constater avec désespoir qu'un fichier du nom de sirc32.exe manquait et était nécessaire pour exécuter des fichiers de type application! Le virus était probablement enrayé, mais plus rien ne pouvait démarrer, à présent! Pendant quelques secondes, je crus que l'Explorateur ne démarrerait même pas, mais il s'amorça et tenter d'exécuter regedit menait à une erreur! J'étais donc bloqué!

Je tentai finalement un coup audacieux: associer le type de fichier PAF à regedit, cela eut pour effet de faire démarrer l'éditeur, mais il cherchait à importer le fichier à l'extension .paf qui était vide, car créé pour l'occasion. La manoeuvre ne provoqua que des messages d'erreur et du désespoir, il fallait autre chose.

Il me fallut créer un programme C++ que je nommerais sirc32.exe et qui appellerait l'exécutable regedit. J'aurais alors accès au programme et je pourrais supprimer la connexion entre le shell et sirc32.exe, restaurant ainsi l'intégrité structurelle du système. Puisque la machine était hors d'usage à cause de l'effet secondaire de la suppression du virus, j'ai dû opérer sur mon autre machine, le Faucon de Fer. De plus, seule ma machine est munie du compilateur Windows adéquat.

Le fichier sirc32.cpp se lit comme suit.

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
                                        HINSTANCE hPrevInst,
                                        LPSTR lpCmdLine,
                                        int nCmdShow) {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;
        memset(&si, 0, sizeof(si));
        si.cb = sizeof(si);
        memset(&pi, 0, sizeof(pi));
        CreateProcess("C:\\Windows\\regedit.exe",
                NULL, NULL, NULL, TRUE, 0, NULL,
                NULL, &si, &pi);
        return 0;
}

Voici sa version compilée avec Microsoft Visual C++ 6, sirc32.exe.

Après avoir indiqué à Windows l'emplacement du fichier, le subterfuge a fonctionné: mon programme a démarré et a effectué sa tâche: démarrer de façon directe l'Éditeur de Registre! De là, je pourrais agir et enrayer l'anomalie. J'ai effectué une recherche de sirc32.exe pour le trouver dans la clé HKEY_CLASSES_ROOT\exefile\shell\open\command. Je suis allé voir sur ma machine Windows ME pour constater que cette clé existait! Si je l'avais supprimée complètement, j'aurais eu de gros ennuis. Je suis ensuite revenu sur la machine «malade» et j'ai supprimé la clé command, celle qui référait au fichier. Le système a alors retrouvé sa puissance nominale! Un redémarrage m'a confirmé le retour à la normale.

En chemin, lors de mon scan sous DOS, j'ai aussi déniché le virus PornDia17 qui s'est retiré facilement, heureusement!

Le virus SirCam est composé quant à lui de deux portions, le module fonctionnel et le module d'amorce. Le module d'amorce est invoqué chaque fois qu'un exécutable est appelé. Avant d'effectuer l'appel effectif, il va vérifier que le fichier SCam32.exe est bien sur la machine et si tel n'est pas le cas, va le recréer, ainsi qu'une clé dans la Base de Registre pour que le virus soit appelé comme service. Le module fonctionnel constitue le service système qui va se charger d'envoyer des courriels à des adresses aléatoires afin de propager le virus.

Enrayer le virus se fait par la suppression de C:\Recycled\sirc32.exe et C:\Windows\System\SCam32.exe possiblement en mode MS-DOS pour éviter la régénération. Au préalable, il faut copier le fichier inoffensif sirc32.exe se trouvant sur cette page. Lors du démarrage de Windows, on appuiera sur Escape pour annuler l'exécution des différents programmes. En effet, si on spécifie tout de suite l'emplacement du nouveau sirc32.exe, il apparaîtra autant d'instances de regedit qu'il y a de programmes à appeler!

De la commande Exécuter du menu Démarrer, il faut appeler regedit puis enfin spécifier l'emplacement de la version inoffensive du module d'amorce. Enfin, supprimer la clé command de tout à l'heure s'avérera nécessité puis tout devrait rentrer dans l'ordre. En dernier recours, bien que longue, la réinstallation de Windows solutionnera le problème.