SOC Prime Bias: Crítico

02 Jun 2026 19:44 UTC

Operação Dragon Weave Usa Azure Cloud C2 para Alvejar República Tcheca e Taiwan

Author Photo
SOC Prime Team linkedin icon Seguir
Operação Dragon Weave Usa Azure Cloud C2 para Alvejar República Tcheca e Taiwan
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma operação de espionagem direcionada rastreada como Operation Dragon Weave utiliza arquivos de atalho LNK maliciosos junto com um executável baseado em Rust para lançar um carregador em múltiplos estágios que eventualmente implanta o agente de comando e controle Adaptix AZUREVEIL. Os operadores abusam do Microsoft Azure Blob Storage como um mecanismo de entrega sem resposta para comunicações de C2. A campanha é focada em funcionários do governo e pesquisadores na República Tcheca e Taiwan.

Investigação

A investigação acompanhou toda a cadeia de infecção desde o arquivo ZIP inicial através da execução do VBScript, descriptografia baseada em PowerShell, carregamento de DLL e um carregador personalizado em Rust que utilizou RC4, Base64 e SM4 para descriptografar a carga final. O malware de última fase, AZUREVEIL, foi identificado como uma DLL Adaptix de 64 bits que se comunica apenas através do Azure Blob Storage e suporta a execução de Beacon Object File na memória.

Mitigação

Os defensores devem bloquear a execução de arquivos LNK inesperados e binários não assinados, impor controles estritos sobre a execução de scripts e macros, e monitorar tráfego incomum de Azure Blob Storage. O uso de PowerShell com bypass de política de execução deve ser restrito ou cuidadosamente observado, e as equipes de segurança devem detectar a criação de arquivos suspeitos em %LOCALAPPDATA% and %TEMP%. Também é recomendável uma higiene forte de credenciais para contas Azure e rotação regular de tokens SAS.

Resposta

As equipes de segurança devem detectar e isolar hosts afetados, coletar memória volátil para recuperar quaisquer cargas na memória, bloquear o domínio de armazenamento Azure identificado e buscar pelos artefatos de arquivo relatados e padrões de processo. Uma investigação forense completa também deve ser realizada para identificar quaisquer componentes adicionais derrubados e remover mecanismos de persistência.

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>Ação</b> – <b>T1566.001 Anexo de Spearphishing</b><br/>O adversário envia por e-mail um arquivo ZIP malicioso para as vítimas.”] class attack_phishing action file_zip[“<b>Arquivo</b> – malicious.zip<br/>Contém um atalho .lnk e um executável dropper compilado em Rust.”] class file_zip file action_user_exec[“<b>Ação</b> – <b>T1204.001 Execução pelo Usuário</b><br/>A vítima abre o .lnk ou executa o .exe, iniciando a cadeia do dropper.”] class action_user_exec action file_lnk[“<b>Arquivo</b> – payload.pdf.lnk<br/>O atalho utiliza dupla extensão e o ícone do Edge para parecer legítimo.”] class file_lnk file tool_wscript[“<b>Ferramenta</b> – wscript.exe<br/>Executa a carga útil VBScript.”] class tool_wscript tool file_vbs[“<b>Arquivo</b> – empty.vbs<br/>VBScript mínimo que inicia o PowerShell.”] class file_vbs file action_vbscript[“<b>Ação</b> – <b>T1059.005 Visual Basic</b><br/>O VBScript é executado via wscript para iniciar o PowerShell.”] class action_vbscript action action_powershell[“<b>Ação</b> – <b>T1059.001 PowerShell</b><br/>Profile.ps1 é executado com bypass da política de execução e descriptografa o próximo estágio.”] class action_powershell action file_dat[“<b>Arquivo</b> – 1.dat<br/>Contêiner criptografado com XOR que contém RuntimeBroker_update.exe.”] class file_dat file process_runtime[“<b>Processo</b> – RuntimeBroker_update.exe<br/>Descriptografado de 1.dat; carrega a DLL maliciosa UnityPlayer.dll por DLL side-loading.”] class process_runtime process file_dll[“<b>Arquivo</b> – UnityPlayer.dll<br/>DLL maliciosa posicionada ao lado de RuntimeBroker_update.exe.”] class file_dll file action_dll_sideload[“<b>Ação</b> – <b>T1546.009 DLL AppCert</b><br/>O DLL side-loading fornece execução de código.”] class action_dll_sideload action tool_rustloader[“<b>Ferramenta</b> – Carregador Rust (RUSTCLOAK)<br/>Aloca memória, grava o PE AZUREVEIL descriptografado e o executa usando fibras do Windows.”] class tool_rustloader tool action_process_injection[“<b>Ação</b> – <b>T1055.002 Injeção em Processo</b><br/>Injeção de PE utilizando fibras do Windows.”] class action_process_injection action file_azureveil[“<b>Arquivo</b> – AZUREVEIL.exe<br/>Carga útil descriptografada executada após a injeção.”] class file_azureveil file action_discovery[“<b>Ação</b> – <b>T1083 Descoberta de Arquivos e Diretórios</b><br/>O loader enumera arquivos e os move para %TEMP%.”] class action_discovery action action_network_discovery[“<b>Ação</b> – <b>T1016 Descoberta da Configuração de Rede do Sistema</b><br/>Coleta informações de MAC e IP para proxy e movimentação lateral.”] class action_network_discovery action action_c2[“<b>Ação</b> – <b>T1102 Serviço Web</b><br/>Comunica-se com o Azure Blob Storage por HTTPS.”] class action_c2 action action_dead_drop[“<b>Ação</b> – <b>T1102.003 Comunicação Unidirecional</b><br/>Envia um beacon blob e recupera comandos do mesmo contêiner.”] class action_dead_drop action action_encrypted_channel[“<b>Ação</b> – <b>T1573.001 Canal Criptografado</b><br/>Os dados de beacon e comandos são criptografados com RC4 personalizado e SM4-CBC.”] class action_encrypted_channel action action_exfil[“<b>Ação</b> – <b>T1567.002 Exfiltração por Serviço Web</b><br/>Envia dados criptografados para um endpoint do Azure Blob.”] class action_exfil action action_persistence[“<b>Ação</b> – <b>T1547.009 Modificação de Atalho</b><br/>Posiciona um .lnk malicioso em locais de inicialização para persistência.”] class action_persistence action %% Edges attack_phishing –>|entrega| file_zip file_zip –>|aciona| action_user_exec action_user_exec –>|abre| file_lnk file_lnk –>|executa| tool_wscript tool_wscript –>|executa| file_vbs file_vbs –>|inicia| action_vbscript action_vbscript –>|inicia| action_powershell action_powershell –>|descriptografa| file_dat file_dat –>|gera| process_runtime process_runtime –>|carrega| file_dll file_dll –>|utilizado por| action_dll_sideload process_runtime –>|realiza| action_process_injection action_process_injection –>|usa| tool_rustloader tool_rustloader –>|carrega| file_azureveil file_azureveil –>|executa| action_discovery action_discovery –>|também realiza| action_network_discovery action_network_discovery –>|envia dados para| action_c2 action_c2 –>|usa| action_dead_drop action_dead_drop –>|depende de| action_encrypted_channel action_encrypted_channel –>|habilita| action_exfil action_exfil –>|pode acionar| action_persistence file_lnk –>|estabelece| 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 file 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

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Pré-teste de Telemetria e Linha de Base deve ter passado.

