Hacking WordPress ou comment supprimer le trojan de son blog

J’en avais parlé rapidement lors d’un précédent article. Ce blog avait été touché par un virus/trojan qui tourne pas mal en ce moment et qui le rend inaccessible les blogs WordPress avec des erreurs php/mysql.

Ma configuration est réparée, et si cela peut aider certaines autres personnes bloquées à cause de ce trojan, tant mieux. N’hésitez pas à faire tourner ce post.

Quelle sont ces erreurs WordPress ?

Bien souvent, vous rencontrerez une erreur qui ressemblera à :

Warning: Cannot modify header information – headers already sent by (output started at /homez.22/www/blog/wp-content/themes/[votre-theme]/functions.php:19) in /homez.22/www/blog/wp-includes/pluggable.php on line 671

ou encore

Warning: Cannot modify header information – headers already sent by (output started at /homez.43/www/blog/wp-config.php:2) in /homez.43/www/blog/wp-includes/pluggable.php on line 850

Si vous analysez le code de ce fichier PHP pluggable.php
Vous vous rendrez vite compte qu’il y a un code Javascript qui s’est ajouté en bas de ce fichier. Ni une, ni deux, hop vous le supprimez.
Oui, mais voilà, pas folle la guêpe, ce trojan est bel et bien installé car vous avez une seconde erreur dans un autre fichier

Warning: array_keys() [function.array-keys]: The first argument should be an array in /homez.43/www/blog/wp-includes/widgets.php on line 1843

En gros, pour rétablir votre site, il faudra supprimer ce code de chacun des fichiers présents sur votre site (soit plus de 200/250 fichiers php/javascript), impensable donc.

Ce trojan est-il préjudiciable pour mon blog WordPress ?

Et oui, car il faut faire vite. Ce virus est détecté par les moteurs de recherche, et par conséquent votre site / blog sera considéré comme malveillant et vous risquez de prendre une sacré claque sur vos positions et votre trafic (et éventuellement votre business).

Comment supprimer le virus / trojan de mon blog wordpress ?

Plusieurs étapes sont nécessaires pour supprimer entièrement ce virus qui risque de revenir facilement si vous n’appliquez pas l’ensemble de ces recommandations.

1) Sauvegarde de votre base de données et des fichiers vitaux

Commencez par aller sur PHPMyAdmin et exportez votre base de données pour être sûrs de récupérer l’ensemble de vos contenus.

2) Exporter ensuite les dossiers importants de WordPress :

- /wp-content/themes
- /wp-content/plugins
- /wp-content/upload

Vous ne perdrez ainsi aucun médias (images, vidéos, podcast) et vous conserverez votre thème préalablement optimisé pour le référencement ;-)

3) Exporter les fichiers vitaux de WordPress :

- le fichier wp-config.php pour ne pas avoir à réinstaller votre configuration wordpress
- le fichier robots.txt
- le fichier .htaccess

4) Nettoyer vos tables et supprimer votre base de données :

Cette étape pourrait paraître facultative pour certains d’entre vous, mais sachez que lors de la première récupération, je ne l’avais pas fait et j’ai retrouvé le virus au même endroit.
Mieux vaut donc être prudent.
- nettoyer donc vos tables
- puis supprimer votre base de données.


5) Récréer une nouvelle base de données :

Hébergé chez OVH, j’ai donc recréer ma base sur leur interface, peut importe le moyen que vous utiliserez, il faudra recréer une nouvelle base (avec un nouveau nom si possible).


6) Réinstallation de votre site ou blog :

Une fois que toutes ces étapes seront terminées, il ne vous restera plus qu’à réinstaller votre blog ou site en téléchargeant la dernière version de WordPress.
- télécharger la dernière version à l’adresse suivante =>http://fr.wordpress.org/
- installer là avec le nom de votre nouvelle base de données
- importer votre fichier wp-config.php (sauvegardé plus haut) avec votre FTP. Pensez à vérifier qu’il n’y a pas le code javascript dans les dernières lignes de ce fichier.
Si vous utilisez FileZilla, pensez à faire attention. Ce conseil est indiqué en bas d’article dans le paragraphe « Quelques conseils qui pourront s’avérer utiles »

