SOC Prime Bias: Crítico

27 May 2026 15:32 UTC

Software falso en GitHub y SourceForge distribuyen Deno RAT por Gabriele Orini

Author Photo
SOC Prime Team linkedin icon Seguir
Software falso en GitHub y SourceForge distribuyen Deno RAT por Gabriele Orini
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Actores de amenaza están distribuyendo instaladores y complementos falsos para software ampliamente utilizado a través de GitHub y SourceForge para entregar un backdoor basado en Deno conocido como DinDoor. El malware instala el tiempo de ejecución Deno a través de Scoop o WinGet, luego lanza un RAT en JavaScript capaz de robar datos, ejecutar comandos remotos, y habilitar la transmisión de video de igual a igual. Se utilizan paquetes MSI maliciosos y scripts de PowerShell para iniciar la cadena de infección, mientras que el tráfico de comando y control se lleva a cabo a través de HTTP o WebSocket. La campaña también abusa de los canales comprometidos de YouTube para llevar a las víctimas hacia los repositorios maliciosos.

Investigación

Los investigadores reconstruyeron la secuencia completa de infección, comenzando con curl comandos que descargaban un archivo MSI, seguidos de scripts de instalador que implementaban Scoop, WinGet y Deno antes de ejecutar el cargador en JavaScript DinDoor. Su análisis documentó las capacidades del RAT, incluyendo reconocimiento del sistema, robo de navegadores y carteras de criptomonedas, VNC sobre WebSocket y transmisión de igual a igual basada en Edge. El equipo también extrajo indicadores como dominios, URLs, direcciones IP y artefactos de línea de comando para apoyar la detección y la búsqueda de amenazas.

Mitigación

Las organizaciones deben descargar software solo desde los sitios web oficiales del proveedor y verificar las firmas digitales antes de ejecutar cualquier instalador. Los equipos de seguridad deben monitorear el uso inusual de Scoop y WinGet para instalar Deno, así como el despliegue inesperado de software basado en MSI. El tráfico saliente hacia los dominios y direcciones IP maliciosas identificados debe ser bloqueado, y PowerShell o curl la actividad que descarga y ejecuta archivos desde fuentes no confiables debe ser inspeccionada de cerca.

Respuesta

Los defensores deben alertar sobre msiexec lanzando archivos provenientes de URLs sospechosas de GitHub o SourceForge, en claves de registro Run que inician deno.exe, y en la comunicación de red con la infraestructura de comando y control conocida. Los hosts afectados deben someterse a una revisión forense para localizar scripts descargados, el tiempo de ejecución Deno y cualquier mecanismo de persistencia. Los sistemas comprometidos deben ser aislados inmediatamente, y todas las instalaciones no autorizadas de Deno deben ser eliminadas.

"graph TB %% Class definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef operator fill:#ff9900 %% Attack steps as technique nodes step1_malicious_link["<b>Técnica</b> – <b>T1204.001 Ejecución de usuario: Enlace malicioso</b><br/>La víctima hace clic en un enlace malicioso de YouTube que redirige a un proyecto falso de GitHub o SourceForge"] class step1_malicious_link technique step1_content_injection["<b>Técnica</b> – <b>T1659 Inyección de contenido</b><br/>Canales de YouTube comprometidos inyectan URLs maliciosas en descripciones de videos o comentarios"] class step1_content_injection technique step2_msiexec["<b>Técnica</b> – <b>T1218.007 Ejecución proxy de binarios del sistema: Msiexec</b><br/>El comando descarga un archivo MSI y lo ejecuta a través de msiexec"] class step2_msiexec technique step3_installer_pkg["<b>Técnica</b> – <b>T1546.016 Ejecución desencadenada por evento: Paquetes de instalador</b><br/>Script de PowerShell usa Scoop o WinGet para instalar el tiempo de ejecución de Deno"] class step3_installer_pkg technique step4_logon_script["<b>Técnica</b> – <b>T1037.001 Scripts de inicialización de arranque o inicio de sesión: Script de inicio de sesión</b><br/>Crea una clave de registro Run que lanza el backdoor Deno al inicio de sesión"] class step4_logon_script technique step5_reflective_load["<b>Técnica</b> – <b>T1620 Carga reflexiva de código</b><br/>El backdoor ejecuta un evalu2011loop que obtiene y ejecuta código JavaScript enteramente en memoria"] class step5_reflective_load technique step6_c2["<b>Técnica</b> – <b>T1102 Servicio web</b> y <b>T1102.002 Comunicación bidireccional</b><br/>Utiliza puntos de enlace HTTP y un canal VNC personalizado de WebSocket para comando y control"] class step6_c2 technique step7_browser_creds["<b>Técnica</b> – <b>T1555.003 Credenciales de almacenes de contraseñas: Navegadores web</b><br/>El ladrón extrae contraseñas guardadas en navegadores"] class step7_browser_creds technique step7_input_capture["<b>Técnica</b> – <b>T1056 Captura de entrada</b><br/>Keylogging y captura de formularios para obtener credenciales"] class step7_input_capture technique step7_clipboard["<b>Técnica</b> – <b>T1115 Datos de portapapeles</b><br/>Recoge contenido del portapapeles que puede contener datos sensibles"] class step7_clipboard technique step8_browser_discovery["<b>Técnica</b> – <b>T1217 Descubrimiento de información del navegador</b><br/>Recoge archivos de carteras de criptomonedas, datos del navegador y capturas de pantalla"] class step8_browser_discovery technique step9_exfil["<b>Técnica</b> – <b>T1011 Exfiltración a través de otro medio de red</b><br/>Transmitir datos recogidos a través de los mismos canales HTTP/WebSocket"] class step9_exfil technique step10_process_injection["<b>Técnica</b> – <b>T1055.005 Inyección de procesos: Almacenamiento local de hilos</b><br/>Inyecta código malicioso en procesos legítimos usando TLS"] class step10_process_injection technique step11_indirect_exec["<b>Técnica</b> – <b>T1202 Ejecución de comandos indirecta</b><br/>Aprovecha msiexec para ejecutar proxies de cargas adicionales"] class step11_indirect_exec technique %% Optional tool nodes tool_msiexec["<b>Herramienta</b> – <b>Nombre</b>: msiexec<br/><b>Descripción</b>: Ejecutable del instalador de Windows utilizado para la ejecución proxy"] class tool_msiexec tool tool_powershell["<b>Herramienta</b> – <b>Nombre</b>: PowerShell<br/><b>Descripción</b>: Entorno de scripting utilizado para gestionar paquetes de instalación"] class tool_powershell tool tool_deno["<b>Herramienta</b> – <b>Nombre</b>: Deno<br/><b>Descripción</b>: Entorno que hospeda el backdoor en JavaScript"] class tool_deno tool %% Connections showing the attack flow step1_malicious_link –>|lleva a| step2_msiexec step1_content_injection –>|apoya| step2_msiexec step2_msiexec –>|usa| tool_msiexec step2_msiexec –>|desencadena| step3_installer_pkg step3_installer_pkg –>|usa| tool_powershell step3_installer_pkg –>|instala| tool_deno step3_installer_pkg –>|habilita| step4_logon_script step4_logon_script –>|establece| step5_reflective_load step5_reflective_load –>|proporciona| step6_c2 step6_c2 –>|facilita| step7_browser_creds step6_c2 –>|facilita| step7_input_capture step6_c2 –>|facilita| step7_clipboard step7_browser_creds –>|alimenta a| step8_browser_discovery step7_input_capture –>|alimenta a| step8_browser_discovery step7_clipboard –>|alimenta a| step8_browser_discovery step8_browser_discovery –>|enviado a través de| step9_exfil step9_exfil –>|usa canal de| step6_c2 step5_reflective_load –>|habilita| step10_process_injection step10_process_injection –>|escala privilegios para| step11_indirect_exec step11_indirect_exec –>|ejecuta| step2_msiexec class step1_malicious_link,step1_content_injection,step2_msiexec,step3_installer_pkg,step4_logon_script,step5_reflective_load,step6_c2,step7_browser_creds,step7_input_capture,step7_clipboard,step8_browser_discovery,step9_exfil,step10_process_injection,step11_indirect_exec technique class tool_msiexec,tool_powershell,tool_deno tool "

