Dépannage WordPress

Site WordPress piraté : que faire et comment le nettoyer

Site WordPress piraté ou hacké : les gestes immédiats, le nettoyage pas à pas, la restauration, la liste noire Google et quand appeler un pro.

Site WordPress piraté : que faire et comment le nettoyer

Site WordPress piraté : que faire, dans l’ordre

Un site WordPress piraté se traite en quatre temps : isoler le site, localiser l’infection dans les fichiers et la base, réinstaller le cœur, le thème et les extensions depuis des sources propres, puis changer tous les accès une seconde fois, une fois le site propre. Nettoyer sans avoir isolé le site ni coupé les accès laisse l’attaquant revenir pendant que vous travaillez. La FAQ officielle de WordPress (« My site was hacked », wordpress.org) décrit les mêmes étapes : documenter, scanner, prévenir l’hébergeur, réinitialiser les accès, sauvegarder, retirer le code malveillant, mettre à jour, puis changer à nouveau les mots de passe.

Si tu n’es pas encore sûr d’être piraté, commence par les signes qui ne trompent pas dans Mon site WordPress a-t-il été piraté ?, puis reviens ici.

Ce que couvre ce guide

Un matin, une recherche Google sur le nom de l’entreprise remonte des résultats en russe ou des liens vers des produits pharmaceutiques. Ou Chrome affiche un écran rouge d’avertissement avant même que la page ne charge. C’est le scénario type d’un WordPress hacké. Ce guide suit l’ordre d’une intervention : reconnaître le piratage, isoler, nettoyer, restaurer, sortir de la liste noire de Google, sécuriser, et décider si vous le faites vous-même ou si vous faites appel à un professionnel.

Prérequis

  • Accès à l’hébergement (FTP/SFTP ou gestionnaire de fichiers, voir aussi la connexion SSH sur Plesk si ton offre le permet)
  • Accès à la base de données (phpMyAdmin ou équivalent)
  • Une sauvegarde récente si elle existe (sinon, en créer une immédiatement, même du site infecté)
  • Accès admin WordPress (ou un moyen de le récupérer)
  • Un peu de temps calme : le nettoyage se fait méthodiquement, pas dans la précipitation

1. Reconnaître un site WordPress piraté

Un piratage ne se manifeste pas toujours par un écran noir avec un message de rançon. La plupart du temps, il est silencieux, justement pour durer. Un indicateur de compromission désigne un symptôme observable qui prouve l’intrusion : la FAQ de WordPress.org cite par exemple un site mis sur liste noire par Google ou Bing, un site désactivé par l’hébergeur, ou la création d’utilisateurs que personne n’a autorisée. Voici les signaux les plus fréquents :

  • Redirections inattendues : le site (ou certaines pages) redirige vers un domaine étranger.
  • Contenu spam invisible : des centaines de pages sur le viagra, le crédit ou des produits de contrefaçon, indexées par Google mais introuvables dans le menu du site.
  • Fichiers inconnus : des fichiers PHP aux noms bizarres (wp-cache.php, xmrpc.php à ne pas confondre avec xmlrpc.php, ou des noms aléatoires de 8 caractères) dans /wp-content/uploads/, /wp-content/themes/ ou à la racine.
  • Utilisateurs admin inconnus : un compte “administrator2” ou un compte avec un email suspect apparu dans Utilisateurs.
  • Ralentissement soudain ou pics de charge serveur inexpliqués (souvent lié à des scripts qui envoient du spam en masse ou minent des cryptomonnaies).
  • Alerte de l’hébergeur ou de Google Search Console signalant un “contenu piraté” ou un malware détecté.
  • Le navigateur affiche un avertissement de sécurité (Google Safe Browsing a blacklisté le domaine).

Si un seul de ces signes apparaît, n’attendez pas. Un site compromis continue de se dégrader et peut contaminer d’autres sites sur le même hébergement mutualisé.

Site WordPress piraté avec redirection

