Programas maliciosos para Facebook: etiquétame si puedes

En la mañana del 26 de junio la prensa israelí informó sobre una campaña de ataques phishing. Miles de usuarios de Facebook se quejaban de que sus cuentas habían quedado infectadas con un virus tras recibir un mensaje de un amigo en Facebook, que afirmaba haberlo mencionado en un comentario.

Kaspersky Lab decidió iniciar una investigación. Pronto descubrimos que el mensaje sí había sido iniciado por atacantes y que ocasionaba un ataque de dos etapas contra los destinatarios. También descubrimos que el ataque no se limitaba a Israel, sino que actuaba contra blancos en todo el mundo.

La primera etapa del ataque comenzaba cuando el usuario hacía un clic en “mencionar”. Un archivo malicioso tomaba el control del navegador del usuario: terminaba su sesión legítima y la remplazaba con una maliciosa, que incluía una pestaña que llevaba a la página legítima de acceso a Facebook. Estaba diseñada para engañar a la víctima y desviarla al sitio de esta red social.

Tras reingresar a Facebook, la sesión de la víctima era secuestrada de forma oculta y se descargaba un nuevo archivo. Esto representaba la segunda etapa del ataque, ya que en este archivo se hallaba incrustado un script para capturar la cuenta que incluía un modificador de los ajustes de privacidad, un extractor de los datos de la cuenta y otras herramientas maliciosas de spam, robo de identidad y generación de falsos “me gusta” y “compartir”. Además, el ciclo de infección con el programa malicioso se reiniciaba al enviar notificaciones maliciosas a todos los amigos en Facebook de la víctima.

La red Kaspersky Security Network (KSN) registró alrededor de 10.000 intentos de infección en todo el mundo en un periodo de apenas 48 horas.

Facebook_malware_SP_01

Miles de víctimas del archivo JavaScript malicioso

Facebook ya ha mitigado esta amenaza y está neutralizando las técnicas que se usaron para propagar programas maliciosos desde los equipos infectados. Asimismo, informa que no se han observado más intentos de infección. Por su parte, Google ha retirado de Chrome Web Store al menos una de las extensiones maliciosas.

Blancos principales

Los países más afectados fueron Brasil, Polonia, Perú, Colombia, México, Ecuador, Grecia, Portugal, Túnez, Venezuela, Alemania y, finalmente, Israel.
En el siguiente gráfico podemos apreciar mejor la propagación de la infección por todo el mundo:

Facebook_malware_SP_02

Vale la pena notar que los usuarios de equipos con sistemas Windows fueron los que mayor riesgo corrieron. Los usuarios de teléfonos con sistemas Windows también pudieron haber estado en riesgo, aunque esto es menos probable. Los usuarios de dispositivos móviles con sistemas Android y iOS tenían completa inmunidad puesto que el programa malicioso usa bibliotecas que no son compatibles con estos sistemas operativos.

Facebook_malware_SP_03

Programas maliciosos descargados desde un dispositivo Android con error de formato inválido

El proceso infeccioso

La infección comenzaba cuando las víctimas recibían una notificación de una “mención” en Facebook que aparentemente provenía de un amigo:

Facebook_malware_SP_04

Esto les proporcionaba a los atacantes una guarida desde donde poder capturar la sesión y los permisos de Facebook del usuario y enviar notificaciones maliciosas a los amigos en el Facebook de la víctima. Durante nuestra investigación, descubrimos que el script era el responsable del envío de estas notificaciones maliciosas. El script se activaba cuando el usuario de un equipo capturado procedía a ingresar a Facebook a través de un acceso directo malicioso en Chrome.

Infección inicial

Cuando hace clic en la notificación, el usuario es conducido a una publicación vacía que contiene un enlace a Google Docs. Este enlace descarga automáticamente un archivo JavaScript con el nombre comment_27734045.jse, que es un troyano descargador.

El archivo malicioso es parte del ataque que tratamos en este artículo. Descubrimos también que un generador de troyanos descargadores residía en los siguientes dominios:

Facebook_malware_SP_05

Una publicación de Facebook que enviaba el troyano descargador JSE

Sin que la víctima se entere, el archivo JavaScript ejecuta un archivo batch que llama a una utilidad pre-descargada llamada “AutoIt.exe”, con un argumento: ekl.au3. Este archivo es un script AutoIT y el ejecutable no es más que un compilador que lo ejecuta.