Narrativa de Ataque e Comandos

  1. Entrega: O atacante envia um e-mail de phishing com um anexo nomeado 計畫申請審查結果通知單.pdf.lnk. A dupla extensão esconde a natureza do atalho. O LNK aponta para C:Tempevil.vbs.
  2. Execução (VBScript): Quando a vítima clica duas vezes no LNK, wscript.exe lança evil.vbs. O script derruba RuntimeBroker_update.exe to %APPDATA%MicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe e copia um UnityPlayer.dll malicioso (contendo o carregador baseado em Rust) no mesmo diretório.
  3. Carregamento Lateral de DLL: O atacante executa RuntimeBroker_update.exe. Como o executável é assinado (ou imita um binário legítimo), o Windows carrega o UnityPlayer.dll, que executa a carga incorporada em Rust (RUSTCLOAK) e estabelece um canal de C2 para o Azure.
  4. Pós-execução: A carga realiza a descoberta do sistema (T1016, T1082) e inicia a exfiltração (T1041) sobre um canal criptografado (T1573).

Script de Teste de Regressão

<# 
  Script de simulação para a detecção de LNK malicioso + carregamento lateral de DLL.
  Pré-requisitos:
  - Sysmon com ProcessCreate (ID 1) e ImageLoad (ID 7) habilitados.
  - Permissão de gravação para $env:APPDATAMicrosoftWindowsStart MenuPrograms
#>

# 1. Preparar o VBScript malicioso
$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. Implantar uma UnityPlayer.dll falsa (marcador binário)
$dllPath = "$env:APPDATAMicrosoftWindowsStart MenuProgramsUnityPlayer.dll"
# Para demo, basta copiar qualquer DLL existente (por exemplo, version.dll) e renomeá-la
Copy-Item "$env:SystemRootSystem32version.dll" $dllPath -Force

# 3. Implantar o executável auxiliar (uma cópia de um binário legítimo para realismo)
$exePath = "$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe"
Copy-Item "$env:SystemRootSystem32RuntimeBroker.exe" $exePath -Force

# 4. Criar o LNK malicioso com dupla extensão
$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 malicioso criado em $lnkPath"
Write-Host "Executando o LNK para acionar a cadeia..."
Start-Process -FilePath $lnkPath -Wait

Comandos de Limpeza

# Remover artefatos
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 "Limpeza concluída."