En diciembre de 2023, Sophos X-Ops recibió un informe sobre la detección de un falso positivo en un ejecutable firmado por un certificado válido de Microsoft Hardware Publisher. Sin embargo, la información sobre la versión del archivo supuestamente limpio parecía un poco sospechosa.
Los metadatos del archivo indican que se trata de un "Catalog Authentication Client Service" de "Catalog Thales", posiblemente un intento de hacerse pasar por la empresa legítima Thales Group. Sin embargo, tras indagar tanto en nuestros datos internos como en los informes de VirusTotal, descubrimos que el archivo estaba previamente incluido en un archivo de instalación de un producto llamado LaiXi Android Screen Mirroring, "un software de marketing…[que] puede conectar cientos de teléfonos móviles y controlarlos por lotes, y automatizar tareas como seguir, gustar y comentar por lotes".
Vale la pena señalar que, aunque no podemos probar la legitimidad del software LaiXi (el repositorio de GitHub no tiene código en el momento de escribir esto, pero contiene un enlace a lo que suponemos que es el sitio web del desarrollador), estamos seguros de que el archivo que investigamos es una puerta trasera maliciosa.
Esta no es la primera vez que Sophos X-Ops ha visto a actores de amenazas abusando del Programa de Compatibilidad de Hardware de Microsoft Windows (WHCP). En diciembre de 2022, casi exactamente un año antes de realizar esta investigación, informamos de que los atacantes habían desplegado controladores firmados criptográficamente en un intento fallido de desactivar los productos de seguridad para endpoints de Sophos. Esos controladores, variantes de BURNTCIGAR/POORTRY (un EDR killer vendido en foros delictivos y vinculado a bandas de ransomware como LockBit y CUBA) estaban firmados con un certificado WHCP legítimo. Sin embargo, aparte del abuso de WHCP, no observamos ninguna prueba de que el backdoor de diciembre de 2023 esté vinculado de algún modo a ese EDR killer anterior.
Al igual que hicimos en 2022, informamos inmediatamente de nuestros hallazgos al Centro de Respuesta de Seguridad de Microsoft. Tras validar nuestro descubrimiento, el equipo de Microsoft ha añadido los archivos pertinentes a su lista de revocaciones (actualizada hoy como parte del ciclo habitual del Martes de Parches; véase CVE-2024-26234).
Mientras escribíamos este artículo, que se basa en nuestra investigación independiente sobre esta puerta trasera en diciembre de 2023, nos dimos cuenta de que Stairwell había publicado su propio artículo sobre este tema en enero de 2024, basándose en la información de un tuit de Johann Aydinbas (también en enero de 2024). Nuestra investigación valida y amplía algunas de esas conclusiones.
Siguiendo el rastro
Como se ha indicado anteriormente, el actor de la amenaza detrás del archivo malicioso consiguió obtener una firma de Microsoft Windows Hardware Compatibility Publisher, por lo que empezamos nuestro análisis a partir de ahí.
Authenticode es una medida de seguridad de firma de código de Microsoft, que identifica al editor de una aplicación y proporciona verificación de que la aplicación no ha sido modificada desde que fue firmada y publicada. Afortunadamente, Microsoft proporciona fragmentos de código sobre cómo procesar estas firmas y extraer de ellas más metadatos. Una de los datos que pudimos extraer fue el editor solicitante original.
En este caso, el editor solicitante original es Hainan YouHu Technology Co. Ltd, que también aparece como editor del software LaiXI.
No tenemos pruebas que sugieran que los desarrolladores de LaiXi incrustaran deliberadamente el archivo malicioso en su producto, o que un actor de la amenaza llevara a cabo un ataque a la cadena de suministro para insertarlo en el proceso de compilación/construcción de la aplicación LaiXi. Sin embargo, señalaremos que, dados los vínculos entre LaiXi y la puerta trasera maliciosa que investigamos y el tiempo que llevan existiendo esos vínculos (desde al menos enero de 2023, como comentaremos en breve), los usuarios deben extremar las precauciones a la hora de descargar, instalar y utilizar LaiXi.
Análisis técnico
El archivo sospechoso incluye un pequeño servidor proxy gratuito, llamado 3proxy, una función poco fiable para un cliente de autenticación. Consideramos que este binario incrustado está destinado a supervisar e interceptar el tráfico de red en un sistema infectado.
Cuando se ejecuta el archivo, se instala como un servicio llamado "CatalogWatcher", con una descripción de servicio de "Google ADB LoaclSocket [sic] Multi-threading Graphics API", lo que no coincide en absoluto con la información sobre la versión del archivo que se muestra en la Figura 1. Aunque no podemos confirmarlo, evaluamos que esto está conectado a un enlace a un archivo de instalación del software LaiXi para Android, y a un intento de engañar a los usuarios infectados haciéndoles creer que el servicio es legítimo.
Una vez que se ejecuta el servicio, el malware pone en cola un nuevo elemento de trabajo/hilo mediante QueueUserWorkItem al threadpool. Una vez que el proceso tiene suficientes recursos disponibles, se inicia el hilo malicioso. Este hilo incorpora la funcionalidad central de la puerta trasera propiamente dicha.
Curiosamente, esta función comienza con un intento de llamar a la función VmProtectBeginVirtualization(), que es una exportación de la VMProtectSDK32.DLL de VMProtect.
Según el manual de usuario de VMProtect, esta función se utiliza para definir áreas de código que proteger mediante ofuscación y virtualización. Los desarrolladores de software legítimos suelen utilizar la protección de código basada en máquinas virtuales para ayudar a evitar que las aplicaciones sean objeto de ingeniería inversa, pero los actores de amenazas también abusan de ella para intentar frustrar el análisis del malware. Para más detalles sobre la ingeniería inversa de aplicaciones que utilizan protección basada en máquinas virtuales, consulta un blog que escribí en mi sitio personal hace unos años. En este caso, la función no estaba ofuscada adecuadamente. Llegamos a la conclusión de que el actor de la amenaza podía haber tenido la intención de hacerlo, pero fracasó por alguna razón desconocida.
También observamos que las muestras POORTRY/BURNTCIGAR de las que informamos a Microsoft en diciembre de 2022 estaban empaquetadas con VMProtect. Por aquel entonces, ya sospechábamos que los atacantes utilizaban empaquetadores comerciales como Armadillo o VMProtect para ocultar la intención maliciosa del software y conseguir la firma de sus controladores. Es posible que el actor de la amenaza detrás de esta puerta trasera intentara hacer lo mismo (aunque debemos señalar que el uso de ofuscación, empaquetadores y virtualización, incluido VMProtect, es muy común entre muchos desarrolladores de malware).
La cadena del servidor C2 "catalog[.]micrisoftdrivers[.]com" (un dominio similar a microsoftdrivers[.]com) se descifra mediante una simple operación XOR. A continuación, se muestra una reimplementación en Python de la rutina de descifrado:
# Decrypts to catalog[.]micrisoftdrivers[.]com s = "c`vbhja)e`iye~aidu`zbpdd6zuv" cc = "" i = 0 while i < len(s): ch = chr((ord(s[i]) ^ i)) cc += ch i += 1
Caza de amenazas
Por último, queríamos determinar si el actor de la amenaza había incrustado la misma carga útil en otros productos. Comprobamos nuestra propia telemetría y otras fuentes, pero no encontramos pruebas de que el backdoor se hubiese incluido en otro paquete que no fuera LaiXi. Sin embargo, encontramos muchas otras variantes, algunas de las cuales estaban vinculadas a un archivo llamado "Laixi_Update_1.0.6.7_b.exe", lo que indicaba que otros archivos, no solo el instalador, contenían el backdoor malicioso.
Hemos clasificado todas las muestras que descubrimos en cuatro grupos, basándonos en la marca de tiempo de compilación.
Aunque la marca de tiempo de compilación de un archivo PE puede falsificarse, nos fijamos en el delta temporal entre el momento en que se compiló el archivo y el momento en que apareció inicialmente en nuestros sistemas, y evaluamos que es probable que las marcas de compilación sean auténticas.
- La primera variante contiene una hora de compilación de 2023-01-05. Por lo tanto, consideramos que esta campaña ha estado en desarrollo al menos desde enero de 2023.
- La segunda variante contiene un sello de tiempo de compilación de 2023-01-11. Esta es también la primera muestra que consiguió obtener un certificado WHCP
- El tercer grupo de muestras, con una marca de tiempo de compilación de 2023-03-19, estaban o bien firmadas por el certificado WHCP, o bien sin firmar. Algunas de estas muestras están asociadas al archivo Laixi_Update_1.0.6.7_b.exe mencionado anteriormente
- El último grupo comparte una marca de tiempo de compilación de 2023-10-08. Curiosamente, dos muestras de este grupo estaban firmadas por un firmante diferente, aunque en el momento de escribir esto no hemos podido averiguar más información sobre estos firmantes, ni identificar ninguna otra muestra firmada por ellos.
SHA256 | Sello de tiempo de compilación | Firma |
cec73bddc33cd11ba515e39983e81569d9586abdaabbdd5955389735e826c3c7 | 2023-01-05 19:58:50 | No firmado |
815e21de6fab4b737c7dd844e584c1fc5505e6b180aecdd209fbd9b4ed14e4b2 | 2023-01-11 09:46:14 | WHCP |
3c931548b0b8cded10793e5517e0a06183b76fa47d2460d28935e28b012e426c | 2023-03-19 14:19:29 | WHCP |
0dae9c759072f9c0e5a61a9de24a89e76da35ffab8ff9610cc90df417c741f3f | 2023-03-19 14:19:34 | WHCP |
acc5c46ae2e509c59a952269622b4e6b5fa6cf9d03260bfebdfaa86c734ee6ea | 2023-03-19 14:19:34 | No firmado |
230c9c47abb17e3caa37bcb1b8e49b30e671e6c50e88f334107e3350bee13385 | 2023-03-19 14:19:29 | WHCP |
d6a1db6d0570576e162bc1c1f9b4e262b92723dbabdde85b27f014a59bbff70c | 2023-03-19 14:19:34 | No firmado |
4c23a199152db6596ccafb5ea2363500e2e1df04961a4ede05168999da87d39a | 2023-10-08 17:05:40 | No firmado |
c0c648e98ec9d2576b275d55f22b8273a6d2549f117f83a0bcc940194f1d0773 | 2023-10-08 17:05:45 | |
eccfd9f2d1d935f03d9fbdb4605281c7a8c23b3791dc33ae8d3c75e0b8fbaec6 | 2023-10-08 17:05:40 | WHCP |
5a519932c20519e58a004ddbfee6c0ed46f1cee8d7c04f362f3545335904bae2 | 2023-10-08 17:05:40 | IFOX PTE. LTD |
593f8ed9319fd4e936a36bc6d0f163b9d43220e61221801ad0af8b1db35a0de5 | 2023-10-08 17:05:40 | Gaoyou tucker network studio |
0ee12274d7138ecd0719f6cb3800a04a6667968c1be70918e31c6f75de7da1ba | 2023-10-08 17:05:45 | No firmado |
Tabla 1: resumen de todas las muestras que descubrimos, incluida su marca de tiempo de compilación y su firmante
Los IoC relacionados con este incidente están disponibles en nuestro repositorio de GitHub. La protección de Sophos Mal/Proxcat-A protege contra este malware y las variantes que comentamos aquí.
Agradecimientos
Sophos X-Ops quiere dar las gracias a Richard Cohen, Andrew Ludgate (SophosLabs) y Sean Gallagher (Sophos X-Ops) por su ayuda en el análisis de las muestras; y a Microsoft por colaborar con nosotros para ayudar a proteger a los usuarios.