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)

14 avr. 2012

[snippet] Compter le nombre de pages imprimées grâce aux journaux d'évènements

Chaque impression faite vers une imprimante en passant par un serveur d'impression sous Windows Server créé un enregistrement dans le journal événement Système.
Il est donc possible, à partir de là, de compter le nombre de pages imprimées par utilisateurs du domaine, sur ce serveur d'impression.
Les impressions directes (qui ne passent pas par le serveur d'impression, comme les photocopies ou les imprimantes reliées directement à l'ordinateur) ne seront évidemment pas comptabilisées.

$start = date
Write-Host -NoNewline "Lecture du journal"
$data = Get-EventLog -ComputerName serveur-impression -LogName System -Source Print -InstanceId 1073741834
Write-Host " ($([int](date).Subtract($start).TotalSeconds)s)"
Write-Host "Calcul du résultat"
$data | ForEach-Object {
    $var = @{}
    $msg = $_.Message
    # on parse le contenu de message pour récupérer le login et le nombre de page
    $var.user = $msg.Substring($msg.IndexOf("possédé par")+12).Split(" ")[0].ToLower()
    $var.nb = $msg.Substring($msg.IndexOf("pages imprimées")+18)
    $res = New-Object PSObject -Property $var
    # on retourne un objet
    Write-Output $res
} | group-object user | foreach { # on regroupe toutes les impressions par utilisateur
    $var2 = @{}
    $var2.user = $_.Name
    # on fait le cumul des pages de l'utilisateur
    $var2.total = ($_.Group | measure-object nb -sum).Sum
    $res2 = New-Object PSObject -Property $var2
    Write-Output $res2
} | sort -Descending total
echo "Terminé en $([int](date).Subtract($start).TotalSeconds) sec"

Le script retourner une liste de couple "user,total" triée à partir du plus gros total de feuilles. Pour pouvez passer le résultat du sort directement vers un export-csv.

Attention : le traitement peut durer une dizaine de minutes selon le nombre d'impressions à traiter.

Note : veuillez à avoir une taille limite pour le journal d’événement assez élevée pour stocker assez d'enregistrements. Pour changer la taille, rendez-vous dans le gestionnaire d’événements, faites un clic-droit > Propriétés sur le journal Système et augmentez la taille. Une taille de 50 Mo suffit à stocker l'historique d'environ 10 à 50 000 impressions.

[Info] Touches de raccourci principales de Windows, Explorateur, Office et navigateurs...

Maitrise du clavier : il est important de connaître la plupart des raccourcis clavier, au moins les raccourcis génériques de Windows et des raccourcis standards des applications.
Il faut savoir que 99% des fonctions que l’on peut appeler avec une souris, on peut le faire avec le clavier seul.


