20 avr. 2012

[how to] Localiser et se débarasser d'un processus malveillant

... lorsque l'on a pas d'antivirus (car on sait que ça ne sert bien souvent à pas grand chose), parce qu'il ne le détecte pas, que le SpyBot & Destroy n'est pas magique non plus, HiJackthis dépend des connaissances de l'utilisateur...
Redémarrer avec la dernière bonne configuration connue ne corrige pas le problème...

Symptômes classiques
On se pose la question d'un virus/trojan car on remarque des signes troublants, comme :
- des pages web qui s'ouvrent toutes seules
- le fond d'écran du bureau change tout seul
- accès refusé au gestionnaire de tâches
- accès refusé à l'éditeur de registre
- le PC est ralenti ou "gratte" tout le temps
- on a des messages d'erreurs inhabituels
- une nouvelle icône en trayicon
- des icônes ont changées
- de nouveaux programmes se lancent au démarrage
- un antivirus qui sort on ne sait où nous demande de sortir notre carte bleue
- ...

Le but de ce tuto n'est pas de réparer vos fichiers infectés (utilisez un antivirus), mais de nettoyer votre système de processus malveillants.


Vous avez des écrans bleus ?
Je vous conseille d'utiliser WhoCrashed (logiciel gratuit pour XP/Vista/Seven) pour analyser vos crashdump (veuillez à ce qu'ils soient activés). Il vous donnera le nom du fichier qui a causé le BSOD. S'il s'agit d'un problème matériel (ce qui est souvent le cas), retirez/remplacez ce périphérique et vérifiez que le système est devenu stable, et ce tuto ne vous est pas destiné.


Trouver le processus malveillant
Pour localiser le processus en question, il faut généralement afficher le gestionnaire de tâche. Mais dans le cas où il est bloqué ou on ne voit pas le processus car il utilise un nom commun, affichez la colonne PATH (sous Vista et Seven uniquement).
Je conseille alors d'utiliser Process Explorer (de sysinternals), logiciel gratuit et portable XP/Vista/Seven. Il vous permettra de lister tous les processus de manière arborescente.
Pour chaque processus, on obtient service(s)/tâche(s) associé(s), l'utilisation CPU précise, ses threads ainsi que son adresse dans la pile (et peut les détruire), ses graphes d'utilisations CPU et I/O, ses connexions réseaux...
On peut également localiser un processus en pointant le viseur vers une fenêtre, où on recherchant un fichier chargé ou ouvert par un processus.
Il peut afficher une utilisation générale du CPU, mémoire et I/O disque. On peut également définir (depuis menu Options) d'utiliser Process Explorer comme gestionnaire de tâche par défaut. Son seul défaut est de ne pas distinguer rapidement les processus 32 (marqué par un *32 dans le gestionnaire de tâches) des processus 64 bits pour les systèmes 64 bits : il faut aller dans les propriétés et lire la valeur Image: 32-bit dans l'onglet Image.
Conseil : lancez Process Explorer en tant qu'Administrateur.

Une fois que vous savez manipuler Process Explorer, je vous suggère de vérifier les processus lancés, d'abord à la recherche d'un processus gourmand, généralement à plus de 10% CPU. Si le processus incriminé est SYSTEM, alors le problème n'est peut être pas lié à un processus, mais au noyau de Windows, comme par exemple trop d'accès disque, ou un driver bogué.
Avant d'effectuer votre recherche, redémarrez votre PC (pour avoir un fresh boot) fermez le plus de programmes que vous pouvez.
Dans votre recherche du processus malveillant recherchez un processus :
- ayant un nom qui ait l'air généré aléatoirement (souvent imprononçable)
- dont l'extension n'est pas un .exe (mais .tmp par exemple)
- dont le service associé n'appartient pas à Microsoft ou vous est inconnu
- dont le nom de fichier ressemble ou est identique à un autre processus de Windows mais avec un chemin différent (svchost.exe s'occupe d'héberger des services Windows, il est donc normal qu'il apparaisse plusieurs fois).
- qui revient systématiquement après l'avoir détruit
- qui s'est ajouté récemment au démarrage visible sous msconfig.exe


Exemple : le virus semble avoir remplacé wininit.exe ou winlogon.exe
La suppression de ces fichiers entraînera un dysfonctionnement de Windows. Il est plus judicieux de remplacer ces fichiers par leur copie originale. Récupérez le fichier original de la même version de Windows, et remplacez le fichier actuel en passant par un LiveCD (voir plus bas pour la méthode).
En effet, wininit.exe est le processus qui initialise Windows (puis se ferme sous XP, reste sous Seven), quant à winlogon.exe est exécuté à l'ouverture de session. Si le fichier n'existe pas ou est invalide, votre session sera immédiatement fermé après avoir essayé de l'ouvrir.
Vous pouvez également essayer de faire une réparation des fichiers systèmes avec la commande sfc /scannow (également disponible offline depuis un CD de réparation).


Problème de bande passante ?
Si l'utilisation du réseau est un symptôme, je vous conseils d'abord de tester votre bande passante en téléchargent cet iso factice. Vérifiez que vous êtes tout seul sur votre réseau et si le débit affiché est très en deçà du débit annoncé par la connexion, il y a peut être un processus qui utilise le réseau. Si vous pouvez, faites le même test depuis un autre PC, après avoir déconnecté le PC suspecté pour comparer les résultats.
Je préconise d'utiliser tcpview (de sysinternals), logiciel portable et gratuit pour XP/Vista/Seven, mieux que la commande netstat, permet d'afficher toutes les connexions en cours, ainsi que le processus et PID associé, et le débit de cette connexion. On peut fermer une connexion ou détruire un processus.
Tcpview est indispensable pour localiser le processus qui utilise une grosse partie de la bande passante, il suffit de trier sur la colonne débit. Attention cependant, la plupart des processus malveillant n'utilisent qu'une petite partie de la bande passante :
- soit le processus ouvre un port sur votre machine, ce qui créé une faille de sécurité si le pare-feu est désactivé et que votre PC est dans une DMZ (ce processus est alors un Trojan/Backdoor, votre PC devient zombie d'un Botnet)
- soit le processus s'est connecté à un serveur (souvent IRC port 6667 à 7000) pour recevoir des ordres (ce processus est alors un Trojan/Backdoor, votre PC devient zombie d'un Botnet)
- soit le processus s'est connecté à des sites malveillants afin de télécharger d'autres "virus" (ce processus est alors un TrojanDownloader)
- soit le processus s'est connecté à des serveurs de messageries (souvent SMTP port 25) pour envoyer des spams (votre PC est alors zombie d'un Botnet) ou d'envoyer des copies du virus à d'autres personnes (ce processus est un virus à réplication par messagerie)
- soit le processus s'est connecté à des serveurs web (souvent HTTP port 80) pour afficher des publicités (ce processus est un ad-ware)
Vous avez localisé le processus qui possède ces connexions. Il vous suffit de le détruire puis de supprimer l'exécutable.


