Site WordPress piraté : comment réparer son site facilement après une attaque

Si votre site WordPress a été piraté, suivez ces étapes simples pour réparer votre site. Nous allons nous aider du plugin gratuit Wordfence. Pensez ensuite à renforcer la sécurité de votre site pour éviter un nouveau piratage.

Croyez en mon expérience, si vous gérez un site sous WordPress, il est probable qu’un jour vous soyez confronté à un piratage de votre site.

Avec 810 millions de sites internet dans le monde, WordPress est en effet une cible de choix pour les pirates, qui recherchent la moindre faille de sécurité.

Je vous livre ci-dessous les étapes que je suis en cas de piratage d’un de mes sites. Pas d’inquiétude, un piratage d’un site WordPress ne fait jamais plaisir, mais la situation n’est pas aussi dramatique qu’elle n’y paraît.

Identifier les signes d’un piratage d’un site WordPress

Certains signes doivent alerter sur le fait que votre site WordPress a été piraté par des hackers. Ces signes sont généralement :

  • des redirections automatiques de vos visiteurs vers d’autres sites
  • des alertes de votre navigateur ou antivirus quand vous consultez votre site
  • des changements de contenus de votre site, sans que vous en soyez à l’initiative
  • de nouveaux utilisateurs inconnus créés dans l’interface WordPress (généralement avec des droits administrateurs)
  • des messages d’avertissement par Google dans la présentation de votre site sur le moteur de recherche

Voici par exemple comment je me suis aperçu d’un piratage sur l’un de mes sites. En consultant un article de mon site, mon antivirus m’a bloqué l’accès et indiqué la notification de phishing ci-dessous. Cela a tout de suite attiré mon attention. En effet, je venais de faire un test depuis un autre navigateur où je n’étais pas connecté à l’interface d’administration de mon site. L’adresse mentionnée par mon antivirus n’était pas celle de mon site, preuve que mon site était victime d’une redirection à mon insu. Mais en me connectant sur l’interface d’administration du site, rien de particulier à signaler. Le malware installé par les pirates était suffisamment avancé pour ne pas faire la redirection pour un utilisateur connecté, afin d’éviter d’attirer l’attention des gestionnaires du site.

Une redirection vers un site malveillant est souvent le signe d'un piratage de WordPress.
Un exemple de site WordPress piraté : le site renvoie automatiquement le visiteur vers des sites malveillants bloqué par une solution antivirus

Une fois mon diagnostic de piratage établi, voici les étapes que j’ai suivies pour récupérer et réparer mon site WordPress piraté.

Comment réparer un site WordPress piraté

1. Faire une sauvegarde du site

Avant de commencer la réparation du site, je réalise une sauvegarde par précaution. En effet, réparer le site WordPress piraté va nécessiter de modifier, supprimer et réinstaller de nombreux fichiers du site. Il vaut mieux pouvoir retrouver un fichier si besoin.

Faites votre sauvegarde avec votre outil habituel (Updraft, BlogVault, outil de sauvegarde de votre hébergeur, etc.)

Par contre, je déconseille de rétablir une sauvegarde antérieure afin de résoudre le problème de piratage. En effet, nous ne pouvons pas être sûr que le malware n’était pas déjà présent dans la sauvegarde que l’on restaure. Restaurer une sauvegarde antérieure ne ferait donc que repousser le problème à plus tard.

2. Activer le mode maintenance

Si vous avez beaucoup de trafic sur votre site, vous voudrez peut-être faire en sorte que vos visiteurs ne voient pas que votre site WordPress a été piraté. Cela les protègera aussi de l’attaque recherchée par le hacker.

Pour se faire, j’utilise le plugin Coming soon page & maintenance afin d’activer facilement le mode maintenance.

Les visiteurs tomberont sur une page signalant que le site est actuellement en maintenance, ce qui va nous laisser un peu de temps pour procéder à la réparation du site WordPress.

3. Identifier et supprimer les backdoors et les malwares avec le plugin Wordfence

