Reverse engineering di Vidar Stealer: dalle stringhe offuscate in memoria all'iniezione nel processo Chrome, all'esecuzione di JS malevolo e al dirottamento di sessioni attive su Google e Reddit.
Il campione di Vidar Stealer caricato in Binary Ninja mostra codice pesantemente offuscato all'interno della funzione main.vxormo. L'analisi rivela che il malware si affida alla crittografia delle stringhe, a routine XOR personalizzate e all'assemblaggio in memoria a runtime per nascondere il suo vero comportamento. Gli array di byte ricchi di \x00 (x00\x00\x00...) nella vista pseudo-C indicano che frammenti grezzi del payload vengono costruiti direttamente in memoria.
Funzioni offuscate: nomi generati casualmente come main.vxormo, main.oqvmwusz e main.dzgsnuhm vengono usati per oscurare la funzionalità. Stringhe offuscate: whatnthotsfalse... e cornbindtrue... sono stringhe cifrate che vengono risolte a runtime. Routine XOR personalizzata: il nome stesso della funzione vxormo suggerisce che è attivo un ciclo di decrittazione XOR personalizzato. Costruzione del payload in memoria: array contenenti i byte \x00, \x89, \x99, \x48 vengono scritti in memoria usando _builtin_memcpy.Il puntatore uint8_t)rax mostra frammenti grezzi di shellcode/payload in fase di assemblaggio.
Sconfiggere l'analisi statica: l'uso di funzioni con nomi casuali e stringhe cifrate significa che gli AV basati su firme statiche non riusciranno a identificare il payload. Esecuzione in memoria (fileless): il payload \x00 non viene mai scritto su disco; viene allocato ed eseguito direttamente in memoria (RWX), eludendo gli scanner di file. Crittografia XOR personalizzata: una routine XOR personalizzata impedisce la semplice estrazione delle stringhe o la corrispondenza con regole YARA. Occultamento dei dati: i massicci array illeggibili (\x00\x00\x00\x01...) sono probabilmente blocchi di configurazione cifrati (URL C2, moduli grabber) che vengono decifrati solo quando necessario.

Una seconda vista del campione di Vidar Stealer in Binary Ninja rivela una funzione (main.obttcklrlfwpzvugbzqtn) dedicata alla ricognizione del sistema e alla pulizia anti-forense. La funzione elabora stringhe cifrate e risolve nomi di API per cancellare le tracce della sua esecuzione, prendendo di mira specificamente le cache DNS, i registri eventi e i file internet temporanei prima di rilasciare il payload finale.
Risoluzione offuscata delle API: la stringa ...DiednsQuery_WGGetIfEntryCancelIoExCreatePipe... è una concatenazione cifrata di chiamate WinAPI API di pulizia identificate: DnsQuery_W / DnsFlushResolverCache – svuota la cache DNS per nascondere le tracce della risoluzione del dominio C2. GetIfEntry– enumera le interfacce di rete (verificando la presenza di adattatori sandbox/virtuali). WinExec – esegue dinamicamente utilità di pulizia del sistema (ad es., cmd.exe /c del ...). Esecuzione di syscall/script: i riferimenti a dllws2_32.dll e /dev/stdin (redirezione dell'input standard) indicano che il malware si prepara a interagire con gli stream standard o lo stack di rete del sistema.
Anti-forensics: svuotare la cache DNS (DnsFlushResolverCache) e invocare routine di pulizia garantisce che i log di rete e gli artefatti locali vengano distrutti, ostacolando la risposta agli incidenti. Evasione della sandbox: interrogare le interfacce di rete (GetIfEntry) consente allo stealer di rilevare ambienti virtualizzati (ad es., VMware, VirtualBox) e interrompere l'esecuzione se viene rilevata una sandbox Spoofing del flusso di esecuzione: usare WinExec per la pulizia significa che il malware non ha bisogno di importare staticamente API di cancellazione; delega il lavoro sporco al sistema operativo. Interazione fileless: la redirezione di /dev/stdin e l'uso di pipe (CreatePipe) consentono allo stealer di passare i dati rubati a un processo iniettato o a una shell dei comandi senza toccare il disco.

La vista della memoria di Process Hacker del processo chrome.exe (PID 8944) conferma che Vidar Stealer ha iniettato il suo payload direttamente nello spazio di memoria del browser. La scansione delle stringhe espone molteplici blocchi di esecuzione di thread, un artefatto standard del process hollowing o dell'iniezione di thread remoti. Iniettando in Chrome, lo stealer opera sotto un processo affidabile e ad alta integrità per raccogliere silenziosamente cookie, credenziali salvate e token di sessione.
Thread iniettati (stringhe di memoria): THREAD_BROWSER_WATCHDOG / THREAD_GPU_WATCHDOG – watchdog dirottati per mantenere vivi i thread iniettati. THREAD_CACHE_BLOCKFILE – indica la manipolazione della cache di Chrome (probabilmente per estrarre dati di sessione). THREAD_AUDIO_INPUTDEVICE / THREAD_GAMEPAD_POLLING – thread non essenziali riutilizzati per mascherare attività malevole. THREAD_WEBCRYPTO – altamente sospetto; l'API crittografica interna di Chrome viene usata per decifrare password e cookie salvati. THREAD_PROXYRESOLVER / THREAD_DATABASE – usati per intercettare il traffico di rete e accedere al database locale delle credenziali.
Furto di credenziali del browser: l'hooking di THREAD_WEBCRYPTO e THREAD_DATABASE consente a Vidar di aggirare la crittografia di Chrome e rubare password e cookie salvati. Living off the Land: iniettando in chrome.exe, il malware si maschera da traffico legittimo del browser, aggirando facilmente firewall e regole di rete EDR. Process Hollowing: la presenza di thread standard di Chrome accanto a quelli iniettati significa che il malware ha probabilmente svuotato un thread legittimo o ha usato CreateRemoteThread. Session Hijacking: THREAD_CACHE_BLOCKFILE e l'estrazione dei cookie consentono all'attaccante di rubare sessioni attive (session hijacking) senza bisogno della password dell'utente. Evasione: le soluzioni antivirus raramente scansionano all'interno dello spazio di memoria di un browser firmato come Chrome.

Uno sguardo più approfondito nello spazio di memoria iniettato di chrome.exe (PID 8944) rivela una raccolta di stringhe specificamente mirate ai flussi di autenticazione Google, alle sessioni Reddit e all'esecuzione di JavaScript nel browser. La presenza di queste stringhe conferma che Vidar Stealer inietta JavaScript malevolo o effettua l'hooking delle API del browser per intercettare credenziali di accesso e token di sessione.