La redirection est le symptôme le plus déroutant, parce qu’elle ne se voit pas toujours depuis le poste de l’administrateur. Le premier fichier à ouvrir est .htaccess : la FAQ de WordPress.org le désigne comme l’un des fichiers les plus souvent modifiés quel que soit le type d’infection, et précise qu’il peut exister des copies dans plusieurs sous-dossiers. Le guide de Google sur le piratage par mots-clés masqués montre justement une règle RewriteRule ajoutée dans .htaccess pour envoyer les requêtes vers un fichier .php malveillant (web.dev, Google). Viennent ensuite index.php, header.php, footer.php et functions.php du thème, que la même FAQ cite parmi les cibles prioritaires parce qu’ils s’exécutent sur toutes les pages.

2. Isoler le site immédiatement

Avant de nettoyer, il faut limiter les dégâts. Google appelle cette étape la mise en quarantaine (Quarantine your site, web.dev).

  1. Mettre le site hors ligne pour qu’il cesse de servir du contenu malveillant. Google recommande de renvoyer un code HTTP 503 depuis un serveur sain (par exemple une page statique hébergée ailleurs), et précise qu’un simple blocage dans robots.txt ne bloque que les robots, pas les visiteurs. À défaut, une page de maintenance via .htaccess ou le panneau de l’hébergeur limite déjà la casse.
  2. Prévenir l’hébergeur : sur un hébergement mutualisé, l’attaque peut toucher d’autres sites du serveur, et l’hébergeur peut confirmer s’il s’agit d’un vrai piratage ou d’une panne.
  3. Changer tous les mots de passe : admin WordPress, FTP/SFTP, base de données, panneau d’hébergement, en suivant les recommandations publiques de l’ANSSI sur les mots de passe (source : ANSSI). Le piratage est presque toujours lié à un accès compromis quelque part.
  4. Déconnecter tout le monde : générez de nouvelles clés secrètes avec le générateur officiel de WordPress et remplacez celles de wp-config.php. La FAQ de WordPress.org précise que cela force la déconnexion de toute personne encore connectée.
  5. Sauvegarder l’état infecté avant toute modification (fichiers + base de données), pour pouvoir analyser ou revenir en arrière si le nettoyage se passe mal.
  6. Si le site est en mode maintenance bloqué de manière anormale suite à une mise à jour interrompue par le script malveillant, voir WordPress bloqué en maintenance.

Pensez aussi à scanner votre propre ordinateur : la FAQ de WordPress.org rappelle que l’infection commence souvent sur le poste local, par un cheval de Troie qui récupère les identifiants FTP ou /wp-admin.

3. Localiser l’infection dans les fichiers

