Cargador en Memoria Descarga ScreenConnect
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
ThreatLabz identificó una cadena de ataque de múltiples etapas que comienza con una descarga falsa de Adobe Acrobat Reader y culmina con el despliegue de la herramienta legítima de acceso remoto ScreenConnect. La operación se basa en un cargador de VBScript fuertemente ofuscado que activa un comando de PowerShell para obtener código fuente C# desde Google Drive, compilarlo directamente en memoria y lanzar un cargador .NET sin dejar caer la carga final en disco. Ese cargador luego aplica el enmascaramiento de procesos, altera las estructuras PEB y abusa de los objetos COM con auto-elevación para obtener mayores privilegios antes de instalar ScreenConnect en el host víctima.
Investigación
Los investigadores describieron cómo el VBScript ensambla sus comandos a través de la ofuscación Chr(), mientras que PowerShell recupera y compila la carga completamente en memoria para minimizar los artefactos de disco. El cargador .NET en memoria luego usa reflexión para ejecutar un ensamblado incrustado. Análisis adicional mostró que el malware llama a NtAllocateVirtualMemory, reescribe campos PEB para hacerse pasar por winhlp32.exe y aprovecha la auto-elevación COM para omitir el Control de Cuentas de Usuario y continuar la ejecución con privilegios elevados.
Mitigación
Los defensores deben bloquear el acceso a los dominios de descarga maliciosos y aplicar controles estrictos a la ejecución de PowerShell y VBScript. Los equipos de seguridad también deben monitorear la creación sospechosa de objetos COM, la manipulación inesperada de PEB y otros signos de abuso de ejecución en memoria. El acceso a herramientas legítimas de administración remota como ScreenConnect debe ser estrictamente limitado a usuarios aprobados y flujos de trabajo confiables para reducir el riesgo de instalación no autorizada.
Respuesta
Si se detecta esta actividad, aísle el sistema afectado inmediatamente, detenga los procesos maliciosos y elimine cualquier componente de ScreenConnect instalado como parte de la intrusión. Realice un análisis forense enfocado en los artefactos de memoria volátil para recuperar evidencia de la cadena de ejecución sin archivos. Restablezca las credenciales potencialmente expuestas, revise los registros para detectar el abuso de auto-elevación COM y actualice las detecciones para identificar los patrones de línea de comandos observados, el comportamiento del cargador y las convenciones de nomenclatura de archivos asociadas.
Flujo de Ataque
Detecciones
Software Alternativo de Acceso/Administración Remota (vía sistema)
Ver
Posibles Indicadores de Ofuscación de Powershell (vía powershell)
Ver
Llamar Clases/Métodos .NET Sospechosos desde CommandLine de Powershell (vía creación de procesos)
Ver
Uso Sospechoso de CURL (vía cmdline)
Ver
Posible Infiltración / Exfiltración de Datos / C2 a través de Servicios/Herramientas de Terceros (vía cmdline)
Ver
Software Alternativo de Acceso/Administración Remota (vía auditoría)
Ver
Intento de Instalación de Software RMM Posible Usando MsiInstaller (vía registros de aplicaciones)
Ver
LOLBAS WScript / CScript (vía creación de procesos)
Ver
IOCs (HashMd5) para detectar: El Cargador en Memoria Descarga ScreenConnect
Ver
Bypass de ExecutionPolicy de PowerShell con Descarga Maliciosa [Windows PowerShell]
Ver
Instalación de ScreenConnect a través de msiexec y ShellExec [Creación de Procesos en Windows]
Ver
Ejecución de Simulación
Prerequisito: La Verificación de Pre-flight de Telemetría y Línea de Base debe haber pasado.
Justificación: 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 la narrativa DEBEN reflejar directamente las TTPs identificadas y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque y Comandos:
El adversario ha obtenido el MSI de ScreenConnect (a menudo entregado a través de un adjunto de phishing). Para evitar la interacción del usuario, utilizan el confiablemsiexec.exebinario para realizar una instalación silenciosa. También demuestran el proxy alternativoShellExec.exeproxy, que simplemente reenvía argumentos amsiexec. Ambos comandos incorporan la cadena literal “ScreenConnect” en la línea de comandos, cumpliendo con la condición de la regla.-
Copiar el MSI al host víctima (simulando T1025).
-
Ejecute una instalación silenciosa vía
msiexec:msiexec.exe /i "C:TempScreenConnect.msi" /quiet /norestart -
Ejecute la misma instalación vía
ShellExec.exe(si está presente en el host):ShellExec.exe /i "C:TempScreenConnect.msi" /quiet /norestart
Estas acciones generan entradas del Evento 4688 de Windows donde
Imagenis*msiexec.exeor*ShellExec.exeandLínea de Comandocontiene “ScreenConnect”, causando que la regla Sigma se dispare. -
-
Guión de Prueba de Regresión:
#============================================================= # Simulación de Instalación de ScreenConnect – desencadena la regla Sigma #============================================================= $msiPath = "C:TempScreenConnect.msi" # Asegúrese de que el MSI exista (un marcador de posición – en una prueba real, primero deje caer el archivo) if (-Not (Test-Path $msiPath)) { Write-Error "ScreenConnect MSI no encontrado en $msiPath" exit 1 } # 1. Instalación silenciosa usando msiexec Write-Host "[*] Instalando ScreenConnect vía msiexec..." Start-Process -FilePath "$env:SystemRootSystem32msiexec.exe" ` -ArgumentList "/i `"$msiPath`" /quiet /norestart" ` -Wait -NoNewWindow # 2. Instalación silenciosa usando ShellExec (si está presente) $shellExec = "$env:ProgramFilesScreenConnectShellExec.exe" if (Test-Path $shellExec) { Write-Host "[*] Instalando ScreenConnect vía ShellExec..." Start-Process -FilePath $shellExec ` -ArgumentList "/i `"$msiPath`" /quiet /norestart" ` -Wait -NoNewWindow } else { Write-Warning "ShellExec.exe no encontrado; omitiendo la segunda instalación." } Write-Host "[+] Simulación completa. Verifique su SIEM para la Alerta." -
Comandos de Limpieza:
# Desinstalar ScreenConnect (usa su GUID de producto registrado; ajuste según sea necesario) $productGuid = (Get-ItemProperty "HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall*" | Where-Object { $_.DisplayName -like "*ScreenConnect*" }).PSChildName if ($productGuid) { Write-Host "[*] Desinstalando ScreenConnect (GUID: $productGuid)..." & "$env:SystemRootSystem32msiexec.exe" /x $productGuid /quiet /norestart } else { Write-Warning "GUID del producto ScreenConnect no encontrado; puede ser necesario una limpieza manual." } # Eliminar el archivo MSI copiado Remove-Item -Path "C:TempScreenConnect.msi" -Force -ErrorAction SilentlyContinue Write-Host "[+] Limpieza completada."