man looking in mirror
Threat Research

Humo y espejos (de pantalla): una extraña puerta trasera firmada

Sophos X-Ops descubre un curioso ejecutable con puerta trasera (y firmada), que se hace pasar por algo totalmente distinto

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.

Una tabla con información sobre la versión del archivo, con el nombre de la empresa "Catalog Thales".
Figura 1: información de la versión del archivo detectado. Observa las erratas “Copyrigth” y “rigths”

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í.

Una captura de pantalla de la información del certificado de Catalog.exe, mostrando WHCP como el firmante
Figura 2: la firma de Catalog.exe

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.

Captura de pantalla de una línea de comandos de Windows que muestra la salida de la herramienta AuthenticodeParse.exe en Catalog.exe, mostrando WHCP en la información del certificado del firmante.
Figura 3: extracción del editor solicitante original del archivo malicioso

En este caso, el editor solicitante original es Hainan YouHu Technology Co. Ltd, que también aparece como editor del software LaiXI.

Captura de pantalla del sitio web de LaiXi. El nombre de la empresa aparece resaltado en un recuadro rojo en la parte inferior derecha.
Figura 4: Hainan YouHu Technology Co. Ltd también aparece como editor de la aplicación 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.

Captura de pantalla de un desensamblaje del malware, con las cadenas "3proxy" resaltadas en amarillo.
Figura 5: cadenas relacionadas con el servidor proxy integrado en el malware

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.

Captura de pantalla de un desensamblaje del malware
Figura 6: función de creación del servicio CatalogWatcher

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.

Captura de pantalla de un desensamblaje del malware
Figura 7: inicio de la función para la comunicación C2

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.

Una línea de tiempo que muestra las cuatro categorías de muestras en función de las marcas de tiempo de compilación
Figura 8: los cuatro grupos de muestras y sus clasificaciones cronológicas

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.