Aller au contenu
Vous pensez être piraté en ce moment ?Piraté en ce moment ? Diagnostic gratuit, réponse immédiate au téléphone — 07 51 13 37 69
Fiche pratique

Mon site WordPress a été piraté : que faire, dans l'ordre

Un site qui redirige vers une boutique inconnue, des centaines de pages en japonais dans Google, un message rouge dans le navigateur : voici la marche à suivre, de la mise à l'abri au nettoyage, puis la vraie question — par où est-il entré.

Partager

↑ Ce conseil fait partie du guide : Piratage d'une entreprise : obligations et réflexes

Que faire quand son site WordPress est piraté ?

Coupez d'abord l'accès : changez le mot de passe administrateur, celui du FTP et celui de la base de données. Faites ensuite une copie complète du site infecté, elle servira de preuve. Nettoyez seulement après, en réinstallant le cœur de WordPress et les extensions depuis les sources officielles, jamais en corrigeant fichier par fichier.

Comment savoir si son site WordPress est piraté

Un site compromis prévient rarement. Les signes qui reviennent, du plus visible au plus discret :

  • La redirection. Le site s'ouvre normalement depuis votre ordinateur, mais renvoie vers une boutique de contrefaçon ou un faux support technique depuis un téléphone, ou uniquement quand on arrive depuis Google. C'est volontaire : le code teste l'adresse IP et le référent pour épargner l'administrateur le plus longtemps possible.
  • Les pages fantômes dans Google. Tapez site:votredomaine.fr dans le moteur de recherche. Si des centaines d'adresses en japonais, en russe, ou autour de mots comme « pharmacie » ou « casino » apparaissent, le serveur héberge une ferme de spam depuis des semaines.
  • Un compte administrateur que personne ne connaît dans Utilisateurs, souvent créé à une heure improbable, avec une adresse mail jetable.
  • Le message du navigateur : « Le site que vous allez visiter contient des programmes malveillants ». Chrome et Firefox le tirent de la liste Google Safe Browsing.
  • L'hébergeur qui écrit pour signaler des envois massifs de courrier électronique depuis votre compte, ou qui suspend le site sans prévenir.
  • Des fichiers récents que vous n'avez pas déposés : un wp-content/uploads/2019/07/ qui contient un fichier .php alors qu'un dossier d'envois ne devrait contenir que des images.

Un site simplement lent, ou une page blanche après une mise à jour, ne sont pas des signes d'intrusion : c'est neuf fois sur dix un conflit d'extensions ou une limite de mémoire PHP.

Les six gestes des deux premières heures

  1. Ne supprimez rien. Le premier réflexe — effacer le fichier suspect — détruit la seule piste qui dit comment le pirate est entré. Sans elle, il revient la semaine suivante.
  2. Faites une copie complète : tous les fichiers par FTP ou SFTP, plus un export de la base de données. C'est à la fois votre preuve, votre filet de sécurité et, si besoin, la pièce jointe d'une plainte.
  3. Changez les trois mots de passe, dans cet ordre : le compte d'hébergement, l'accès FTP/SSH, puis l'utilisateur de la base de données (en reportant le nouveau dans wp-config.php). Le mot de passe administrateur de WordPress vient après : seul, il ne sert à rien si le pirate a accès aux fichiers.
  4. Renouvelez les clés de sécurité (les lignes AUTH_KEY et suivantes de wp-config.php). Ça déconnecte instantanément toutes les sessions ouvertes, y compris celles du pirate.
  5. Passez le site en maintenance plutôt que de le laisser en ligne. Chaque heure de redirection active abîme un peu plus votre référencement et expose vos visiteurs.
  6. Prévenez l'hébergeur. Il a les journaux d'accès, souvent sur trente jours, et il peut restaurer une sauvegarde antérieure. C'est votre meilleure source d'information et c'est gratuit.
Le piège de la restauration seule