El código malicioso se inicia después de establecer un #NoTrayIcon: inicializa variables e inmediatamente comienza a enviar argumentos a la rutina de descifrado que se encuentra al final del script. La mayoría de las cargas maliciosas están cifradas. Sin embargo, la llave de descifrado viene especificada en el código y la función estándar puede copiarse fuera del código y automatizarse para un descifrado seguro.

O de una forma más simplificada:

La función tiene dos argumentos. Uno es una cadena hexadecimal que representa la carga cifrada y el otro es una llave. El algoritmo de cifrado utilizado en _Crypt_DecryptData() es CALG_AES_256, 256 bit AES, que también está especificado en el código.

El código suele ser bastante claro. Aun sin descifrar el contenido cifrado, es posible encontrar las variables guardadas que se usan: ProcessExists, ProcessClosed, DirCreate, AppDataDir, RegRead, FileDelete, DesktopDir etc.. Además, el autor dejó unos comentarios para el lector que pueden ser muy útiles.

Verificación en segundo plano

El troyano descargador no es novedoso. Hace más de un año se detectó que sus archivos contenían variables y comentarios en turco. El supuesto autor, también conocido como BePush/Killim, recurrió a innovadoras técnicas para propagar programas maliciosos a través de redes sociales. Se sabe que prefiere la ofuscación de múltiples niveles, especialmente en JavaScript, y que utiliza reductores de URL de múltiples niveles, proveedores de hosting de terceros y cargas de múltiples etapas.

El grupo ofusca su infraestructura con Cloudflare y registra dominios con WHOIS para proteger su privacidad. También monitorea sus infecciones con scripts analíticos de terceros.

Descubrimos que este autor en particular parece inclinarse por los siguientes proveedores: Amazon AWS, Google, WhosAmungUs, TinyURL, Bitly, Cloudflare y otros, lo que sugiere que prefiere programas gratuitos en vez de los comerciales.

¿Qué hay en el menú?

Una vez que se ejecuta, el script malicioso abre un socket a uno de sus servidores de comando y control (C&C), solicita una docena de archivos y los descarga uno por uno desde el servidor C&C. Todos tienen la misma extensión de imagen (.jpg). Después, el script remplaza esta extensión con la verdadera. Hemos documentado las siguientes extensiones:

  • exe – utilidad para descargar scripts maliciosos .au3.
  • bat – archivo batch que ejecuta el binario, añadiendo scripts .au3 como argumentos.
  • au3 – código malicioso.
  • zip – zip vacío.
  • json – manifiesto para configuración de extensiones de Chrome.
  • dat – versión del programa malicioso.
  • js – scripts adicionales que soportan la extensión de Chrome y scripts que recopilan estadísticas sobre las víctimas.

Al observar el contenido del archivo JSE, vemos que el primer segmento del código es una serie de cadenas, que se añadieron al código para ofuscarlo.

Facebook_malware_SP_06

Cadenas guardadas en el archivo JSE que contiene el servidor C&C y archivos maliciosos

En la parte superior vemos las cadenas responsables de abrir la conexión con el servidor C&C remoto, seguidas de las cadenas responsables de leer los archivos y cambiar su extensión. %APPDATA%, ExpandEnvironmentStrings y Mozila representan la ubicación real donde se guardarán los archivos maliciosos.
Al observar la carpeta de destino de los archivos maliciosos, vemos un extraño nombre de variable: Mozklasor, que en turco significa “carpeta púrpura”, lo que apunta a autores turcos, como mencionamos anteriormente.

Facebook_malware_SP_07

Creación del directorio %AppData%\Mozila para transferir los archivos maliciosos

Una vez descargada, podemos explorar la carpeta Mozila en AppData y analizar los cambios que se han realizado. Además de los archivos residentes en nuestro directorio Mozila falso, el archivo JavaScript también ejecuta el archivo run.bat, que carga el archivo ejecutable con uno de sus scripts como argumento.

Facebook_malware_SP_08

Notamos que se añadió un conjunto de archivos. Además, se ejecutó en segundo plano un script, se cerraron nuestros navegadores, se añadieron accesos directos de Chrome a nuestro escritorio y se reiniciaron los navegadores en modo infectado, con una extensión maliciosa incrustada en la instancia abierta, junto a algunas manipulaciones del registro que no habíamos notado. Este comportamiento ocurrió después de que el archivo JavaScript ejecutara el archivo batch run.bat, que llama la utilidad autoit.exe y la carga con ekl.au3.

