Ce que tu vas apprendre
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 pire : Chrome affiche “Ce site peut nuire à votre ordinateur” avant même que la page ne charge. C’est le scénario type d’un WordPress compromis. Cet article explique comment reconnaître les signes d’un piratage, nettoyer le site méthodiquement, puis verrouiller les accès pour que ça ne se reproduise pas. Il s’adresse aux responsables de sites WordPress qui gèrent (ou font gérer) leur maintenance et veulent comprendre ce qui se passe avant d’appeler du renfort.
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. Identifier les signes d’un site compromis
Un piratage ne se manifeste pas toujours par un écran noir avec un message de rançon. La plupart du temps, il est silencieux et discret, justement pour durer. Voici les signaux les plus fréquents :
- Redirections inattendues : le site (ou certaines pages) redirige vers un domaine étranger, souvent au clic depuis Google plutôt qu’en accès direct — technique classique pour passer sous le radar de l’admin.
- 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 avecxmlrpc.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, ne pas attendre. Un site compromis continue de se dégrader et peut contaminer d’autres sites sur le même hébergement mutualisé.
2. Isoler le site immédiatement
Avant de nettoyer, il faut limiter les dégâts.
- Mettre le site en maintenance ou couper l’accès public si possible (via
.htaccessou le tableau de bord de l’hébergeur), pour stopper la propagation du contenu malveillant tant que le nettoyage n’est pas terminé. - Changer tous les mots de passe : admin WordPress, FTP, base de données, hébergement. Le piratage est presque toujours lié à un accès compromis quelque part.
- 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.
- 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.
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é. - Vérifier le fichier
.htaccess: des règles de redirection ajoutées en bas du fichier sont un classique pour rediriger uniquement les visiteurs venus de Google. - Regarder les dates de modification des fichiers (
ls -laen 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.
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 danssiteurl,homeou 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 CSSdisplay: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%'.
5. Réinstaller le cœur, les thèmes et les plugins propres
Une fois l’infection identifiée, la méthode la plus sûre reste souvent de repartir de zéro sur les fichiers d’exécution :
- Télécharger une version fraîche du cœur WordPress et remplacer entièrement
/wp-adminet/wp-includes. - 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.phpne s’y cache) et le fichierwp-config.php(après avoir régénéré les clés de sécurité).
6. Quand tout réinstaller plutôt que nettoyer
Certains cas ne valent pas la peine d’un nettoyage manuel :
| Situation | Action recommandée |
|---|---|
| Infection ancienne, plusieurs mois, non détectée | Réinstallation complète + restauration du contenu depuis une sauvegarde saine antérieure |
| Multiples backdoors dispersées dans tout le site | Réinstallation complète, plus rapide et plus fiable qu’un nettoyage exhaustif |
| Hébergement mutualisé avec d’autres sites infectés | Réinstallation + changement d’hébergement ou isolation stricte |
| Site avec peu de contenu, peu de personnalisation | Réinstallation propre plus rapide qu’un audit ligne par ligne |
| Site complexe, forte personnalisation, sauvegarde saine récente | Nettoyage ciblé possible, avec audit complet ensuite |
Dans le doute, la réinstallation reste la solution la plus sûre : un nettoyage manuel laisse toujours un risque de backdoor oubliée.
7. Sécuriser durablement après le nettoyage
Le nettoyage seul ne sert à rien si la faille d’origine n’est pas corrigée.
- Mettre à jour WordPress, thème et plugins vers leurs dernières versions — la majorité des piratages exploitent des failles connues et déjà corrigées.
- Supprimer les plugins et thèmes inutilisés, même désactivés : ils restent une surface d’attaque.
- Activer l’authentification à deux facteurs sur tous les comptes administrateurs.
- Limiter les tentatives de connexion et changer l’URL de login par défaut.
- Vérifier et durcir les directives PHP pour limiter l’exécution de scripts dans les dossiers d’upload.
- Mettre en place une surveillance régulière des fichiers et un audit périodique — 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é.
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 de réexamen n’est pas soumise.
- 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.
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.
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.
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 la section “Problèmes de sécurité” : elle indique précisément le type de contenu malveillant détecté et permet de demander un réexamen une fois le nettoyage terminé.
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.
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