Virer un pirate de WordPress 🏴‍☠️

Virer un pirate de WordPress 🏴‍☠️

Un de mes clients s’est fait piraté son PBN de 440 sites WordPress 😨

  • 31 sites affichaient des pages en Japonais.
  • Plus de 300 sites contenaient des fichiers vérolés.

Il m’a fallu 12 jours, quasiment à temps plein, pour virer les pirates qui étaient derrière 😅 Ils étaient du genre tenaces ! La raison principale pour laquelle cette bataille a été si longue, c’est qu’ils parvenaient à réimplanter des fichiers vérolés chaque nuit. Néanmoins, j’étais motivé et j’ai activé le mode « Machine » avec 2 objectifs en tête :

  1. Assainir le réseau : L’objectif immédiat était d’épurer chaque site du réseau de toute présence malveillante, en éliminant tous les fichiers vérolés.
  2. Analyser les stratégies ennemies : Je cherchais à comprendre les méthodes et tactiques des pirates. Décrypter leur logique d’attaque me semblait essentiel pour renforcer mes défenses et prévenir les futures intrusions.

Je n’ai pas été déçu du voyage, j’ai eu l’occasion de :

  • détecter les attaques des pirates qui tentaient de reprendre la main sur les sites chaque nuit 📡
  • trouver les backdoors et analyser leur code source (je vous expliquerai ce que c’est) 🕵️
  • voir une attaque en direct, qui a généré plus de 200 fichiers vérolés dans tous les répertoires d’un site fraichement nettoyé. Ce processus s’est déroulé en moins de 5 minutes 😱 J’ai pu supprimer tous les fichiers en seulement quelques clics ⚡ c’était la dernière bataille de cette guerre.

Ça a été une expérience intense, épuisante, mais passionnante. J’ai développé de solides processus pour contrer les pirates 💪

Je vais partager avec vous ce que j’ai appris et vous donner une stratégie pour vous débarrasser efficacement d’un pirate bien incrusté.

  • Si votre site est actuellement piraté, cet article devrait vous aider à vous en sortir. Courage ! ✊
  • Si votre site n’est pas piraté, cet article vous aidera à sécuriser votre site. Il vous permettra aussi de réagir plus vite en cas de piratage et donc de limiter les dégâts 🛡

Dans cet article, je vais vous expliquer :

  • Comment fonctionne le piratage d’un WordPress ;
  • Comment un pirate peut entrer dans votre WordPress ;
  • Pourquoi vous devez commencer par isoler chacun de vos sites ;
  • Comment nettoyer méthodiquement un site ;
  • Comment surveiller l’activité de votre site pour s’assurer qu’un pirate ne revienne pas.

⚠️ A BIEN NOTER : Je ne propose pas de prestation de nettoyage de sites WordPress, c’est un service inclus dans ma prestation d’hébergement de PBN. Donc, ne me contactez pas à ce sujet si je n’héberge pas vos sites. Vous pourrez trouver de l’aide technique auprès de votre hébergeur, des forums et de ChatGPT.

Comment fonctionne le piratage d’un WordPress

Bien comprendre le mal : un pirate contrôle votre site

Le fait que des pages en japonais s’affichent sur votre nom de domaine n’est qu’un symptôme de la maladie de votre site. C’est la partie visible du piratage, elle pourrait prendre de nombreuses autres formes :

  • Redirection d’une partie de vos visiteurs vers des sites piratés ;
  • Dépôt de cookies d’affiliation ;
  • Pop-under bizarroïdes ;
  • Ajout de liens black-hat dans vos articles ;

Toutes ces choses désagrables ne sont que des symptômes.

La VRAIE maladie de votre site, c’est qu’un PIRATE a le pouvoir de modifier votre site en fonction de SES intérêts, qui ne sont pas compatibles avec les vôtres, ni avec ceux de vos visiteurs.

Il ne faut donc pas chercher à supprimer les pages en japonais (ce qui est assez facile), mais à dégager la personne qui a pris le contrôle de votre site (ce qui est nettement plus difficile).

Comment un pirate peut-il contrôler votre site ?

Plongeons un peu plus profondément dans les eaux troubles de la piraterie numérique, et parlons des fameuses « backdoor« . Imaginez une porte, discrète et bien cachée, à travers laquelle un pirate peut s’infiltrer dans votre site sans être vu. Techniquement, il s’agit d’un petit code PHP, d’à peine 10 lignes, c’est extrêmement léger et très simple.

