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.
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.
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.
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?
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.
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
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.
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.
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
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.
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!
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!