Cómo las descargas de software reales pueden ocultar puertas traseras remotas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Los atacantes están operando un sitio de descarga de RustDesk similar (rustdesk.work) que entrega un instalador troyanizado: una configuración legítima de RustDesk con un cargador malicioso llamado Winos4.0. Al ejecutarse, el dropper planta logger.exe and Libserver.exe, luego carga el backdoor en memoria para reducir artefactos en disco. El implante establece comando-y-control a 207.56.13.76 sobre TCP/5666, habilitando acceso remoto persistente. Esta actividad es impulsada por ingeniería social y suplantación de marca, no por una vulnerabilidad en el software RustDesk.
Investigación
Los analistas obtuvieron el binario malicioso rustdesk-1.4.4-x86_64.exe y observaron que escribe un instalador legítimo de RustDesk más un logger.exe arma en disco. El logger.exe componente genera Libserver.exe, que luego despliega WinosStager DLLs y una gran carga en memoria sin persistir esos módulos en disco. La telemetría de la red confirmó comunicaciones salientes a 207.56.13.76:5666, evaluado como el canal C2 de la campaña. Los investigadores extrajeron IOCs clave, incluyendo el dominio suplantado (rustdesk.work), nombres de archivos caídos y hashes de archivos asociados.
Mitigación
Hacer cumplir prácticas verificadas de adquisición de software y descargar RustDesk solo de la fuente oficial (rustdesk.com). Aplicar listas blancas de aplicaciones (o controles equivalentes) para prevenir la ejecución de binarios no confiables, particularmente archivos “instaladores” que provienen de directorios escribibles por el usuario. Monitorear y restringir el tráfico saliente a TCP/5666, y añadir reglas de detección/bloqueo para conexiones a rustdesk.work. Bloquear 207.56.13.76 y el dominio malicioso a través de controles DNS, proxy y firewall.
Respuesta
Crear detecciones para la ejecución de logger.exe and Libserver.exe, y alertar sobre cualquier conexión de red a 207.56.13.76:5666. Buscar proactivamente a través de los puntos finales el instalador troyanizado (y cualquier indicador SHA-256 disponible) y validar si RustDesk fue instalado desde fuentes no aprobadas. Si se confirma el compromiso, aislar los hosts afectados, terminar el árbol de procesos maliciosos, remover artefactos relacionados y rotar credenciales potencialmente expuestas (especialmente cualquier cuenta usada durante la instalación o sesiones remotas subsecuentes).
«graph TB %% Definiciones de clases classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ffdd99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nodos action_initial_access[«<b>Acción</b> – Acceso Inicial<br /><b>Técnica</b>: T1204 Ejecución del Usuario»] class action_initial_access action tech_user_execution[«<b>Técnica</b> – T1204 Ejecución del Usuario<br />La víctima ejecuta contenido malicioso»] class tech_user_execution technique tech_malicious_link[«<b>Técnica</b> – T1204.001 Enlace Malicioso<br />El enlace lleva a la descarga de un instalador malicioso»] class tech_malicious_link technique tech_trojanized_installer[«<b>Técnica</b> – T1204.002 Instalador Trojano<br />El instalador parece legítimo pero contiene carga útil»] class tech_trojanized_installer technique malware_logger_exe[«<b>Malware</b> – logger.exe<br />Captura entradas y realiza acciones de privilegio»] class malware_logger_exe malware tech_process_masquerade[«<b>Técnica</b> – T1036.011 Suplantación de Procesos<br />El nombre del proceso es falso para parecer legítimo»] class tech_process_masquerade technique tech_argument_spoof[«<b>Técnica</b> – T1564.010 Suplantación de Argumentos<br />Los argumentos de la línea de comandos son falsificados»] class tech_argument_spoof technique tech_tls_injection[«<b>Técnica</b> – T1055.005 Inyección de Almacenamiento Local de Hilos<br />Código inyectado a través de TLS»] class tech_tls_injection technique tech_appcert_dll[«<b>Técnica</b> – T1546.009 Ejecución de DLL AppCert<br />Usa DLLs AppCert para auto-ejecución»] class tech_appcert_dll technique tech_permission_hijack[«<b>Técnica</b> – T1574.005 Secuestro del Flujo de Ejecución<br />Exploita debilidades de permiso del archivo de instalación»] class tech_permission_hijack technique action_defense_evasion[«<b>Acción</b> – Evasión de Defensa<br />Múltiples técnicas para evitar la detección»] class action_defense_evasion action action_persistence[«<b>Acción</b> – Persistencia<br />Establece un punto de apoyo a largo plazo»] class action_persistence action tech_registry_rc[«<b>Técnica</b> – T1037.004 Scripts RC en Registro<br />Ejecuta scripts a través del registro»] class tech_registry_rc technique tech_active_setup[«<b>Técnica</b> – T1547.014 Configuración Activa<br />Auto-inicio a través de Configuración Activa»] class tech_active_setup technique tech_preos_boot[«<b>Técnica</b> – T1542 Arranque Pre-OS<br />Se engancha en el proceso de arranque»] class tech_preos_boot technique action_credential_access[«<b>Acción</b> – Acceso a Credenciales<br />Roba credenciales de usuario»] class action_credential_access action tech_keylogging[«<b>Técnica</b> – T1056.001 Registro de Teclas<br />Registra las pulsaciones del teclado»] class tech_keylogging technique tech_credential_dump[«<b>Técnica</b> – T1003 Volcado de Credenciales del SO<br />Extrae hashes de contraseñas»] class tech_credential_dump technique action_collection[«<b>Acción</b> – Colección<br />Recolección de datos de usuario»] class action_collection action tech_screen_capture[«<b>Técnica</b> – T1113 Captura de Pantalla<br />Toma capturas de pantalla»] class tech_screen_capture technique tech_video_capture[«<b>Técnica</b> – T1125 Captura de Video<br />Graba video»] class tech_video_capture technique tech_audio_capture[«<b>Técnica</b> – T1123 Captura de Audio<br />Graba audio»] class tech_audio_capture technique action_c2[«<b>Acción</b> – Comando y Control<br />Se comunica con un servidor remoto»] class action_c2 action tech_nonstandard_port[«<b>Técnica</b> – T1571 Puerto No Estándar<br />Usa puerto TCP 5666»] class tech_nonstandard_port technique tech_ftp_style[«<b>Técnica</b> – T1071.002 Protocolo estilo FTP<br />Codifica tráfico como FTP»] class tech_ftp_style technique tech_port_knocking[«<b>Técnica</b> – T1205.001 Llamada de Puertos<br />Señales C2 a través de secuencia de puertos»] class tech_port_knocking technique malware_memory_resident[«<b>Malware</b> – Carga Útil Residente en Memoria<br />Se carga directamente en la RAM»] class malware_memory_resident malware tech_registry_hide[«<b>Técnica</b> – Configuración Oculta en el Registro<br />Almacena configuraciones en el registro»] class tech_registry_hide technique %% Conexiones action_initial_access u002du002d>|usa| tech_user_execution tech_user_execution u002du002d>|incluye| tech_malicious_link tech_user_execution u002du002d>|incluye| tech_trojanized_installer tech_malicious_link u002du002d>|entrega| malware_logger_exe tech_trojanized_installer u002du002d>|empaqueta| malware_logger_exe malware_logger_exe u002du002d>|realiza| tech_process_masquerade malware_logger_exe u002du002d>|realiza| tech_argument_spoof malware_logger_exe u002du002d>|inyecta a través de| tech_tls_injection malware_logger_exe u002du002d>|usa| tech_appcert_dll malware_logger_exe u002du002d>|exploita| tech_permission_hijack malware_logger_exe u002du002d>|habilita| action_defense_evasion action_defense_evasion u002du002d>|establece| action_persistence action_persistence u002du002d>|usa| tech_registry_rc action_persistence u002du002d>|usa| tech_active_setup action_persistence u002du002d>|usa| tech_preos_boot action_defense_evasion u002du002d>|habilita| action_credential_access action_credential_access u002du002d>|usa| tech_keylogging action_credential_access u002du002d>|usa| tech_credential_dump action_defense_evasion u002du002d>|habilita| action_collection action_collection u002du002d>|captura| tech_screen_capture action_collection u002du002d>|captura| tech_video_capture action_collection u002du002d>|captura| tech_audio_capture action_defense_evasion u002du002d>|habilita| action_c2 action_c2 u002du002d>|comunica a través de| tech_nonstandard_port tech_nonstandard_port u002du002d>|usa protocolo| tech_ftp_style action_c2 u002du002d>|usa| tech_port_knocking malware_logger_exe u002du002d>|reside en| malware_memory_resident malware_memory_resident u002du002d>|almacena configuración en| tech_registry_hide «
Flujo de Ataque
Detecciones
Archivo de Registro de RustDesk Fue Creado (vía file_event)
Ver
Posible Actividad de Comando y Control por Comunicación de Dominio de Software de Acceso Remoto (vía dns)
Ver
Software Alternativo de Acceso/Administración Remota (vía process_creation)
Ver
IOCs (SourceIP) para detectar: Cómo las descargas de software real pueden ocultar puertas traseras remotas
Ver
IOCs (HashSha256) para detectar: Cómo las descargas de software real pueden ocultar puertas traseras remotas
Ver
IOCs (DestinationIP) para detectar: Cómo las descargas de software real pueden ocultar puertas traseras remotas
Ver
Detección de Actividad de Red de Winos4.0 a través del Servidor de Comando-y-Control Malicioso [Conexión de Red de Windows]
Ver
Instalador Troyanizado de RustDesk con Backdoor Winos4.0 [Creación de Proceso de Windows]
Ver
Ejecución de Simulación
Prerequisito: La Verificación de Telemetría & Línea 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 apuntan a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque & Comandos:
- Entrega & Ejecución: Un atacante entrega un instalador troyanizado de RustDesk (
rustdesk-1.4.4-x86_64.exe) a través de un correo electrónico de phishing. El archivo se guarda en%TEMP%y se ejecuta con privilegios elevados. - Entrega de Carga: Al ejecutarse, el instalador extrae dos binarios maliciosos—
logger.exeandLibserver.exe—en el mismo directorio e inmediatamente los lanza como procesos secundarios. - Persistencia (T1546.016):
logger.exeescribe una entrada de Run-key (HKCUSoftwareMicrosoftWindowsCurrentVersionRun) apuntando a sí mismo, asegurando persistencia después del reinicio. - Inyección de Código (T1574.005 / T1055.005):
Libserver.exeinyecta un DLL reflexivo enexplorer.exepara obtener ejecución de alto privilegio y abre un shell inverso al C2 del atacante. - Evasión (Suplantación – T1036.011): Todos los binarios retienen la convención de nombres “RustDesk” para mezclarse con el software legítimo.
- Entrega & Ejecución: Un atacante entrega un instalador troyanizado de RustDesk (
-
Guión de Prueba de Regresión: El guión a continuación automatiza los pasos 1‑3, produciendo los tres eventos requeridos de creación de procesos. Utiliza PowerShell para copiar binarios maliciosos pre-ubicados (simulados con marcadores de posición benignos por seguridad) y los lanza con la relación apropiada de padre-hijo.
# ------------------------------------------------- # Guión de Simulación - Instalador Troyanizado de RustDesk # ------------------------------------------------- # Prerrequisito: Dos ejecutables de marcador de posición benignos colocados en C:Malware (nombrados logger.exe & Libserver.exe) # En una verdadera prueba de equipo rojo, estos serían las cargas útiles maliciosas reales. # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" $loggerPath = "$payloadDirlogger.exe" $libserverPath = "$payloadDirLibserver.exe" # 1. Desplegar un instalador ficticio (simplemente una copia de un exe benigno) Write-Host "[*] Desplegando falso instalador de RustDesk..." New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null Copy-Item -Path "C:WindowsSystem32notepad.exe" -Destination $installerPath -Force # 2. Simular entrega de carga - copiar binarios marcadores de posición Write-Host "[*] Entregando cargas útiles..." Copy-Item -Path "C:Malwarelogger.exe" -Destination $loggerPath -Force Copy-Item -Path "C:MalwareLibserver.exe" -Destination $libserverPath -Force # 3. Ejecutar instalador (crea proceso padre) Write-Host "[*] Ejecutando instalador..." $installer = Start-Process -FilePath $installerPath -PassThru # 4. Lanzar logger.exe como hijo del instalador Write-Host "[*] Lanzando logger.exe (hijo del instalador)..." Start-Process -FilePath $loggerPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow # 5. Lanzar Libserver.exe como hijo del instalador Write-Host "[*] Lanzando Libserver.exe (hijo del instalador)..." Start-Process -FilePath $libserverPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow Write-Host "[+] Simulación completa. Verifique alertas en SIEM." -
Comandos de Limpieza: Eliminar los archivos temporales y terminar cualquier proceso persistente.
# ------------------------------------------------- # Script de Limpieza – Eliminar artefactos de simulación # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" Write-Host "[*] Deteniendo procesos generados..." Get-Process -Name "logger","Libserver","rustdesk-1.4.4-x86_64" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Eliminando archivos..." Remove-Item -Path $installerPath -Force -ErrorAction SilentlyContinue Remove-Item -Recurse -Force -Path $payloadDir -ErrorAction SilentlyContinue Write-Host "[+] Limpieza completa."