Votre blog est donc réinstallé, mais aucun article n’est affiché, ne vous inquiétez pas, il nous reste encore des petites étapes.


7) Importation de votre base de données et des fichiers annexes :

Nous arrivons bientôt à la fin de ce tutoriel pour supprimer le trojan / virus de votre WordPress.
- importer votre base de données préalablement sauvegardée plus haut.
A ce stade, vos articles devraient être tous récupérer.

- importer ensuite les dossiers que nous avons sauvegardés plus haut :
- /wp-content/themes
- /wp-content/upload

Mais vous allez me dire ? Tiens il n’y a pas le dossier /wp-content/plugins
C’est normal, en ce qui concerne les plugins, vous n’allez pas analyser chaque fichier .php ou .js pour supprimer le code javascript qui a fait planter votre blog / site.

Le mieux est donc de :
- retélécharger l’ensemble des plugins.
C’est pour cela que nous avons sauvegardé ce dossier. Pour n’en oublier aucun.
L’intérêt de les télécharger réside également dans le fait de disposer de la dernière version mise à jour.


Quelques conseils qui pourront s’avérer utile

- si vous utiliser FileZilla, changez de logiciel FTP. J’ai lu sur le web que les mots de passe étaient enregistrés dans un fichier en .txt qu’il n’était pas compliqué de cracker.
- changer tous vos mots de passe (base de données / connexion à votre hébergeur / mot de passe ftp / mot de passe blog / site)
- pensez à faire les mises à jour de votre WordPress et des plugins. S’il existe des mises à jour, c’est pour améliorer la sécurité de cette plateforme, alors évitons de donner des portes d’entrées aux trojans.
- vérifiez un fichier sur lequel vous avez un doute avec le très bon site Virus Total

Cette procédure peut sembler longue, mais c’est un virus qui est particulièrement bien fait et tous les antivirus ne le voient pas.
En espérant que ce billet en aura aidé certains. N’hésitez pas à le faire tourner  ;-) .


Et vous vous avez déjà rencontrer ce problème ? Quelle a été la solution que vous avez trouvé ?