Restaurer la sauvegarde de la veille remet le site en état et remet la faille. Si vous ne savez pas par où il est entré, le site est réinfecté en quelques heures — parfois en quelques minutes, parce que les robots gardent l'adresse en mémoire. La restauration est une étape, jamais la solution.

Illustration : une fenêtre de navigateur au trait sur fond sombre
Dans neuf cas sur dix, l'entrée n'est pas WordPress lui-même mais une extension oubliée.

Constater les dégâts : où regarder exactement

Quatre endroits, dans l'ordre. Ils suffisent à établir l'ampleur sans outil payant.

  1. La liste des utilisateurs (Comptes, puis Tous les comptes). Repérez les administrateurs. Un site de TPE en a rarement plus de deux.
  2. Les fichiers modifiés récemment. Par SSH, find . -type f -mtime -14 -name "*.php" liste les fichiers PHP touchés dans les quatorze derniers jours. Sans SSH, le gestionnaire de fichiers de l'hébergeur trie par date. Les intrus se concentrent dans wp-content/uploads, wp-includes et à la racine.
  3. Les tâches planifiées. Une entrée de cron qui réinstalle le code malveillant toutes les heures est la raison la plus fréquente d'un site « nettoyé » qui repart le lendemain.
  4. La base de données. Cherchez <script et eval( dans la table des options et dans celle des articles. Une injection dans l'option siteurl suffit à rediriger tout le site.

Notez ce que vous trouvez sur une feuille, avec les dates. C'est ce document qui vous dira, à la fin, si le nettoyage est complet — et c'est aussi ce que réclame l'assurance si vous en avez une.

Nettoyer : l'ordre qui marche, et ce qui ne sert à rien

La méthode fiable ne consiste pas à traquer le code malveillant ligne par ligne. Elle consiste à remplacer tout ce qui peut l'être par une version propre, et à n'inspecter à la main que le reste.

  1. Remplacez le cœur de WordPress. Téléchargez la version courante depuis le site officiel et écrasez wp-admin et wp-includes en entier. Ces deux dossiers ne contiennent jamais rien qui vous appartienne.
  2. Réinstallez chaque extension et le thème depuis leur source officielle — pas depuis une sauvegarde, qui peut déjà être infectée. Supprimez purement et simplement les extensions désactivées : un code désactivé reste exécutable par une adresse directe.
  3. Inspectez ce qui reste : la racine, wp-config.php, .htaccess, et le dossier des envois. Tout fichier .php dans uploads est à supprimer, sans exception.
  4. Nettoyez la base : comptes inconnus, articles et options injectés, redirections.
  5. Renouvelez encore les clés de sécurité après le nettoyage, et changez tous les mots de passe des comptes restants.

Ce qui ne sert à rien, et qu'on voit systématiquement : installer une extension de sécurité après l'infection en espérant qu'elle nettoie ; changer uniquement le mot de passe administrateur ; masquer l'adresse de connexion ; passer un antivirus sur son propre ordinateur en croyant que ça touche le serveur. Un faux message d'alerte affiché sur votre site n'est pas non plus un virus sur votre machine.

Par où il est entré : les quatre portes, par fréquence

Sur les sites que je reprends, l'entrée est presque toujours l'une de ces quatre-là. Dans cet ordre :

  1. Une extension ou un thème non mis à jour. C'est de très loin la première cause. Une faille publiée est exploitée dans les heures qui suivent par des robots qui balaient le web entier. L'extension abandonnée par son auteur est le pire cas : il n'y aura jamais de correctif.
  2. Un thème ou une extension « nulled », c'est-à-dire une version payante récupérée gratuitement. La porte dérobée est dans le paquet, dès l'installation. C'est le seul cas où l'infection est là avant même la première visite.
  3. Un mot de passe faible ou réutilisé. Les robots essaient des listes d'identifiants issues de fuites connues. Si votre mot de passe d'administration traîne dans une fuite, aucune mise à jour ne vous protège — c'est le sujet de la fuite d'adresse mail.
  4. Le poste de travail de l'administrateur. Un logiciel espion sur l'ordinateur récupère les identifiants FTP enregistrés dans le logiciel de transfert, en clair dans un fichier de configuration. Voir détecter un logiciel espion.

Les journaux d'accès de l'hébergeur tranchent en général la question en dix minutes : on cherche la première requête anormale vers le fichier suspect, et on regarde ce qui l'a précédée.

Réparer l'effet Google : Search Console et pages de spam

Le nettoyage technique ne suffit pas : tant que Google garde en mémoire des milliers de pages de spam à votre nom, le site reste pénalisé, et le message d'avertissement reste affiché aux visiteurs.

  1. Ouvrez la Search Console et lisez « Problèmes de sécurité ». Le message y indique le type de compromission détecté et parfois une adresse d'exemple.
  2. Demandez un examen une fois le nettoyage terminé, en décrivant en trois lignes ce que vous avez fait. La réponse arrive généralement sous quelques jours.
  3. Faites disparaître les pages injectées : elles doivent renvoyer une erreur 410 ou 404, pas une redirection vers l'accueil. L'outil de suppression d'URL de la Search Console masque les plus visibles en attendant que le moteur repasse.
  4. Vérifiez le fichier robots.txt et le plan de site : les intrusions les modifient souvent pour faire indexer leurs pages plus vite.

Comptez de quelques jours à trois semaines pour que tout redescende. Le trafic, lui, met souvent un à deux mois à retrouver son niveau.

Refermer pour de bon : les réglages qui tiennent

  • Les mises à jour automatiques du cœur, des extensions et du thème. Le risque d'une mise à jour qui casse une page est réel ; il est très inférieur au risque d'une faille laissée ouverte trois mois.
  • Moins d'extensions. Chaque extension est une porte. Celles qui ne servent plus se désinstallent, elles ne se désactivent pas.
  • La double authentification sur les comptes administrateurs, par application ou par clé physique. C'est le réglage qui annule l'effet d'un mot de passe fuité : comment ça marche.
  • Un seul vrai administrateur. Les autres comptes passent en éditeur ou en auteur. Un compte compromis ne donne alors accès à rien d'installable.
  • Des sauvegardes hors du serveur, testées. Une sauvegarde stockée sur le même hébergement disparaît avec lui — c'est le sujet de la sauvegarde d'une petite entreprise.
  • Interdire l'exécution de PHP dans le dossier des envois, par une règle dans .htaccess. Ce seul réglage neutralise la majorité des portes dérobées déposées.

Ces six points sont le minimum. La méthode complète — version de PHP, rôles, limitation des tentatives de connexion, pare-feu, scan hebdomadaire, droits sur les fichiers — est détaillée réglage par réglage dans comment sécuriser un site WordPress.

Quand il vaut mieux tout reconstruire

Reconstruire à neuf, ce n'est pas un aveu d'échec : c'est souvent moins cher. Les trois cas où je le recommande sans hésiter :

  • L'infection date de plus de quelques mois et le site tourne sur une version de PHP abandonnée. Il n'y a plus de version propre à laquelle revenir.
  • Le thème a été modifié à la main par plusieurs prestataires successifs : impossible de distinguer une bricole légitime d'une porte dérobée.
  • Le site repart deux fois après un nettoyage soigneux. Quelque chose échappe au périmètre inspecté, souvent en dehors de WordPress lui-même (un autre site sur le même compte d'hébergement, mutualisé, qui réinfecte le voisin).

Dans les deux derniers cas, on repart d'une installation neuve, on réimporte uniquement les contenus — articles, pages, images vérifiées — et on remet les redirections. C'est une journée de travail, et on sait enfin ce qu'il y a sur le serveur.

Si vous êtes en Sarthe et que le site fait vivre l'activité, je peux faire le constat et le nettoyage à distance : le déroulé est décrit sur comment ça se passe, et les tarifs sont sur la page tarifs. Le diagnostic au téléphone de quinze minutes ne coûte rien et suffit souvent à savoir s'il s'agit d'une intrusion ou d'une panne.

Le vocabulaire, en clair

Les pages d'aide supposent le vocabulaire connu. Voici les huit mots qui reviennent dans toutes les procédures, traduits.

  • CMS : le système qui fabrique les pages. WordPress en est un.
  • Plugin, ou extension : un module qu'on ajoute pour une fonction — formulaire, boutique, cache. C'est la première porte d'entrée des pirates.
  • Thème : l'habillage. Il contient du code exécutable, donc il se met à jour comme un plugin.
  • Admin : le compte qui peut tout installer et tout désactiver. Il n'en faut qu'un ou deux.
  • Malware : le terme générique pour un code malveillant. Sur un site, il prend presque toujours la forme d'un script PHP déposé dans un dossier.
  • Backdoor, ou porte dérobée : un petit script qui permet de revenir même après un nettoyage. C'est lui qu'on cherche, pas le symptôme.
  • .htaccess : un fichier de configuration du serveur, à la racine. Une seule ligne ajoutée dedans suffit à rediriger tout le site.
  • SSL / HTTPS : le certificat qui chiffre la liaison entre le visiteur et le serveur. Il protège le trajet, jamais le contenu du site — un site piraté en HTTPS reste un site piraté.

Le scanner de malware : ce qu'il trouve, ce qu'il rate

Un scanner compare les fichiers du site à des signatures connues et repère les anomalies : code encodé, fichier PHP dans un dossier d'images, fichier du cœur modifié. C'est utile, rapide, et souvent gratuit en version de base. Mais il faut savoir ce qu'il ne voit pas.

  • Il rate une porte dérobée écrite proprement, qui ressemble à du code légitime et n'utilise aucune fonction signalée.
  • Il rate ce qui est dans la base de données si le scan ne porte que sur les fichiers : une redirection injectée dans une option ou dans un article passe inaperçue.
  • Il rate la tâche planifiée qui réinstalle le script toutes les heures.
  • Il signale des faux positifs sur les thèmes commerciaux, qui utilisent souvent du code compressé pour des raisons légitimes. Supprimer sans vérifier casse le site.

La bonne façon de s'en servir : lancer le scan avant le nettoyage pour cartographier, puis après pour vérifier — et ne jamais considérer un scan propre comme une preuve que le site l'est. La preuve, c'est de savoir par où le pirate est entré.

Un dernier outil gratuit et sous-estimé : téléchargez la même version de WordPress et du thème depuis leur source officielle, et comparez les dossiers avec un outil de comparaison de fichiers. Tout ce qui diffère est soit une modification que vous avez faite, soit le problème.

Remettre le site en ligne : les réglages à vérifier

Une fois le nettoyage terminé, cinq points à contrôler avant de rouvrir, dans cet ordre :

  1. Le nom de domaine et les enregistrements DNS. Certaines intrusions ajoutent un sous-domaine qui héberge les pages de spam. Vérifiez la zone chez votre registraire et supprimez ce que vous ne reconnaissez pas.
  2. Le certificat SSL : le site doit s'ouvrir en HTTPS sans avertissement, et les URL internes doivent toutes pointer en HTTPS (le réglage de l'adresse du site, dans les Réglages généraux, se corrige manuellement si besoin).
  3. Le fichier .htaccess : remettez-en un propre, régénéré par WordPress en réenregistrant les permaliens, puis rajoutez uniquement vos règles connues.
  4. Les comptes et les rôles : un seul administrateur, les autres en éditeur ou en auteur, et le compte nommé « admin » supprimé au profit d'un nom d'utilisateur qui ne se devine pas.
  5. Les mises à jour : cœur, plugins et thème à la dernière version, et installation automatique activée. Un site propre mais pas à jour est réinfecté dans le mois.

Enfin, refaites une sauvegarde complète après le nettoyage, et conservez à part la copie de l'état infecté : c'est votre point de comparaison si quelque chose repart.

Nettoyer la base de données : phpMyAdmin, pas à pas

C'est l'étape que les tutoriels sautent, et c'est celle qui fait revenir un site « nettoyé ». Une redirection injectée dans la base survit à un remplacement complet des fichiers.

  1. Ouvrez phpMyAdmin depuis l'espace client de votre hébergeur, et sélectionnez la base du site (son nom figure dans wp-config.php, ligne DB_NAME).
  2. Exportez d'abord la base entière (onglet Exporter, méthode rapide, format SQL). Tout ce qui suit se fait avec ce filet.
  3. Vérifiez la table des options. Les deux lignes siteurl et home doivent contenir l'adresse de votre site, et rien d'autre. Une adresse inconnue à cet endroit redirige la totalité du site.
  4. Cherchez le code injecté. Onglet Rechercher, sur toutes les tables, avec <script puis eval( puis base64_decode. Les résultats se trouvent le plus souvent dans les options, dans le contenu des articles, et dans les métadonnées.
  5. Regardez la table des utilisateurs : un compte inconnu s'y voit même s'il a été masqué de l'interface d'administration par une extension malveillante.
  6. Supprimez les tâches planifiées restées dans l'option cron : c'est la raison numéro un d'un site qui repart le lendemain.

Si la manipulation vous inquiète, arrêtez-vous là et faites-la faire : une requête mal écrite dans phpMyAdmin détruit le site plus sûrement que l'infection.

Le scan : ce qu'il trouve, ce qu'il rate

Une extension de scan — installée après avoir repris la main sur les accès — compare chaque fichier du cœur et des extensions à sa version officielle sur le dépôt WordPress.org, et signale tout ce qui diffère. C'est rapide, souvent gratuit en version de base, et ça cartographie très bien l'ampleur des dégâts.

Ce qu'il faut savoir avant de s'y fier :

  • Il rate une porte dérobée écrite proprement, qui ressemble à du code légitime et n'utilise aucune fonction signalée.
  • Il rate la base de données si le scan ne porte que sur les fichiers.
  • Il produit des faux positifs sur les thèmes commerciaux, qui utilisent du code compressé pour des raisons légitimes. Supprimer sans vérifier casse le site.
  • Il ne dit pas par où le pirate est entré — c'est le journal d'accès de l'hébergeur qui le dit.

Un scan propre n'est donc pas une preuve que le site l'est. La preuve, c'est de savoir quelle extension, quel compte ou quel accès a servi d'entrée, et de l'avoir refermé.

Une méthode gratuite et sous-estimée, en complément : téléchargez la même version de WordPress et du thème depuis leur source officielle, et comparez les dossiers avec un outil de comparaison de fichiers. Tout ce qui diffère est soit une modification que vous avez faite, soit le problème.

Sécuriser tout de suite après, pour ne pas y revenir

C'est le moment le plus important de l'opération, et celui qu'on repousse toujours. Un site nettoyé mais laissé tel quel est réinfecté en quelques jours : son adresse est désormais dans des listes, et les robots la retestent. Dix réglages, à faire dans la foulée du nettoyage.

  1. Mises à jour automatiques du cœur, de toutes les extensions et du thème. Une faille corrigée ne s'exploite plus : c'est de très loin le réglage le plus rentable.
  2. Désinstaller — pas seulement désactiver — les plugins et thèmes inutilisés. Un plugin désactivé reste sur le disque et ses scripts restent appelables directement.
  3. Version de PHP récente, à vérifier dans l'espace client de l'hébergeur. Une version en fin de vie ne reçoit plus aucun correctif.
  4. Un seul administrateur, sans le nom d'utilisateur « admin », les autres en éditeur ou en auteur.
  5. Mot de passe unique pour chaque compte et double authentification sur ceux qui peuvent installer du code.
  6. Limitation des tentatives de connexion : après cinq essais ratés, l'adresse est bloquée. Cela élimine la totalité du bruit automatisé.
  7. Éditeur de fichiers désactivé dans l'administration, par define('DISALLOW_FILE_EDIT', true); dans wp-config.php.
  8. Exécution de PHP interdite dans le dossier des envois, par une règle .htaccess. Ce seul réglage neutralise la majorité des portes dérobées déposées.
  9. Un pare-feu applicatif et un scan hebdomadaire alerté par courrier électronique. Une seule extension de sécurité : deux se gênent.
  10. Sauvegardes automatiques hors serveur, plusieurs versions conservées, restauration testée une fois.

Les trois premières lignes font à elles seules l'essentiel du travail. Le détail de chaque réglage, avec les accès serveur (SFTP, SSH, base MySQL) et les réglages d'hébergement, est dans comment sécuriser un site WordPress.

Questions fréquentes

Mon hébergeur a suspendu mon site, que faire ?

C'est en général parce que le serveur envoyait du courrier indésirable. Demandez-lui le rapport et les journaux d'accès : ils nomment le fichier fautif. Nettoyez, puis demandez la réactivation en joignant la liste de ce que vous avez corrigé. La suspension vous protège autant qu'elle vous gêne.

Une extension de sécurité aurait-elle empêché ça ?

Partiellement. Une extension de pare-feu bloque les tentatives automatisées les plus grossières, mais elle ne remplace pas les mises à jour : une faille dans une extension à jour de trois ans reste exploitable. L'ordre d'efficacité est mises à jour, puis mots de passe forts, puis pare-feu.

Faut-il porter plainte pour un site piraté ?

Oui si vous avez subi un préjudice : perte de chiffre d'affaires, données de clients exposées, rançon réclamée. L'accès frauduleux à un système de traitement automatisé de données est un délit. La procédure est décrite dans notre fiche sur le dépôt de plainte après un piratage.

Mes clients sont-ils concernés si le site prenait des commandes ?

Si la boutique enregistrait des adresses, des numéros de téléphone ou des commandes, oui : c'est une violation de données personnelles, avec une notification à faire à la CNIL sous soixante-douze heures. Notre fiche sur les obligations légales d'une TPE détaille les cas.

Combien de temps prend un nettoyage complet ?

Entre deux heures pour une infection récente et repérée, et une journée pour un site ancien avec plusieurs portes dérobées. L'étape la plus longue n'est pas le nettoyage mais l'identification de la porte d'entrée, sans laquelle le travail est à refaire.

Un scan propre veut-il dire que le site est nettoyé ?

Non. Un scanner détecte les malwares connus, pas une porte dérobée écrite proprement ni une injection restée dans la base de données. Tant que vous ne savez pas quel plugin ou quel accès a servi d'entrée, considérez que le site peut repartir.

Faut-il changer de nom de domaine après un piratage ?

Presque jamais. Le domaine n'est pas en cause : le problème est sur le serveur. Changer de domaine ferait perdre tout le référencement acquis, pour un bénéfice nul. En revanche, vérifiez qu'aucun sous-domaine n'a été ajouté à votre zone DNS.

Le site est nettoyé, dois-je quand même tout sécuriser maintenant ?

Oui, sans attendre. Votre adresse figure désormais dans des listes de sites vulnérables et sera retestée. Un site nettoyé mais non refermé est réinfecté en quelques jours, parfois en quelques heures. Le nettoyage sans la sécurisation est un travail à refaire.

Faut-il nettoyer la base de données aussi, ou seulement les fichiers ?

Les deux. Une redirection injectée dans la table des options ou du code glissé dans le contenu des articles survivent à un remplacement complet des fichiers. C'est la raison la plus fréquente d'un site qui repart le lendemain d'un nettoyage soigneux.

À lire aussi : sécuriser un site WordPress · la messagerie professionnelle détournée · porter plainte après un piratage.

EA

Étienne AubryTechnicien informatique au Mans depuis dix ans. Cette fiche vient de ce que je vois passer au téléphone, pas d'un manuel. En savoir plus.

Un doute ? Appelez

Des paiements que vous n'avez pas faits ?

Diagnostic gratuit au téléphone (15 minutes), et une réponse claire en cinq minutes.

07 51 13 37 69

Cybermalveillance.gouv.fr Voir la fiche Fix72