La semana pasada les contamos acerca de unas extensiones maliciosas que se encuentran en el store oficial de Chrome y que se están propagando por sitios de películas online y streaming de habla hispana. Hoy quiero completar lo expuesto con un análisis de cómo se lleva a cabo el ataque.
Vamos a tomar como ejemplo el mismo sitio que se describía la vez anterior, pero quiero aclarar que, a medida que avanzó la investigación, fui descubriendo un gran número de sitios de películas online afectados. El motivo se debe a que todos ellos utilizan publicidad “oculta”, que se activa al hacer clic en determinadas partes de la página. Si bien esta técnica ya es una vieja conocida, generalmente lleva a publicidad engañosa, mas no a la instalación directa de malware.
Cuando accedemos para ver una película en uno de los sitios afectados, obtenemos el siguiente extracto de una captura de red:
Vemos que se carga un script desde un archivo externo, al que se le pasará el control al hacer clic sobre el marco que contiene el video. Parte del código de ese script se muestra en la siguiente imagen:
La URL resaltada corresponde al servicio de SmartAdTags, que los sitios web como estos utilizan para manejar la distribución de las publicidades y ads. A partir de la petición enviada, el servicio decide qué publicidad será mostrada, a través de una serie de redirecciones. El problema es que, durante estas últimas semanas, una de las posibles campañas elegidas por el servicio publicitario redirecciona a la instalación de una extensión maliciosa de Chrome, como se había mostrado en WeLiveSecurity antes.
A continuación vemos desde una captura de red cómo uno de los primeros sitios en esa cadena de redirecciones envía información como la ciudad y proveedor de Internet de la víctima, de tal modo de adecuar los mensajes y posteriores publicidades.
Finalmente, se llega a un sitio que contiene una imagen con un falso mensaje de “Aceptar | Cancelar”, para que la víctima haga clic allí. Adicionalmente, se reproduce un audio con una voz en español que insta a “instalar la extensión para cerrar este sitio”. Lo mencionado se observa en el código fuente de la página:
También vemos en la imagen anterior el enlace que lleva a la instalación de la extensión maliciosa. De una captura de tráfico podemos ver las diversas redirecciones y objetos descargados (notar que en esta imagen faltan las peticiones a sitios con https, como el de SmartAdTags):
Ahora bien, ¿en qué consisten estas extensiones? A grosso modo hay dos casos: extensiones no maliciosas que han sido modificadas para incluir el código “extra” y extensiones puramente maliciosas.
De las primeras podemos mencionar que, en la mayoría de los casos analizados, se incluye una versión legítima de jQuery (jquery-1.9.1.js), con código malicioso agregado, con remplazo en el nombre de funciones y demás ofuscaciones. Las otras extensiones son más fáciles de analizar y a continuación se ve uno de los archivos .js maliciosos:
En definitiva, al instalarse esta extensión, las peticiones pueden ser manipuladas para ejecutar el .js remoto de la línea 1. Adicionalmente, si se intenta administrar las extensiones desde “chrome://extensions/”, se nos redirige a otra página, evitando, por ejemplo, que desinstalemos la extensión.
¿Qué contiene ese .js remoto? En la siguiente imagen se muestra una porción del código:
En la primera función vemos cómo se crea un elemento de tipo iframe con una página desde un sitio remoto. En la parte de abajo, vemos también la posibilidad de cargar otros .js más con diversas funcionalidades. Como se describió en la entrada de blog anterior, el resultado perceptible para el usuario es que súbitamente aparecen pop-ups y nuevas pestañas con publicidad.
Extensiones analizadas
https://chrome.google.com/webstore/detail/cursor-bubble/fhddhdgopbinckmjcmkbmijbdnffojfc
https://chrome.google.com/webstore/detail/kaplivnos/aocdkpmbndmifneigmblilhfhkiaggkl
https://chrome.google.com/webstore/detail/jumpergame/laidbhjnadfjlagamekdekahgcdajgfe
https://chrome.google.com/webstore/detail/ogleen/gbencefaphhmikajjbjaplgjfpdijhlm
https://chrome.google.com/webstore/detail/meta-crawextension/fjnlnafaainniebdaopennljpoobcngo
https://chrome.google.com/webstore/detail/kabelshuk/calflbophfokecgcgfhgglakdmjgibca
https://chrome.google.com/webstore/detail/tyagelosik/kbdebjeblooaahhaafodbebdfjjlgaab
https://chrome.google.com/webstore/detail/share-on-rabbit/cjhejfibplhlijedfbdnfgjdbfkieacl
https://chrome.google.com/webstore/detail/iklear/jaodhhfhfoadmfpfplnmdciefcilfali
SHA-1 de las extensiones analizadas
81150ab8397ef0edbb683f60d211fca2d722dad0, Cursor-Bubble_v2.119.crx
521b6ebd851685307f4f94cfdf634e85836bf822, iklear_v2.128.0.crx
e269ca38cd6620cd854769145e80cdf24bfdd572, JumperGame_v2.120.0.crx
11bcf36f3614e892111eaa7bc95b4bfee1fa0580, Kabelshuk_v1.27.crx
b7923a5281b4a1debc8004632fc7bfc91f7ae1a1, Kaplivnos_v1.29.crx
6c6e9235eb3a6708e6894e7774b8294f644d8890, Meta-crawExtension_v2.123.crx
eb27421a4b7be4150d952760f42059431fae56f9, ogle(En)_v2.122.0.crx
f263fed4b70315bbd75c40933cda5a2fedb7cb0e, Ogle-en_v2.121.crx
192db9f57bda7edd6d9a469517e06290af8d2cd8, share-on-rabb.it_v2.127.crx
6e2a322dd533fbcd3c2b821772dac0271c8d98d3, Tyagelosik_v1.27.crx