SOC Prime Bias: High

21 Sep 2026 19:58 UTC

Lanzamiento de Minería de Criptomonedas en Memoria a Través de PowerShell Almacenado en el Registro

Author Photo
SOC Prime Team linkedin icon Seguir
Lanzamiento de Minería de Criptomonedas en Memoria a Través de PowerShell Almacenado en el Registro
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Una cadena de infección en múltiples etapas utiliza técnicas sofisticadas de ofuscación para desplegar un minero de criptomonedas. El ataque almacena cargas en el Registro y aprovecha los registros DNS TXT junto con la esteganografía en archivos PNG y WAV para entregar etapas posteriores. La carga final carga un ensamblado .NET directamente en la memoria para realizar minería de criptomonedas a través del ecosistema XMRig.

Investigación

Los analistas investigaron alertas repetidas de ejecución de PowerShell y descubrieron una estrategia de ocultamiento de carga en capas. La cadena de infección reconstruye contenido malicioso desde contenedores no convencionales, incluyendo datos de píxeles de imagen y segmentos de archivos de audio. La ejecución progresa desde scripts de PowerShell almacenados en el Registro a través de múltiples etapas antes de cargar finalmente un minero de criptomonedas .NET directamente en la memoria.

Mitigación

Las organizaciones deben imponer políticas estrictas de ejecución de PowerShell y monitorizar modificaciones sospechosas del Registro asociadas con el almacenamiento de cargas. Las soluciones EDR deben detectar la carga de ensamblados .NET en memoria y consultas anómalas de registros DNS TXT. También se debe implementar una lista blanca de aplicaciones para prevenir controladores en modo kernel no autorizados como WinRing0.sys de cargarse.

Respuesta

Si se detecta actividad maliciosa, los hosts afectados deben aislarse inmediatamente para detener la comunicación C2 y la minería de criptomonedas. Los respondedores deben realizar un barrido forense para detectar Tareas Programadas no autorizadas, suscripciones WMI y exclusiones de Microsoft Defender. También se deben revisar los registros de red para conexiones a dominios C2 conocidos y consultas de DNS sobre HTTPS sospechosas.

Flujo del Ataque

Todavía estamos actualizando esta parte.

Detecciones

Cadenas de Powershell Sospechosas (vía powershell)

Equipo de SOC Prime
21 Sep 2026

Llamar Métodos .NET Sospechosos desde Powershell (vía powershell)

Equipo de SOC Prime
21 Sep 2026

Archivo de Imagen Fue Creado por Proceso Sospechoso (vía file_event)

Equipo de SOC Prime
21 Sep 2026

Canal de Comando y Control DoH y DNS (vía proxy)

Equipo de SOC Prime
21 Sep 2026

IOCs (HashMd5) para detectar: Desde PowerShell Almacenado en el Registro hasta Minería de Criptomonedas en Memoria: Una Cadena de Infección en Múltiples Etapas

Reglas AI de SOC Prime
21 Sep 2026

IOCs (SourceIP) para detectar: Desde PowerShell Almacenado en el Registro hasta Minería de Criptomonedas en Memoria: Una Cadena de Infección en Múltiples Etapas

Reglas AI de SOC Prime
21 Sep 2026

IOCs (DestinationIP) para detectar: Desde PowerShell Almacenado en el Registro hasta Minería de Criptomonedas en Memoria: Una Cadena de Infección en Múltiples Etapas

Reglas AI de SOC Prime
21 Sep 2026

Detectar DNS sobre HTTPS y Comunicación POST HTTP/HTTPS C2 [Conexión de Red de Windows]

Reglas AI de SOC Prime
21 Sep 2026

Suscripción Permanente de Eventos WMI para Ejecución de PowerShell Basada en el Registro [Evento del Registro de Windows]

Reglas AI de SOC Prime
21 Sep 2026

Ofuscación de PowerShell y Ejecución Encubierta [Windows Powershell]

Reglas AI de SOC Prime
21 Sep 2026

