Nuevas Entradas

Analizando JS Malicioso AutoLike/AutoShare

by hdbreaker

Hoy quiero contarles un rápido análisis que realice de un archivo javascript malicioso que permite realizar AutoShares y AutoLikes en facebook.

Como todo análisis tiene una historia previa, navegando la red social como usuario habitual de facebook, encontré un articulo que llamo mi atención, al acceder al mismo advertí una pequeña ventana modal el cual me informaba que para cerrarla debía presionar la X... Esto ya me olía mal, pero confiado de mis conocimientos decidí seguir adelante. En caso de un script malicio tendría en mis manos algo interesante por el cual escribir.

Al dar 2 click en la X y ver que la ventana modal no cerraba saltaron mis sospechas y lo primero que revise fue mi muro de Facebook, donde por cuasi arte de magia había compartido una publicación sin mi consentimiento.

Como no soy un usuario asustadizo lo primero que me propuse era investigar donde estuvo la trampa, de todas formas, si hubiera sido algo peor, ya seria parte de alguna botnet. No perdía nada con seguir el juego!

Primero analice velozmente el html, detectando un iframe que se cargaba sobre la X.


para mi sorpresa lo que había sobre la X en realidad era un formulario HTML con varios input con values predefinidos ocultos y maquillados con un poco de css.


Lo interesante de esto fue el value de uno de sus input.

Que para mi poca sorpresa era un link de facebook:

https://www.facebook.com/groups/361531944052219/permalink/362524573952956/

Los que hemos trabajado con el API de facebook o aquellos curiosos que han estudiado que son los números de las url de facebook podrán ver a simple vista
que el primer numero 361531944052219 identifica a un grupo y el siguiente numero 362524573952956 identifica a una publicación dentro del grupo.

Sin dudarlo lo visite para ver a donde me llevaba.

Con esto detectamos que el Usuario Dario Lopez del grupo Noticias Importantes Mundial esta dispersando malware con el fin de hacer popular una nota o un sitio web.

A simple vista el perfil de Dario Lopez, no parece un Perfil falso ya que posee una cantidad considerable de amistades y fotos familiares concretas.

No puedo decir si Dario Lopez es la mente detrás de este malware, pero no hay que descartar que por "coincidencia" es un "profesional" (Si lo remarco!) del área informática según su información y además es administrador del sitio http://laferia.do, casualmente el dominio que hospeda el fichero analizado también es .do. Muchos dirán que puede ser pura casualidad, pero cuando muchas casualidades convergen en el mismo punto hay que mantenernos atentos.

Además, existen publicaciones de Dario Lopez exponiendo de forma publica que el se encarga del SEO y posicionamiento del sitio http://enminutos.do


Muchos Analistas estarían feliz con esta información, pero yo quise llegar un poco mas lejos.

Todo formulario html debe apuntar a algún lado y esta no es la excepción.
Este formulario envía los datos a:
http://enminutos.do/v1/wp-content/plugins/gereshare/comp.php

En este punto dije, espero que este sujeto no permita Directory Listing, pero como era de esperar sus habilidades dejan mucho que desear.



En el la raiz del sitio, podemos observar varios archivos interesantes, entre los cuales resaltan a simple vista 3.

comp.php
(El cual seria el encargado de compartir publicaciones)
autolikewp.php (El encargado de los likes)
wppanel.php (Probablemente el panel de administración de esta pseudobotnet js)

Al abrir el archivo Ok.php podemos ver el mensaje que nos devuelve la ventana modal, que nos solicita clickear 2 veces la X.


Analizando como funcionaba el archivo comp.php en base al formulario html, se puede apreciar que el mismo obtiene como parametro GET (?n=) una url de facebook y gracias a ello, realiza el share de la publicación en nuestro muro.

También se puede apreciar el pequeño icono Recommander que genera, el cual esta situado sobre la X de la primera ventana modal de forma oculta.

Al presionar por primera vez el icono, la publicación es compartida automáticamente en nuestro muro.


¿Pero como es esto posible?
Si analizamos las solicitudes que realizan al pinchar sobre el icono con Live HTTP Headers, vemos que en realidad comp.php realiza una solicitud cruzada (CSRF) a facebook en la siguiente url:

https://www.facebook.com/plugins/like.php?action=recommend&locale=fr_FR&href=https://www.facebook.com/groups/361531944052219/permalink/362524573952956/




Luego de compartir, sorprendentemente se genera otro icono que solicita volver a pinchar sobre el (clickear 2 veces sobre la X cobra sentido).

Este segundo click, obtiene nuestra lista de amigos: solicitando la siguiente url, y enviando como parametros nuestro user id.


https://www.facebook.com/ajax/chat/buddy_list.php
POST DATA:

user=XXXXXXXXXXXX&cached_user_info_ids=100000880896707%2C1539278499%2C1039286048%2C1672917463%2C1159013345%2C100002303816403%2C1579914094%2C100002280882851%2C1294812174%2C1485503826%2C100006827621101%2C1435971856%2C1420035217%2C1549101887%2C100000243965841%2C1189075482%2C1358504234%2C100002206144671%2C100000304744896%2C1541655589%2C100000323464648%2C100005337588429%2C1183924717%2C100000154385259%2C541587768%2C1169111031%2C502648835%2C1019076152%2C1427687216%2C1075931220%2C100000259832559%2C1014462015%2C1797529367%2C1311745204%2C100000621867724%2C1594688351%2C100001114774263%2C100006411360957%2C1585235871%2C1347135662%2C1516698859%2C1460880717&fetch_mobile=false&__user=100000880896707&__a=1&__dyn=7nmajEyl2lm9o-t2u5bGya4Au7pEsx6iqAdy9VQC-K26m6oKewWhEyfyUnwPUS2O4K5ebAxacFoy8ACxuFmdAw&__req=1y&fb_dtsg=AQGj5Kcxo0bW&ttstamp=2658171106537599120111489887&__rev=1733369

Esto da como resultado un json con todos los id de los conectados al chat de facebook y su estado actual (Online, Offline).


Luego de esto hace solicitudes recursivas para obtener información de cada uno de nuestros contactos del chat.

Esto da como resultado información primordial para contactar a cada uno de estos usuarios.

Entre esta información se encuentra el id de facebook de cada Amigo del chat, y su url de facebook.

Con esta información el atacante puede realizar una campaña de spam buscando obtener cada vez mas víctimas, con esta misma metodología el script intenta enviar spam a cada uno de los usuarios del chat, pero por motivos que desconozco el script falla en este punto. Probablemente protección contra spam de facebook.

Al entender como funciona el script no tarde mucho en desarrollar un metodo que me permitía aprovechar la situación por medio de un pequeño PoC que le permite a cualquier persona utilizar este script para realizar campaña sobre sus propios sitios.

Solo basta con cambiar parámetro enviado a comp.php de la siguiente forma:

http://enminutos.do/v1/wp-content/plugins/gereshare/comp.php?n=URL

URL puede apuntar a una pagina de facebook, a una publicación personal, o a una publicación dentro de un grupo.

En este caso utilice como URL la paguina de facebook de SecuritySignal

http://enminutos.do/v1/wp-content/plugins/gereshare/comp.php?n=https://www.facebook.com/pages/Security-Signal/1582089988673754?fref=ts

Vemos con este sencillo PoC como fuimos capaces de reproducir a nuestro favor el script malicioso.


Luego de llegar a un punto realmente interesante en el funcionamiento de este script malicioso decidí mirar los archivos Javascript ya que todo esto era posible gracias a peticiones ajax.



Al ver un poco ambos archivos notamos otra coincidencia, nuestro programador es de habla latina, igual que Dario Lopez, y podemos ver con este trozo de código como evalúa el estado de nuestra session por medio de cookies.


Dentro del otro fichero javascript es donde la cosa se pone un poco peligrosa.

En el siguiente código podemos ver como el script roba nuestras cookies para luego enviarlas muy probablemente a un panel de administración.


Entre los datos que obtiene el atacante se encuentra: 

Fecha en la que expira nuestra session (para los que pinchan en "iniciar automáticamente")
El path desde donde se pincho el link malicioso
El dominio en nuestro caso www.facebook.com
Secure que de momentos la almacena en blanco.

Luego de intentar  acceder un tiempo a wppanel.php decidí que era tiempo de eliminar las Sessiones de mi navegador, limpiar las Cookies y eliminar cache.
Nadie quiere un Bot JS persistente en el navegador como el desarrollado por nuestro amigo Chema en:

http://www.elladodelmal.com/2012/03/owning-bad-guys-mafia-with-javascript.html


Luego de esto pasamos a enviar solicitudes de análisis a sitios como VirusTotal y demás sitios web que repartan muestras de malware a distintas compañías con el fin de intentar quemar lo mas rápido posible este Script Malicioso.

Si más, espero que les haya gustado esta lectura. Saludos!

Demás esta decir que tengan cuidado al abrir cualquier link que venga desde el sitio http://enminutos.do

Por si quieren analizar ustedes también
Pastebin del html: http://pastebin.com/Zg5phGGq

Actualización: Un amigo lector de este blog, envío un email relacionando el funcionamiento relatado con el siguiente script a la venta en distintas zonas y foros. Según parece programado y a la venta por el usuario gere88 de foroBeta.

Gere88 buen trabajo!



Share this:

 
Copyright © 2014 Security Signal.
Designed by OddThemes | Distributed By Gooyaabi Templates