El malware ValleyRAT apunta a solicitantes de empleo, abusa del DLL sideloading de Foxit
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El troyano de acceso remoto ValleyRAT se entrega a través de archivos adjuntos de correo electrónico dirigidos a buscadores de empleo y personal de Recursos Humanos. Los adversarios fusionan un ejecutable de Foxit PDF Reader manipulado y dependen de la carga lateral de DLL para activar un msimg32.dll malicioso. La carga útil descomprime un entorno de Python oculto, recupera un script codificado en Base64 desde un servidor C2, y establece persistencia a través de un valor de registro de inicio automático mientras sustrae datos del navegador.
Investigación
Los investigadores analizaron el archivo malicioso y encontraron un FoxitPDFReader.exe renombrado que carga un msimg32.dll falso a través del orden de búsqueda de DLL estándar en Windows. Un script por lotes luego descomprime un intérprete de Python incrustado (renombrado zvchost.exe) y ejecuta un script de cargador codificado en Base64 obtenido de una dirección IP maliciosa. La inspección de la red expuso un certificado autofirmado con un CN aleatorio y una huella distintiva JA3 utilizada para el tráfico C2. La persistencia se mantiene creando una clave de registro de inicio automático.
Mitigación
Las defensas recomendadas incluyen el escaneo riguroso de archivos adjuntos de correo electrónico y bloquear ejecutables que se hagan pasar por archivos PDF. Aplicar listas blancas de aplicaciones para prevenir la carga lateral no autorizada de DLL y la ejecución de binarios no confiables. Monitorear la creación de entradas de registro de inicio automático y bloquear direcciones IP C2 conocidas. Mantener actualizadas las firmas de protección de endpoint y ofrecer capacitación de concienciación de seguridad dirigida, enfocada en phishing temático para buscadores de empleo.
Respuesta
Generar alertas cuando FoxitPDFReader.exe o msimg32.dll se ejecuten desde ubicaciones inusuales, especialmente en rutas con patrones profundos de guiones bajos. Correlacionar la actividad del proceso de zvchost.exe usando el parámetro -c y cargas útiles de comandos Base64. Detectar conexiones salientes a 196.251.86.145 (y la infraestructura relacionada) y revisar las sesiones TLS para el certificado autofirmado distintivo. Examinar cambios en el registro bajo HKCUSoftwareMicrosoftWindowsCurrentVersionRun para entradas de inicio no autorizadas.
mermaid graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Node Definitions action_phishing[«<b>Acción</b> – <b>T1566.001 Phishing: Adjunto de Spearphishing</b><br />La víctima recibe un archivo zip malicioso que contiene un FoxitPDFReader.exe disfrazado.»] class action_phishing action file_archive[«<b>Herramienta</b> – Archivo malicioso<br />Archivo comprimido Overview_of_Work_Expectations.zip entregando la carga útil.»] class file_archive tool exe_foxit[«<b>Herramienta</b> – FoxitPDFReader.exe (renombrado)<br />Ejecutado después de que el usuario abre el archivo.»] class exe_foxit tool dll_msimg32[«<b>Herramienta</b> – msimg32.dll (malicioso)<br />Colocado en el mismo directorio para lograr la carga lateral de DLL.»] class dll_msimg32 tool exec_hijack[«<b>Acción</b> – T1574.008 Secuestro del Flujo de Ejecución<br />El secuestro del orden de búsqueda carga el DLL malicioso.»] class exec_hijack action script_bat[«<b>Herramienta</b> – document.bat<br />Script por lotes lanzado por el ejecutable secuestrado.»] class script_bat tool docx_7zip[«<b>Herramienta</b> – document.docx (archivo 7‑zip)<br />Contiene un entorno de Python incrustado.»»» class docx_7zip tool exe_zvchost[«<b>Herramienta</b> – zvchost.exe (renombrado python.exe)<br />Ejecuta un script de cargador codificado en Base64.»] class exe_zvchost tool payload_base64[«<b>Herramienta</b> – Carga útil Base64<br />Decodifica y prepara el componente malicioso final.»] class payload_base64 tool registry_run_key[«<b>Herramienta</b> – Clave de Registro Run<br />Creada bajo Active Setup para lograr persistencia.»] class registry_run_key tool persistence_active_setup[«<b>Acción</b> – T1547.014 Ejecución al Arrancar o Iniciar Sesión: Active Setup<br />Asegura que la carga útil se ejecute en cada inicio de sesión.»] class persistence_active_setup action defense_obfuscation[«<b>Acción</b> – T1027 Archivos o Información Ofuscados<br />Archivos ocultos en directorios profundos de guiones bajos y codificados en Base64.»] class defense_obfuscation action credential_browser[«<b>Acción</b> – T1555.003 Credenciales desde Navegadores Web<br />ValleyRAT extrae nombres de usuario, contraseñas y cookies guardadas.»] class credential_browser action malware_valleyrat[«<b>Malware</b> – ValleyRAT<br />Herramienta de acceso remoto que abre un canal TLS C2.»] class malware_valleyrat malware c2_server[«<b>Herramienta</b> – Servidor C2 196.251.86.145<br />Recibe tráfico encriptado de la RAT.»] class c2_server tool malware_component[«<b>Malware</b> – Componente adicional<br />Binarios obtenidos ejecutados en el host víctima.»] class malware_component malware %% Connections Showing Flow action_phishing u002du002d>|entrega| file_archive file_archive u002du002d>|contiene| exe_foxit exe_foxit u002du002d>|carga| dll_msimg32 dll_msimg32 u002du002d>|habilita| exec_hijack exec_hijack u002du002d>|dispara| script_bat script_bat u002du002d>|extrae| docx_7zip docx_7zip u002du002d>|proporciona| exe_zvchost exe_zvchost u002du002d>|ejecuta| payload_base64 payload_base64 u002du002d>|crea| registry_run_key registry_run_key u002du002d>|asegura| persistence_active_setup payload_base64 u002du002d>|realiza| defense_obfuscation payload_base64 u002du002d>|roba| credential_browser credential_browser u002du002d>|alimenta| malware_valleyrat malware_valleyrat u002du002d>|establece| c2_server malware_valleyrat u002du002d>|obtiene| malware_component
Flujo de Ataque
Detecciones
Detección de Entrega de C&C y Carga Útil de la Campaña ValleyRAT [Conexión de Red de Windows]
Ver
Campaña ValleyRAT Usando Foxit PDF Reader para Carga Lateral de DLL [Creación de Procesos de Windows]
Ver
IOCs (SourceIP) para detectar: Campaña de malware ValleyRAT dirigida a buscadores de empleo, que abusa de Foxit PDF Reader para carga lateral de DLL
Ver
IOCs (HashSha256) para detectar: Campaña de malware ValleyRAT dirigida a buscadores de empleo, que abusa de Foxit PDF Reader para carga lateral de DLL
Ver
IOCs (HashSha1) para detectar: Campaña de malware ValleyRAT dirigida a buscadores de empleo, que abusa de Foxit PDF Reader para carga lateral de DLL
Ver
Ejecución de Simulación
Prerequisito: El chequeo previo 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 los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados conducirán a un mal diagnóstico.
-
Narrativa del Ataque y Comandos:
-
Compromiso Inicial:La víctima abre un PDF temático de reclutamiento malicioso entregado por correo electrónico. El PDF contiene JavaScript (T1059.006) que deposita un DLL malicioso (
valley.dll) en el mismo directorio que el ejecutable del visor de PDF. -
Carga Lateral de DLL:El atacante aprovecha la capacidad de Foxit Reader para cargar DLLs auxiliares. Colocando
valley.dllal lado de un ejecutable de Foxit renombrado ( Foxit executable (zvchost.exe), Foxit inadvertidamente cargará el DLL malicioso al iniciar, ejecutando ValleyRAT. -
Activador de Creación de Procesos:El ejecutable renombrado (
zvchost.exe) se lanza, generando un evento de creación de proceso donde la ruta de imagen termina conzvchost.exe. Esto coincide con la condiciónImage|endswithde la regla Sigma, causando una alerta.
-
-
Script de Prueba de Regresión:El siguiente script PowerShell reproduce los pasos anteriores en un entorno de laboratorio controlado.
# ------------------------------------------------------------ # Script de regresión para la prueba de detección de carga lateral de ValleyRAT # ------------------------------------------------------------ # 1. Establecer el directorio de trabajo temporal $workDir = "$env:TEMPValleyRAT_Test" New-Item -Path $workDir -ItemType Directory -Force | Out-Null # 2. Copiar un ejecutable legítimo de Foxit Reader (simulando el lector de PDF) $foxitSrc = "C:Program FilesFoxit SoftwareFoxit ReaderFoxitReader.exe" $foxitRenamed = Join-Path $workDir "zvchost.exe" Copy-Item -Path $foxitSrc -Destination $foxitRenamed -Force # 3. Crear un DLL malicioso ficticio (en realidad, esto sería la carga útil de ValleyRAT) $dllPath = Join-Path $workDir "valley.dll" Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A)) -Encoding Byte # Cabecera mínima MZ # 4. Lanzar el ejecutable de Foxit renombrado (esto desencadena la carga lateral de DLL) Write-Host "[*] Lanzando el ejecutable de Foxit renombrado para desencadenar la carga lateral..." $proc = Start-Process -FilePath $foxitRenamed -PassThru -WindowStyle Hidden # 5. Esperar brevemente para asegurar que la creación del proceso esté registrada Start-Sleep -Seconds 5 # 6. Salida de información del proceso para verificación Write-Host "ID del Proceso: $($proc.Id)" Write-Host "Ruta Ejecutable: $($proc.Path)" # 7. Limpieza (opcional – ver sección de limpieza separada) # Remove-Item -Recurse -Force $workDir -
Comandos de Limpieza:Ejecutar después de la prueba para eliminar artefactos y evitar la permanencia de DLLs cargadas lateralmente.
# Limpieza del directorio de prueba y terminación de cualquier proceso sobrante $workDir = "$env:TEMPValleyRAT_Test" # Terminar el proceso lanzado si aún está corriendo Get-Process -Name "zvchost" -ErrorAction SilentlyContinue | Stop-Process -Force # Eliminar los artefactos de prueba Remove-Item -Path $workDir -Recurse -Force -ErrorAction SilentlyContinue Write-Host "[+] Limpieza completada."