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.
graph TB classDef action fill:#99ccff classDef builtin fill:#ffcc99 classDef file fill:#ccffcc action_user_exec[«<b>Acción</b> – <b>T1204.002 Ejecución del usuario: Archivo malicioso</b><br/>La víctima visita una página falsa de Adobe y descarga VBScript disfrazado (Acrobat_Reader_V112_6971.vbs)»] class action_user_exec action file_vbscript[«<b>Archivo</b> – <b>Nombre</b>: Acrobat_Reader_V112_6971.vbs<br/><b>Tipo</b>: VBScript»] class file_vbscript file action_vbscript_interpret[«<b>Acción</b> – <b>T1059.005 Intérprete de scripts: Visual Basic</b><br/>El VBScript se ejecuta y lanza PowerShell»] class action_vbscript_interpret action tool_powershell[«<b>Herramienta</b> – <b>Nombre</b>: PowerShell<br/><b>Comando</b>: -ExecutionPolicy Bypass»] class tool_powershell builtin action_powershell_exec[«<b>Acción</b> – <b>T1059.001 PowerShell</b><br/>Crea directorio temporal, descarga C# y compila en memoria»] class action_powershell_exec action file_staging[«<b>Archivo</b> – <b>Ubicación</b>: Google Drive<br/><b>Propósito</b>: Código C# de staging»] class file_staging file action_reflective_loading[«<b>Acción</b> – <b>T1620 Carga reflectiva</b><br/>Carga ensamblado .NET en memoria»] class action_reflective_loading action action_process_injection[«<b>Acción</b> – <b>T1055.002 Inyección de procesos</b><br/>Inyecta shellcode en memoria ejecutable»] class action_process_injection action action_masquerade[«<b>Acción</b> – <b>T1564.010 Suplantación de procesos</b><br/>Modifica PEB para parecer winhlp32.exe»] class action_masquerade action action_appdomain_hijack[«<b>Acción</b> – <b>T1574.014 Secuestro AppDomain</b><br/>Escalada de privilegios vía COM»] class action_appdomain_hijack action action_rat_install[«<b>Acción</b> – <b>T1219 Herramientas de acceso remoto</b><br/>Instala ScreenConnect mediante msiexec»] class action_rat_install action tool_screenconnect[«<b>Herramienta</b> – ScreenConnect Client<br/><b>Tipo</b>: Acceso remoto»] class tool_screenconnect builtin action_user_exec –>|downloads| file_vbscript file_vbscript –>|executes| action_vbscript_interpret action_vbscript_interpret –>|launches| tool_powershell tool_powershell –>|executes| action_powershell_exec action_powershell_exec –>|downloads| file_staging action_powershell_exec –>|compiles| action_reflective_loading action_reflective_loading –>|loads| action_process_injection action_process_injection –>|modifies| action_masquerade action_masquerade –>|enables| action_appdomain_hijack action_appdomain_hijack –>|facilitates| action_rat_install action_rat_install –>|installs| tool_screenconnect
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."