Une fois qu’une backdoor est installée, le pirate a littéralement les clés de votre site. Il peut envoyer des programmes malveillants qui exécutent des manipulations sur le serveur :

  • Création de nouveaux fichiers ;
  • Création de nouveaux répertoires ;
  • Modification de vos fichiers existants ;
  • etc.

C’est un peu comme si le pirate avait un passe-partout pour remodeler votre site à sa guise. Avec une backdoor active, un pirate peut, par exemple, créer un site parallèle au vôtre sur votre nom de domaine. Un véritable « double maléfique ».

Une backdoor n’est donc pas juste une petite faille de sécurité ; c’est une brèche béante à travers laquelle un pirate peut contrôler votre site. Evidemment une backdoor peut-être utilisée pour créer d’autres backdoor. La guerre contre un pirate prend fin lorsque vous avez supprimé la dernière backdoor. Votre objectif est donc de toutes les trouver et de les supprimer 🕵️

Petite pub newsletter 🙂

Vous avez déjà lu une bonne partie de cet article, j’ai l’impression qu’il vous intéresse 👍

Au fait, je m’appelle François Tréca. Je publie de temps à autre des articles et/ou des vidéos au sujet du SEO, de l’IA, des entrepreneurs, du marketing… Je fais de mon mieux pour produire des contenus de qualité (ça attire toujours les clients).

Si ces sujets vous intéressent, je vous invite à vous inscrire à ma newsletter pour ne pas rater mes prochaines publications. C’est gratuit (je monétise avec mes prestations) et, promis, vous ne serez pas spammé (c’est contre-productif 😉 ).

➡️ Cliquez ici pour vous inscrire

Fin de la pub, vous pouvez reprendre tranquillement votre lecture ♥️

Comment la première backdoor arrive-t-elle sur votre site ?

Maintenant que vous savez ce qu’est une backdoor, vous vous demandez peut-être : « Mais comment diable ce truc a-t-il atterri sur mon site ? ». Eh bien, c’est une excellente question 👍

Les pirates disposent de plusieurs moyens pour implanter la première backdoor :

A) Le cheval de trois : les plugins et les thèmes vérolés

Le premier coupable est souvent celui qu’on suspecte le moins : un plugin ou un thème que vous avez installé, pensant qu’il allait améliorer votre site. À l’instar du Cheval de Troie de la mythologie, ces extensions apparemment inoffensives peuvent cacher en leur sein des backdoors.

Il y a 3 règles d’or :

  1. Installez 1 seul thème.
  2. Limitez au maximum le nombre de plugin (le nombre idéal de plugin est 0).
  3. Faites preuve de prudence avant d’installer un plugin ou un thème ! Vérifiez :
  • Sont-ils utilisés par beaucoup d’autres sites ?
  • Les auteurs sont-ils clairement identifiés ?
  • Sont-ils mis à jour régulièrement ?
  • Sont-ils connus pour servir de backdoor ? Cherchez le « nom du plugin/thème » + « hack » sur Google pour vous faire rapidement une idée.

Pour l’anecdote, mon client donne des cours dans le supérieur. Dans le cadre d’un projet pédagogique, il a fourni un accès administrateur de 15 de ses sites à différents groupes d’étudiants. Evidemment, ces étudiants ne connaissaient pas les contraintes de sécurité informatique et ils ont installé des dizaines de thèmes et de plugins, sans aucune précaution. Il faut avouer que c’est très satisfaisant quand on débute 😅 Evidemment, ils ne supprimaient pas ceux qui étaient inutiles (je le sais, vu que c’est moi qui ait fait le ménage dans leur bazar). Il est très probable qu’un de ces plugins ait servi de backdoor aux pirates.

👉 Pensez à bien supprimer un plugin ou un thème dès qu’il n’est plus utile, ça limitera les risques.

B) La porte ouverte : les mots de passe faibles

Ensuite, il y a l’éternel problème des mots de passe faibles. Un compte admin avec un mot de passe trop simple, c’est comme laisser la clé de votre maison sous le paillasson : facile à trouver, facile à utiliser. C’est un peu votre faute, il faut l’admettre.

La solution ? Utilisez des mots de passe complexes, longs et uniques.

C) La malchance : exploitation d’une faille