Facebook_malware_SP_09

Navegadores cerrados inesperadamente y nuevas apps añadidas al escritorio

El programa malicioso cerró nuestra navegación en Chrome. En la misma situación, la reacción más natural de una víctima sería buscar la aplicación de navegación que esté más a su alcance, y abrirla. Una vez que se ejecuta el navegador, notamos dos elementos sospechosos.

Facebook_malware_SP_10

Víctima inducida a abrir un acceso directo malicioso a Chrome

El navegador se abre con una pestaña adicional que conduce a la página de ingreso a Facebook. El atacante suponía que los usuarios que estaban navegando en Facebook antes de encontrar el programa malicioso, simplemente esperarían que el navegador restaurara el sitio web. Un detalle importante para el usuario atento es que la ventana restaurada está abierta. Esto significa que el usuario todavía no ha restaurado la página de Facebook.

El segundo elemento (muy pequeño) es una extensión que se añadió silenciosamente a la lista de extensiones de Chrome. Aparece como un símbolo [a-z] sobre fondo gris en la parte superior derecha.

Si volvemos a observar la carpeta Mozila, podemos identificar un archivo Manifest.json que indica que el proceso de infección incluye una extensión.

Facebook_malware_SP_11

Facebook_malware_SP_12

Junto a los permisos que recibe la extensión, carga un script externo (bg.js). Este script es el responsable de evitar su eliminación. También contiene un oyente para peticiones salientes para resolución de DNS enviados mediante la barra de direcciones URL, y neutraliza una gran cantidad de dominios de sitios web identificados como peligrosos.

Facebook_malware_SP_13

Dominios identificados como peligrosos bloqueados

Si el usuario intenta acceder a uno de estos sitios web, el navegador le muestra el siguiente error:

Facebook_malware_SP_14

Dominios identificados como peligrosos bloqueados

Cuando la víctima al fin decide acceder a su cuenta de Facebook, un script remoto se carga desde el C&C y se ejecuta del lado del cliente. Se trata de un archivo JavaScript un poco grande (~80KB) que es responsable de capturar la cuenta y propagar el programa malicioso entre los usuarios de Facebook.

Después de lograr ingresar, el archivo JavaScript data.js se carga y desvía al usuario hacia una página con un mensaje en español: “Antes de volver a iniciar sesión necesitas limpiar todas tus cookies,”. Puedes hacerlo desde las configuraciones de tu Google Chrome, mira este tutorial si no sabes como”. El atacante pide esto para obtener nuevos identificadores de usuario-sesión. En el código malicioso, se menciona la cadena c_user. Esta cookie, entre otras, es una cookie de sesión y potencialmente puede ofrecer un valor notable a los atacantes.

Facebook_malware_SP_15

Después de ingresar, se puede ver que el ataque se ejecutó y que la víctima notificó a toda su lista de amigos en Facebook sobre la nueva URL. Después de activar esta URL, los amigos del usuario también se convertirán en hosts del programa malicioso y el proceso de infección se reproducirá con una lista de amigos más.

Facebook_malware_SP_16

Movimiento lateral

Cuando se abre el navegador Chrome con la extensión maliciosa, la página de Facebook también se abre en una nueva pestaña, induciendo al usuario a abrirla. Una vez que se establece la conexión, se ejecuta un script en segundo plano. Este script se itera a través de tres dominios para capturar el intento de ingreso y envía un script malicioso que regenerará la infección inicial en Facebook.

Facebook_malware_SP_17

Después del intento de ingreso a Facebook el programa malicioso captura el tráfico

Cuando el programa malicioso reconoce el intento de ingreso a Facebook, ejecuta un archivo malicioso JavaScript data.js que inicia el ataque, invitando a otros miembros de Facebook con una “mención” y un enlace malicioso. Además, la extensión actúa como un Man-In-The-Middle y puede capturar todo el tráfico entre la víctima y los servidores a los que solicitó datos. Gracias a esto, el autor puede robar datos y enviarlos a sus servidores C&C o incrustarlos en un archivo log y enviarlo por otro canal.

Facebook_malware_SP_18

Los datos en la carga del archivo JavaScript pueden descifrarse con un web proxy, como Fiddler, que posibilita la inspección de la URL incrustada con un script troyano listo para descargar.