Pour pirater un site WordPress, les hackers ont réussi à rajouter des portions de code malveillantes dans les fichiers de WordPress, et/ou les thèmes, et/ou les plugins.

Il est donc impératif de supprimer toutes ces backdoors qui ont été ajoutées dans vos fichiers, pour revenir aux fichiers d’origine.

Pour nettoyer un site WordPress piraté, je vous recommande le plugin Wordfence. La version gratuite de Wordfence dispose des signatures avec un délai de 30j par rapport à la version payante du plugin, ce qui est largement suffisant pour la majorité des sites selon moi.

Il suffit d’installer le plugin, et de créer un compte en donnant une adresse mail. Rendez-vous ensuite dans l’option de scan, pour lancer un scan des fichiers. Comme le site WordPress est déjà piraté, je recommande d’activer ici l’option de scan la plus complète de Wordfence.

Wordfence va scanner l’ensemble des fichiers et nousdonner une liste de tous les fichiers présentant des portions de code malveillantes. Il s’agit :

  • fichiers qui ne sont pas d’origine dans WordPress ou les plugins installés : dans ce cas, vous pouvez le supprimer directement depuis Wordfence
  • fichiers existants de WordPress ou d’un plugin, mais avec des portions de code ajoutées par rapport aux fichiers originaux : dans ce cas, vous pouvez visualiser les différences avec le fichier d’origine, et réparer automatiquement le fichier depuis Wordfence (le plugin vous proposera de faire une sauvegarde du fichier avant de procéder à la réparation)
  • éventuellement, du code malveillant identifié directement dans le fichier wp-config.php : dans ce cas, vous ne pourrez pas le réparer depuis Wordfence. Pour rappel, ce fichier est vital pour le fonctionnement de WordPress, puisqu’il comporte notamment les réglages de votre hébergement web. Il vous faudra éditer manuellement le fichier pour le nettoyer via votre FTP. Téléchargez le fichier sur votre PC avec le client FTP, ouvrez-le dans un éditeur texte comme Notepad++, supprimez la portion de code suspecte mentionnée par Wordfence, enregistrez le fichier, et envoyez-le à nouveau sur votre serveur FTP en remplacement du fichier actuel.

Ci-dessous quelques exemples de résultats de Wordfence que j’ai pu constater en réparant mon site :

Exemple d'un fichier détecté par Wordfence comme ajouté : dans ce cas, le fichier peut être supprimé depuis Wordfence
Exemple d’un fichier détecté par Wordfence comme ne faisant pas partie des fichiers originaux de WordPress ou des plugins : dans ce cas, le fichier peut être supprimé depuis Wordfence.
Exemple d'un fichier détecté par Wordfence comme modifé : dans ce cas, il est possible de visualiser les différences avec le fichier d'origine, puis de réparer le fichier de Wordfence
Exemple d’un fichier détecté par Wordfence et modifié par rapport au fichier original : dans ce cas, il est possible de visualiser les différences avec le fichier d’origine, puis de réparer le fichier de Wordfence
Exemple de visualisation de différences avec le fichier d'origine dans Wordfence
Exemple de visualisation de différences avec le fichier d’origine dans Wordfence (ici, le pirate a rajouté une portion de code directement en début de fichier)
Exemple de détection par Wordfence de modification dans le fichier wp-config.php de WordPress
Exemple de détection par Wordfence de modification dans le fichier wp-config.php de WordPress. Dans ce cas, le fichier doit être corrigé manuellement par FTP, Wordfence ne peut pas le corriger compte-tenue que ce fichier est structurant pour le site.

3bis. Restaurer manuellement les fichiers d’origine (optionnel)

Si vous n’êtes pas à l’aise avec Wordfence, il est possible de procéder manuellement pour restaurer tous les fichiers de WordPress, des plugins et thèmes. Cette méthode me semble cependant plus fastidieuse.

