Table des matières
Introduction au Joomla SEO Spam Injector
Le Joomla SEO Spam Injector est une menace sérieuse qui peut compromettre la sécurité de votre site web. Lors d’une récente enquête sur un nettoyage de malware, nous avons découvert un site Joomla compromis. Le propriétaire a signalé un problème étrange : son site affichait un grand nombre de liens produits suspects qui n’avaient rien à voir avec son activité. Ces produits n’avaient pas été ajoutés par le propriétaire et n’existaient pas dans son catalogue. Les visiteurs et les moteurs de recherche voyaient des pages promouvant des produits non liés, soulevant des préoccupations immédiates concernant l’injection de spam ou la manipulation de contenu à distance.
Qu’est-ce que l’injection de spam SEO ?
L’injection de spam SEO est l’un des types d’infections de site web les plus courants que nous gérons chez Sucuri. Les attaquants injectent du code malveillant qui sert silencieusement du contenu de spam aux visiteurs et aux moteurs de recherche, sans que le propriétaire du site ne le sache. L’objectif est simple : abuser de la réputation du site pour diriger le trafic vers des produits que l’attaquant souhaite promouvoir.
Analyse de l’infection
Lors de l’inspection du site, nous avons trouvé un bloc de code PHP fortement obfusqué injecté en haut du fichier index.php du site. Sous l’obfuscation, le malware effectuait trois actions principales :
- Contacter des serveurs de commande et de contrôle (C2) externes
- Recevoir des instructions
- Rediriger les visiteurs ou injecter du contenu de spam en conséquence
Un aspect intéressant de cette infection est que le malware lui-même n’inclut pas directement le contenu de spam lié aux listes de produits suspectes signalées par le propriétaire du site. Au lieu de cela, le script agit comme un chargeur à distance. Il contacte un serveur externe, envoie des informations sur le site infecté et attend des instructions. La réponse du serveur distant détermine quel contenu le site infecté doit servir.
Les domaines impliqués dans l’infection
Trois domaines apparaissent dans ce malware. Deux sont des C2 actifs, et un est un leurre mort :
- PRIMAIRE : cdn[.]erpsaz[.]com – C2 principal
- DE SECOURS : cdn[.]saholerp[.]com – C2 de secours, utilisé automatiquement si le principal renvoie une réponse vide
- Ne renvoie rien : lashowroom[.]com – Décodé dans la table de chaînes mais jamais référencé par un appel d’index qui construit une URL.
Ces domaines apparaissent à l’intérieur de la charge utile encodée et sont utilisés par le malware pour récupérer des instructions de l’infrastructure contrôlée par l’attaquant.
Indicateurs de compromission (IoC)
Un des principaux indicateurs dans ce cas était la présence de code PHP fortement obfusqué injecté en haut du fichier index.php de Joomla. D’autres indicateurs incluaient des requêtes sortantes suspectes vers des domaines externes et l’apparition de liens produits non liés sur le site. Ces liens n’étaient pas stockés dans la base de données Joomla, mais étaient plutôt injectés dynamiquement par le script chargeur malveillant.
Analyse du malware
Le malware est structuré autour de quatre fonctions PHP, chacune ayant un rôle spécifique. Voici un aperçu de chacune d’elles :
1. wffn() : Le décodeur de démarrage
Toute la dépendance de ce malware repose sur cette petite fonction. Elle existe uniquement pour éviter d’écrire les mots explode et base64_decode en texte clair, car ces chaînes sont signalées par de nombreux scanners de sécurité.
2. mpjy() : La table de recherche de chaînes
Cette fonction décode et met en cache une table de recherche maîtresse de 27 chaînes. L’ensemble de la table est stocké sous forme d’une seule chaîne base64 qui est elle-même assemblée à partir de morceaux de 2 caractères.
3. fotr() : Le régulateur de trafic
C’est le moteur de dissimulation. Il construit l’URL C2, appelle joog() pour récupérer des instructions, puis décide quoi servir au visiteur actuel en fonction de la réponse C2.
4. joog() : Le demandeur HTTP et l’exfiltrateur de données
La fonction joog() gère la communication avec l’infrastructure distante. Le script collecte des données sur l’environnement du serveur et les encode avant de les envoyer à l’attaquant.
Impact du malware
Ce script permet aux attaquants de contrôler dynamiquement le site infecté. Cela peut leur permettre d’injecter des listes de produits de spam, d’afficher du contenu malveillant ou de rediriger les visiteurs vers d’autres sites. Dans ce cas, le propriétaire du site a remarqué des liens de produits non liés apparaissant sur son site.
Comment nous avons résolu le problème
Pour remédier à l’infection, nous avons supprimé le code malveillant du fichier index.php de Joomla et vérifié qu’aucune autre porte dérobée n’était présente sur le serveur. Nous avons ensuite demandé au propriétaire du site de réinitialiser tous les identifiants d’administrateur.
Mesures préventives
Voici quelques étapes à suivre pour prévenir ce type d’infection :
- Maintenez le cœur de Joomla et toutes les extensions à jour.
- Utilisez un pare-feu d’application web (WAF).
- Utilisez des mots de passe forts et uniques pour le panneau d’administration de Joomla.
- Restreignez les permissions de fichiers.
- Auditez régulièrement les extensions installées.
Conclusion
Ce cas met en lumière comment les attaquants utilisent de petits scripts chargeurs fortement obfusqués pour contrôler à distance des sites web compromis. Si votre site Joomla affiche des liens, produits ou contenus inattendus, consultez un professionnel de la sécurité pour un audit complet du site. Une porte dérobée comme celle-ci se trouve presque toujours silencieusement au tout début de ce fichier.
La surveillance régulière de la sécurité, les mises à jour logicielles en temps opportun et l’inspection minutieuse des fichiers principaux sont des étapes essentielles pour prévenir et détecter ces types de compromissions.
Si vous soupçonnez que votre site a été compromis et avez besoin d’une assistance experte, Sucuri propose des services professionnels de suppression de malware et de surveillance de sécurité continue.
Puja Srivastava est analyste en sécurité avec une passion pour la lutte contre les menaces de malware nouvelles et non détectées. Avec plus de 7 ans d’expérience dans le domaine de la recherche sur les malwares et la sécurité, Puja a perfectionné ses compétences dans la détection, la surveillance et le nettoyage des malwares sur les sites web.
