SOC Prime Bias: Critico

02 Jun 2026 19:44 UTC

Operazione Dragon Weave usa Azure Cloud C2 per colpire Repubblica Ceca e Taiwan

Author Photo
SOC Prime Team linkedin icon Segui
Operazione Dragon Weave usa Azure Cloud C2 per colpire Repubblica Ceca e Taiwan
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

Un’operazione di spionaggio mirato tracciata come Operation Dragon Weave utilizza file di collegamento LNK dannosi insieme a un eseguibile basato su Rust per lanciare un caricatore a più stadi che alla fine distribuisce l’agente di comando e controllo Adaptix AZUREVEIL. Gli operatori abusano di Microsoft Azure Blob Storage come meccanismo dead-drop per le comunicazioni C2. La campagna è focalizzata sul personale governativo e sui ricercatori nella Repubblica Ceca e a Taiwan.

Indagine

L’indagine ha seguito l’intera catena d’infezione dall’archivio ZIP iniziale attraverso l’esecuzione di VBScript, decriptazione basata su PowerShell, sideloading di DLL e un caricatore custom Rust che utilizzava RC4, Base64 e SM4 per decriptare il payload finale. Il malware dell’ultima fase, AZUREVEIL, è stato identificato come DLL Adaptix a 64 bit che comunica solo tramite Azure Blob Storage e supporta l’esecuzione di Beacon Object File in memoria.

Mitigazione

I difensori dovrebbero bloccare l’esecuzione di file LNK inattesi e binari non firmati, imporre controlli rigidi sull’esecuzione degli script e dei macro, e monitorare per traffico insolito di Azure Blob Storage. L’uso di PowerShell con bypass delle politiche di esecuzione dovrebbe essere limitato o attentamente osservato, e i team di sicurezza dovrebbero rilevare la creazione sospetta di file in %LOCALAPPDATA% and %TEMP%. Una forte igiene delle credenziali per gli account Azure e la rotazione regolare dei token SAS sono anche raccomandate.

Risposta

I team di sicurezza dovrebbero rilevare e isolare gli host colpiti, raccogliere memoria volatile per recuperare eventuali payload in memoria, bloccare il dominio di archiviazione Azure identificato e cercare gli artefatti di file segnalati e i pattern di processo. Dovrebbe essere effettuata anche un’indagine forense completa per identificare eventuali componenti aggiuntivi lasciati cadere e rimuovere i meccanismi di persistenza.

graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ddffdd classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes attack_phishing[“<b>Azione</b> – <b>T1566.001 Allegato di Spearphishing</b><br/>L’attaccante invia alle vittime un archivio ZIP malevolo via email.”] class attack_phishing action file_zip[“<b>File</b> – malicious.zip<br/>Contiene un collegamento .lnk e un dropper .exe compilato in Rust.”] class file_zip file action_user_exec[“<b>Azione</b> – <b>T1204.001 Esecuzione dell’utente</b><br/>La vittima apre il file .lnk o esegue il file .exe, avviando la catena del dropper.”] class action_user_exec action file_lnk[“<b>File</b> – payload.pdf.lnk<br/>Il collegamento usa una doppia estensione e un’icona Edge per sembrare legittimo.”] class file_lnk file tool_wscript[“<b>Strumento</b> – wscript.exe<br/>Esegue il payload VBScript.”] class tool_wscript tool file_vbs[“<b>File</b> – empty.vbs<br/>VBScript minimale che avvia PowerShell.”] class file_vbs file action_vbscript[“<b>Azione</b> – <b>T1059.005 Visual Basic</b><br/>Il VBScript viene eseguito tramite wscript per avviare PowerShell.”] class action_vbscript action action_powershell[“<b>Azione</b> – <b>T1059.001 PowerShell</b><br/>Profile.ps1 viene eseguito con bypass della policy ed esegue la decrittazione dello stadio successivo.”] class action_powershell action file_dat[“<b>File</b> – 1.dat<br/>Contenitore XOR crittografato contenente RuntimeBroker_update.exe.”] class file_dat file process_runtime[“<b>Processo</b> – RuntimeBroker_update.exe<br/>Decifrato da 1.dat; carica la DLL malevola UnityPlayer.dll tramite DLL side-loading.”] class process_runtime process file_dll[“<b>File</b> – UnityPlayer.dll<br/>DLL malevola posizionata accanto a RuntimeBroker_update.exe.”] class file_dll file action_dll_sideload[“<b>Azione</b> – <b>T1546.009 DLL AppCert</b><br/>Il DLL side-loading consente l’esecuzione di codice.”] class action_dll_sideload action tool_rustloader[“<b>Strumento</b> – Loader Rust (RUSTCLOAK)<br/>Alloca memoria, scrive il PE AZUREVEIL decifrato ed esegue tramite Windows Fibers.”] class tool_rustloader tool action_process_injection[“<b>Azione</b> – <b>T1055.002 Iniezione di processo</b><br/>Iniezione PE tramite Windows Fibers.”] class action_process_injection action file_azureveil[“<b>File</b> – AZUREVEIL.exe<br/>Payload decrittato eseguito dopo l’iniezione.”] class file_azureveil file action_discovery[“<b>Azione</b> – <b>T1083 Scoperta file e directory</b><br/>Il loader enumera i file e li sposta in %TEMP%.”] class action_discovery action action_network_discovery[“<b>Azione</b> – <b>T1016 Scoperta configurazione di rete</b><br/>Raccoglie informazioni MAC e IP per proxy e movimento laterale.”] class action_network_discovery action action_c2[“<b>Azione</b> – <b>T1102 Servizio web</b><br/>Comunica con Azure Blob Storage tramite HTTPS.”] class action_c2 action action_dead_drop[“<b>Azione</b> – <b>T1102.003 Comunicazione unidirezionale</b><br/>Carica beacon blob e recupera comandi dallo stesso container.”] class action_dead_drop action action_encrypted_channel[“<b>Azione</b> – <b>T1573.001 Canale cifrato</b><br/>Dati beacon e comandi cifrati con RC4 personalizzato e SM4-CBC.”] class action_encrypted_channel action action_exfil[“<b>Azione</b> – <b>T1567.002 Esfiltrazione via servizio web</b><br/>Carica dati cifrati su endpoint Azure Blob.”] class action_exfil action action_persistence[“<b>Azione</b> – <b>T1547.009 Modifica collegamento</b><br/>Posiziona un file .lnk malevolo nelle cartelle di avvio.”] class action_persistence action %% Edges attack_phishing –>|consegna| file_zip file_zip –>|attiva| action_user_exec action_user_exec –>|apre| file_lnk file_lnk –>|esegue| tool_wscript tool_wscript –>|esegue| file_vbs file_vbs –>|avvia| action_vbscript action_vbscript –>|avvia| action_powershell action_powershell –>|decritta| file_dat file_dat –>|genera| process_runtime process_runtime –>|carica| file_dll file_dll –>|usato da| action_dll_sideload process_runtime –>|esegue| action_process_injection action_process_injection –>|usa| tool_rustloader tool_rustloader –>|carica| file_azureveil file_azureveil –>|esegue| action_discovery action_discovery –>|esegue anche| action_network_discovery action_network_discovery –>|invia dati a| action_c2 action_c2 –>|usa| action_dead_drop action_dead_drop –>|dipende da| action_encrypted_channel action_encrypted_channel –>|abilita| action_exfil action_exfil –>|può attivare| action_persistence file_lnk –>|stabilisce| action_persistence %% Class Assignments class attack_phishing action class file_zip file class action_user_exec action class file_lnk file class tool_wscript tool class file_vbs file class action_vbscript action class action_powershell action class file_dat file class process_runtime process class file_dll file class action_dll_sideload action class tool_rustloader tool class action_process_injection action class file_azureveil action class action_discovery action class action_network_discovery action class action_c2 action class action_dead_drop action class action_encrypted_channel action class action_exfil action class action_persistence action

