Hace pocos días en PandaLabs, el laboratorio anti-malware de Panda Security, nos encontramos con un “ransomware” que, por su novedad y características, creemos resulta lo suficientemente interesante como para mostrar su funcionamiento. El nombre que hemos elegido para él ha sido “CriptoBit”.

Si lo comparamos con otros “ransomwares” conocidos hasta el momento, podemos decir que “CriptoBit” es único en su especie. No solo por la pantalla diferenciadora que presenta al usuario solicitándole el rescate de sus ficheros, sino por otras características que iremos desvelando a lo largo de este artículo.

Muestra analizada

El análisis sobre el que se centra este informe está basado en la siguiente muestra:

a67855dbd18652e99f13d29045b09391382bb8c817cda1e498cd01eb4a7bdf2c (sha256)

La muestra analizada se encuentra protegida gracias a un “packer” propio y, tras desempaquetarla, podemos apreciar, además de una fecha de compilación reciente (5 de Abril de 2016 a las 12:20:55 PM), la ausencia -prácticamente total- de cadenas de texto, indicios evidentes de que el autor de “CriptoBit” ha querido dificultar el análisis de su código.

Distribución

Tras analizar los datos proporcionados por los “sistemas de inteligencia colectiva” de Panda Security, se ha podido determinar que el vector utilizado para distribuir ”CriptoBit” está siendo el uso de “Exploits Kits” que afectan a diferentes navegadores web.

Comportamiento

Una vez desempaquetada y analizada la muestra, podemos determinar con más precisión la funcionalidad básica de “CriptoBit”:

Cryptobit Panda Security

 

¿Cómo se comporta el ransomware?

  1. Lo primero que hace “CriptoBit” es comprobar los idiomas configurados para el teclado. Si el teclado está configurado con uno de los siguientes códigos: 0x1a7, 0x419 (Russian) o 0x43f (Kazakh), el programa terminará sin cifrar ningún fichero.
  2. Tras comprobar que el teclado no está en su “blacklist”, “CriptoBit” empezará a recorrer todas las unidades de disco locales, carpetas de red, y unidades removibles (USB), en busca de ficheros que contengan alguna de las extensiones por las cuales se interesa. ¿Con qué objetivo? Cifrar el contenido completo del fichero (otra característica peculiar) para poder solicitar posteriormente su rescate.

En concreto “CriptoBit” se interesa por las siguientes extensiones de ficheros:

ods crp arj tar raw xlsm prproj der 7zip bpw dxf ppj tib nbf dot pps dbf qif nsf ifx cdr pdb kdbx tbl docx qbw accdb eml pptx kdb p12 tax xls pgp rar xml sql 4dd iso max ofx sdf dwg idx rtf dotx saj gdb wdb pfx docm dwk qba mpp 4db myo doc xlsx ppt gpg gho sdc odp psw psd cer mpd qbb dwfx dbx mdb crt sko nba jpg nv2 mdf ksd qbo key pdf aes 3ds qfx ppsx sxc gxk aep odt odb dotm accdt fdb csv txt zip

Una vez finalizado el proceso de cifrado de ficheros, el usuario podrá ver cómo le aparece en su equipo una ventana similar a la mostrada a continuación:

Cryptobit ransomware Panda Security

 

 

En este mensaje vemos algunos detalles que llaman la atención y que pueden servir para clasificar este nuevo “ransomware”:

El ID mostrado “58903347”

Para la muestra analizada, éste valor resulta ser siempre el mismo. No importa si se ejecuta este Malware en repetidas ocasiones, o si se hace en diferentes equipos. Esto hace pensar que nos encontramos con un ID de “ransomware” más que de usuario (o equipo).

La cantidad de “bitcoins” a pagar

Por lo general, las cantidades exigidas, o bien son fijas, o tienen un límite razonable. En este caso, vemos que el autor (o autores) de esta muestra solicitan un rescate “un poco” abusive.

La forma de contacto

En este caso no existe un servidor web accesible a través de una URL, tampoco se le pide al usuario nada en concreto, o al menos se desconoce de entrada.

Se pide al usuario que contacte con una dirección de correo (torrenttracker@india.com) de dudosa validez y, en el caso de no recibir respuesta, contactar con él utilizando una aplicación denominada “Bitmessage”; un “fork” de otra aplicación que podemos encontrar en “github”.

Adicionalmente, y por si este mensaje no fuera suficiente para convencerle de que sus ficheros han sido cifrados, cada vez que éste acceda a una carpeta con alguno de estos ficheros ahora indescifrables, descubrirá allí también un par de ficheros “extra” creados de forma intencionada:

Cryptobit ransomwareOKSOWATHAPPENDTOYOURFILES.TXT

 Si visualizamos este fichero nos encontramos con el mismo mensaje (esta vez en formato texto) que se le mostró al usuario una vez finalizado el cifrado de sus ficheros.

sekretzbel0ngt0us.KEY

En este segundo fichero podemos ver una secuencia hexadecimal de longitud 1024 que, una vez decodificada, correspondería a una secuencia binaria de 512 bytes (o 4096 bits).

 

Más adelante, en el apartado de “Cifrado”, se mostrará cual es el sentido del fichero denominado “sekretzbel0ngt0us.KEY”, y la encriptación que ha sido utilizada para cifrar los ficheros.

3. Otra acción que realiza “CriptoBit”, ya de forma transparente para el usuario, es realizar una petición HTTP a:

http://videodrome69.net/knock.php?id=58903347

Nota: el script “knock.php” solicitado aparentemente no existe, por lo que se ignoran los motivos reales de esta última acción.

Cifrado de ficheros

Para cifrar los ficheros, “CriptoBit” hace uso del algoritmo AES (“Advanced Encryption Estándar”) generando, en cada ejecución, una clave aleatoria de longitud 32 bytes (256 bits), lo cual hace prácticamente imposible descifrar los ficheros salvo que ésta sea conocida.

Para no perder esta clave y poder descifrar los ficheros si se paga el rescate, el autor de este “ransomware”, almacena la clave AES generada cifrada utilizando el algoritmo RSA.

La “clave pública” que elige es de longitud 4096 bits, y la podemos encontrar “hardcodeada” dentro de la muestra analizada.

Una vez cifrada la clave AES con RSA, ésta se almacenará en los ficheros denominados “sekretzbel0ngt0us.KEY”, solamente comprensibles si se dispone de la correspondiente “clave privada” RSA, que en principio estaría únicamente en posesión por el autor de este cifrador.

Dentro de este apartado, un detalle que puede llamarnos la atención y que puede ser interesante comentar es la ausencia de llamadas a librerías nativas para cifrar los ficheros utilizando RSA. “CriptoBit” hace uso de una serie de rutinas compiladas estáticamente que le permiten operar con números grandes (“big numbers”), reproduciendo de esta forma el algoritmo de cifrado RSA.

Conclusiones

Como vemos, el fenómeno “ransomware” no pasa de moda y nos encontramos a diario con muestras nuevas que nos siguen sorprendiendo. En este caso no tanto por el uso de “criptografía seria” (AES + RSA), algo que está estandarizándose cada vez más, sino por lo ambicioso del mismo, su buen diseño, y las ideas interesantes que hemos podido apreciar en él.

Como siempre, mantened vuestros antivirus actualizados y haced “backups” de vuestros ficheros importantes.

 

Análisis de “CriptoBit” realizado por: Alberto Moro, Abel Valero y Daniel García