Le mois dernier, j’ai rencontré un cas de malware particulièrement intéressant et complexe qui se distingue des infections habituelles que je vois sur les sites WordPress compromis. À première vue, le site semblait propre : pas de signes visibles de défiguration, pas de redirections malveillantes, et rien de suspect dans la liste des plugins. Mais sous la surface, une chaîne d’infection cachée travaillait discrètement pour livrer un cheval de Troie aux visiteurs sans méfiance.
Il s’agissait d’une attaque en couches impliquant des droppers basés sur PHP, du code obscurci, une évasion basée sur l’IP, des scripts batch générés automatiquement, et une archive ZIP malveillante contenant un cheval de Troie pour Windows (client32.exe).
La Compromission Initiale : Où Tout Commence
Bien que nous n’ayons pas le vecteur de compromission initial dans ces fichiers, il est fort probable que ce malware provienne d’un site précédemment compromis. Les attaquants injectent souvent du code malveillant dans des fichiers PHP légitimes ou en créent de nouveaux pour prendre pied. Dans ce cas, deux fichiers PHP, header.php et man.php, semblent être centraux dans l’opération.
Résumé de l’Infection
L’acteur de la menace a planté un certain nombre de fichiers malveillants dans l’environnement WordPress. Ces fichiers incluent :
- header.php : Le contrôleur malveillant principal
- man.php : Un gestionnaire d’interaction de fichiers déguisé
- count.txt : Un fichier journal utilisé pour stocker les IP des visiteurs
- update.bat : Un fichier batch généré qui télécharge et exécute le malware
- psps.zip : Une archive ZIP factice contenant client32.exe, un cheval de Troie pour Windows
Ensemble, ces composants forment une chaîne d’infection furtive conçue pour identifier et suivre les visiteurs uniques, enregistrer les IP non répétées, générer et servir un fichier .bat personnalisé, télécharger et extraire une charge utile ZIP, exécuter un EXE malveillant sur la machine de la victime, et persister en ajoutant une entrée de registre au démarrage de Windows.
Analyse du Malware
header.php : Le Dropper Principal
Le fichier header.php est l’intelligence centrale de cette campagne de malware. Il est méticuleusement conçu pour profiler les victimes, appliquer une liste noire basée sur l’IP, générer dynamiquement un fichier batch Windows fortement obscurci, puis forcer son téléchargement sur le système du client.
Le script commence par une vérification cruciale de la méthode de requête HTTP :
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
exit;
}
Suivi des IP pour Éviter les Répétitions
Ensuite, le script implémente un mécanisme de journalisation et d’anti-rejeu basé sur l’IP. Le malware enregistre l’IP de chaque visiteur dans count.txt situé dans le même répertoire et évite de servir le fichier batch deux fois à la même IP.
En-têtes de Téléchargement Forcé
Après que le fichier batch $payload soit entièrement construit et écrit dans un fichier temporaire nommé update.bat sur le serveur, header.php manipule les en-têtes HTTP pour forcer un téléchargement dans le navigateur de la victime.
Génération de la Charge utile update.bat
La fonctionnalité principale de header.php culmine dans la construction d’une chaîne de script batch Windows, stockée dans la variable $payload. Ce script batch, une fois exécuté sur la machine d’une victime, sert de dropper à plusieurs étapes, orchestrant le téléchargement, l’extraction, l’exécution et la persistance du malware final.
Le batch initialise des variables d’environnement, crée un dossier d’extraction, télécharge l’archive ZIP malveillante via PowerShell, extrait le contenu (le trojan client32.exe), exécute ce dernier, puis ajoute une clé de registre pour garantir la persistance à chaque démarrage de Windows. Enfin, il supprime l’archive ZIP pour effacer les traces, mais laisse volontairement le trojan en place.
count.txt : Liste Noire d’IP et Journal d’Activité
Le fichier count.txt sert un double objectif dans cette campagne : il fonctionne comme un journal d’activité simple pour les interactions du dropper et, de manière critique, comme une liste noire rudimentaire pour empêcher les infections répétées et les tentatives d’analyse à partir des mêmes adresses IP.
man.php : L’Interface Administrative
Le fichier man.php fonctionne comme un panneau administratif web de base conçu pour que l’acteur de la menace puisse gérer et surveiller le fichier journal count.txt. Il offre des capacités pour afficher la taille et le nombre d’enregistrements de count.txt, ainsi que son contenu brut directement dans un navigateur web. Il permet aussi de réinitialiser la liste noire ou d’ajouter de nouvelles IP.
psps.zip : Archive de Cheval de Troie Cachée
Cette archive ZIP, hébergée à l’extérieur, contient client32.exe, un cheval de Troie binaire pour Windows identifié comme un cheval de Troie d’accès à distance (RAT). Ce malware établit une connexion discrète avec un serveur de commande et contrôle (C2), permettant à l’attaquant de prendre le contrôle de la machine infectée, d’exfiltrer des données ou d’installer d’autres malwares.
Atténuation et Recommandations
Cette campagne souligne la nécessité critique d’une approche de sécurité robuste et multi-couches.
Pour les Propriétaires de Sites Web :
- Surveillance Continue : Mettez en œuvre une analyse régulière des malwares et une surveillance de l’intégrité des fichiers pour vos applications web et serveurs.
- Pare-feu d’Application Web (WAF) : Utilisez un WAF pour détecter et bloquer les requêtes malveillantes, y compris les injections de code et les connexions sortantes suspectes.
- Gestion des Patches : Gardez tous les CMS, thèmes, plugins et logiciels de serveur à jour pour corriger les vulnérabilités connues.
- Configurations Sécurisées : Appliquez des contrôles d’accès stricts, des permissions de fichiers sécurisées, et les meilleures pratiques de durcissement des serveurs.
- Réponse aux Incidents : Ayez un plan clair pour détecter, contenir et récupérer des compromissions.
En tant qu’experts en réparation d’urgence WordPress, nous proposons une analyse complète, le nettoyage des malwares, la suppression des backdoors et le renforcement de la sécurité. Notre service de maintenance inclut l’installation d’antivirus, les mises à jour régulières, les sauvegardes et une surveillance 24/7, avec option d’hébergement Premium en France. Pour optimiser votre visibilité en ligne, nous offrons des services d’optimisation SEO technique, de stratégie éditoriale et de création de contenus ciblés.
Pour les Utilisateurs Finaux :
- Vigilance de Téléchargement : Soyez très méfiant envers les téléchargements exécutables inattendus (par exemple, .bat, .exe) depuis n’importe quel site web.
- Logiciel de Sécurité à Jour : Assurez-vous que votre solution antivirus ou EDR est active et à jour.
- Mises à Jour Système : Gardez votre système d’exploitation et toutes les applications à jour.
- Contrôle de Compte Utilisateur (UAC) : Ne désactivez pas l’UAC sur Windows, car il fournit une invite de sécurité cruciale.
- Sensibilisation : Comprenez les tactiques d’ingénierie sociale pour éviter de tomber dans des pièges malveillants.
Conclusion
Ce cas de malware démontre comment les attaquants repoussent les limites de la furtivité dans les déploiements de chevaux de Troie basés sur le web. De la livraison intelligente de charges utiles à l’obscurcissement personnalisé et aux techniques de persistance, chaque élément a été conçu pour éviter la détection et rester caché aussi longtemps que possible.
Si votre site WordPress a été compromis, il est essentiel d’enquêter plus avant. Un malware comme celui-ci peut entraîner l’infection des machines des utilisateurs, l’exfiltration de données, et le contrôle à long terme par des attaquants distants.
Besoin d’Aide ?
Si vous soupçonnez que votre site a été compromis, notre équipe de Réparation d’Urgence WordPress est disponible 24/7 pour nettoyer et sécuriser votre site. Nos services de Maintenance WordPress et d’Optimisation SEO vous aident à rester un pas en avant face aux menaces évolutives. N’hésitez pas à me contacter pour toute assistance.
Benjamin Bueno, Expert en Sécurité WordPress chez SécuritéWP