Parfois, malgré tous vos efforts, le destin frappe 😭 Une faille non découverte, une vulnérabilité inattendue dans WordPress, un plugin ou le thème, et voilà que votre site est vérolé. Ce n’est pas vraiment de votre faute, mais ça montre l’importance de garder votre système, vos plugins et vos thèmes toujours à jour. Sur mes serveurs, je force toutes les mises à jour une fois par mois.

Maintenant que vous avez une vision globale sur les backdoors, préparez-vous pour la traque car il va falloir toutes les supprimer !

Je ne vais pas entrer dans les détails techniques de chaque opération dans la suite de cet article. Néanmoins, je vais vous expliquer la stratégie globale, à vous d’adapter les tactiques en fonction des particularité de votre WorPress (cherchez de l’aide auprès de votre hébergeur, des forums et de ChatGPT, il devraient pouvoir vous aider). Bonne chasse !

A) Commencez par isoler chaque site !

Imaginez votre serveur comme un grand immeuble où chaque site est un appartement. Si un seul de ces appartements est infecté par une backdoor, il y a un risque réel que l’infection se propage dans tout l’immeuble, touchant tous vos précieux sites. Un vrai cauchemar. De ce fait, avant même de penser à nettoyer, il y a une étape cruciale : l’isolation.

Il y a deux moyens d’isoler vos sites :

1) Création d’utilisateurs Linux différents pour chaque site

La meilleure manière est de créer un utilisateur Linux différent pour chacun de vos sites. C’est comme donner à chaque appartement sa propre entrée verrouillée. Ainsi, même si un pirate parvient à s’introduire dans l’un de vos sites, il lui sera quasiment impossible de se faufiler dans les autres. Chaque site devient une forteresse indépendante, réduisant le risque de contamination croisée.

2) Utilisation de .user.ini pour restreindre l’exécution de code entre sites

Si la première option n’est pas réalisable, il y a une autre possibilité, bien qu’un peu moins efficace : elle consiste à empêcher un site d’exécuter du code sur d’autres sites du serveur. Cela peut se faire en utilisant des fichiers de configuration comme .user.ini. Cette méthode est moins optimale, car elle n’offre pas la même étanchéité qu’une séparation par utilisateur, mais c’est mieux que rien.

Avant de passer à l’action…

Ne faites rien tant que vous n’avez pas isolé chaque site. Imaginez que vous commenciez à nettoyer un site sans avoir isolé les autres : c’est un peu comme éponger l’eau d’une fuite sans avoir coupé le robinet. Vous risquez de vous retrouver à nettoyer indéfiniment.

L’isolation est donc votre premier rempart contre la propagation de l’infection. Une fois que chaque site est bien cloisonné, vous pouvez passer à l’étape suivante : le nettoyage et la sécurisation.

B) Limitez les capacités des pirates !

Pour limiter les capacités des pirates, vous pouvez désactiver certaines fonctions PHP potentiellement dangereuses, à savoir :

exec, shell_exec, system, passthru, eval, proc_open, popen, allow_url_open, symlink

Pour désactiver ces fonctions, modifiez le fichier de configuration PHP de votre serveur, généralement nommé php.ini. Recherchez la directive disable_functions et ajoutez-y les fonctions que vous souhaitez désactiver, séparées par des virgules.

Petite astuce : faites une copie du fichier php.ini avant de le modifier (conseil d’un mec qui, un jour, a tout cassé 😅)

Après avoir désactivé ces fonctions, testez votre site pour vous assurer qu’il fonctionne parfaitement.

C) Le nettoyage peut maintenant commencer !

1. Faites une première sauvegarde de votre site

Vous allez faire un nettoyage en profondeur de votre WordPress et il n’est pas exclu que cela engendre des dégâts irréversibles 👀 Pour évitez un drame, faites une sauvegarde intégrale des fichiers de votre site. Utilisez un des outils de votre hébergement plutôt qu’un plugin WordPress. Assurez-vous de connaître la procédure pour restaurer votre site à partir de cette sauvegarde.

En cas de crash du site, vous pourrez revenir à l’état initial en utilisant cette sauvegarde.