Flusso di Attacco

Esecuzione di Simulazione

Prerequisito: Il Controllo pre-volo di Telemetria & Baseline deve essere stato superato.

Narrazione dell’Attacco & Comandi

  1. Consegna: L’attaccante invia una email di phishing con un allegato denominato 計畫申請審查結果通知單.pdf.lnk. La doppia estensione nasconde la natura di collegamento. L’LNK punta a C:Tempevil.vbs.
  2. Esecuzione (VBScript): Quando la vittima fa doppio clic sull’LNK, wscript.exe avvia evil.vbs. Lo script rilascia RuntimeBroker_update.exe to %APPDATA%MicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe e copia una UnityPlayer.dll (contenente il caricatore basato su Rust) nella stessa directory.
  3. DLL Sideloading: L’attaccante esegue RuntimeBroker_update.exe. Poiché l’eseguibile è firmato (o simula un binario legittimo), Windows carica la UnityPlayer.dll, che esegue il payload Rust integrato (RUSTCLOAK) e stabilisce un canale C2 verso Azure.
  4. Dopo esecuzione: Il payload esegue la scoperta del sistema (T1016, T1082) e inizia l’esfiltrazione (T1041) su un canale cifrato (T1573).

Script di Test di Regressione

<# 
  Script di simulazione per il rilevamento di LNK dannoso + sideloading DLL.
  Prerequisiti:
  - Sysmon con ProcessCreate (ID 1) e ImageLoad (ID 7) abilitati.
  - Permesso di scrittura su $env:APPDATAMicrosoftWindowsStart MenuPrograms
#>

# 1. Preparare VBScript dannoso
$vbPath = "$env:TEMPevil.vbs"
@'
Set objShell = CreateObject("WScript.Shell")
'objShell.Run """$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe""", 0, False
'@ | Set-Content -Path $vbPath -Encoding Unicode

# 2. Distribuire una UnityPlayer.dll finta (segnaposto binario)
$dllPath = "$env:APPDATAMicrosoftWindowsStart MenuProgramsUnityPlayer.dll"
# Per la demo, basta copiare qualsiasi DLL esistente (ad esempio, version.dll) e rinominarla
Copy-Item "$env:SystemRootSystem32version.dll" $dllPath -Force

# 3. Distribuire l'eseguibile helper (una copia di un binario legale per realismo)
$exePath = "$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe"
Copy-Item "$env:SystemRootSystem32RuntimeBroker.exe" $exePath -Force

# 4. Creare l'LNK dannoso con doppia estensione
$lnkPath = "$env:USERPROFILEDesktop計畫申請審查結果通知單.pdf.lnk"
$ws = New-Object -ComObject WScript.Shell
$shortcut = $ws.CreateShortcut($lnkPath)
$shortcut.TargetPath = "$env:SystemRootSystem32wscript.exe"
$shortcut.Arguments = "`"$vbPath`""
$shortcut.Save()

Write-Host "LNK dannoso creato in $lnkPath"
Write-Host "Esecuzione dell'LNK per attivare la catena..."
Start-Process -FilePath $lnkPath -Wait

Comandi di Pulizia

# Rimuovere gli artefatti
Remove-Item "$env:TEMPevil.vbs" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATAMicrosoftWindowsStart MenuProgramsUnityPlayer.dll" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILEDesktop計畫申請審查結果通知單.pdf.lnk" -Force -ErrorAction SilentlyContinue
Write-Host "Pulizia completata."