Raccourci
Fonction
Application
Touches de fonction
F1
Aide
Toutes les applications
F2
Renommer l’élément sélectionné, édite la cellule sous Excel
Sur un fichier, cellule Excel
F3
Rechercher
Explorateur, Office, zone html
F4
Déroule le menu déroulant qui possède le focus, parfois accéder à la barre d’adresse
Explorateur, certains navigateurs
F5
Rafraichir
Explorateur, navigateurs
F6
Accéder à la barre d’adresse
Explorateur < Vista, navigateurs
Equivalent à tabulation
Explorateur > Vista
F7
Correcteur orthographique
Traitement de texte
Touches de manipulation des boîtes de dialogue
Alt+F4
Fermer la fenêtre active
Toutes les fenêtres
Échap
Fermer la fenêtre ou menu actif
Tous les menus, les fenêtres modales
Annuler l’opération en cours
Certaines applications
Entrée
Active le bouton par défaut
Tous les boutons par défaut
Alt+Espace
Affiche un menu contextuel de contrôle de la fenêtre courante
Toutes les fenêtres
Touches de manipulation des menus et des contrôles
Tab
Passe au contrôle suivant
Tous les contrôles
Shift+Tab
Passe au contrôle précédent
Tous les contrôles
Espace
Active le contrôle qui possède le focus
Tous les contrôles
Coche/décoche la boîte à cocher ou le bouton radio, ou appuie sur le bouton qui a le focus
Tous les contrôles
Gauche, Droite, Haut, Bas
Navigation dans le menu déroulant ouvert
Menu déroulant
Shift+F10
Affiche le menu contextuel (clic droit)
Toutes les fenêtres
Alt+Lettre
Affiche le menu déroulant correspondant à la lettre souligné dans le menu
Tous les menus déroulants
Entrée
Exécute l’élément sélectionné dans le menu déroulant ouvert
Tous les menus déroulants
Gauche
Développe le nœud courant d'une treeview
Treeview
Droite
Réduit le nœud courant d'une treeview
Treeview
Touches de manipulation des zones de saisie
Ctrl+A
Sélectionner tout le texte ou les éléments
Explorateur, zones de saisie
Ctrl+C
Copier la sélection
Explorateur, zones de saisie
Ctrl+X
Couper la sélection
Explorateur, zones de saisie
Ctrl+V
Coller la sélection
Explorateur, zones de saisie
Ctrl+Z
Annuler la dernière opération
Zones de saisie, certaines applications
Ctrl+Gauche /Droite/Haut/Bas
Déplacer le curseur d’un mot complet
Zones de saisie
Shift+Gauche /Droite/Haut/Bas
Ajouter à la sélection, l’élément ou le caractère à gauche ou à droite respectivement
Explorateur, zones de saisie
Ctrl+Shift+Gauche /Droite/Haut/Bas
Ajouter à la sélection, l’élément ou le caractère à gauche ou à droite respectivement
Explorateur, zones de saisie
Ctrl+Lâché de clic
Copier l’élément plutôt que le déplacer
Explorateur, zones de saisie riche
Shift+Lâché de clic
Déplacer l’élément plutôt que le copier
Explorateur, zones de saisie riche
Alt+Numéro
Affiche un caractère spécial, où le numéro est son code décimal
Zone de saisie
Ctrl+Shift+=
Met en exposant la sélection
Office
Ctrl+Shift++
Met en indice la sélection
Office
Ctrl+I
Met en italique la sélection
Traitement de texte
Ctrl+B
Met en gras la sélection
Traitement de texte
Ctrl+U
Souligne la sélection
Traitement de texte
Tab
Insert une tabulation
Zones de saisie
Shift+Tab
Retire une tabulation
Zones de saisie riche
Inser
Inverser le mode de frappe (par remplacement ou par insertion)
Zones de saisie
Ctrl+F
Rechercher dans le texte
Explorateur, Office, navigateurs
Touches de manipulation du bureau et des tâches
Windows
Affiche le menu démarrer
Windows
Ctrl+Échap
Alt+Tab
Passe à la fenêtre suivante
Windows
Shift+Alt+Tab
Passe à la fenêtre précédente
Windows
Alt+Échap
Affiche à la fenêtre suivante
Windows
Alt+Shift+Échap
Affiche à la fenêtre précédente
Windows
Windows+Tab
Passe à la fenêtre suivante avec un effet graphique
> Vista
Windows+Shift+Tab
Passe à la fenêtre précédente avec un effet graphique
> Vista
Windows+D
Affiche le bureau ou restore toutes les fenêtres
Windows
Windows+E
Explorer (lance l’explorateur)
Windows
Windows+F
Find (Rechercher dans Windows)
Windows
Ctrl+Windows+F
Find (Rechercher des ordinateurs)
Windows
Windows+L
Logoff (verrouille la session)
> Vista
Windows+M
Masque toutes les fenêtres
Windows
Windows+R
Run (Exécuter)
Windows
Windows+T
Affichage des miniatures de la barre de tâche
> Vista
Windows+U
Utilitaires
Windows
Windows+X
Mobilité
Windows sur portable
Windows+chiffre non pavé numérique
Sélectionne la Nème application de la barre de tâche
> Vista
Windows+Gauche /Droite/Haut/Bas
Déplace la fenêtre active contre le bord
> Vista
Ctrl+Shift+Échap
Affiche le gestionnaire de tâche
Windows
Ctrl+Alt+Suppr
Affiche un menu
> XP
Affiche le gestionnaire de tâche
< XP
Windows+Pause
Affiche les propriétés du système
Windows
Shift droite 8 sec
Désactive les filtres d'accessibilité
Windows
Alt+Shift
Change de clavier (Azerty <=> Qwerty)
Windows
Alt Gr+Shift
Shift+Insérer un CD
Ignore la lecture automatique du CD/clé USB
Windows
Touches de manipulation de l’écran
Imprim écran
Met dans le presse-papier une image instantanée tout l'écran
Windows
Alt+Imprim écran
Met dans le presse-papier une image instantanée de la fenêtre active seulement
Windows
Shift+Alt+Imprim écran
Changer le contraste
> Vista
Alt+Gauche /Droite/Haut/Bas
Rotation de l’écran pour les pilotes graphique Intel®
Windows
Windows+P
Projeter l’écran sur la sortie vidéo
> Vista
Touches de manipulation des navigateurs
Ctrl+T
Ouvrir un nouvel onglet
Navigateurs
Ctrl+Snift+T
Restaurer le dernier onglet fermé
Navigateurs
Ctrl+W
Fermer l’onglet courant
Navigateurs
Ctrl+Tab
Passer à l’onglet suivant
Navigateurs, MSN
Ctrl+Shift+Tab
Passer à l’onglet précédent
Navigateurs, MSN
Ctrl+F
Rechercher dans le texte
Office, navigateurs
‘ (apostrophe)
Rechercher
Firefox
Retour
Affiche la page précédente ou dossier supérieur
Explorateur, navigateurs
Alt+Gauche
Alt+Droite
Affiche la page suivante ou dossier précédent
Explorateur, navigateurs
Ctrl+F4
Ferme l’onglet ou document courant
Applications MDI, navigateurs
Touches de manipulation de l'explorateur de Windows
F2
Renommer l’élément sélectionné
Sur un fichier, cellule Excel
F3
Rechercher
Explorateur, Office, zone html
F4
Déroule le menu déroulant qui possède le focus
Explorateur, certains navigateurs
F5
Rafraichir
Explorateur, navigateurs
F6
Accéder à la barre d’adresse
Explorateur < Vista, navigateurs
Equivalent à tabulation
Explorateur > Vista
Ctrl+A
Sélectionner tout le texte ou les éléments
Explorateur, zones de saisie
Ctrl+C
Copier la sélection
Explorateur, zones de saisie
Ctrl+X
Couper la sélection
Explorateur, zones de saisie
Ctrl+V
Coller la sélection
Explorateur, zones de saisie
Ctrl+Z
Annuler la dernière opération
Zones de saisie, certaines applications
Ctrl+F
Rechercher un fichier
Explorateur, Office, navigateurs
Shift+Suppr
Effacer les éléments sélectionnés sans passer par la corbeille
Explorateur
Alt+Entrée
Affiche les propriétés de l’élément sélectionné
Explorateur
Retour
Affiche la page précédente ou dossier supérieur
Explorateur, navigateurs
Ctrl+Gauche /Droite/Haut/Bas
Déplacer le focus d’un élément, sans perdre la sélection actuelle
Explorateur, listes
Shift+Gauche /Droite/Haut/Bas
Ajouter à la sélection, l’élément ou le caractère à gauche ou à droite respectivement
Explorateur, zones de saisie
Ctrl+Shift+Gauche /Droite/Haut/Bas
Ajouter à la sélection, l’élément ou le caractère à gauche ou à droite respectivement
Explorateur, zones de saisie
Ctrl+Lâché de clic
Copier l’élément plutôt que le déplacer
Explorateur, zones de saisie riche
Shift+Lâché de clic
Déplacer l’élément plutôt que le copier
Explorateur, zones de saisie riche
Ctrl+Shift+Lâché de clic
Créé un raccourci plutôt que de déplacer
Explorateur
Alt+Lâché de clic
Touches de manipulation diverses
Alt+Entrée
Passer en plein écran
Windows Media Player
Ctrl+K
Choix de couleur
IRC, MSN
Ctrl+F4
Ferme l’onglet ou document courant
Applications MDI, navigateurs
Espace
Met en pause la lecture
Lecteurs multimédia


Il faut retenir ceci :
- Échap a toujours une notion d'annulation, fermeture
- Shift associé à une combinaison de touche change l'ordre
- Shift sert également à ajouter à la sélection, ou à déplacer plutôt que copier lors de glisser/déposer
- Ctrl sert souvent à sauter des lignes d'éléments ou des mots dans du texte, ou à copier plutôt que déplacer lors de glisser/déposer
- Espace s'applique toujours au contrôle qui possède le focus
- Entrée ne s'applique pas toujours au contrôle qui possède le focus, mais à l'élément par défaut
- Tab sert à se déplacer (de fenêtre, de contrôle, d'onglet...)
- Tous les contrôles Listview, Treeview... sont manipulables par les flèches

Note : de la même manière, on peut faire quasiment tout ce qu’on peut avec un clavier, mais avec la souris seule. Il existe un clavier virtuel sous Windows accessible dans le menu Accessibilité du menu démarrer, ou Exécuter osk.exe.