Voici néanmoins la marche à suivre :

  • On commence par réinstaller WordPress : depuis le panneau administrateur > mise à jour > réinstaller la dernière version de WordPress
  • Pour les plugins : on supprime chaque plugin un par un, puis on réinstalle chaque plugin un par un. Vous voudrez peut-être faire des copies d’écran de certains écrans de réglages avant de supprimer un plugin, pour vous faciliter la tâche après réinstallation du plugin
  • Pour les thèmes : procéder de même
  • Vérifier le fichier wp-config.php, par rapport à un modèle de fichier wp-config.php de l’installation originale de WordPress.

4. Vérifier la base de données du site

Wordfence ne scanne malheureusement pas la base de données, uniquement les fichiers.

Pourtant, des scripts malveillants ont aussi pu être injectés dans la base de données.

Si le thème propose des options de personnalisation de code, ou en cas d’utilisation de plugins d’ajouts de code, il est possible d’aller vérifier dans ces paramètres depuis l’interface d’administration de WordPress.

Par exemple, sur l’un de mes sites, les pirates y avaient injectés un Javascript malveillant qui continuait à rediriger les visiteurs vers d’autres sites :

Un script malveillant peut aussi être injecté en base de données.
Exemple d’un script malveillant qui était aussi injecté en base de données, dans un champ d’exécution de code javascript personnalisé proposé par le thème graphique.

Après vérification, j’ai voulu aller voir aussi de plus près dans la base de données. En effet, il est recommandé de porter une attention particulière à ces portions de code :

  • iFrames : code commençant par <iframe
  • base64 : code commençant par base64_decode
  • eval() : code commençant par eval(
  • scripts: code commençant par <script

Néanmoins, une telle portion de code présente en base de données n’est pas forcément malveillante, et peut être tout à faire légitime. Donc cela demande une analyse plus poussée.

Pour scanner ma base de données, le plus simple selon moi est d’utiliser le plugin Threat Scans. Il recherchera en effet les 4 portions de code évoquées précédemment et vous donnera les résultats. Le plugin nous donne alors la liste des éventuels codes avec de tels portions, et il est ensuite possible de se faire une idée sur la légitimité de ces portions de code (par exemple un plugin de sauvegarde).

5. Supprimer tous les utilisateurs administrateurs inconnus

Le plugin Wordfence détecte également si des utilisateurs existants du site ont été créés de manière extérieure à WordPress.

Sur mon site WordPress piraté, je voyais dans la liste des utilisateurs un administrateur complètement inconnu. Wordfence me l’avait d’ailleurs détecté dans son scan.

Il convient alors de supprimer ces utilisateurs administrateurs non connus.

6. Modifier tous les mots de passe

Après avoir nettoyé les fichiers et la base de données d’un site WordPress piraté, je procède à la modification de tous les mots de passe :

  • mot de passe de chaque utilisateur
  • mot de passe de la base de données : ce mot de passe est en effet stocké en clair dans le fichier wp-config.php de WordPress. Si votre site a été piraté, ce mot de passe est compromis. Pour le modifier, il faut le faire depuis l’hébergement web, en trouvant « l’utilisateur de base de données » utilisé par le site, en changeant son mot de passe depuis l’hébergement web, puis en mettant à jour le nouveau mot de passe dans le fichier wp-config.php via FTP. Gardez à l’esprit qu’une fois le mot de passe base de données modifié sur l’hébergement web, le site WordPress ne répondra plus tant que vous n’avez pas mis à jour le fichier wp-config avec le nouveau mot de passe.
  • mot de passe FTP : de la même façon, ce mot de passe se change depuis l’interface de l’hébergement web du site

7. Modifier les clés SALT de WordPress

Pour conserver une session en tant qu’utilisateur duvotre site, WordPress utilise des cookies. Les clés SALT sont utilisées par WordPress pour « chiffrer » le mot de passe dans le cookie et ainsi protéger le mot de passe.

Ces clés SALT figurent dans le fichier wp-config.php. Donc de la même façon que le mot de passe de base de données, les clés SALT peuvent aussi être compromises.

Pour changer ces clés SALT, je recommande d’utiliser le plugin Salt Shaker qui est le plus simple pour réaliser cette opération.

8. Désactiver le mode maintenance

Après rétablissement du site, le mode de maintenance peut être désactivé.

9. Vérifier que le site n’est pas blacklisté par les éditeurs de sécurité

Dernière étape : certains éditeurs de sécurité informatiques ont pu considérer le site WordPress piraté comme dangereux, et inclure donc son adresse web dans leur listes de sites malveillants.

C’est problématique car le site risque alors de perdre de nombreux visiteurs, du fait du message d’avertissement de la part de leur antivirus en se rendant sur votre site.

Pour vérifier cela, j’utilise le scanner d’URL de Sucuri. Il donne un état des lieux du site sur les principaux moteurs de recherche et éditeurs de solutions de sécurité informatique (Google, Sucuri, Eset, McAfee notamment)).

