L'essentiel en 30 secondes
- Premier geste
- Une copie complète de l'état infecté (fichiers et base), gardée hors du serveur
- À ne pas faire
- Supprimer des fichiers au hasard ou restaurer une sauvegarde sans savoir par où l'attaquant est entré
- Le cœur
- Réinstallé à l'identique par FTP : l'outil de réinstallation de l'administration laisse les fichiers ajoutés
- Mots de passe
- Changés deux fois : dès la découverte, puis une fois le site propre
- Demander le réexamen seulement quand le site est propre et la faille corrigée
Avant de toucher au site : quatre réflexes
Si vous doutez encore du piratage, commencez par les symptômes et la première heure. S'il est confirmé, ces quatre gestes prennent moins d'une heure et conditionnent tout le reste.
Noter ce que vous voyez
Ce qui vous fait penser à un piratage (redirection, alerte Google, compte inconnu, message de l'hébergeur), quand vous l'avez remarqué, et ce qui a changé récemment sur le site : une extension installée, un thème modifié. La documentation de WordPress.org fait de ce relevé la première étape : il guidera toute la suite, que vous nettoyiez seul ou non.
Copier l'état infecté
Téléchargez tous les fichiers et un export de la base de données, et rangez-les hors du serveur. Cette copie sale ne sera jamais remise en ligne : elle sert à comprendre l'attaque et à revenir en arrière si le nettoyage casse quelque chose.
Analyser votre propre ordinateur
Un poste infecté peut voler vos accès FTP ou WordPress au moment où vous les tapez. Passez un antivirus complet sur chaque ordinateur qui se connecte au site avant de changer les mots de passe, sinon les nouveaux partiront aussi.
Prévenir l'hébergeur
Sur un hébergement mutualisé, d'autres sites du serveur peuvent être touchés, et l'hébergeur a parfois déjà isolé le vôtre. Il peut aussi vous fournir les journaux d'accès du serveur, indispensables pour trouver la porte d'entrée.
Les 9 étapes du nettoyage
Les commandes indiquées utilisent WP-CLI, l'outil en ligne de commande de WordPress, disponible chez la plupart des hébergeurs. La vérification des extensions ne couvre que celles publiées sur WordPress.org (documentation) : les extensions payantes n'ont pas d'empreinte publique.
Restreindre l'accès au site
Mettez le site en maintenance ou protégez-le par mot de passe au niveau de l'hébergement, pour que vos visiteurs ne reçoivent plus de code malveillant. Google recommande de mettre le site en quarantaine pendant le nettoyage. Ne supprimez encore aucun fichier.
Couper les accès de l'attaquant
Changez tous les mots de passe : comptes administrateurs WordPress, FTP ou SFTP, panneau de l'hébergeur, base de données. Remplacez les clés de sécurité de wp-config.php par un jeu neuf (générateur officiel de WordPress.org) : toutes les sessions ouvertes sont déconnectées, celle de l'attaquant comprise. Listez enfin les administrateurs pour repérer un compte que vous n'avez pas créé.
wp user list --role=administrator --fields=ID,user_login,user_email,user_registeredRepérer les fichiers modifiés ou ajoutés
Comparez le cœur et les extensions gratuites aux empreintes officielles de WordPress.org : tout fichier modifié ou ajouté ressort. Cherchez aussi du PHP là où il n'a rien à faire, à commencer par le dossier des médias. Un scanner externe fait ce travail sans rien exécuter et couvre les fichiers que la comparaison ignore.
wp core verify-checksums
wp plugin verify-checksums --all
find wp-content/uploads -name '*.php'Trouver la porte d'entrée
Dans les journaux d'accès du serveur, remontez jusqu'à la première requête suspecte : date, adresse IP, fichier visé. Les entrées les plus fréquentes sont une extension ou un thème non à jour, une version piratée (« nulled ») ou un mot de passe deviné. Sans cette réponse, le site sera réinfecté par le même chemin, même parfaitement nettoyé.
Réinstaller le cœur à l'identique
Téléchargez la même version de WordPress que celle du site, puis remplacez entièrement wp-admin et wp-includes par FTP. Le bouton de réinstallation de l'administration écrase les fichiers existants mais laisse ceux que l'attaquant a ajoutés. Gardez wp-config.php, après l'avoir relu ligne par ligne.
Remplacer extensions et thèmes
Supprimez chaque extension et chaque thème, puis réinstallez-les depuis leur source officielle : WordPress.org, ou le compte client de l'éditeur pour les versions payantes. Ne « désinfectez » jamais un fichier à la main : une ligne oubliée suffit. Une version piratée ne se nettoie pas, elle se supprime.
Inspecter ce qui ne se remplace pas
Restent les fichiers propres à votre site : wp-config.php, les .htaccess de tous les dossiers, le dossier des médias, wp-content/mu-plugins (chargé automatiquement, souvent oublié) et le code personnalisé du thème enfant. Ce sont les cachettes préférées des portes dérobées.
Nettoyer la base de données
Vérifiez les comptes administrateurs, les options siteurl et home (une redirection y est vite cachée), les widgets et contenus qui contiennent des balises script ou iframe inconnues, et les tâches planifiées de WordPress, qu'une porte dérobée utilise pour se réinstaller.
wp cron event listMettre à jour, puis changer les mots de passe une seconde fois
Mettez à jour WordPress, les extensions et les thèmes, supprimez ceux qui sont désactivés, activez la double authentification sur les comptes administrateurs. Changez ensuite tous les mots de passe une seconde fois : ceux de la première étape ont pu être interceptés pendant le nettoyage.
Où se cachent les portes dérobées
Une porte dérobée est un petit bout de code qui redonne l'accès à l'attaquant après votre nettoyage. Elle est rarement là où l'infection se voit. Les détails techniques sont dans notre guide webshells et portes dérobées.
| Emplacement | Ce qu'on y trouve | Ce qui doit alerter |
|---|---|---|
| wp-content/uploads/ | Un fichier PHP déguisé en image ou rangé dans un dossier de date | Aucun fichier PHP n'a sa place ici |
| wp-content/mu-plugins/ | Une extension « obligatoire » invisible dans la liste des extensions | Tout fichier que vous n'avez pas installé |
| wp-config.php | Un include vers un fichier caché, du code ajouté en tête ou en fin | Comparer avec wp-config-sample.php |
| .htaccess (tous les dossiers) | Une redirection des visiteurs venant de Google, ou l'exécution de PHP dans uploads | Toute règle que vous ne savez pas expliquer |
| functions.php, header.php, footer.php | Du code chargé sur chaque page | Un bloc obfusqué (base64, eval, gzinflate) |
| Base de données | Un administrateur inconnu, un script dans un widget, une tâche planifiée | Dates de création, auteurs, contenus récents |
Restaurer une sauvegarde : quand c'est la bonne option
Restaurer une sauvegarde est souvent le chemin le plus court, à trois conditions. Elle doit dater d'avant l'infection, ce qui suppose de connaître la date de la première intrusion, souvent antérieure aux premiers symptômes. La faille par laquelle l'attaquant est entré doit être corrigée juste après la restauration, sinon il revient par le même chemin en quelques jours. Enfin, les mots de passe et les clés de sécurité doivent être changés, car la sauvegarde contient les anciens.
Pensez aussi à ce que vous perdez : commandes, commentaires et contenus publiés depuis la date de la sauvegarde. Sur une boutique, il est souvent préférable de nettoyer le site en place plutôt que de perdre des commandes.
Après le nettoyage
Google. Si Google affiche un avertissement, le rapport Problèmes de sécurité de la Search Console donne des exemples de pages touchées. Ne demandez le réexamen qu'une fois les modifications de l'attaquant supprimées, la faille corrigée et le site remis en ligne. Selon Google, le réexamen prend quelques jours pour un logiciel malveillant et jusqu'à plusieurs semaines pour du spam. La marche à suivre est détaillée dans « Ce site peut être piraté » : que faire.
Données personnelles. Si l'attaquant a pu lire des données de clients ou de membres (comptes, commandes, formulaires), le RGPD impose de notifier la violation à la CNIL dans les 72 heures après en avoir pris connaissance, et d'informer les personnes concernées si le risque pour elles est élevé (articles 33 et 34 du RGPD).
Surveillance. Une porte dérobée oubliée se manifeste généralement dans les jours qui suivent. Rescannez le site au bout d'une semaine puis d'un mois, et appliquez les mesures du guide de durcissement de WordPress ou de notre checklist en 10 points.
# Clés de sécurité neuves pour wp-config.php (générateur officiel)
curl -s https://api.wordpress.org/secret-key/1.1/salt/Nettoyer soi-même ou se faire aider
Ce guide suffit si vous êtes à l'aise avec le FTP et la base de données, et si le site n'est pas critique. Faites appel à quelqu'un si le site a déjà été réinfecté après un premier nettoyage, s'il s'agit d'une boutique, si vous n'avez pas de sauvegarde, ou si vous n'avez plus accès à l'administration. Notre Nettoyage accompagné suit exactement ces étapes, au forfait de 249 € net, avec une sauvegarde vérifiée avant toute action et une mise en quarantaine réversible plutôt que des suppressions.
Savoir ce qui est infecté avant de nettoyer
Le scan unique analyse les fichiers et une partie de la base de votre WordPress, et classe chaque élément en menace confirmée, à vérifier ou informatif. Si une menace est confirmée, le Nettoyage accompagné (249 €) remet le site en état pour vous : sauvegarde vérifiée, quarantaine réversible et remplacement par les versions officielles.
Paiement unique, sans abonnement. Il faut créer un compte et installer sur le site notre extension de connexion, qui fonctionne en lecture seule. Le scan ne vérifie ni le serveur ni les secrets : ces étapes restent à faire.