Al inspeccionar el código, una cadena legible nos parece muy familiar. Se trata del enlace de la infección inicial que mencionamos al principio del artículo. Además de la rutina de infección, también se ha incrustado, en el mismo archivo, un script para la captura de cuentas junto a un modificador de ajustes de privacidad, un extractor de datos de cuentas y otras herramientas.

En resumen, la propagación del programa malicioso era muy efectiva y en apenas 48 horas alcanzó a miles de usuarios. La rápida reacción de los consumidores y de los medios de comunicación resultó ser el motor de esta campaña. La red social y los proveedores del servicio también actuaron oportunamente al bloquear el ataque.

Preguntas y respuestas:

¿Estoy infectado?

La forma más fácil de verificar si está infectado es abrir su navegador Chrome y buscar la extensión llamada thnudoaitawxjvuGB. Para un examen más profundo, pulse Inicio > Ejecutar > y copie el siguiente comando: %AppData%\Mozila. Si la carpeta contiene archivos como “autoit.exe” y “ekl.au3”, entonces su equipo está infectado.

Mi equipo está infectado. ¿Qué hago?

Salga de su cuenta en Facebook, cierre el navegador y desconecte de su equipo el cable de red. Es recomendable que recurra a un experto para examinar su equipo y eliminar todos los programas maliciosos. Asimismo, instale una solución antivirus actualizada.

Los productos de Kaspersky Lab detectan y bloquean esta amenaza, evitando así que su equipo se infecte.

Un amigo me mencionó en una publicación. ¿Puedo abrirla?

Sí, siga usando su red social como lo hacía antes. Sólo tenga en cuenta que no debe instalar en su equipo o dispositivo móvil aquellos archivos que no conoce.

Abrí el archivo en mi teléfono móvil. ¿Queda infectado?

Si no se trata de un teléfono Windows, no puede infectarse. Este programa malicioso sólo funciona en entornos Windows.

¿Cómo puedo evitar ser una víctima?

Cuanto más se usa Internet, mayor es el riesgo de convertirse en un blanco. Sin embargo, los proveedores de servicios como almacenamiento en la nube, redes sociales y productos de seguridad, trabajan sin cesar para estar un paso por delante de estas amenazas y cuidar la seguridad de sus usuarios. Si es posible, tenga cuidado cuando use Internet y no se deje engañar con algunos contenidos, por más tentadores que parezcan, si es que se interesa por su seguridad.

IOCs:

comment_27734045.jse 9D3DF2A89FDB7DA40CEB4DE02D605CFA Trojan-Downloader.Agent.JS.lee
Autoit.exe Legitimate software
Ff.zip Empty zip file
Sabit.au3
Up.au3
Force.au3
88C2B5DC9B7862590B859FC2FCDEAF87 Trojan.Win32.Autoit.fdi
Manifest.json 3C874BA389652FF33E535E5B3373FFDC Trojan.JS.Extension.g
Bg.js B50005F142A547CF8CD579EFAB0139DC Trojan.JS.Agent.diw
Ekl.au3 25C440B66B6C33F4F6A84A992DBB956B Trojan.Win32.Autoit.fdj
Run.bat Autoit.exe loader Trojan.BAT.Tiny.c
Ping.js Used for whos.amungs.us analytics
Ping2.js Used for whos.amungs.us analytics
ver.dat Contains version: 1.5
data.js 1a48f277b8e99d5a9b6526e0b51edad4 Trojan.JS.Agent.diw

URLs mailiciosas:

hxxp://userexperiencestatics[.]net/ext/autoit.jpg
hxxp://userexperiencestatics[.]net/ext/ff.jpg
hxxp://userexperiencestatics[.]net/ext/sabit.jpg
hxxp://userexperiencestatics[.]net/ext/ekl.jpg
hxxp://userexperiencestatics[.]net/ext/bg.jpg
hxxp://userexperiencestatics[.]net/ext/run.jpg
hxxp://userexperiencestatics[.]net/ext/up.jpg
hxxp://userexperiencestatics[.]net/ext/force.jpg
hxxp://userexperiencestatics[.]net/ext/ff.jpg
hxxp://corneliuspettus [.]com/fil.php
hxxp://lllllllllll[.]top/end.php?ref
hxxp://corneliuspettus [.]com/data.js
hxxp://appcdn[.]co/data.js
hxxp://friendsmu[.]com/data.js

Dominios:

Friendsmu[.]com
Appcdn[.]co
Userexperiencestatics[.]net
Corneliuspettus[.]com
lllllllllll[.]top

Publicaciones relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *