Hace unas semanas atrás, desde el laboratorio de ESET Latinoamérica les presentamos “Operación Liberpy: Keyloggers en Latinoamérica”, como resultado de la investigación enfocada en un código malicioso con propiedades de keylogger, bot y gusano, el cual ESET detecta como Python/Liberpy. Esta amenaza estaba dirigida a usuarios de Venezuela y casi con certeza podíamos afirmar que fue creada por uno o más atacantes de dicho país latinoamericano. Como consecuencia del sinkhole de la botnet, que realizamos en conjunto con las entidades involucradas, los cibercriminales no se quedaron de brazos cruzados y desarrollaron la versión número tres de esta amenaza. A continuación explicaremos que conlleva la actualización de Liberpy.
Como primera instancia el código malicioso importa más librerías que en la versión anterior, en este caso son las que se pueden observar en la siguiente imagen:
Aquí podemos destacar la siguiente línea de código: “from httplib import HTTPSConnection”
Este módulo define las clases que implementa el lado del cliente de los protocolos HTTP y HTTPS. La clase HTTPSConnection utiliza SSL para la comunicación con los servidores. ¿Para qué utiliza esto el atacante? Porque le permite realizar una conexión segura, por lo tanto, toda la información que viaja por Internet hacia el panel de control o viceversa, es cifrada y difícil de interceptar. En la siguiente imagen se puede observar en donde se modificó la comunicación con el C&C, para agregar cifrado a través del uso de HTTPS en lugar de HTTP como vimos que sucedía en el paper de Operación Liberpy.
En las siguientes líneas tenemos la configuración principal del código malicioso, observamos que determinados datos fueron modificados, por ejemplo,”version” con la asignación del número tres como también “url” y “update_url”, a consecuencia de que el cibercriminal no ha recibido respuesta de los equipos infectados. Como dato importante, se creó una nueva variable, llamada “multiplicar” a la cual se le asignó un string: “1”, con un comentario en la misma línea “#No replicar”.
A medida que continuamos analizando el código se puede ver notoriamente los comandos que interpreta la nueva versión del código malicioso:
En esta sección del código, vemos que en la última línea, en el comando “multiplicate”, hay un comentario “#replicar 1 o 0”. Esto nos indica que esos son los posibles parámetros que espera recibir ese comando en particular.
Luego de auditar más en detalle el código fuente de la amenaza, encontramos la rutina que hace uso del nuevo comando “multiplicate”:
El algoritmo tiene como función elegir si propagarse o no en los dispositivos extraíbles. ¿Por qué el atacante agrego esta propiedad? Porque esto le permite ser más “selectivo” a la hora de continuar con la infección y no llamar la atención con que se creó una nueva versión de Liberpy.
Conclusión
La actualización de Liberpy tiene dos nuevas características importantes: por un lado realiza conexiones mediante el protocolo HTTPS para cifrar la interacción con el panel de control del atacante, y además presenta como novedad tener la decisión de propagarse o no en dispositivos que sean conectados en equipos infectados. Recomendamos mantener las soluciones antivirus actualizadas constantemente, ya que existen cibercriminales latinoamericanos desarrollando malware, teniendo como objetivo el robo de información a usuarios de la región.