Flujo de ataque

Ejecución de simulación

Prerrequisito: La verificación preliminar de telemetría y línea base debe haber pasado.

Razó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 TTP identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa y comandos de ataque:
    Un atacante ha obtenido acceso inicial a través de un script CMD malicioso entregado en un adjunto de phishing. Para mantener el sigilo, el script lanza PowerShell con una ventana oculta, deshabilita la política de ejecución y ejecuta una carga útil codificada en base64 que descarga y ejecuta una segunda carga útil. La línea de comando exacta coincide con las tres subcadenas señaladas por la regla, asegurando la detección.

    1. Etapa 1 – Lanzador CMD (simulado por el tester):

       @echo off
       start "" powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -EncodedCommand %payload%
    2. Etapa 2 – Carga útil de PowerShell (base64‑codificado, benigno para la prueba):

       $cmd = 'Write-Output "Ejecutada simulación maliciosa"'
       $bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd)
       $b64 = [Convert]::ToBase64String($bytes)
       echo $b64   # Inserte este valor como %payload% en el archivo por lotes
  • Script de prueba de regresión: El siguiente script automatiza todo el flujo, generando el comando codificado, lanzando PowerShell con los flags requeridos, y luego pausando brevemente para permitir que el SIEM ingiera el evento.

    # -------------------------------------------------
    # Prueba de Regresión – PowerShell Oculto + EP Omitido
    # -------------------------------------------------
    # 1) Construye una carga útil inofensiva (Write‑Output)
    $payload = 'Write-Output "Ejecutada simulación maliciosa"'
    
    # 2) Codifica la carga útil en base64 (codificación Unicode, como espera PowerShell)
    $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload)
    $b64   = [Convert]::ToBase64String($bytes)
    
    # 3) Lanza PowerShell con el conjunto de flags exacto requerido por la regla de Sigma
    $psCmd = @(
        'powershell.exe',
        '-NoProfile',
        '-ExecutionPolicy', 'Bypass',
        '-WindowStyle', 'Hidden',
        '-EncodedCommand', $b64
    ) -join ' '
    
    Write-Host "Ejecutando:`n$psCmd"
    Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-WindowStyle","Hidden","-EncodedCommand",$b64 -WindowStyle Hidden
    
    # 4) Espera que el registro se propague (ajusta según sea necesario)
    Start-Sleep -Seconds 10
    Write-Host "Simulación completa – verifica SIEM para detección."
  • Comandos de limpieza: Elimina cualquier archivo temporal (ninguno creado aquí) y asegura que no queden procesos de PowerShell rezagados.

    # Mata cualquier proceso de PowerShell errante generado por la prueba (excluyendo la sesión actual)
    Get-Process -Name powershell | Where-Object { $_.Id -ne $PID } | Stop-Process -Force
    Write-Host "Limpieza completa."