2. Mettez de l’ordre dans les utilisateurs WordPress

  • Supprimez tous les utilisateurs inactifs ou inconnus, ce sont peut-être des portes d’entrée pour les pirates.
  • Changez tous les mots de passe par des versions plus complexes et robustes pour renforcer la sécurité.
  • Donnez les droits « Administrateur » à un seul utilisateur. Le niveau de droit « Auteur » devrait être suffisant pour les autres.

3. Faites violemment le tri dans vos extensions WordPress !

  • Supprimez les plugins qui sont désactivés, même désactivés, ils peuvent constituer une faille.
  • Supprimez les plugins qui ne sont pas absolument nécessaires à votre site. Moins vous en aurez, moins vous risquerez d’avoir des problèmes.
  • Supprimez les plugins qui semblent suspects, qui ne sont plus mis à jour ou dont la source n’est pas totalement fiable 👋

J’insiste : soyez sans pitié avec les plugins !

Supprimez ! Supprimez ! Supprimez !

Ils ont l’air bien sympathiques comme ça, mais ils cachent l’ennemi 👀

4. Un seul thème !

Gardez uniquement le thème actif, supprimez TOUS les autres thèmes.

Si le thème actif vous semble douteux, n’hésitez pas à le remplacer par un thème fiable et reconnu. La simplicité est souvent synonyme de sécurité.

5. Mise à jour radicale

Réinstallez le core de WordPress. Cette étape permet de s’assurer que tous les fichiers de base de votre WordPress sont à jour et ne contiennent pas de code source corrompu.

6. Renforcez votre arsenal de sécurité

Installez un plugin de sécurité, comme Wordfence :

  • Activez son firewall pour mettre en place une première ligne de défense solide contre les intrusions.
  • Lancez ensuite un scan complet pour détecter et éliminer toute anomalie ou fichier suspect.

Gardez à l’esprit que Wordfence est puissant, mais il ne peut pas toujours détecter les backdoors les mieux dissimulées. Il faudra rester vigilant, nous verrons comment après.

7. Faites une nouvelle sauvegarde

Après avoir mené ce nettoyage acharné sur votre site, vous devriez maintenant observer un paysage numérique bien plus sain. Théoriquement, les pages en japonais devraient avoir disparues.

Maintenant que votre site est « à peu près propre », c’est le moment idéal pour faire une nouvelle sauvegarde complète. Cette sauvegarde sera un point de restauration vers lequel vous pourrez revenir si jamais le pirate contre-attaque via une backdoor non supprimée (c’est une sauvegarde qui m’a permis d’écraser la contre-attaque des 200 fichiers en quelques clics 😉)

D) Surveillez votre site !

Après avoir donné un bon coup de balai et sécurisé votre site, il est crucial de ne pas baisser la garde. Les pirates sont malins et tenaces, mais avec une vigilance constante, vous pouvez garder une longueur d’avance sur eux. Vous devez mettre en place une routine sécuritaire :

Sauvegarde quotidienne

La règle d’or pour tout propriétaire de site web consciencieux est de mettre en place une sauvegarde quotidienne. Utilisez un outil fiable proposé par votre hébergement pour archiver automatiquement l’ensemble de vos fichiers et bases de données chaque nuit (si votre site est hébergé sur mes serveurs, elle est déjà faite automatiquement ✌). Cette pratique est votre filet de sécurité, permettant une restauration rapide en cas de nouvelle infection ou de tout autre incident technique.

Surveillance active avec Wordfence

Les pirates surveillent l’activité de leurs proies, s’ils constatent que leurs pages ne fonctionnent plus, ils tenteront de les réparer via les backdoors.

Pour garder un œil vigilant sur les activités suspectes, le scanner de Wordfence sera votre meilleur allié. Lancez un scan chaque matin. Si de nouveaux fichiers vérolés font leur apparition, cela signifie qu’une backdoor est toujours active quelque-part dans votre site. Si c’est le cas :

  • Analyse des logs : Dès qu’un scan révèle des anomalies, étudiez les logs du site au cours des dernières 24 heures. Ces journaux d’activité devraient révéler les mouvements du pirate, y compris l’activation de backdoors. Les logs vous indiqueront dans quel répertoire se trouve le fichier malveillant.
  • Restauration : Rechargez la dernière sauvegarde propre de votre site (attention vous perdrez le travail réalisé depuis cette sauvegarde). Cette étape est cruciale pour éliminer les modifications récentes effectuées par le pirate, notamment pour s’assurer qu’aucune nouvelle backdoor n’ait été implantée.
  • Élimination : Avec les informations fournies par les logs, localisez et supprimez définitivement la backdoor. Chaque backdoor éliminée est une victoire dans la bataille pour la sécurité de votre site.

