Escrito por Preksha Saxena y Yashvi Shah McAfee Labs ha estado rastreando una sofisticada campaña de VBS caracterizada por Visual Basic Scripting (VBS) ofuscado. Inicialmente entregando el malware AgentTesla, la campaña ha evolucionado hasta convertirse en una amenaza multifacética, que emplea scripts VBS como un mecanismo de entrega versátil. En particular, esta campaña se extiende más allá de AgentTesla y ahora distribuye una variedad de malware como Guloader, Remcos RAT, Xworm y Lokibot. Esta campaña ilustra un proceso de infección integral iniciado por un archivo VBS enviado por correo electrónico. Comenzando con la activación de un script VBS, avanza a través de las fases de PowerShell, utilizando la utilidad BitsTransfer para recuperar un script de PowerShell de segunda etapa. El Shellcode A decodificado y ejecutado oculta y carga el Shellcode B. En la fase final, wab.exe descarga la carga útil cifrada de Remcos RAT. Shellcode B lo descifra y lo inyecta en wab.exe, haciéndolo funcionar como Remcos RAT. La campaña observada se ha destacado por estar dirigida a diversas regiones del mundo. A continuación se presenta un mapa de calor geográfico que muestra a los clientes de McAfee que han sido seleccionados y salvados durante los últimos tres meses. Figura 1: Geo Heatmap que muestra las regiones objetivo. En la publicación de blog destacada, los actores maliciosos utilizaron GuLoader para implementar Remcos RAT. Cadena de ejecución Figura 2: Cadena de infección La ejecución comienza ejecutando un script VBS. luego desencadena la ejecución del PowerShell de primera etapa. Posteriormente, se emplea la utilidad BitsTransfer para recuperar un PowerShell de segunda etapa que está codificado en base64. Luego, la segunda etapa de PowerShell se codifica y ejecuta. Después de esto, el primer Shellcode se talla meticulosamente y se carga de forma reflectante. El segundo Shellcode codificado dentro del Shellcode A se decodifica y también se carga de forma reflectante. El paso final implica un segundo Shellcode que se aprovecha para recuperar e inyectar Remcos RAT (Herramienta de vigilancia y control remoto) en un proceso legítimo de Windows. En este caso, wab.exe. Esta intrincada serie de acciones permite la implementación y operación sigilosa de Remcos RAT dentro del entorno Windows. Figura 3: Descripción técnica de VBScript ofuscado del árbol de procesos: Etapa 1: (Desofuscando vbs) Adjunto al correo electrónico hay un archivo ZIP aparentemente etiquetado como “revised_quotation_for_purchase_invoice_order_design_6th_november_2023”, que se asemeja a una factura para el usuario. La intención, al igual que correos electrónicos engañosos similares, es que el destinatario no examine el correo electrónico de cerca. Dentro del archivo adjunto zip hay un archivo VBS muy ofuscado. El script VBS empleó varias técnicas para dificultar bastante el análisis. Tiene muchas variables basura, funciones señuelo y comentarios innecesarios, y todas las funciones maliciosas están ofuscadas. Figura 4: Script muy ofuscado El código aparece optimizado después de eliminar líneas redundantes, lo que da como resultado una versión más concisa y eficiente. Después de eliminar todos los comentarios, el script resultó ser el siguiente: Figura 5: Después de eliminar el código basura En el script, se agregan frecuentemente nuevas cadenas a la variable “Fu6”. Este método sirve para aumentar la complejidad del análisis. Una vez que todas las cadenas están concatenadas y formateadas, el resultado surge de una manera más intrigante. Como se muestra en la imagen de abajo. Figura 6: Después de desofuscar el código La función «Mikr9» se encargará de la conversión de cadenas, haciéndolas legibles. Convertimos todas las líneas a un formato legible, con la ayuda de la función «Fu6». Por ejemplo, como se muestra en la Figura 5, la cadena ‘DelfhAdvetFagstStatpYapp:Nona/fisk/Indh1 Sic0 Tra3parc. Mon1Gens7Vide6Eufo.Tast1Outs1Midd1afte.Dors1husg6 Hal3Beja/ Hypm RenuColonSprgdNasahToasuRafflchon.GyttpBrnefMuckbAcci ‘ se convirtió en http://103.176.111[.]163/mundhul.pfb. Asimismo, se decodifica todo el script y obtenemos el siguiente script: Figura 7: Después de aplicar la función de descifrado Mikr9() El script lleva a cabo la siguiente secuencia de actividades: Recupera el archivo de segundo nivel de “hxxp://103.176.111[.]163/mundhul.pfb” usando BitsTransfer. Guarde el archivo adquirido en la carpeta Appdata. Decodifica el archivo desde Base64, convirtiéndolo a un formato de cadena. Navega hasta compensar 229981 y extrae las 28050 unidades de datos siguientes. Ejecuta los datos extraídos utilizando IEX (Invoke-Expression). Etapa 2: ejecución de Powershell El archivo recuperado muestra cero detección en VT, parece estar codificado en base64 y tiene un tamaño de 336 KB. Figura 8: Segundo script de Powershell Figura 9: El contenido está codificado en base64 Al decodificar “mundhul.pfb”, se puede realizar un análisis detallado para comprender su funcionalidad, lo que permite un examen más detallado de la ejecución del malware. Una vez que el archivo se decodifica, revela un código parecido a la imagen que se proporciona a continuación. Figura 10: Datos decodificados en Base64 Como se especifica en el script, ejecute un salto para compensar 229981 y recupere las 28050 unidades de datos resultantes. Esto marca el inicio del segundo script de PowerShell, que tiene 28050 bytes, marcado de la siguiente manera. Figura 11: Inicio del segundo PowerShell cifrado El código contiene varios comentarios, por lo que seguimos el mismo procedimiento que para el primer script, eliminamos todo el código basura y obtuvimos una función que parece manejar el descifrado de todas las cadenas. Figura 12: Después de eliminar la basura El proceso de descifrado se repite varias veces para revelar las cadenas y el malware emplea el método «Invocar» para ejecutar sus comandos. Después de decodificar todas las cadenas usando la función «Bedroges02», finalmente entendimos la intención del script. Figura 13: Después de aplicar la lógica de descifrado El script de PowerShell carga inicialmente la función VirtualAlloc() y almacena el identificador de memoria en variables denominadas “trll3” y “Akuammin195”. Estas secciones poseen permisos de escritura, lectura y ejecución. El último segmento del script parece invocar un código shell oculto incrustado en él. La secuencia de ejecución implica copiar los bytes de la siguiente manera: Los 644 bytes iniciales desde el principio de este script de PowerShell constituyen el primer código de shell. Posteriormente, a partir del byte 644, el script copia los siguientes 229337 bytes, constituyendo el segundo shellcode. Figura 14: Constitución del código shell Después de la secuencia de ejecución, el malware inicia la llamada API CallWindowProcA, lo que lleva posteriormente a la invocación de la función nativa NtProtectVirtualMemory. Luego, el proceso pasa directamente a iniciar el primer shellcode. Etapa 3: ejecución de Shellcode-A La acción principal de Shellcode-A implica copiar el shellcode B en la memoria, como se muestra en la siguiente figura. Figura 15: Bucle utilizado para copiar el código shell B El código shell B se descifra mediante la operación XOR. Esta operación sirve para transformar el código en su forma ejecutable, permitiendo que el código shell descifrado ejecute las instrucciones previstas dentro de la memoria del sistema. Figura 16: Bucle de descifrado utilizado para descifrar el shellcode B Etapa 4: Shellcode-B El shellcode está diseñado para establecer un nuevo proceso llamado “wab.exe” y replica 0x3FC4000 bytes del shellcode descifrado en su espacio de memoria. Como lo indica el cuadro azul resaltado, el contenido descifrado del segundo shellcode (que se muestra en la Figura 15) se inyecta posteriormente en el proceso wab.exe (que se muestra en la Figura 16). Figura 17: Inyección del segundo código shell El objetivo del código shell es recuperar el Remcos RAT de la URL especificada, “hxxp://103.176.111.163/lnHxQotdQb132.bin” y posteriormente inyectarlo en el proceso “wab.exe”. Una vez que la carga útil final inyecta «wab.exe», realiza todas las actividades maliciosas. Figura 18: wab.exe conectándose a C2 El archivo obtenido de la URL proporcionada parece ser un binario cifrado. Tras el descifrado, se reconoció que iniciaba la comunicación con la dirección IP 94.156.65.197 a través del puerto 2404. Una observación reveló la creación de un mutex llamado «Rmc-R7V4VM». Los datos registrados durante su funcionamiento se almacenan en un archivo denominado «logs.dat». Además, las capturas de pantalla capturadas se guardan en un directorio llamado «Capturas de pantalla», mientras que el repositorio general de los datos recopilados se llama «Remcos». Conclusión Esta campaña describe el proceso de infección integral iniciado por un archivo VBS recibido por correo electrónico. El proceso comienza con la activación de un script VBS, iniciando la fase inicial de PowerShell. Posteriormente, se utiliza la utilidad BitsTransfer para recuperar un script de PowerShell de segunda etapa, codificado en base64. Después de la decodificación y ejecución, el primer Shellcode se extrae cuidadosamente y se carga de forma reflexiva. Simultáneamente, Shellcode A oculta y carga el Shellcode B decodificado. En la fase final, el wab.exe inyectado procede a descargar la carga útil final cifrada de Remcos RAT. Shellcode B es responsable de descifrar la carga útil y posteriormente se inyecta en wab.exe. En consecuencia, esta instancia particular de wab.exe funciona como Remcos RAT. VBScript en el entorno Windows: una perspectiva de seguridad VBScript, introducido por Microsoft en 1996, fue crucial en el entorno Windows como lenguaje de programación para la automatización de tareas, estrechamente integrado con Internet Explorer y un componente clave de tecnologías como Windows Script Host y Active Server. Pages y ofimática. Proporcionó una solución de secuencias de comandos simple para tareas del sistema, desarrollo web y lógica del lado del servidor. Microsoft está desaprobando VBScript y estará disponible como una característica bajo demanda antes de su eventual eliminación de Windows, dijo la compañía. Esta decisión se alinea con una estrategia más amplia para reducir las campañas de malware que explotan las características de Windows y Office. VBScript, deshabilitado de forma predeterminada en Internet Explorer 11 desde 2019, ha sido utilizado por actores maliciosos para distribuir malware, y Microsoft tiene como objetivo mejorar la seguridad eliminando este vector de infección. Los atacantes aprovechan las vulnerabilidades de las tecnologías obsoletas debido al uso persistente en sistemas heredados, la lenta adopción de actualizaciones, las aplicaciones personalizadas, los estrictos requisitos de la industria y la resistencia de los usuarios al cambio. Para mitigar los riesgos, son cruciales medidas proactivas como actualizaciones rápidas, educación sobre seguridad y mantenerse informado sobre los ciclos de vida del software. 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 de phishing por correo electrónico: Verificar la información del remitente Piense antes de hacer clic Revisar la ortografía y la gramática Sea cauteloso con el contenido del correo electrónico Verifique las solicitudes inusuales Implemente filtros de correo electrónico Verifique las conexiones seguras Informe los correos electrónicos sospechosos Mantenga el software actualizado fecha Alinear con parches de seguridad IOC Archivo VBS 6fdd246520eebb59e37a7cd544477567b405a11e118b7754ff0d4a89c01251e4 Segundo PowerShell 5d21216a92ffea5b8ba70f48f9bcbb8a530a9b272423ae3ba519 dbf74a905a65 Carga útil final 7d947df412e78a595029121ecaf9d8a88e69175cffd1f2d75d31e3ca8995c978 URL1 hxxp://103.176.111[.]163/mundhul.pfb URL2 hxxp://103.176.111[.]163/lnHxQotdQb132.bin Dirección IP 103.176.111[.]163 dirección IP 94.156.65[.]197 Mutex Rmc-R7V4VM 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>’);