Selon Sucuri (blog.sucuri.net), des chercheurs décrivent une campagne de malware ciblant des sites WordPress en modifiant le fichier de thème functions.php afin d’injecter du JavaScript malveillant depuis une infrastructure distante, avec au moins 17 sites affectés. ⚠️

Le vecteur d’infection repose sur l’ajout d’une fonction PHP ti_customjavascript() au sein de functions.php, exécutée à chaque chargement de page via le hook wp_head. Cette fonction établit une connexion POST vers hxxps://brazilc[.]com/ads[.]php et insère directement la réponse dans la balise du HTML.

Le serveur distant renvoie deux composants d’attaque: (1) un script chargé depuis porsasystem[.]com/6m9x[.]js jouant le rôle de distributeur de trafic pour redirections et pop-ups; (2) un long JavaScript créant une iframe cachée 1x1 pixel qui injecte du code imitant des scripts légitimes de la plateforme de challenge Cloudflare (cdn-cgi/challenge-platform/scripts/jsd/main.js).

Pour l’évasion, le malware utilise les attributs data-cfasync=‘false’ et async afin de contourner Cloudflare Rocket Loader et d’éviter de bloquer le rendu de la page. Une analyse VirusTotal indique qu’un domaine de l’infrastructure est « blocklisté » par 17 éditeurs, confirmant la nature malveillante de la campagne.

IOCs

  • Domains: brazilc[.]com, porsasystem[.]com
  • URLs/Paths: hxxps://brazilc[.]com/ads[.]php, hxxps://porsasystem[.]com/6m9x[.]js, cdn-cgi/challenge-platform/scripts/jsd/main.js (usurpé)
  • Artefacts WP: functions.php, fonction ti_customjavascript(), hook wp_head
  • Indicateurs frontaux: iframe cachée 1x1, redirections forcées, pop-ups

TTPs

  • Initialisation: compromission de thème WordPress via modification de functions.php
  • Exécution: fonction PHP injectée, déclenchée par wp_head, écho du payload dans
  • C2/Exfiltration: requête POST vers serveur de commande et contrôle (brazilc[.]com/ads[.]php)
  • Livraison/Impact: distribution de trafic, redirections, pop-ups, drive-by via iframe cachée
  • Évasion: imitation de scripts Cloudflare, usage de data-cfasync=‘false’ et async pour contourner Rocket Loader

Type d’article: analyse de menace, visant à documenter la campagne, ses mécanismes et ses IOCs/TTPs.

🧠 TTPs et IOCs détectés

TTPs

Initialisation: compromission de thème WordPress via modification de functions.php; Exécution: fonction PHP injectée, déclenchée par wp_head, écho du payload dans ; C2/Exfiltration: requête POST vers serveur de commande et contrôle (brazilc[.]com/ads[.]php); Livraison/Impact: distribution de trafic, redirections, pop-ups, drive-by via iframe cachée; Évasion: imitation de scripts Cloudflare, usage de data-cfasync=‘false’ et async pour contourner Rocket Loader

IOCs

Domains: brazilc[.]com, porsasystem[.]com; URLs/Paths: hxxps://brazilc[.]com/ads[.]php, hxxps://porsasystem[.]com/6m9x[.]js, cdn-cgi/challenge-platform/scripts/jsd/main.js (usurpé); Artefacts WP: functions.php, fonction ti_customjavascript(), hook wp_head; Indicateurs frontaux: iframe cachée 1x1, redirections forcées, pop-ups


🔗 Source originale : https://blog.sucuri.net/2025/10/malvertising-campaign-hides-in-plain-sight-on-wordpress-websites.html

🖴 Archive : https://web.archive.org/web/20251005205148/https://blog.sucuri.net/2025/10/malvertising-campaign-hides-in-plain-sight-on-wordpress-websites.html