C’est l’étape la plus technique. L’objectif : trouver le code injecté sans supprimer ce qui est légitime.

  • Comparer les fichiers du cœur WordPress, du thème et des plugins avec une installation propre téléchargée depuis WordPress.org. Tout fichier différent ou en trop mérite un examen.
  • Chercher les fonctions PHP typiques des malwares : eval(, base64_decode(, gzinflate(, str_rot13(, souvent combinées pour obfusquer le code injecté. L’injection figure en 5e position (A05:2025) du classement des risques applicatifs de l’OWASP, édition 2025 (source : OWASP Top 10).
  • Vérifier le fichier .htaccess : des règles de redirection ajoutées en bas du fichier sont un classique.
  • Regarder les dates de modification des fichiers (ls -la en SSH, ou tri par date en FTP) : un lot de fichiers modifiés à la même heure, hors des mises à jour connues, trahit l’intrusion.
  • Inspecter /wp-content/uploads/ pour des fichiers .php : ce dossier ne devrait contenir que des images, PDF et médias, jamais de PHP exécutable.
  • Lancer un scanner en complément, sans s’y fier seul : la FAQ de WordPress.org cite des extensions (Wordfence, Sucuri, Quttera, GOTMLS) et des scanners externes (VirusTotal, Sitecheck), et souligne qu’aucun ne suffit à lui seul.

4. Nettoyer la base de données

Le malware ne loge pas toujours dans les fichiers. Il s’installe souvent aussi en base :

  • Table wp_options : chercher des entrées suspectes dans siteurl, home ou des options ajoutées par un plugin inconnu.
  • Table wp_posts : rechercher du contenu spam caché (texte en blanc sur blanc, liens cachés en CSS display:none).
  • Table wp_users : supprimer tout compte administrateur non reconnu.
  • Rechercher des scripts injectés dans les widgets ou le contenu des articles via une requête SQL type SELECT * FROM wp_posts WHERE post_content LIKE '%base64_decode%'.

Si l’attaquant a pris votre compte administrateur, la FAQ de WordPress.org indique la parade : passer par phpMyAdmin (ou Adminer), modifier l’email du compte dans la table wp_users, puis utiliser « Mot de passe oublié » sur l’écran de connexion.

5. Nettoyer un WordPress piraté : réinstaller le cœur, les thèmes et les plugins

Une fois l’infection identifiée, la méthode la plus sûre reste souvent de repartir de fichiers propres :

  • Télécharger une version fraîche du cœur WordPress et remplacer entièrement /wp-admin et /wp-includes. La FAQ de WordPress.org insiste sur deux points : réinstaller la même version que celle du site (une autre version risque de le casser), et passer par FTP/SFTP plutôt que par le bouton « Réinstaller » de l’administration, parce que ces installeurs se contentent d’écraser les fichiers existants alors que le piratage ajoute souvent de nouveaux fichiers (source : WordPress.org).
  • Réinstaller les plugins et le thème depuis leurs sources officielles plutôt que de tenter de “réparer” des fichiers douteux.
  • Conserver uniquement /wp-content/uploads (après vérification qu’aucun .php ne s’y cache) et le fichier wp-config.php (après avoir régénéré les clés de sécurité).
  • Une fois propre, mettre à jour vers la dernière version de WordPress, puis changer les mots de passe une seconde fois : la FAQ de WordPress.org le demande explicitement, car les mots de passe changés pendant l’infection ont pu être interceptés.

6. Restauration d’un site WordPress piraté : sauvegarde ou réinstallation ?

Restaurer une sauvegarde est souvent le moyen le plus rapide de récupérer un site WordPress piraté, à une condition : qu’elle date d’avant le piratage. Google le rappelle dans son guide de nettoyage, qui recommande aussi, en cas de reconstruction, une installation propre plutôt qu’une simple mise à jour, car une mise à jour peut laisser en place des fichiers de la version précédente (Clean and maintain your site, web.dev). Sans sauvegarde, le même guide conseille de faire deux copies étiquetées « infectées » et de nettoyer une copie, jamais le serveur en production.

Certains cas ne valent pas la peine d’un nettoyage manuel :

SituationAction recommandée
Infection ancienne, plusieurs mois, non détectéeRéinstallation complète + restauration du contenu depuis une sauvegarde saine antérieure
Multiples backdoors dispersées dans tout le siteRéinstallation complète, plus rapide et plus fiable qu’un nettoyage exhaustif
Hébergement mutualisé avec d’autres sites infectésRéinstallation + changement d’hébergement ou isolation stricte
Site avec peu de contenu, peu de personnalisationRéinstallation propre plus rapide qu’un audit ligne par ligne
Site complexe, forte personnalisation, sauvegarde saine récenteNettoyage ciblé possible, avec audit complet ensuite

Une backdoor désigne un accès dissimulé laissé par l’attaquant pour revenir même après le nettoyage. Dans le doute, la réinstallation reste donc la solution la plus sûre : un nettoyage manuel en laisse facilement passer une.

7. Sortir de la liste noire de Google après le nettoyage

Un site nettoyé peut rester signalé comme dangereux tant que Google n’a pas réexaminé le site. Selon la FAQ de WordPress.org, Google met sur liste noire de l’ordre de 9 500 à 10 000 sites par jour (source : WordPress.org), et Bing ou les antivirus ont leurs propres listes.

La marche à suivre côté Google passe par le rapport sur les problèmes de sécurité de la Search Console :

  1. Ouvrir le rapport et noter le type de problème signalé (par exemple « Piratage : injection de code », « Piratage : injection de contenu » ou « Piratage : logiciel malveillant »).
  2. Corriger le problème sur toutes les pages concernées.
  3. Cliquer sur « Demander un examen », en décrivant le problème, les corrections faites et leurs résultats.
  4. Attendre la réponse sans renvoyer de demande : Google indique que la plupart des examens prennent plusieurs jours, voire plusieurs semaines, et envoie un email à la réception puis à la fin de l’examen.

8. Sécurité après piratage WordPress

Le nettoyage seul ne sert à rien si la faille d’origine n’est pas corrigée. Pour confier le diagnostic et le nettoyage à une équipe : nettoyage de site WordPress piraté. Pour la liste complète des vérifications, voir aussi la checklist sécurité WordPress après une faille.

  • Mettre à jour WordPress, thème et plugins vers leurs dernières versions. La documentation officielle rappelle que les anciennes versions ne reçoivent plus de correctifs de sécurité et que WordPress propose les mises à jour automatiques depuis la version 3.7 (Hardening WordPress, developer.wordpress.org). Pour le faire proprement : mettre à jour WordPress sans rien casser.
  • Désactiver l’éditeur de fichiers du tableau de bord avec define( 'DISALLOW_FILE_EDIT', true ); dans wp-config.php : la même page explique que cet éditeur est souvent le premier outil d’un attaquant connecté, puisqu’il permet d’exécuter du code.
  • Resserrer les droits des fichiers : la documentation donne la commande chmod 755 pour les dossiers et chmod 644 pour les fichiers, les valeurs qu’applique aussi WordPress lors d’une mise à jour automatique.
  • Supprimer les plugins et thèmes inutilisés, même désactivés : ils restent une surface d’attaque.
  • L’authentification à deux facteurs désigne l’ajout d’un second élément de preuve en plus du mot de passe : à activer sur tous les comptes administrateurs, en cohérence avec la page Multi-factor authentication de developer.wordpress.org.
  • Limiter les tentatives de connexion pour freiner les attaques par force brute.
  • Vérifier et durcir les directives PHP pour limiter l’exécution de scripts dans les dossiers d’upload.
  • Mettre en place une surveillance des fichiers : la documentation de durcissement rappelle qu’une attaque laisse toujours des traces, dans les journaux ou sur le système de fichiers. C’est précisément le rôle d’une maintenance non-négociable plutôt qu’une intervention ponctuelle après coup.
  • Vérifier la configuration SSL du site, un certificat expiré ou mal configuré peut aussi ouvrir la porte à des attaques de type man-in-the-middle : voir certificat SSL expiré.

Intervention sur un WordPress piraté : réparer soi-même ou faire appel à un expert ?

Réparer un site WordPress piraté soi-même est possible si vous êtes à l’aise avec FTP, phpMyAdmin et la lecture de PHP, et si vous disposez d’une sauvegarde saine. Le guide de Google sur les sites piratés présente d’ailleurs les deux voies, réparer soi-même ou faire appel à un professionnel (Help, I think I’ve been hacked, web.dev), et la FAQ de WordPress.org renvoie vers les forums communautaires « hacked » et « malware » pour une aide gratuite.

Faire appel à un expert WordPress pour nettoyer un site piraté devient raisonnable quand :

  • le site rapporte de l’argent (boutique, prise de rendez-vous) et chaque heure hors ligne coûte ;
  • le site est réinfecté après un premier nettoyage, signe qu’une backdoor ou la faille d’origine est restée ;
  • aucune sauvegarde antérieure au piratage n’existe ;
  • le domaine est sur liste noire et l’email de l’entreprise part en spam, la FAQ de WordPress.org signalant que les IP de serveurs abusés pour envoyer du spam finissent sur les listes noires d’email.

Avant d’appeler, préparez ce que la FAQ de WordPress.org appelle un rapport d’incident : ce que vous voyez, l’heure à laquelle vous l’avez remarqué (avec le fuseau horaire), les dernières actions faites sur le site (extension installée, thème modifié), et les détails de l’hébergement. Ce document fait gagner du temps à quiconque intervient.

Pièges courants

  • Nettoyer sans changer les mots de passe : le pirate revient par le même accès quelques jours plus tard.
  • Restaurer une sauvegarde déjà infectée sans vérifier sa date par rapport au début du piratage.
  • Oublier Google Search Console : même nettoyé, le site reste marqué “piraté” dans les résultats de recherche tant qu’une demande d’examen n’est pas soumise et acceptée.
  • Ne garder qu’un seul thème/plugin “propre” sans vérifier les autres : les malwares se propagent souvent à plusieurs endroits simultanément.
  • Négliger l’hébergement mutualisé : si un autre site sur le même serveur est infecté, la réinfection est probable sans isolation.
  • Réinstaller depuis le tableau de bord : le bouton de réinstallation écrase les fichiers existants mais laisse en place ceux que le pirate a ajoutés.

Un site piraté n’est jamais un incident isolé : c’est le symptôme d’un accès mal protégé ou d’une mise à jour négligée. Le nettoyage referme la plaie ; seule une surveillance régulière évite qu’elle ne se rouvre.

FAQ

Combien de temps faut-il pour nettoyer un site piraté ?

Cela dépend de l’ampleur de l’infection : quelques heures pour un cas simple avec une bonne sauvegarde, plusieurs jours pour une infection ancienne et dispersée nécessitant une réinstallation complète. Il faut ajouter le délai de réexamen par Google si le site est signalé : plusieurs jours, voire plusieurs semaines selon la Search Console.

Faut-il changer d'hébergeur après un piratage ?

Pas systématiquement, sauf si l’hébergement mutualisé a permis la contamination depuis un autre site, ou si l’hébergeur n’offre aucun outil de scan ou de restauration fiable. Pour déménager proprement : migrer son site WordPress vers un autre hébergeur, une fois le site nettoyé.

Un plugin de sécurité suffit-il à protéger durablement le site ?

Un plugin de sécurité aide à détecter, pas à prévenir seul. Les mises à jour régulières, les accès limités et une maintenance suivie restent les vraies barrières.

Comment savoir si Google a blacklisté le site ?

Vérifier dans Google Search Console le rapport « Problèmes de sécurité » : il indique le type de problème détecté (contenu piraté, logiciel malveillant, ingénierie sociale) et permet de demander un examen une fois le nettoyage terminé.

Mon site WordPress a été piraté, que faire en premier ?

Le mettre hors ligne ou en maintenance, et changer immédiatement les mots de passe de l’administration WordPress, de l’hébergement et de la base de données. Tant que le site reste exposé, l’attaquant garde la main et le nettoyage ne tient pas. Le diagnostic vient après, jamais avant.

Comment nettoyer un site WordPress piraté sans tout réinstaller ?

En comparant les fichiers du cœur avec une copie propre de la même version, en inspectant wp-content pour les fichiers PHP inconnus ou récemment modifiés, puis en cherchant dans la base de données les scripts et les utilisateurs administrateurs ajoutés. Si l’infection touche le thème ou un plugin, on le réinstalle depuis la source plutôt que de le réparer.

Faut-il réparer ou réinstaller un site WordPress hacké ?

Réinstaller le cœur, les thèmes et les extensions depuis les sources officielles est presque toujours plus sûr et plus rapide que réparer fichier par fichier. On ne conserve que wp-config.php, le dossier des médias et la base de données, après les avoir vérifiés. Réparer ne se justifie que si aucune sauvegarde saine antérieure au piratage n’existe.

Comment savoir si mon site WordPress a été piraté ?

Un compte administrateur inconnu, des fichiers modifiés à une date où personne n’a travaillé, des redirections vers des sites étrangers, un avertissement de Google dans les résultats ou dans Chrome, ou un pic de requêtes dans les journaux d’accès. Un seul de ces signes suffit pour lancer la procédure.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout, hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy