🔍 Contexte
L’équipe Threat Research de Socket a publié le 23 septembre 2026 une analyse technique détaillée d’une extension Firefox malveillante découverte sur le Firefox Add-ons Store. L’extension, identifiée sous le nom pdf-para-texto@extensao.local (PDF Identity Verifier), a été publiée le 3 septembre 2026 et sa fonctionnalité malveillante a été introduite en version 1.4 le 11 septembre 2026.
🎭 Technique d’évasion : code propre à l’installation
L’extension repose sur une architecture d’évasion sophistiquée : les fichiers statiques livrés sur le store (manifest.json, content.js, background.js) ne contiennent aucun code malveillant hardcodé. background.js est un interpréteur générique qui lit sa configuration depuis browser.storage.local, vide au moment de l’installation. Un réviseur ou un scanner statique ne détecte rien d’anormal.
Les seuls signaux inhabituels sont :
- Correspondance
content_scriptssur://*.google.com/*et://*.gusercontent.com/* - Permissions
webRequest,storage,https://*.google.com/* - Patch de l’interface
PublicKeyCredential(WebAuthn) pour simuler la disponibilité d’un authentificateur de plateforme
⛓️ Chaîne d’infection
- À l’installation (
browser.runtime.onInstalled), l’extension ouvre après 5 secondes un onglet vershttps://pdf.gusercontent.com/oninstalled— domaine lookalike contrôlé par l’attaquant imitantgoogleusercontent.com. content.jsest injecté dans cette page et expose un pont de messages entre la page et le worker de fond.- La page charge un script depuis l’infrastructure attaquante (
/loginSdk/assets/index-BhOgWOaO.js) qui envoie la configuration malveillante au worker viapostMessage. - La configuration est écrite dans
browser.storage.local, armant l’extension.
💣 Comportement de la charge utile : prise de contrôle de compte Google
Le script index-BhOgWOaO.js effectue plusieurs actions avant même d’envoyer la configuration :
- Appel de l’API FedCM de Google (
navigator.credentials.get) pour identifier silencieusement le compte Google connecté (leadId,email) - Récupération de
load-addon.js(script d’account takeover) depuis l’infrastructure attaquante - Redirection vers
https://accounts.google.com/EmbeddedSetup?Email=<email>
Une fois sur accounts.google.com, load-addon.js est injecté via tabs.executeScript et :
- Affiche un overlay plein écran « Validating your identity… » pour masquer l’automatisation
- Pilote le flux de connexion Google par URL, force le défi passkey (
data-challengetype="53") - Contourne la détection de bot de Google en ré-naviguant avec un paramètre
cidincrémental - Si Google force une réinitialisation de mot de passe, génère un mot de passe aléatoire et le soumet silencieusement
- Envoie un transcript en direct de la session à l’endpoint de télémétrie toutes les ~500ms
📤 Exfiltration des données
Deux vecteurs d’exfiltration simultanés :
- Cookie
oauth_token: le listenerwebRequest.onCompletedsurveille toutes les réponses*.google.comet exfiltre les headersSet-Cookiecontenantoauth_tokenvershttps://pdf.gusercontent.com/api/accounts/collect/?leadId=&email=&data= - Nouveau mot de passe : généré et soumis par le script lors d’un reset forcé par Google, connu uniquement de l’attaquant
🌍 Ciblage
L’extension cible les utilisateurs lusophones (pt, pt-PT) et hispanophones (es), avec des textes de leurre en portugais. La base d’utilisateurs est faible au moment de la publication, mais la sophistication de l’évasion est notable.
📋 Type d’article
Analyse technique approfondie publiée par Socket Threat Research, visant à documenter une campagne active d’account takeover via extension de navigateur malveillante et à fournir des IOCs exploitables.
🧠 TTPs et IOCs détectés
TTP
- T1176 — Browser Extensions (Persistence)
- T1539 — Steal Web Session Cookie (Credential Access)
- T1185 — Browser Session Hijacking (Collection)
- T1056.003 — Input Capture: Web Portal Capture (Credential Access)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1105 — Ingress Tool Transfer (Command and Control)
- T1041 — Exfiltration Over C2 Channel (Exfiltration)
- T1036 — Masquerading (Defense Evasion)
- T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
IOC
- Domaines :
pdf.gusercontent.com— VT · URLhaus · ThreatFox - URLs :
https://pdf.gusercontent.com/oninstalled— URLhaus - URLs :
https://pdf.gusercontent.com/loginSdk/assets/index-BhOgWOaO.js— URLhaus - URLs :
https://pdf.gusercontent.com/loginSdk/load-addon.js— URLhaus - URLs :
https://pdf.gusercontent.com/api/accounts/collect/— URLhaus - URLs :
https://pdf.gusercontent.com/api/extlog— URLhaus - URLs :
https://pdf.gusercontent.com/reload— URLhaus - SHA256 :
f1b8329075b1cbd1ae0a5dc947bd00f94642cb166a86c2455a1d0b10aee9f2b1— VT · MalwareBazaar - SHA256 :
16447c70f8e3c99de95b92846460214a661915c89f5c10965bf18da4c279880a— VT · MalwareBazaar - SHA256 :
dc717b5ab9a8eccf6b6187880ba90b004cb00f503ff8bceb8405ccc33d1c6e3e— VT · MalwareBazaar - Fichiers :
index-BhOgWOaO.js - Fichiers :
load-addon.js - Fichiers :
manifest.json - Fichiers :
content.js - Fichiers :
background.js
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 24 septembre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- pdf-para-texto@extensao.local (PDF Identity Verifier) (stealer)
- load-addon.js (other)
- index-BhOgWOaO.js (loader)
🟢 Indice de vérification factuelle : 75/100 (haute)
- ✅ socket.dev — source reconnue (liste interne) (20pts)
- ✅ 19432 chars — texte complet (fulltext extrait) (15pts)
- ✅ 15 IOCs dont des hashes (15pts)
- ⬜ 0/7 IOCs confirmés externellement (0pts)
- ✅ 9 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://socket.dev/blog/firefox-google-account-takeover