SOC Prime Bias: Alto

17 Jun 2026 13:09 UTC

Dentro de un Proxy y RAT Basado en Deno

Author Photo
SOC Prime Team linkedin icon Seguir
Dentro de un Proxy y RAT Basado en Deno
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Un atacante desplegó un troyano de acceso remoto (RAT) modular y un marco de proxy aprovechando el entorno de ejecución de JavaScript Deno. El ataque utilizó bombardeo de correos y suplantación de Microsoft Teams para facilitar la descarga de un archivo malicioso. El implante opera a través de múltiples archivos JavaScript modulares que utilizan banderas de permisos específicas de Deno para realizar comunicación C2, ejecución de comandos locales y pivotamiento en la red.

Investigación

La investigación reveló una fase de acceso inicial que consistía en inundación de correos y técnicas de ingeniería social a través de Microsoft Teams. El malware fue identificado como un sistema no tradicional, modular, basado en Deno dividido en cuatro scripts: app.js, back.js, helper.js y webui.js. La detección ocurrió durante actividades de reconocimiento post-explotación en lugar de la ejecución inicial.

Mitigación

Las organizaciones deben monitorear la ejecución de entornos de scripting como Deno desde directorios que pueden ser escritos por el usuario y alertar sobre banderas de permisos sospechosos como –allow-run o –allow-net. Se recomienda implementar monitoreo para servicios HTTP locales de bucle invertido y correlación de alertas de suplantación de Teams con anomalías en correos. Además, restringir la capacidad de ejecutar entornos no firmados o no aprobados puede reducir la superficie de ataque.

Respuesta

Al detectar el ataque, los respondedores deben aislar los hosts afectados e investigar el origen de la suplantación de Teams. El análisis debe centrarse en la línea de procesos Deno y cualquier servicio local vinculado a los puertos de bucle invertido 10021 o 10022. Revisar los registros de auditoría unificada de Microsoft 365 para eventos TeamsImpersonationDetected es fundamental para determinar el alcance de la campaña de ingeniería social.

graph TB %% Definición de clases classDef action fill:#99ccff classDef builtin fill:#cccccc classDef malware fill:#ff9999 classDef discovery fill:#ccffcc classDef command_control fill:#ffff99 %% Fase inicial del ataque attack_email_bombing[«<b>Acción</b> – <b>T1667 Bombardeo de Correo Electrónico</b><br/>Descripción: Campaña masiva de correos electrónicos<br/>utilizada para generar fatiga y confusión en la víctima.»] class attack_email_bombing action attack_social_eng[«<b>Acción</b> – <b>T1684.001 Ingeniería Social: Suplantación de Identidad</b><br/>Descripción: Los atacantes se hacen pasar por soporte TI<br/>mediante llamadas de Microsoft Teams para ganar credibilidad.»] class attack_social_eng action attack_user_exec[«<b>Acción</b> – <b>T1204.002 Ejecución por el Usuario: Archivo Malicioso</b><br/>Descripción: La víctima descarga y extrae<br/>un archivo malicioso.»] class attack_user_exec action file_malicious_archive[«<b>Archivo</b>: patch09913.b<br/>Descripción: Archivo malicioso que contiene<br/>el framework de malware basado en Deno.»] class file_malicious_archive builtin %% Ejecución del framework de malware malware_deno_framework[«<b>Malware</b>: Framework basado en Deno<br/>Descripción: Malware modular que utiliza app.js<br/>como orquestador.»] class malware_deno_framework malware module_app_js[«<b>Módulo</b>: app.js<br/>Descripción: Orquestador basado en JavaScript<br/>que inicia módulos especializados.»] class module_app_js malware action_js_interpreter[«<b>Acción</b> – <b>T1059.007 Intérprete de Comandos y Scripts: JavaScript</b><br/>Descripción: Utilizado por app.js para iniciar módulos.»] class action_js_interpreter action action_hide_artifacts[«<b>Acción</b> – <b>T1564.011 Ocultación de Artefactos: Ignorar Interrupciones de Procesos</b><br/>Descripción: Utiliza conhost.exe –headless para<br/>suprimir ventanas de consola.»] class action_hide_artifacts action %% Persistencia module_back_js[«<b>Módulo</b>: back.js<br/>Descripción: Gestiona la persistencia y el C2.»] class module_back_js malware action_persistence[«<b>Acción</b> – <b>T1037.004 Scripts de Inicialización de Arranque o Inicio de Sesión: Scripts RC</b><br/>Descripción: Modifica la clave del Registro de Windows<br/>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run.»] class action_persistence action %% Descubrimiento module_helper_js[«<b>Módulo</b>: helper.js<br/>Descripción: Realiza la enumeración del sistema.»] class module_helper_js malware action_process_discovery[«<b>Acción</b> – <b>T1057 Descubrimiento de Procesos</b><br/>Descripción: Ejecuta tasklist para identificar procesos en ejecución.»] class action_process_discovery discovery action_sys_info_discovery[«<b>Acción</b> – <b>T1082 Descubrimiento de Información del Sistema</b><br/>Descripción: Ejecuta ipconfig /all y set para recopilar<br/>información de red y variables de entorno.»] class action_sys_info_discovery discovery %% C2 y movimiento interno action_c2_protocol[«<b>Acción</b> – <b>T1071.001 Protocolo de Capa de Aplicación: Protocolos Web</b><br/>Descripción: Mantiene una conexión WebSocket persistente<br/>con un punto C2 alojado en CloudFront.»] class action_c2_protocol command_control module_webui_js[«<b>Módulo</b>: webui.js<br/>Descripción: Facilita el movimiento dentro de la red interna.»] class module_webui_js malware action_proxy_pivoting[«<b>Acción</b> – <b>T1090 Proxy (Pivotaje Interno)</b><br/>Descripción: Actúa como intermediario de acceso para enrutar<br/>tráfico TCP hacia la red interna.»] class action_proxy_pivoting command_control %% Conexiones attack_email_bombing –>|genera_confusión_para| attack_social_eng attack_social_eng –>|conduce_a| attack_user_exec attack_user_exec –>|implica| file_malicious_archive file_malicious_archive –>|ejecuta| malware_deno_framework malware_deno_framework –>|orquestado_por| module_app_js module_app_js –>|utiliza| action_js_interpreter module_app_js –>|implementa| action_hide_artifacts module_app_js –>|inicia| module_back_js module_app_js –>|inicia| module_helper_js module_app_js –>|inicia| module_webui_js module_back_js –>|realiza| action_persistence module_back_js –>|establece| action_c2_protocol module_helper_js –>|realiza| action_process_discovery module_helper_js –>|realiza| action_sys_info_discovery module_webui_js –>|realiza| action_proxy_pivoting

Flujo de Ataque

Simulación de Ejecución

Prerequisito: La Verificación Previa de Telemetría y Línea Base debe haber pasado.

Razonamiento: 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 llevarán a un diagnóstico erróneo.

  • Narrativa de Ataque y Comandos: El adversario ha entregado exitosamente un RAT malicioso basado en Deno en la máquina de la víctima a través de un adjunto de spearphishing (T1566.004). Para evadir antivirus tradicionales basados en firmas, el atacante oculta el binario de Deno dentro de un subdirectorio profundo y no estándar del perfil de usuario: C:Usuariosuser.nameAppDataRoamingDenoJSEnv. El atacante luego ejecuta el binario usando las banderas --allow-run and --allow-net . Esto permite que el malware basado en JavaScript ejecute comandos de shell arbitrarios para el descubrimiento del sistema (T1082) y se comunique con un servidor C2 externo mediante HTTPS (T1071.001).

  • Script de Prueba de Regresión:

    # Nota: Este script simula la existencia del directorio y binario 
    # para activar la lógica de la regla. En una prueba real, el archivo debe existir en la ruta exacta.
    
    $targetDir = "C:Usuariosuser.nameAppDataRoamingDenoJSEnv"
    $targetExe = "$targetDirdeno.exe"
    
    # 1. Crear la estructura de directorios específica requerida por la regla de detección
    if (!(Test-Path $targetDir)) {
        New-Item -ItemType Directory -Force -Path $targetDir
    }
    
    # 2. Crear un archivo dummy para actuar como el 'deno.exe'
    # En una simulación real, este sería el binario real de Deno.
    New-Item -ItemType File -Force -Path $targetExe
    
    # 3. Ejecutar el comando 'malicioso'
    # Usamos Start-Process para asegurarnos de que aparezca como un proceso hijo en los registros de Sysmon.
    # Dado que 'deno.exe' es un dummy, llamaremos a 'cmd.exe' pero enmascararemos el comando 
    # para que coincida con la lógica, O si se está probando la regla REAL, asegúrese de que el binario 
    # sea real y llámelo. Para esta simulación, asumimos que el usuario proporciona un 
    # binario real de Deno en esa ruta.
    
    Write-Host "[!] Simulando la ejecución de $targetExe con banderas maliciosas..."
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c echo Simulación activando regla..." 
    # Nota: Para realmente activar la regla, el deno.exe real debe estar presente.
    # Si la regla está estrictamente buscando la ruta de la Imagen, el binario DEBE estar allí.
    # Por el bien de un script de simulación funcional, llamamos a la ruta:
    # Start-Process -FilePath $targetExe -ArgumentList "--allow-run --allow-net"
  • Comandos de Limpieza:

    # Eliminar el directorio y archivos simulados maliciosos
    Remove-Item -Path "C:Usuariosuser.nameAppDataRoamingDenoJSEnv" -Recurse -Force
    Write-Host "[+] Limpieza completa."