Un plugin planqué, un accès administrateur récupérable à tout moment, et du JavaScript injecté à la volée. Derrière cette nouvelle attaque ciblant WordPress, une campagne bien ficelée qui passe presque inaperçue.

Alerte cyberattaque : un faux plugin anti-malware sème la pagaille sur WordPress, comment le repérer ? © LookerStudio / Shutterstock
Alerte cyberattaque : un faux plugin anti-malware sème la pagaille sur WordPress, comment le repérer ? © LookerStudio / Shutterstock
L'info en 3 points
  • Une campagne malveillante cible WordPress en utilisant un plugin caché capable de récupérer l'accès administrateur à tout moment.
  • Le malware se camoufle dans wp-cron.php et réapparaît après suppression, injectant du code sans être détecté.
  • Pour se prémunir, vérifiez wp-cron.php, les fichiers du thème et surveillez des requêtes suspectes dans les logs serveur.

C’est en nettoyant un site WordPress compromis, en janvier dernier, que les analystes de Wordfence sont tombés sur un fichier suspect : WP-antymalwary-bot.php. Le code était propre, bien indenté, et le plugin ressemblait à un outil de sécurité tout à fait ordinaire. À première vue, rien d’alarmant. Pourtant, il s’agissait d’un malware capable de disparaître du tableau de bord, d’injecter du code malveillant, de communiquer avec un serveur distant, et surtout, de permettre aux attaquants de retrouver un accès administrateur à tout moment via une requête HTTP, même après suppression du plugin. L’analyse publiée fin avril montre que cette campagne est toujours active, soutenue par plusieurs variantes en circulation. Et qu’un nettoyage partiel ne suffit pas à l’éliminer durablement.

Un plugin persistant, piloté à distance et presque invisible

Dans ce cas précis, c’est par le fichier wp-cron.php que l’infection démarre et persiste. Normalement utilisé pour exécuter des tâches planifiées, cet élément système légitime a été modifié pour créer un répertoire de plugin, y déposer un fichier nommé WP-antymalwary-bot.php contenant du code malveillant, puis l’activer sans intervention manuelle. Tant que wp-cron.php reste infecté, le plugin est recréé à chaque visite du site, même après suppression.

Le plugin lui-même adopte une apparence standard : en-tête conforme, description plausible, code structuré, fonctions soi-disant liées à la sécurité. Pour éviter toute détection à l’œil nu, il se soustrait volontairement à la liste des extensions visibles dans l’interface d’administration. D’autres noms ont été observés – addons.php, wpconsole.php, scr.php, wp-performance-booster.php – mais toutes ces variantes se comportent de la même manière.

Une fois activé, le plugin déploie plusieurs mécanismes de contrôle à distance. Il met à disposition une fonction baptisée emergency_login_all_admins, accessible via une requête GET contenant un mot de passe en clair prédéfini. Si ce mot de passe est correct, le plugin cherche dans la base de données le premier compte administrateur du site, et y connecte automatiquement l’attaquant, sans passer par le processus d'authentification habituel. Dans l'équation, aucun formulaire n’est rempli, aucun nouveau compte n’est créé, et l’accès échappe aux journaux d’événements de WordPress. Seuls les logs serveur, s’ils sont activés, peuvent conserver une trace de la requête.

Le plugin expose aussi une route REST API personnalisée, sans restriction d’accès. Elle permet d’exécuter à distance plusieurs commandes, dont l’injection de code PHP dans les fichiers header.php des thèmes actifs, la suppression des caches, ou d’autres actions pilotées depuis l’extérieur.

Une version plus récente du malware récupère également une URL encodée en base64 depuis un serveur tiers, la déchiffre, puis injecte dynamiquement le script JavaScript correspondant dans la balise <head> des pages du site pour afficher de la publicité ou rediriger les visiteurs vers d’autres pages malveillantes. Évidemment, tout se fait en arrière-plan, à chaque chargement de page.

Le faux plugin n'est pas référencé par la liste des extensions WordPress installées, et permet notamment aux attaquants de prendre le contrôle des sites infectés. © © TippaPatt / Shutterstock
Le faux plugin n'est pas référencé par la liste des extensions WordPress installées, et permet notamment aux attaquants de prendre le contrôle des sites infectés. © © TippaPatt / Shutterstock

Des traces ténues, mais repérables

Pour les sites compromis, le vecteur d’infection initial reste difficile à identifier. Les analystes de Wordfence évoquent la possibilité d’un compte FTP ou d’un hébergement piraté, mais faute de journaux complets, l’origine exacte reste incertaine. En revanche, plusieurs indicateurs concrets permettent de repérer une éventuelle compromission.

Le fichier wp-cron.php constitue le premier point de contrôle. En cas de doute, il doit être comparé à une version saine : toute présence de code chargé de créer ou d’activer un plugin est suspecte. Même chose du côté des fichiers header.php dans les thèmes actifs. Le malware y injecte du code PHP ou JavaScript, parfois chiffré, et ne l’exécute que si des paramètres key et iv sont fournis dans l’URL pour permettre son déchiffrement à la volée.

Les journaux d’accès HTTP peuvent aussi révéler des signaux faibles. Des requêtes contenant les paramètres emergency_login, check_plugin, urlchange ou key sont à surveiller, en particulier si elles reçoivent une réponse positive. L’apparition répétée de l’adresse IP 45.61.136.85 – identifiée comme serveur de commande – peut également confirmer une activité malveillante.

Pour se prémunir, il est donc impératif de surveiller les modifications de fichiers système, de renforcer les accès au serveur (FTP, SSH, base de données), et de limiter les droits d’administration au strict nécessaire. L’usage d’un outil de détection de fichiers malveillants, de modifications suspectes ou d’indicateurs de compromission externe ou local reste recommandé, même sans interface WordPress active. En cas d’infection avérée, il est préférable de repartir d’une sauvegarde propre, en vérifiant l’ensemble des fichiers et en réinitialisant tous les accès.

Source : Wordfence

À découvrir
Meilleur antivirus, le comparatif en mai 2025

28 avril 2025 à 09h45

Comparatifs services