Vous hésitez entre deux processus ?
Il n'est pas improbable que les deux soient des processus malveillants. Néanmoins il est peu probable que vous soyez le premier infecté par cette menace, faites scanner en ligne votre fichier par des multi-anvirus gratuit tels que jotti.org et virustotal (le temps d'attente peut être élevé).
Et pour finir vérifiez si le nom du processus est un processus connu sur file.net. N'effacez pas un fichier système de Windows sinon vous aurez à la réparer via le CD d'origine : ayez toujours le réflexe de renommer plutôt que de supprimer, cela neutralise tout autant le virus.
Aidez-vous du rapport de HiJackThis et postez le sur hijackthis.de pour déterminer les processus inconnus.
Parfois le processus qui pose problème est un fichier système de Windows ou d'une application tiers, qui n'est pas du toute malveillante mais qui réagit mal sur votre PC. Désinstallez l'application tiers ou désactivez le service Windows. Essayez une restauration de Windows.


Le processus est impossible à détruire ou il revient systématiquement ?
Je vous conseille d'essayer de le supprimer il y a fort à parier qu'il reviendra au prochain redémarrage du PC, et de le désactiver dans le démarrage de Windows a souvent peu d'effet. Pour cela il y a deux solutions :
- Utiliser KillBox ou IOBit Unlocker pour demander un suppression au redémarrage.
- Redémarrer avec un LiveCD Linux (ou en mode récupération avec un CD d'install d'XP).

=> Avec Killbox(logiciel gratuit portable sous XP), localisez le fichier (ou processus) à détruire. Il y a une option pour demander d'effectuer la suppression au redémarrage de Windows. Cette option ajoute une opération de FilePending dans la base de registre. Au redémarrage de Windows le fichier sera supprimé. Si le processus est récalcitrant, il peut détecter cette modification du registre et la supprimer (KillBox vous avertira : "Pending file rename operation registry data has been removed by external process"), comme le fait PendMoves (de sysinternals) dans ce cas utilisez un LiveCD.
=> Avec IOBit Unlocker (logiciel gratuit pour XP/Vista/Seven). Glissez déposez le fichier que vous souhaitez détruire, et il vous indique qui utilise ce fichier, et va forcer la fermeture de ces processus pour libérer le fichier.
Si vous n'avez pas la possibilité du glisser/déposer (par exemple vous ne voyez pas le fichier car il a ajouté une routine dans le noyau pour se cacher), utilisez la PendMoves.
=> Avec un LiveCD Linux ayant un support du NTFS en écriture, si votre système est dessus. Bootez sur le CD (configurez dans le BIOS l'ordre de boot pour ne pas booter sur le disque), puis lancez Linux. Montez la partition Windows et supprimez le(s) fichier(s). Redémarrez normalement sous Windows.
=> Avec le mode récupération de Windows XP, vous pouvez naviguer en ligne de commande dans les répertoires et supprimer les fichiers incriminés avec la commande del.


Après la suppression du fichier
Vérifiez qu'il n'y a aucune autre occurrence du fichier, notamment dans system32/dllcache. Supprimez les entrées invalides dans le démarrage de Windows pour éviter d'avoir des messages d'erreur.
Mettez à jour systématiquement et très rapidement le plugin Flash, votre version de JAVA et votre lecteur de fichier PDF qui récoltent la palme des failles de sécurité.
Mettez à jour votre navigateur (que ce soit Internet Explorer, Firefox, Chrome, Safari, Opera), aucun n'est infaillibles et sont une source de virus.
Essayez de découvrir comment vous avez attrapé ce virus (par Internet, dans un logiciel cracké, dans une clé USB, dans un MP3 vérolé...), vous ferez plus attention la prochaine fois.
Désactivez les autorun (ils sont désactivé par défaut depuis une mise à jour de Windows Update, d'où l'utilité de garder Windows à jour). Si vous avez peur, installez un vrai antivirus et maintenu à jour (gratuit ou payant n'a pas beaucoup d'importance). Activez le pare-feu et retirez vous de la DMZ.


Le problème persiste
- parfois un ou deux redémarrage sont nécessaires...
- vous n'avez pas supprimé le bon fichier (recommencez)
- le virus a réussi a se restaurer par lui-même (un formatage est en vu)
- vous n'avez pas supprimé tous les fichiers concernés (recommencez)
- vous aviez deux virus distincts (ça arrive ! recommencez)