Ejecución de Simulación

  • Narrativa del Ataque & Comandos: El adversario busca establecer una persistencia a largo plazo en el host comprometido. En lugar de usar una clave ‘Run’ común, optan por una Suscripción Permanente de Eventos WMI más sigilosa. El atacante crea un CommandLineEventConsumerde WMI. Este consumidor está configurado para ejecutar powershell.exe. Para evadir el análisis estático de la línea de comandos, la carga maliciosa o configuración real se almacena en una ruta de registro no estándar: HKLM:Softwareuf42a9660377vstdfehzr. Cuando el evento WMI se dispara (simulado aquí por un evento del sistema), el proceso de PowerShell se lanzará, haciendo referencia a la clave de registro específica, desencadenando así la regla de detección.

  • Script de Prueba de Regresión:

    # Script de Simulación: Ejecución de PowerShell Basada en el Registro WMI
    # Este script crea la clave de registro específica y la suscripción WMI requerida para activar la regla.
    
    $regPath = "HKLM:Softwareuf42a9660377"
    $regValueName = "vstdfehzr"
    $regValueData = "Invoke-Expression (Get-ItemProperty -Path '$regPath$regValueName').Payload"
    
    # 1. Crear la clave de registro sospechosa y valor
    if (-not (Test-Path $regPath)) {
        New-Item -Path $regPath -Force | Out-Null
    }
    New-ItemProperty -Path $regPath -Name $regValueName -Value "Write-Host '¡Carga Maliciosa Activada!'" -PropertyType String -Force | Out-Null
    
    # 2. Crear Suscripción Permanente de Eventos WMI
    # Usamos un Filtro para activarlo en un evento común (por ejemplo, tiempo de actividad/inicio del sistema) o simular mediante la creación del consumidor
    $filterName = "Win32_LocalTimeFilter"
    $consumerName = "Win32_CommandLineConsumer"
    $subscriptionName = "WmiPersistenceSubscription"
    
    # Crear Filtro (se activa cada minuto para propósitos de simulación)
    $filterArgs = @{
        Name = $filterName
        QueryLanguage = "WQL"
        Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_LocalTime'"
    }
    $filter = Set-WmiInstance -Class __EventFilter -Arguments $filterArgs
    
    # Crear Consumidor (El comando de PowerShell que hace referencia a la ruta de registro específica)
    $commandLine = "powershell.exe -Command `"$regValueData`""
    $consumerArgs = @{
        Name = $consumerName
        CommandLineTemplate = $commandLine
    }
    $consumer = Set-WmiInstance -Class CommandLineEventConsumer -Arguments $consumerArgs
    
    # Vincular Filtro y Consumidor
    Set-WmiInstance -Class __FilterToConsumerBinding -Arguments @{
        Filter = $filter
        Consumer = $consumer
    }
    
    Write-Host "[+] Simulación: Suscripción WMI y Clave de Registro creadas exitosamente."
    Write-Host "[+] Esperando que el evento WMI dispare la ejecución de PowerShell..."
    # Nota: En un entorno real, esperamos el evento. 
    # Para propósitos de prueba, la regla a menudo busca la *creación* o el *disparo del evento*.
  • Comandos de Limpieza:

    # Script de Limpieza
    Write-Host "[!] Limpiando artefactos de simulación..."
    
    # 1. Eliminar Suscripción WMI
    Get-WmiObject -Namespace rootsubscription -Class __EventFilter -Filter "Name='Win32_LocalTimeFilter'" | Remove-WmiObject
    Get-WmiObject -Namespace rootsubscription -Class CommandLineEventConsumer -Filter "Name='Win32_CommandLineConsumer'" | Remove-WmiObject
    Get-WmiObject -Namespace rootsubscription -Class __FilterToConsumerBinding | Where-Object { $_.Filter -match "Win32_LocalTimeFilter" } | Remove-WmiObject
    
    # 2. Eliminar Clave de Registro
    Remove-Item -Path "HKLM:Softwareuf42a9660377" -Recurse -Force
    
    Write-Host "[+] Limpieza completa."