Botnet Sopelka: tres troyanos bancarios y un sólo panel

La botnet Sopelka empezó a gestarse en mayo de este año y su actividad cesó a finales del mes pasado. Tiene el nombre Sopelka debido al path usado en la distribución de binarios y archivos de configuración, y era una curiosa mezcla de variantes de los conocidos troyanos bancarios Tatanga, Feodo y Citadel. El objetivo de esta botnet era la recolección de credenciales bancarias de entidades europeas, afectando en gran medida a España y Alemania, pero también a Holanda, Italia y Malta. Además, se hacía uso de diferentes componentes móviles para teléfonos Android, BlackBerry, y también Symbian, el primer sistema operativo  detectado con este tipo de componente malicioso, hace ya más de dos años.
Durante el tiempo de actividad de la botnet se realizaron por lo menos cinco campañas, aunque seguramente se hubieran realizado más. De estas cinco campañas tres de ellas instalaban variantes de Citadel (versiones 1.3.4.0 y 1.3.4.5), otra, Feodo, y en la restante fue Tatanga el troyano elegido. Todas las campañas de Citadel llevaban la palabra "sopelka" (un tipo de flauta, en ruso) en su path de descarga, tanto de binarios como de archivos de configuración, pero no así en el caso de Tatanga y Feodo.
Campaña
Fecha
Troyano
Path
Países
Sopelka1
01/05
30/05
Citadel
1.3.4.0
/sopelka1/file.php|file=citsp1.exe
/sopelka1/file.php|file=sopelka1_config.bin
ES,DE,
NL
Sopelka2
01/05
30/05
Citadel
1.3.4.0
/sopelka2/file.php|file=citsp2.exe
/sopelka2/file.php|file=sopelka2_config.bin
ES
Tatanga
15/06
15/07
Tatanga
/sec/g.php
IT, ES,
DE, NL
Feodo
15/06
15/07
Feodo
/zb/v_01_a/in/cp.php
ES, NL,
DE, IT
Sopelka3
15/08
27/09
Citadel


1.3.4.5
/sopelka3/file.php|file=citsp3.exe
/sopelka3/file.php|file=sopelka3_config.bin
ES, DE

Las inyecciones HTML únicamente incluían el código necesario para referenciar a un archivo Javascript ubicado en un servidor externo. En el servidor se guardaba un archivo como mínimo por cada entidad, habiendo en algunos casos dos o tres. De esta forma, los criminales podían modificar a su antojo el contenido y las inyecciones del archivo sin necesidad de crear y distribuir un nuevo archivo de configuración a todos sus bots. Además, el archivo de inyección no se encontraba en un archivo accesible como podría ser el siguiente ejemplo:

https://dominio.com/dir/inyeccion.js 

sino que se hacía uso de un archivo PHP para controlar y servir el código Javascript con una URL de la siguiente forma:

https://dominio.com/dir/get.php/campaignDir/?name=inyeccion.js

La relación del uso de Tatanga, Feodo y Citadel por parte del mismo grupo de ciberdelincuentes se hace porque en todos los archivos de configuración se podían encontrar el mismo formato de URL para obtener el código externo, usaban el archivo get.php y el mismo path. De hecho, todos ellos enviaban las credenciales bancarias a un único panel de control, distinto del panel de cada troyano, y que recolectaba únicamente credenciales bancarias.
Además, también se detectó otro tipo de URL para obtener el código Javascript externo y que está relacionada con Tatanga desde sus inicios, así como la cadena "tatangakatanga":


https://dominio.com/dir/x.php?cmdid=8&gettype=js&id=inyeccion.js&uid=0000

Esto es debido a que, inicialmente, cuando apareció el troyano Tatanga, se usaba una URL con similar formato y que contenía la palabra “tatangakatanga”, que fue lo que dio nombre a este nuevo código malicioso bancario:

https://212.124.110.18:444/tatangakatanga/x.php?gettype=image&id=loaderfid.gif

Investigadores de seguridad de Shadowserver y Abuse.ch realizaron un sinkhole de algunos de los dominios específicos de Citadel (autumn.kz, wet.kz, advia.kz), cediendo para esta investigación estadísticas sobre las peticiones que les llegaban de equipos infectados:

Estas gráficas indican la afectación casi única a usuarios alemanes y españoles, siendo en general más numeroso el grupo de infectados alemanes con respecto a los españoles (casi un 60% de alemanes con respecto al 38% de españoles). Además de estos dos conjuntos bien diferenciados de conexiones, existían otros con un número mucho menor como son los que conformaban las conexiones provenientes de Suiza (2%), Portugal (1%) e Italia (cercano al 0%). Casi despreciables eran las conexiones cuyo origen se ubicaba en Estados Unidos, Holanda, Reino Unido, Hong Kong y demás países. Para hacerse una idea del tamaño de la botnet, a lo largo de una semana se conectaron al sinkhole más de 16.000 IPs únicas (teniendo en cuenta que no se hizo un filtrado de éstas, obviando temas como NAT, IPs no infectadas, etc).
Hablando sobre los componentes móviles, en las primeras campañas sólo se descargaban aplicaciones Android y BlackBerry, e incluso en algunos casos sólo se enviaban mensajes si el sistema operativo era Android. En cambio, en la última campaña detectada se  añadió también Symbian a la lista de sistemas operativo soportados.

La funcionalidad de la aplicación era la misma, independientemente del sistema operativo objetivo. Se trataba de un componente móvil clásico, con las mismas características que el detectado por primera vez por S21sec en septiembre de 2010. El objetivo de la aplicación era reenviar los mensajes que llegaban al terminal al teléfono indicado, se podía administrar mediante envío de SMS, y no realizaba ninguna comunicación por HTTP, como en los últimos apk’s.
La lista de comandos era más reducida que en las primeras versiones, ya que únicamente se incluían estos tres comandos, ya mencionados hace unos meses por Kaspersky:
  • "on": Comando utilizado para iniciar la monitorización y reenvío de mensajes. Si el comando termina correctamente se envía un mensaje con la palabra “ONOK” al número especificado como “admin”.
  • "off": Se utiliza para realizar la función inversa al anterior, es decir, dejar de monitorizar y reenviar los mensajes que llegan al dispositivo móvil. Si todo va bien se envía un mensaje con palabra “OFOK” al número indicado. 
  • "set admin": Sirve para cambiar el teléfono administrador, del que se reciben los comandos y al que se reenvían los mensajes de texto del terminal infectado. Si no hay ningún error realizando esta acción se enviará “SAOK” al número seleccionado.

Además, nada más inicializarse, la aplicación maliciosa envíaba la palabra “INOK” al número indicado como administrador, mientras que en las primeras versiones se enviaba la frase “App installed ok”.

Después de esta inicialización se daba el código "7725486193" al usuario, que debía introducirlo en el campo creado por la inyección HTML y que servía para indicar que la instalación de la aplicación se había hecho correctamente. En todas las aplicaciones el número al que se envíaban los mensajes era el mismo. Se trataba del +46769436094, un número virtual sueco.

A modo de curiosidad, algunos de los binarios de Citadel analizados incluían cadenas de texto haciendo referencia a Brian Krebs, conocido periodista que trata temas tecnológicos y de cibercrimen. No se trata de la primera vez que ocurre, ya que se comentó por primera vez hace unos meses.

Como se ha comentado anteriormente, algunos de los datos aportados son fruto del intercambio de información entre la comunidad de seguridad, por lo que se agradece su inestimable ayuda. Especial mención para los investigadores de Fox-IT, Shadowserver y Abuse.ch.

 

Nota: Publicado originalmente en el blog de S21sec