Spam SEO sur WordPress : enquête et remédiation sur un site piraté
Comment nous avons analysé et supprimé un malware de spam SEO d'un site WordPress Elementor, et la persistance qui fait échouer un nettoyage classique.
Points clés
- Un malware de spam SEO est un code malveillant qui injecte des pages et des liens de spam dans un site et ne les montre qu'aux moteurs de recherche (cloaking) : le propriétaire ne remarque souvent rien pendant que son référencement s'effondre.
- Ici, le point d'entrée était une faille de contrôle d'accès dans Elementor Pro 3.11.6 et versions antérieures, corrigée dans la 3.11.7 le 22 mars 2023 et exploitée peu après.
- Nous avons trouvé 47 fichiers infectés répartis dans 9 répertoires et environ 1 200 entrées de spam dans la base de données. Supprimer uniquement les fichiers aurait laissé le site se réinfecter.
- Le site a été nettoyé sans reconstruction ; le trafic organique, en baisse de 82 % au plus bas, était revenu à environ 90 % de son niveau antérieur en 6 semaines.
Les compromissions WordPress modernes s'annoncent rarement de façon claire.
Ce qui ressemble d'abord à un nettoyage de routine (supprimer les fichiers suspects, réinitialiser les identifiants, restaurer les sauvegardes) peut masquer des mécanismes de persistance plus profonds, qui réinfectent le système dès qu'il est remis en ligne.
Cet article retrace un incident réel où une remédiation classique aurait échoué, et explique pourquoi il est essentiel de comprendre comment une attaque fonctionne.
Voici comment nous avons traité ce cas.
Quand une faille de plugin WordPress devient un cauchemar SEO
Début 2023, une vulnérabilité de gravité élevée dans le plugin Elementor Pro (CVSS 8,8) a été exploitée à grande échelle. Il s'agissait d'un défaut de contrôle d'accès dans le module WooCommerce du plugin, qui permettait à n'importe quel utilisateur connecté, y compris un client tout juste inscrit, de modifier les réglages de WordPress. La faille touchait les versions jusqu'à la 3.11.6 et a été corrigée dans la 3.11.7 le 22 mars 2023 (NinTechNet) ; des attaques ont été signalées quelques jours plus tard (The Hacker News). Des milliers de sites WordPress ont été piratés, non pas pour voler des données clients ou défigurer visiblement des pages, mais pour quelque chose de bien plus dommageable dans la durée : l'injection massive de spam SEO.
Nous avons récemment traité un incident réel lié à cette campagne. Ce qui rendait ce cas remarquable, ce n'était pas seulement l'infection elle-même, mais son issue. Le site a été entièrement restauré sans être reconstruit de zéro, malgré un malware fortement obfusqué réparti entre les fichiers et la base de données. Cet article explique ce qui s'est passé, pourquoi ce type d'attaque reste d'actualité et pourquoi reconstruire un site WordPress piraté est souvent inutile quand l'infection est bien comprise.
Ce qui s'est passé
Le client a d'abord constaté un effondrement soudain de son trafic organique. Des pages positionnées depuis des années ont disparu de Google presque du jour au lendemain. En cherchant le nom de la marque, les résultats Google affichaient des titres de produits en japonais et des termes d'e-commerce sans rapport. Cliquer sur ces résultats menait parfois à des pages de spam ou à des redirections externes, alors que les visiteurs arrivant directement sur le site ne voyaient rien d'anormal.
Cet écart a été le premier indice important. Le site servait aux robots des moteurs de recherche un contenu différent de celui présenté aux visiteurs humains, une technique appelée cloaking, que les règles de Google relatives au spam considèrent comme une infraction. Le schéma correspondait à ce que Google appelle le piratage par mots clés japonais. Vu de l'extérieur, le site semblait intact. Du point de vue de Google, il faisait désormais partie d'un réseau de spam SEO.
Le point d'entrée initial
La compromission d'origine a été rattachée à une vulnérabilité connue d'élévation de privilèges dans les versions d'Elementor Pro publiées avant mars 2023. La faille permettait à des attaquants disposant d'un accès limité de manipuler les options de WordPress et d'injecter du code PHP arbitraire via des actions AJAX exposées.
Si cette vulnérabilité est corrigée depuis longtemps, l'exploit n'était qu'un début. Une fois installés, les attaquants ont déployé un dispositif malveillant persistant, conçu pour survivre aux mises à jour, à la suppression de plugins et aux tentatives de nettoyage superficielles. Mettre à jour Elementor ne suffisait pas à régler la compromission.
L'incident en chiffres
| Baisse du trafic organique au point le plus bas | 82 % |
| Fichiers infectés trouvés | 47, répartis dans 9 répertoires |
| Entrées de spam supprimées de la base de données | environ 1 200 |
| Délai entre le premier appel et un site propre et vérifié | 4 jours ouvrés |
| Trafic organique retrouvé après 6 semaines | environ 90 % du niveau antérieur |
Pourquoi cette infection était difficile à supprimer
Il ne s'agissait pas d'un fichier malveillant unique caché à un endroit évident. Le malware avait été délibérément conçu pour résister à la détection et à une suppression partielle.
Les charges utiles PHP étaient fortement obfusquées, avec des noms de fonctions reconstruits dynamiquement à l'exécution. Les scanners de malware classiques s'appuient largement sur des signatures connues, et ce code avait été écrit précisément pour leur échapper. Même une fois découverte, la charge utile ne révélait presque rien sans un travail minutieux de désobfuscation.
Surtout, le malware était polymorphe. La même logique apparaissait dans des dizaines de fichiers, sous des noms et à des emplacements différents. Les répertoires de thèmes, les dossiers de plugins, les chemins du cœur de WordPress et même des répertoires système non standard contenaient des variantes de la même porte dérobée. En supprimer une instance laissait simplement les autres en place pour réinfecter l'environnement.
L'infection s'étendait aussi à la base de données WordPress. Contenu de spam, métadonnées modifiées et changements de configuration malveillants : même un système de fichiers parfaitement propre n'aurait pas rétabli la visibilité du site dans les moteurs de recherche. C'est l'une des raisons les plus fréquentes des réinfections WordPress après un prétendu nettoyage.
Enfin, le cloaking faisait que de nombreuses analyses automatiques et revues manuelles passaient complètement à côté du problème. Tant que les requêtes n'imitaient pas celles des robots des moteurs de recherche, le contenu malveillant n'apparaissait jamais.
La recommandation habituelle : tout reconstruire
Dans ce genre de situation, beaucoup d'agences conseillent de reconstruire entièrement le site. Ce conseil est parfois justifié. Il est pourtant souvent dicté par l'incertitude plutôt que par la nécessité.
Reconstruire un site a un coût réel. Le capital SEO est fréquemment perdu, les URL historiques cassent, l'indisponibilité s'allonge et des sauvegardes infectées peuvent tout simplement réintroduire le même problème plus tard. Pour une entreprise qui dépend de la recherche organique, les dégâts d'une reconstruction peuvent dépasser ceux du malware lui-même.
Dans ce cas, la reconstruction n'était pas nécessaire. L'infection pouvait être entièrement cartographiée, comprise et supprimée.
Une autre approche : comprendre avant de supprimer
Plutôt que de tout effacer, nous avons traité l'incident comme une investigation forensique. Chaque chemin d'exécution obfusqué a été retracé. Chaque variante du malware a été répertoriée. Le lien entre les charges utiles présentes dans les fichiers et les manipulations de la base de données a été cartographié de bout en bout.
La remédiation n'a commencé qu'une fois le comportement du malware entièrement compris. Cela a permis de supprimer toutes les portes dérobées, de nettoyer les enregistrements touchés dans la base de données et de vérifier qu'aucun mécanisme de réinfection ne subsistait. La structure, le contenu et les URL du site ont été conservés, ce qui a évité toute perturbation inutile.
Pourquoi c'est toujours d'actualité
La vulnérabilité d'Elementor n'est plus une nouveauté. Les techniques employées par les attaquants, si.
Nous continuons de voir les mêmes stratégies d'obfuscation, les mêmes méthodes d'empoisonnement SEO et le même cloaking réutilisés dans de nouvelles campagnes. Les anciennes vulnérabilités sont souvent recyclées, et les sites compromis sont fréquemment revendus ou attaqués à nouveau des mois après la première intrusion.
La leçon est simple : les malwares WordPress modernes sont délibérément conçus pour survivre aux nettoyages superficiels. Aborder la remédiation comme une simple liste de vérifications mène presque à coup sûr à l'échec.
Résultat et rétablissement
Après la remédiation, le site a été entièrement restauré sans reconstruction. Le contenu de spam a été supprimé, les fichiers et entrées de base de données malveillants éliminés, et les pénalités des moteurs de recherche traitées par une réindexation en bonne et due forme, notamment via une demande de réexamen depuis le rapport Problèmes de sécurité de la Search Console. Une surveillance continue a été mise en place pour détecter les tentatives de réinfection et les comportements anormaux.
Surtout, l'entreprise a conservé son site et sa visibilité dans les moteurs de recherche au lieu de repartir de zéro.
Conclusion
Les infections par spam SEO comptent parmi les compromissions WordPress les plus dommageables, précisément parce qu'elles passent souvent inaperçues pendant longtemps. Quand on les découvre, le réflexe de tout reconstruire se comprend, mais il n'est pas toujours nécessaire.
Avec une analyse forensique et une rétro-ingénierie rigoureuses, même un malware fortement obfusqué et persistant peut être supprimé en toute sécurité. Toute la différence tient à la compréhension du fonctionnement de l'attaque, pas seulement de l'endroit où elle apparaît.
Analyse technique complète disponible
Cet article évite volontairement de publier des détails d'exploitation et l'intégralité de nos notes de rétro-ingénierie.
Un livre blanc technique complet, comprenant les techniques de désobfuscation du malware, l'analyse du comportement des charges utiles et la méthodologie de remédiation détaillée, est disponible sur demande.
Si votre site présente les mêmes symptômes, notre service de réponse aux incidents de sécurité couvre l'investigation, le nettoyage et la sécurisation. Pour savoir si un site en difficulté doit être repris ou remplacé, consultez reprendre ou réécrire ; pour un incident plus récent au niveau d'un framework, lisez nos notes sur React2Shell.
Sources
- NinTechNet, High severity vulnerability fixed in WordPress Elementor Pro plugin, mars 2023 (en anglais)
- The Hacker News, Hackers exploiting WordPress Elementor Pro vulnerability, avril 2023 (en anglais)
- Google Search Central, Règles relatives au spam : cloaking
- web.dev, Corriger le piratage par mots clés japonais
- WordPress, Hardening WordPress (en anglais)