Mientras nos dedicábamos a nuestra habitual caza de amenazas, identificamos múltiples descargas de instaladores maliciosos de Tor Browser, al que todavía no le habíamos asignado una categoría de malware. Según nuestra telemetría, todas las víctimas a las que apuntan estos instaladores, se encuentran en China. Como el sitio web de Tor Browser está bloqueado en China, las personas de este país suelen recurrir a la descarga de Tor desde sitios web de terceros. En nuestro caso, un enlace a un instalador de Tor malicioso se había publicado en un canal popular de YouTube en chino, cuya temática es el anonimato en Internet. Este canal tiene más de 180 000 suscriptores, mientras que el número de visualizaciones del vídeo, con el enlace malicioso, supera las 64 000. Este vídeo se publicó en enero de 2022, y las primeras víctimas comenzaron a aparecer en nuestra telemetría en marzo de 2022.
La instalación de Tor Browser malicioso está configurada para ser menos privada que el Tor original. A diferencia del navegador legítimo, el Tor infectado almacena el historial de navegación y los datos puestos en los formularios de sitios web. Y lo que es más importante, una de las bibliotecas, incluidas en el navegador malicioso Tor, está infectada con un software espía, que recoge varios datos personales y los envía a un servidor de administración. Además, el software espía permite ejecutar comandos de shell en la máquina de la víctima, con lo que transfiere el control sobre ella al atacante.
Decidimos llamar a esta campaña “OnionPoison”, en honor a la técnica de enrutamiento Onion que se utiliza en Tor Browser.
Captura de pantalla del vídeo con un enlace al instalador malicioso de Tor Browser en la sección de descripción
Infección inicial
Es probable que las víctimas de la campaña OnionPoison hayan llegado al vídeo, con el enlace malicioso, a través del sistema de búsqueda de YouTube. El vídeo con el enlace malicioso aparece en el primer lugar de los resultados de búsqueda de la consulta ‘Tor浏览器’ (‘Tor Browser’ en chino). La descripción de este vídeo contiene dos enlaces: el primero va al sitio web oficial de Tor Browser, mientras que el otro lleva a un ejecutable malicioso de instalación de Tor Browser, alojado en un servicio chino de intercambio de archivos en la nube. Como el sitio web original de Tor está prohibido en China, el público del vídeo tiene que ir al enlace del servicio de intercambio en la nube para descargar el navegador.
Página de descarga del instalador malicioso de Tor Browser
El instalador malicioso
MD5 | 9AABCABABD5B677813589F7154302EE0 |
SHA1 | 7E8B9D2BD32B3AEA0E298B509D3357D4155AF9BC |
SHA256 | 877FE96CDFA6F742E538396B9A4EDB76DD269984BFB41CAD5D545E72CE28FFDE |
Hora del enlace | 2021-Sep-25 21:56:47 |
Tipo de archivo | Ejecutable PE32+ (GUI) x86-64, para MS Windows |
Compilador | Visual Studio 2003 – 7.10 SDK |
Tamaño del archivo | 74 MB |
Nombre del archivo | torbrowser-install-win64-11.0.3_zh-cn.exe |
La interfaz de usuario del instalador malicioso de Tor Browser es idéntica a la original; sin embargo, el instalador malicioso no tiene una firma digital, y algunos de los archivos que lanza difieren de los incluidos en el instalador original:
Nombre del archivo | Comentario |
freebl3.dll | El archivo freebl3.dll está presente en el instalador original de Tor Browser; sin embargo, su contenido es completamente diferente del DLL del instalador malicioso |
freebl.dll | Solo el instalador malicioso contiene un archivo con este nombre. Es una copia de la biblioteca freebl3.dll del instalador original |
firefox.exe | El ejecutable del instalador infectado solo difiere del original en un byte: el instalador infectado contiene la cadena https://aus1.torproject.org/torbrowser/update–3/%CHANNEL%/%BUILD, mientras que la cadena correspondiente (en el instalador original) es https://aus1.torproject.org/torbrowser/update_3/%CHANNEL%/%BUILD. Al sustituir el guión bajo por un guión, los delincuentes impedían que la instalación maliciosa de Tor Browser se actualizara. Es probable que hayan desactivado las actualizaciones para impedir que se sobrescriba la biblioteca freebl3.dll modificada. |
Lo que también es interesante sobre la instalación maliciosa de Tor Browser es que los delincuentes la hicieron menos privada. Modificando el archivo de configuración \defaults\preferences\000-tor-browser.js que está almacenado en el archivo browser\omni.ja, configuraron Tor para:
- Almacenar el historial de navegación;
- Activar el almacenamiento en caché de páginas en el disco;
- Habilitar el rellenado automático de formularios y registrar los datos de acceso;
- Almacenar datos de sesión adicionales para los sitios web.
Fragmentos del archivo 000-tor-browser.js modificado (izquierda) y original (derecha)
La biblioteca freebl3.dll
MD5 | 87E33DF76D70103A660783C02AAC44AC |
SHA1 | 04C5A6543E61328B235339358D2E48C0002F0E46 |
SHA256 | 3BA945FD2C123FEC74EFDEA042DDAB4EB697677C600F83C87E07F895FB1B55E2 |
Hora del enlace | 2021-Dic-21 09:44:08 |
Tipo de archivo | PE32+ ejecutable (DLL) (GUI) x86-64, para MS Windows |
Compilador | Visual Studio 2010 – 10.10 SP1 |
Tamaño del archivo | 627.2 kb |
Nombre del archivo | freebl3.dll |
Cuando Tor Browser (ya sea el legítimo o el infectado) se inicia, carga la biblioteca freebl3.dll en el espacio de direcciones del proceso firefox.exe. En el caso de la instalación del navegador infectado, los delincuentes sustituyeron esta biblioteca por una maliciosa. Para asegurar el correcto funcionamiento de Tor, esta librería maliciosa envía todas sus exportaciones a freebl.dll (que es una copia de la librería original freebl3.dll ).
Exportaciones de la biblioteca maliciosa freebl3.dll
Al iniciarse, la biblioteca maliciosa crea un mutex con el nombre Global\TBrowser que impide que dos instancias del malware se ejecuten al mismo tiempo. A continuación, elige de forma pseudoaleatoria una de las siguientes URLs del servidor de administración y le envía una petición POST:
- https://torbrowser.io/metrics/geoip
- https://tor-browser.io/metrics/geoip
Curiosamente, la petición POST enviada al servidor de administración contiene los siguientes encabezados:
Nombre del encabezado | Datos del encabezado |
Date | Fecha y hora actuales en formato GMT (por ejemplo, Mon, 10 Ago 2022 11:21:55 GMT) |
User-Agent | Agente de usuario por defecto, obtenido a través de la función API ObtainUserAgentString. |
Host | Dirección del servidor de administración |
Autorization | Contiene una firma HMAC-SHA1 de los datos de la solicitud (valor de encabezado de ejemplo: Autorization: SIGN QbqCdtmBBk3uH2Zj:gNe34o6RkQ/Hn82bRPSk7q1DO8w=). Aquí, QbqCdtmBBk3uH2Zj es un identificador de la clave HMAC, y gNe34o6RkQ/Hn82bRPSk7q1DO8w= es un hash HMAC-SHA1 codificado en Base64. Este hash se forma a partir de una cadena que contiene:
|
En respuesta a la solicitud POST, el servidor de administración devuelve un blob que contiene una carga útil cifrada, que se usan en la segunda etapa. Esta carga útil se descifra utilizando dos claves XOR: la primera clave se deriva de la longitud de la carga útil, mientras que la segunda clave es D65CB35A-58CB-4456-A7B7-E1B218770A9E. Después de descifrar el blob, la DLL maliciosa lo descomprime, utilizando la función RtlDecompressBuffer, obteniendo así otro archivo DLL. A continuación, el malware carga reflexivamente esta DLL e invoca su función de punto de entrada.
Obtención de la DLL de la infraestructura del servidor de administración
Durante nuestra investigación, intentamos comunicarnos con el servidor de administración y recuperar la DLL de la segunda etapa. Al principio, el servidor no devolvía la DLL en respuesta a nuestra petición POST. Por ensayo y error, descubrimos que el servidor de administración comprueba la dirección IP de la máquina víctima y envía la carga útil solo a las víctimas de China. Después de hacer una petición POST desde una máquina con una dirección IP china, logramos descargar la DLL de la segunda etapa. Por lo tanto, podemos decir que la campaña de OnionPoison se dirige a los usuarios que se encuentran en China. Otro aspecto que hay que tener en cuenta es que, la comprobación de la dirección IP, dificulta la obtención de la carga útil de la segunda etapa a través de cajas de arena de análisis de malware automatizadas.
La segunda etapa DLL
MD5 | 34C43C9B23B40D9D70B4530DE781F88A |
SHA1 | 3EBF1E989791E3743CEAC1C7B397242DD717AEA9 |
SHA256 | E5CC91FBE01005EF058B1C1D727CFBFB584B012390106BB9C941BC9B1AA96FF7 |
Hora del enlace | 2022-Feb-16 09:56:56 |
Tipo de archivo | PE32+ ejecutable (DLL) (GUI) x86-64, para MS Windows |
Compilador | Visual Studio 2010 – 10.10 SP1 |
Tamaño del archivo | 788 kb |
Nombre del archivo | cloud.dll |
Cuando se carga, la DLL de segunda etapa recupera la siguiente información del sistema:
- GUID del volumen de disco del sistema operativo;
- GUID de la máquina;
- Nombre de la computadora;
- Configuración regional de la computadora;
- Nombre del usuario actual;
- Direcciones MAC de los adaptadores de red.
Si se ejecuta por primera vez en la máquina víctima, la DLL también genera un GUID pseudoaleatorio de la víctima, y lo guarda en el valor SoftGuid de la clave de registro HKCUSOFTWARE\Mozilla\Firefox.
Después de recopilar la información del sistema, la DLL comienza a enviar mensajes de alerta al servidor de administración cada 2 minutos. El cuerpo de cada mensaje heartbeat contiene un objeto JSON, con información del sistema recopilada. Los mensajes heartbeat se envían, como peticiones POST, a la dirección https://torbrowser.io/metrics/heartbeat o a la URL https://tor-browser.io/metrics/heartbeat. La DLL también cifra el cuerpo de la petición con una clave pseudoaleatoria AES-128 (ECB) y luego cifra la clave AES con una clave pública RSA, especificada en la configuración.
En respuesta a los mensajes heartbeat, el servidor de administración puede solicitar recoger la siguiente información adicional:
- Software instalado;
- Procesos en marcha;
- Historial de Tor Browser;
- Historial de Google Chrome y Edge;
- Identificaciones de cuentas de WeChat y QQ que pertenecen a la víctima;
- Los SSID y las direcciones MAC de las redes Wi-Fi a las que están conectadas las víctimas.
La información adicional recopilada se envía al servidor de administración junto con el siguiente mensaje heartbeat.
Además, el servidor de administración puede solicitar la ejecución de un comando shell arbitrario, en la máquina víctima. Para ello, la DLL crea un nuevo proceso cmd.exe, y le pasa el comando, como argumento. También redirige la salida del proceso de la línea de comandos a una canalización, que después se utiliza para recuperar los resultados de la ejecución del comando. Una vez que el comando shell termina de ejecutarse, sus resultados se cifran (también con una combinación de criptografía simétrica y asimétrica) y se envían a través de una solicitud POST a la URL https://torbrowser.io/metrics/geoip o a la https://tor-browser.io/metrics/geoip.
Un detalle interesante sobre los sitios web del servidor de administración es que son visualmente idénticos al sitio web original de Tor Browser. Los enlaces de descarga del navegador, en el sitio web de la réplica, conducen al sitio web legítimo de Tor Browser.
Captura de pantalla de la página web de torbrowser[.]io
Víctimas
Según nuestra telemetría, todas las detecciones parecen estar localizadas en China. Esto era de esperar porque el servidor de administración comprueba que la dirección IP externa de la máquina de la víctima proceda de China, como hemos mencionado en párrafos anteriores.
Conclusiones
En esta campaña, los atacantes utilizan el acceso al software de anonimización para atraer a los objetivos. El poner el enlace en un canal popular de YouTube hace que el instalador malicioso de Tor Browser parezca más fiable para las víctimas. Un dato curioso es que, a diferencia de los stealers comunes y corrientes, los implantes de OnionPoison no recogen de manera automática las contraseñas, cookies o billeteras de los usuarios, sino que recopilan datos que pueden utilizar para rastrear la identidad de las víctimas (como historiales de navegación, identificaciones de cuentas de redes sociales y redes Wi-Fi). Los atacantes pueden buscar, en los historiales exfiltrados de los navegadores, rastros de actividades ilegales, ponerse en contacto con las víctimas a través de las redes sociales y amenazarlas con denunciar las actividades observadas por las autoridades. En el pasado, también hemos visto casos en los que las fuerzas del orden (el FBI por ejemplo) han utilizado vulnerabilidades de día cero para desenmascarar la identidad de los usuarios de Tor, involucrados en sitios web de pedofilia de la red oscura. Otro caso similar fue la distribución del malware OnionDuke a través de inyecciones en conexiones HTTP no cifradas en nodos de salida de TOR.
Sin importar cuáles sean los motivos del creador de este malware, la mejor manera de no infectarse con los implantes OnionPoison es descargar siempre el software de los sitios web oficiales. Si el uso de estos sitios web no es una opción, es posible verificar la autenticidad de los instaladores, descargados de fuentes de terceros, examinando sus firmas digitales. Un instalador legítimo debe tener una firma válida, y el nombre de la empresa, especificado en su certificado, debe coincidir con el nombre del desarrollador del software.
OnionPoison: instalador de Tor Browser infectado