16 Réactions

  1. Merci pour tout ces conseils, il est vrai que la sécurité de son site sous WP est primordiale.

  2. Bonjour,
    Tout d’abord félicitations pour votre article très détaillée. Je me pose la question suivante.
    En suivant la procédure de sauvegarde de certains fichiers en local, n’encourt t’on pas le risque d’infecter l’ordinateur?
    Merci d’avance

  3. Quand j’ai commencé à lire l’article, je pensais à la façon dont vous présentez ces grand sujet. Par la façon dont pourraient vous s’il vous plaît l’article sur le sujet après plus de tel? Je l’apprécie vraiment

  4. Marvelous job! The comprehensive data delivered was great. I hope that you keep on the excellent job done.

  5. problème (que des lecteurs m’ont signalé), ce qui m’interpelle en premie

  6. Bonjour,
    Très interessant ce post, cependant une question me vient a l’esprit.
    Ayant apparemment le même problème (que des lecteurs m’ont signalé), ce qui m’interpelle en premier c’est qu’en passant par Google mon site est considéré comme fiable (jusqu’ici tout va bien donc).
    Ce tutoriel est facile a comprendre, car je dois avouer de très grosses lacunes dans le domaine informatique, mais je vais en venir a ma question:
    Si je nettois ma base de données, je perdrai donc mes stats ? Merci de me repondre assez rapidement, que ce soit ici ou sur mon mail: striclyhiphopmag@gmail.com

  7. Bonjour,

    J’ai mon blog hébergé par blogvie.com (une antenne wordpress). Mon hacker a fait mieux, il a supprimer une bonne partie de mes posts (plus de la moitié !) .

    J’avais fait l’erreur d’enregistrer mon mot de passe dans lefirefox browser. Plus jamais ça et je n’ai eu aucun (zéro) soutien du helpdesk blogvie ….

  8. En faisant une recherche sur google pour les termes
    « VIRUS WORDPRESS » mon tuto arrive en 2ème place,
    c’est dommage que vous ne l’ayez pas trouvé avant……
    Bon bref, passons…
    Je voulais rajouter ceci pour la protection du blog wordpress:

    - Utiliser ces permissions CHMOD : 755 pour les répertoires et 644 pour les fichiers

    - Changer le préfixe de la base de donnée du blog lors de son installation ( de base c’est wp_ donc le changer par exemple par truc_)

    - et un tuto pour le backup de la base de donnée http://www.reussirenfin.fr/wordpress/backup-base-de-donnee-wordpress/

    Voilà ,bon courage à tous ( car c’est vraiment la galère au début)

    Franck

  9. @Franck :

    Source ? Si seulement je m’en étais servi, cela aurait été avec plaisir ;-)

    Cependant, et avec un peu de logique :
    - nous traitons du même sujet
    - il semble évident de retrouver des mots du genre « WordPress, htaccess »

    Si je ne m’étais pas fait chier à tout remettre en place + écrire l’article je vous aurai fait un lien pour le plaisir.

    Par conséquent, merci de votre demande mais il semble logique qu’elle soit oubliée.

    Si jamais vous trouvez un article similaire sur Wikipédia, n’hésitez pas à les contacter (bien que le lien soit en no-follow).

    Cordialement.

  10. Bonjour,

    J’ai un tuto à ce sujet ICI http://www.reussirenfin.fr/wordpress/effacer-virus-wordpress/

    Il ressemble étrangement au mien alors merci de me citer en tant que source.
    Merci.

  11. J’avais eu un problème similaire et Kaspersky n’avait pas réussit à m’aider, j’ai utilisé a squared et il a tout neutralisé, un must !

  12. Bon article qui pourrait facilement se résumer par ces deux expressions suivantes : « formater » et « réinstaller WordPress »

  13. @Julien Rideaud @rafik othmane : merci pour vos précisions.

    C’est vrai qu’un formatage peut être nécessaire.
    En ce qui concerne FileZilla, merci de me confirmer qu’il est donc facile de récupérer les mots de passe enregistrés dans un fichier xml (et non txt du coup)

  14. Le plus important c’est

    1) désactiver javascript dans adobe acrobat reader (car la faille vient surtout de là)

    2) Changer tous les mots de passes FTP des sites enregistrés dans filezilla.

    3) Ne plus mémoriser ses mots de passes dans filezilla (enregistrez vos sites en sélectionnant « demander un mot de passe », ne gardez pas le mode de connexion « normal » sélectionné par défaut car les mots de passes sont enregistrés dans un petit xml et en clair (passoir).

    4) eviter avast qui a toujours un train de retard sur les mise à jour de virus. Prenez un bon antivirus payant comme kapiersky.

    Rafik
    http://www.trafik-consulting.com

    Le Trojan ne fait rien de bien méchant à part continuer à subtiliser les mdp ftp de plus en plus de personnes.

  15. J’ai aussi été infecté par ce trojan il y a quelque temps…
    La procédure que tu décris est vraiment celle a adopter. En revanche le mieux est carrément de ne plus mémoriser ses mots de passe dans le client FTP plutôt que d’en choisir un autre .
    Le virus se trouvant dans le PC il est aussi fortement recommandé d’effectuer un formatage complet pour que cela ne se reproduise pas.
    Si jamais le site a été détecté par Google comme site infecté et donc inaccessible, il suffit d’aller sur: http://www.google.fr/webmasters/ puis de demander une analyse des programmes malveillants. Le site est de nouveau accessible dans les SERP en 24 ou 48 heures maxi. (après avoir supprimé le trojan bien sur)

Je veux réagir à cet article et donner mon avis