Scanner d'URL de Sucuri pour vérifier si le site est blacklisté par des éditeurs de sécurité informatique.
Sucuri propose un scanner d’URL permettant de voir si le site a été blacklisté par certains éditeurs de sécurité du fait du piratage.

Mon site avait été tagué comme à risque par Norton. Après quelques recherches, j’ai trouvé sur un forum la marche à suivre vis à vis de cet éditeur. J’ai alors ouvert un ticket (en anglais) auprès de l’éditeur, afin de lui signifier que mon site avait fait l’objet d’une attaque et qu’il était désormais rétabli. Quelques temps après, j’ai reçu une confirmation de prise en compte et de modification du classement du site.

FAQ

Comment sécuriser son site web WordPress ?

Les bonnes pratiques suivantes permettent de limiter le risque de piratage d’un site WordPress:

  • Utiliser un plugin de sécurité pour améliorer la configuration de base de WordPress et ainsi réduire la surface d’attaque du site. Je recommande All In One Security, car ce plugin est facilement compréhensible, en français.
  • Installer toutes les mises à jours de WordPress, plugins, et thèmes, dès leurs sorties. J’utilise le plugin gratuit Easy Updates Manager pour automatiser ces mises à jours sur mes sites.
  • Supprimer tous les plugins et thèmes non utilisés
  • Utiliser le plugin Wordfence (voir plus haut) dans sa version gratuite, pour bénéficier d’un scan quotidien de vos fichiers. Je laisse Wordfence me faire un scan quotidien sur chacun de mes sites. Wordfence indique également si certains plugins présentent des vulnérabilités connues, ou semblent abandonnés (absence de mise à jour depuis longtemps). En cas d’anomalie détectée par Wordfence, je reçois un mail d’alerte qui me permet de réagir rapidement.
  • Utiliser un mot de passe robuste et unique pour tous les utilisateurs (un bon gestionnaire de mots de passe peut aider)
  • Faire des sauvegardes fréquemment. Par exemple utiliser le plugin UpdraftPlus, du même éditeur que All In One Security.
  • Modifier périodiquement les clés SALT de WordPress, avec le plugin Salt Checker (voir plus haut).

Comment s’appelle le piratage d’un site web ?

Le piratage d’un site web est également appelé cyberattaque ou intrusion. Il consiste à accéder et à manipuler sans autorisation des informations d’un site web. Ce piratage peut prendre diverses formes, allant du simple « vandalisme » visuel à la récupération de données sensibles ou l’implantation de codes malveillants.

Les hackers utilisent différentes techniques et outils pour exploiter des faiblesses ou des vulnérabilités dans le code source du site web, parfois avec l’objectif de détourner le trafic vers un autre site.

Ces actes sont illégaux et peuvent entraîner des dommages plus ou moins importants, pouvant aller jusqu’à la perte de données à une dégradation de la réputation du site ou de la marque. Il est donc important pour les éditeurs de sites web de mettre en place des mesures de sécurité pour limiter ce risque.

Article mis à jour en février 2024 (initialement publié en janvier 2023)

Photo à la une : image générée par IA

Kevin
Kevin
Fondateur et rédacteur de ce blog. Je suis un enthousiaste des nouvelles technologies et partage ici des conseils sur la high-tech au travers de guides d'achat, tests de produits et tutoriels.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici