Escrito por Yashvi Shah y Preksha Saxena AsyncRAT, también conocido como «troyano de acceso remoto asincrónico», representa una variante de malware altamente sofisticada meticulosamente diseñada para violar la seguridad de los sistemas informáticos y robar datos confidenciales. McAfee Labs ha descubierto recientemente una nueva cadena de infección, arrojando luz sobre su potente letalidad y los diversos mecanismos de elusión de seguridad que emplea. Utiliza una variedad de tipos de archivos, como PowerShell, Windows Script File (WSF), VBScript (VBS) y otros dentro de un archivo HTML malicioso. Este enfoque multifacético tiene como objetivo eludir los métodos de detección de antivirus y facilitar la distribución de infecciones. Figura 1: Prevalencia de AsyncRAT durante el último mes Cadena de infección: la infección se inicia a través de un correo electrónico no deseado que contiene una página HTML adjunta. Al abrir involuntariamente la página HTML, se produce una descarga automática de un archivo de script de Windows (WSF). Este archivo WSF recibe deliberadamente un nombre que sugiere un ID de orden, fomentando la ilusión de legitimidad e incitando al usuario a ejecutarlo. Tras la ejecución del archivo WSF, la infección avanza de forma autónoma y no requiere ninguna intervención adicional del usuario. Las etapas posteriores de la cadena de infección abarcan la implementación de archivos Visual Basic Script (VBS), JavaScript (JS), Batch (BAT), Texto (TXT) y PowerShell (PS1). En última instancia, la cadena culmina en una inyección de proceso dirigida a aspnet_compiler.exe. Figura 2: Análisis técnico de la cadena de infección Al abrir un correo electrónico no deseado, el destinatario, sin saberlo, encuentra un enlace web incrustado en su contenido. Al hacer clic en el enlace, se abre una página HTML. Simultáneamente, la página inicia la descarga de un WSF (archivo de script de Windows), poniendo en marcha una secuencia de eventos potencialmente peligrosa. Figura 3: Página HTML El archivo HTML inicia la descarga de un archivo WSF. Disfrazado de documento relacionado con una orden con numerosas líneas en blanco, el archivo WSF oculta intenciones maliciosas. Después de su ejecución, no se requiere interacción del usuario. Al ejecutar wsf, obtenemos el siguiente árbol de procesos: Figura 4: Árbol de procesos Líneas de comando: Tras la investigación, descubrimos la presencia de líneas de código en el archivo wsf que facilitan la descarga de otro archivo de texto. Figura 5: Contenido del archivo wsf El archivo de texto descargado, denominado “1.txt”, contiene líneas de código específicas. Estas líneas están programadas para descargar otro archivo, denominado «r.jpg», pero en realidad se guarda en la carpeta pública con el nombre «ty.zip». Posteriormente, este archivo zip se extrae dentro de la misma carpeta pública, dando como resultado la creación de múltiples archivos. Figura 6: Los archivos marcados se extraen en una carpeta pública Secuencia de infección: a) El archivo “ty.zip” consta de 17 archivos adicionales. Entre ellos, el archivo denominado “basta.js” es el primero en ejecutarse. El contenido de “basta.js” es el siguiente: Figura 7: basta.js b) “basta.js” invocó el archivo “node.bat” desde la misma carpeta. Figura 8: node.js Explicando el comando presente en node.bat: $tr = New-Object -ComObject Schedule.Service; Esto crea una nueva instancia del objeto COM del Programador de tareas de Windows. $tr.Conectar(); Esto se conecta al servicio Programador de tareas. $ta = $tr.NuevaTarea(0); Esto crea un nuevo objeto de tarea. $ta.RegistrationInfo.Description = ‘Ejecuta un script cada 2 minutos’; Esto establece la descripción de la tarea. $ta.Configuración.Enabled = $verdadero; $ta.Settings.DisallowStartIfOnBatteries = $false; Esto permite que la tarea se inicie incluso si el sistema funciona con batería. $st = $ta.Triggers.Create(1); Esto crea un desencadenante para la tarea. El valor 1 corresponde a un tipo de disparo “Diario”. $st.LímiteInicio = [DateTime]::Now.ToString(‘aaaa-MM-ddTHH:mm:ss’); Esto establece la hora de inicio del activador en la hora actual. $st.Repetición.Intervalo = ‘PT2M’; Esto establece el intervalo de repetición del disparador en 2 minutos. $md = $ta.Acciones.Create(0); Esto crea una acción para la tarea. El valor 0 corresponde a un tipo de acción de “Ejecutar”. $md.Path = ‘C:\Users\Public\app.js’; Esto establece la ruta del script que ejecutará la tarea. $ns = $tr.GetFolder(‘\’); Esto obtiene la carpeta raíz del Programador de tareas. $ns.RegisterTaskDefinition(‘café’, $ta, 6, $null, $null, 3); Esto registra la definición de tarea con el Programador de tareas. La tarea se llama «café». Los parámetros 6 y 3 corresponden a constantes para actualizar una tarea existente y permitir que la tarea se ejecute bajo demanda, respectivamente. En resumen, el comando configura una tarea programada llamada «cafee» que está diseñada para ejecutar el script «app.js» que se encuentra en el directorio C:\Users\Public\ cada 2 minutos. El objetivo principal de este script es mantener la persistencia en el sistema. Figura 9: Entrada de tarea programada c) Ahora se ejecuta “app.js” y ejecuta “t.bat” desde la misma carpeta. Figura 10:app.js d) “t.bat” tiene poco código ofuscado que después de concatenar se convierte en: “Powershell.exe -ExecutionPolicy Bypass -File “”C:\Users\Public\t.ps1” Figura 11: Contenido de t .bat e) Ahora se invoca el script de PowerShell “t.ps1”. Este es el script principal responsable de la inyección. Figura 12: Contenido de t.ps1 Hay 2 funciones definidas en él: A) Función fun_alosh()Esta función se usa por última vez para decodificar $tLx y $Uk B) Función FH ()Esta función se usa solo una vez para decodificar el contenido de “C:\\Users\\Public\\Framework.txt”. Esta función toma una cadena binaria como entrada, la convierte en una secuencia de caracteres ASCII y devuelve la cadena resultante. Figura 13: Contenido de Framework.txt Después de decodificar el contenido de “C:\Users\Public\Framework.txt” usando CyberChef, podemos revelar el nombre del archivo binario final destinado a la inyección. Figura 14: Conversión de binario a hexadecimal y de hexadecimal a ascii utilizando CyberChef Esta técnica tiene como objetivo evadir la detección ocultando palabras clave sospechosas dentro del script. De la misma manera, otras palabras clave también se almacenan en archivos de texto, como por ejemplo: El contenido de otros archivos de texto es: Figura 15: Contenido de otros archivos Después de reemplazar todos los nombres y reformular las oraciones. A continuación se muestra el resultado. Figura 16: Código de inyección Ahora, las dos variables restantes son descifradas por fun_alosh. Después de descifrarlos y guardarlos, se descubrió que ambos archivos son archivos PE, uno de los cuales es una DLL ($tLx) y el otro un exe ($Uk). Figura 17: Inyección de proceso de binarios decodificados en aspnet_compiler.exe. Figura 18: Inyección de proceso en aspnet_compiler.exe Una vez finalizadas todas las tareas en segundo plano, surge una página engañosa de Amazon únicamente para atraer al usuario. Figura 19: Página falsa de Amazon Análisis de binarios: el archivo Dll está empaquetado con confuserEX y, como se muestra, el tipo se menciona ‘NewPE2.PE’ y el método se menciona ‘Ejecutar’. Figura 20: DLL empaquetada con confusión El segundo archivo se llama AsyncClient123 y está muy ofuscado. Figura 21: Carga útil de AsyncRat Para resumir el flujo de ejecución principal de “AsyncRAT”, podemos resumir los siguientes pasos: Inicializar su configuración (descifra las cadenas). Verifica y crea un Mutex (para evitar ejecutar instancias duplicadas). Si se configura a través de la configuración, el programa se cerrará automáticamente al detectar un entorno virtualizado o de análisis. Establece persistencia en el sistema. Recopilar datos de la máquina de la víctima. Establezca una conexión con el servidor. La función de descifrado se utiliza para descifrar cadenas. Figura 22: Función de descifrado El programa crea un mutex para evitar que se ejecuten varias instancias simultáneamente. Figura 23: Creación de Mutex Figura 24: Mutex en el explorador de procesos Comprobando la presencia de un depurador. Figura 25: Código antianálisis Recopilación de datos del sistema. Figura 26: Código para recopilar datos del sistema Establezca una conexión con el servidor. Figura 27: Código para la conexión C2 Inyección de proceso en aspnet_compiler.exe: Figura 28: Comunicación C2 Conclusión: en esta publicación de blog, analizamos toda la secuencia de ataque de AsyncRAT, comenzando con un archivo HTML que desencadena la descarga de un archivo WSF y culminando con la inyección de la carga útil final. Los atacantes suelen emplear estas tácticas para conseguir un punto de apoyo inicial. Anticipamos un aumento en la utilización de estos tipos de archivos luego de la implementación de protecciones por parte de Microsoft contra macros maliciosas de Microsoft Office, que también han sido ampliamente explotadas para la distribución de malware. Los laboratorios de McAfee recomiendan constantemente a los usuarios que se abstengan de abrir archivos de fuentes desconocidas, en particular los recibidos por correo electrónico. Para las organizaciones, recomendamos encarecidamente realizar capacitación en seguridad para los empleados e implementar una puerta de enlace web segura equipada con protección avanzada contra amenazas. Esta configuración permite el escaneo y la detección de archivos maliciosos en tiempo real, lo que mejora la seguridad de la organización. Mitigación: evitar ser víctima del phishing por correo electrónico implica adoptar un enfoque vigilante y cauteloso. Estas son algunas prácticas comunes para ayudar a evitar ser víctima del phishing por correo electrónico: Verificar la información del remitente Piense antes de hacer clic en enlaces y advertencias Revisar si hay errores ortográficos y gramaticales Tenga cuidado con el contenido del correo electrónico Verifique solicitudes inusuales Utilice filtros de correo no deseado de correo electrónico Verifique que haya conexiones HTTP seguras Eliminar correos electrónicos sospechosos Mantener Windows y software de seguridad actualizado Utilice la versión más reciente y parcheada de los IOC (indicadores de compromiso) de Acrobat Reader: Archivo SHA256 HTML 969c50f319a591b79037ca50cda55a1bcf2c4284e6ea090a68210039034211db WSF ec6805562419e16de9609e2a210 464d58801c8b8be964f876cf062e4ab52681a ty.zip daee41645adcf22576def12cb42576a07ed5f181a71d3f241c2c14271aad308b basta.js 909ec84dfa3f2a00431a20d4b8 a241f2959cac2ea402692fd46f4b7dbf247e90 node.bat 569e33818e6af315b5f290442f9e27dc6c56a25259d9c9866b2ffb4176d07103 app.js 7d8a4aa184eb350f4 be8706afb0d7527fca40c4667ab0491217b9e1e9d0f9c81 t.bat e2d30095e7825589c3ebd198f31e4c24e213d9f43fc3bb1ab2cf06b70c6eac1d t .ps1 a0c40aa214cb28caaf1a2f5db136bb079780f05cba50e84bbaeed101f0de7fb3 exe 0d6bc7db43872fc4d012124447d3d050b123200b720d305324ec7631f739d98d dll b46cd34f7a2d3db257343501fe47bdab67e796700f150b8c51a28bb30650c28f URL hxxp://142.202.240[.]40:222/1.txt URL hxxp://142.202.240[.]40:222/r.jpg Presentamos McAfee+ Protección contra robo de identidad y privacidad para su vida digital Descargue McAfee+ ahora \x3Cimg height=»1″ width=»1″ style=»display:none» src=»https://www.facebook .com/tr?id=766537420057144&ev=PageView&noscript=1″ />\x3C/noscript>’);