Au bout de d’une semaine, si vous ne constatez plus d’activité pirate sur votre site, vous pouvez commencer à vous détendre, le plus dur est certainement passé 🥳 Néanmoins continuez à surveiller l’activité de vos sites régulièrement pour éviter qu’une backdoor enfouie soit réactivée dans plusieurs mois !

Une autre stratégie : tout supprimer et tout réinstaller de zéro

⚠️ N’appliquez pas cette méthode si vous ne maitrisez pas parfaitement l’architecture des WordPress !

J’ai discuté de ce problème avec un autre PBNiste, il m’a expliqué sa technique pour se débarrasser des backdoors. C’est assez radical, ça consiste à :

  1. Sauvegarder tous les fichiers téléchargés par les utilisateurs : images, PDF, vidéos… (notez que certains de ces fichiers sont susceptibles d’être vérolés).
  2. Noter tous les plugins installés.
  3. Noter le thème installé.
  4. Supprimer TOUS les fichiers du sites.
  5. Réinstaller les fichiers du core WordPress.
  6. Réinstaller les plugins et le thème.
  7. Recharger tous les fichiers des utilisateurs : images, PDF, vidéos…

Aucune backdoor ne peut résister à ce traitement de choc !

Personnellement, je ne préfère pas l’appliquer car certains paramétrages pourraient être enregistrés dans des fichiers et dans ce cas ils seraient supprimés par le processus.

Conclusion

Maintenant que vous connaissez les mécanisme des piratages des WordPress et que vous disposez d’une stratégie méthodique pour supprimer les backdoors, virer nu pirate de vos site devrait être moins problématique 🙂

⚠️ POUR RAPPEL : Je ne propose pas de prestation de nettoyage de sites WordPress, c’est un service inclus dans ma prestation d’hébergement de PBN. Donc, ne me contactez pas à ce sujet si je n’héberge pas vos sites. Vous pourrez trouver de l’aide technique auprès de votre hébergeur, des forums et de ChatGPT.

Utilisez-vous ma plateforme Bulldoz ?

Je développe Bulldoz, une plateforme de mise en relation entre des entrepreneurs et leurs clients, gratuite et sans commission. Je vous invite à l’utiliser 👌

➡️ Achetez des liens (netlinking), pour améliorer le référencement de votre site.

➡️ Proposez de vendre des liens sur vos sites, pour gagner de l’argent.

➡️ Commandez des textes à un rédacteur, pour proposer des super contenus sur votre site.

Bulldoz :
Tous entrepreneurs !

Vous pouvez suivre mon actualité via Twitter, LinkedIn ou ma newsletter 🙂

N’hésitez pas à me faire part de vos remarques et questions en commentaire, je répondrai avec plaisir ❤️

2 Replies to “Virer un pirate de WordPress 🏴‍☠️”

  1. Article vital François ! Lorsque tu dis « Supprimer TOUS les fichiers du sites. » C’est effectivement le conseil à ne pas négliger que j’appuie. Je m’étais fait vérolé plusieurs instances Gandi à cause d’un plugin développé par quelqu’un de connu dans la commu SEO, mais pas mis à jour depuis des années. J’ai eu tout un tas de (très petits) sites qui se sont mis à publier des milliers de pages en quelques jours, avec du cloacking, donc je ne l’en suis pas rendu compte avant de regarder côté GSC.

    Quand j’ai plongé côté sFTP, j’ai fait l’erreur de supprimer que les fichiers utilisés par WP. Evidement ça revenait sans cesse. Les pirates utilisaient en fait le fichier .htaccess : il était plein de code utilisant divers encodages différents pour masquer une première analyse. Et il re-générait automatiquement un fichier index bien sûr lui aussi vérolé dès qu’un scan auto ne le trouvait plus sur le répertoire. WP n’avait permis aux pirates d’accéder à mon instance en mode root, mais ils n’utilisaient ensuite que ces 2 fichiers (htaccess et index.php) pour générer toutes ces pages en mode auto. Habile !

    1. Grosse galère… D’où l’intérêt de bien réinstaller les fichiers du core pour nettoyer instantanément les fichiers de base de WordPress 👍