🔍 Contexte

PubliĂ© le 18 juin 2026 par Vojtěch Krejsa, chercheur chez Gen Digital, cet article constitue une analyse technique approfondie du mĂ©canisme de contournement de l’Application-Bound Encryption (ABE) implĂ©mentĂ© dans le stealer Vidar, version 2.1.

đŸ§© Technique de bypass ABE

Vidar adopte une approche similaire à Remus/Lumma en extrayant la v20_master_key directement depuis la mémoire du navigateur, mais avec une méthode distincte en deux phases :

Phase 1 – Localisation de la clĂ© en mĂ©moire

  • Si le navigateur est dĂ©jĂ  en cours d’exĂ©cution, Vidar crĂ©e un fork du processus via NtCreateProcessEx avec SectionHandle = NULL, produisant un snapshot mĂ©moire statique (copy-on-write, sans threads).
  • Si aucun navigateur n’est actif, Vidar crĂ©e un bureau isolĂ© (CreateDesktopA) nommĂ© v20_%d et lance le navigateur avec --no-first-run --disable-gpu about:blank.
  • Jusqu’Ă  64 processus navigateur sont Ă©numĂ©rĂ©s et traitĂ©s indĂ©pendamment.
  • La mĂ©moire est scannĂ©e via NtQueryVirtualMemory et NtReadVirtualMemory, ciblant les rĂ©gions MEM_COMMIT, MEM_PRIVATE, PAGE_READONLY ou PAGE_READWRITE (jusqu’Ă  4096 rĂ©gions).
  • Le scan parallĂšle (64 threads) recherche un pattern de 32 octets : 76 32 30 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 03 00 00 00 00 01 ?? ?? correspondant Ă  un nƓud de Chromium::Encryptor::KeyRing.
  • Un systĂšme de vote majoritaire filtre les candidats.

Phase 2 – DĂ©chiffrement via injection APC

  • La clĂ© est protĂ©gĂ©e par CryptProtectMemory avec le flag CRYPTPROTECTMEMORY_SAME_PROCESS, nĂ©cessitant une exĂ©cution depuis le processus navigateur.
  • Vidar sĂ©lectionne l’une de deux mĂ©thodes d’injection APC selon la prĂ©sence d’ESET ou Bitdefender :
    • MĂ©thode « classic » (si ESET/Bitdefender dĂ©tectĂ©) : crĂ©ation d’un thread suspendu via CreateRemoteThread (start address NtTestAlert), queue APC via NtQueueApcThread, reprise du thread.
    • MĂ©thode « special » (sinon) : Ă©numĂ©ration des threads existants via CreateToolhelp32Snapshot/Thread32First/Thread32Next, ouverture via NtOpenThread, injection via NtQueueApcThreadEx2 avec QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC (exĂ©cution immĂ©diate, sans Ă©tat alertable requis).
  • La routine APC injectĂ©e est CryptUnprotectMemory appelĂ©e avec l’adresse candidate, taille 32 octets, et CRYPTPROTECTMEMORY_SAME_PROCESS.
  • Vidar crĂ©e un second fork pour lire la clĂ© dĂ©chiffrĂ©e et vĂ©rifie via dĂ©chiffrement AES-256-GCM (BCryptDecrypt).
  • AprĂšs lecture, Vidar rĂ©injecte CryptProtectMemory pour restaurer l’Ă©tat du navigateur.
  • En cas d’Ă©chec total, Vidar termine tous les processus navigateur, les redĂ©marre et rĂ©pĂšte le cycle.

📌 IoC

  • SHA1 Vidar 2.1 : 459daa809751e73f60fbbe4384a7d1653c36bb06945e4eb363527092424110a

📄 Nature de l’article

Il s’agit d’une publication de recherche technique Ă  visĂ©e CTI, documentant prĂ©cisĂ©ment les mĂ©canismes internes d’un stealer actif pour permettre la dĂ©tection et la comprĂ©hension de ses techniques d’Ă©vasion.

🧠 TTPs et IOCs dĂ©tectĂ©s

Acteurs de menace

  • Vidar (cybercriminal) —

TTP

  • T1055.004 — Process Injection: Asynchronous Procedure Call (Defense Evasion)
  • T1055 — Process Injection (Defense Evasion)
  • T1005 — Data from Local System (Collection)
  • T1003 — OS Credential Dumping (Credential Access)
  • T1057 — Process Discovery (Discovery)
  • T1082 — System Information Discovery (Discovery)
  • T1497.001 — Virtualization/Sandbox Evasion: System Checks (Defense Evasion)
  • T1539 — Steal Web Session Cookie (Credential Access)
  • T1555.003 — Credentials from Password Stores: Credentials from Web Browsers (Credential Access)

IOC

  • SHA1 : 459daa809751e73f60fbbe4384a7d1653c36bb06945e4eb363527092424110a — VT · MalwareBazaar

Malware / Outils

  • Vidar (stealer)
  • Remus (stealer)
  • Lumma (stealer)
  • VoidStealer (stealer)

🟡 Indice de vĂ©rification factuelle : 51/100 (moyenne)

  • ⬜ gendigital.com — source non rĂ©fĂ©rencĂ©e (0pts)
  • ✅ 14308 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 1 IOC(s) (6pts)
  • ⬜ pas d’IOC vĂ©rifiĂ© (0pts)
  • ✅ 9 TTPs MITRE identifiĂ©es (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifiĂ©(s) : Vidar (5pts)
  • ⬜ pas de CVE Ă  vĂ©rifier (0pts)

🔗 Source originale : https://www.gendigital.com/blog/insights/research/inside-vidar-abe-bypass