Operazione Dragon Weave usa Azure Cloud C2 per colpire Repubblica Ceca e Taiwan
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.
Flusso di Attacco
Rilevamenti
LOLBAS WScript / CScript (tramite process_creation)
Visualizza
La possibilità di esecuzione tramite linee di comando PowerShell nascoste (tramite cmdline)
Visualizza
Chiamata di metodi .NET sospetti da PowerShell (tramite powershell)
Visualizza
Possibili indicatori di offuscamento di PowerShell (tramite powershell)
Visualizza
IOC (HashSha256) da rilevare: Operation Dragon Weave: Svelare una campagna connessa alla Cina che prende di mira la Repubblica Ceca e Taiwan utilizzando Azure Cloud C2
Visualizza
Rilevamento di esecuzione dannosa di wscript.exe e utilizzo di CreateFiberEx [Windows Process Creation]
Visualizza
Esecuzione di Profile.ps1 con bypass di PowerShell [Windows Powershell]
Visualizza
File LNK dannoso e sideloading DLL per esecuzione RUSTCLOAK [Evento File di Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo pre-volo di Telemetria & Baseline deve essere stato superato.
Narrazione dell’Attacco & Comandi
- 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 aC:Tempevil.vbs. - Esecuzione (VBScript): Quando la vittima fa doppio clic sull’LNK,
wscript.exeavviaevil.vbs. Lo script rilasciaRuntimeBroker_update.exeto%APPDATA%MicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exee copia unaUnityPlayer.dll(contenente il caricatore basato su Rust) nella stessa directory. - DLL Sideloading: L’attaccante esegue
RuntimeBroker_update.exe. Poiché l’eseguibile è firmato (o simula un binario legittimo), Windows carica laUnityPlayer.dll, che esegue il payload Rust integrato (RUSTCLOAK) e stabilisce un canale C2 verso Azure. - 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."