El siguiente post es una traducción de la publicación How Theola malware uses a Chrome plugin for banking fraud  escrita por nuestro colega e investigador Aleksandr Matrosov y publicada en el blog de ESET Norteamérica.

Win32/Theola es uno de los componentes de la familia de bootkits Win32/Menroot.FX que es conocida desde el año 2007. Esta familia abarca plugins maliciosos instalados sobre navegadores por el malware Mebroot para realizar operaciones bancarias fraudulentas.

Se ha realizado un seguimiento y se ha notado un incremento en las detecciones de este plugin desde fines de enero del 2013. Los países más afectados son Noruega, Italia, Dinamarca y República Checa. Sin embargo, también se ven diversos países de la región afectados, tales como Venezuela, Argentina, Chile, Perú, Ecuador y Colombia, entre otros. A continuación se adjunta una captura de Virus Radar que ilustra los países más afectados del globo:

Virus Radar

Mebroot utiliza métodos típico de infección MBR con un handler int13 utilizado para acceder a los componentes del disco duro. Los componentes maliciosos son cargados en el siguiente orden:

Orden de malware

Plugin de Chrome

Win32/Theola.F es un plugin de Chrome basado en la interfaz NPAPI (Netscape Plugin Application Programming Interface). Asimismo, posee un módulo nativo y se encuentra empaquetado en formato CRX (CRX package format). En la siguiente imagen puede observarse el archivo manifest con los permisos del contenedor CRX:

Manifest

Tal como se observa en la imagen, el archivo describe la actividad permitida para el plugin. En otras palabras, el nivel de permisos es el suficiente para permitir operaciones fraudulentas y maliciosas. Además, el proceso de carga en Google Chrome es el siguiente:

Proceso de carga

Luego de desofuscar el primer método en JavaScript, se procede a la carga del módulo bajo el concepto de default-plugin para Google Chrome:

Plugin por defecto

Asimismo, el módulo en JavaScript modifica el método POST para todos los formularios en la página web que ha sido accedida. A continuación, los campos de contraseñas se hacen visibles (en beneficio para el atacante) y se utiliza funcionalidades de grabación de video como la que se describen a continuación:

Grabación de video

Continuando con el análisis se observa el plugin malicioso en el panel de extensiones:

Panel de extensiones

La rutina NP_GetEntryPoints() llama al proceso que carga el plugin y obtiene los punteros a otras funciones necesarias para trabajar en conjunto con el navegador. A continuación puede observarse el código decompilado:

Función GetEntryPoints

Theola posee una funcionalidad de grabación de vídeo basado en la librería de código abierto x264 para grabar en formato MPEG. La siguiente captura corresponde a la vtable (virtual table) de la función principal de Theola:

Virtual Table

Una vez que el plugin malicioso ha iniciado, la función addListeners() carga el código en JavaScript para comenzar el tracking o seguimiento de la actividad web en el sistema infectado:

Función Addlistener

Además, el código JavaScript para la manipulación de URL es el siguiente:

Código en JavaScript para manipulación de URL

Considerando la función beforeNavigate() en el método nativo, el código es el siguiente:

Función beforeNavigate

En caso de que se detecte actividad sobre un sitio web de una entidad bancaria, el código malicioso envía información sensible como contraseñas, números de tarjeta de crédito, entre otras. El envío se realiza a través de una tubería (pipe) cuyo nombre es determinado por el siguiente algoritmo:

Algoritmo de generación de nombres

Todas las comunicaciones con el módulo que opera en modo Kernel y aquellos que operan en modo usuario están implementados mediante handlers con nombres especiales en el plugin. Cada uno de estos manejadores (handlers) son responsables por la ejecución de un tipo específico de eventos.

En casos similares al expuesto, los códigos maliciosos utilizan lo que se conoce como hooking a nivel de usuario para interceptar la actividad de red. Sin embargo, Theola utiliza métodos documentados y específicos que dificultan la detección de códigos de esta naturaleza.

Desde ESET Latinoamérica recomendamos la utilización de un software antivirus con capacidad de detección proactiva para estar protegidos contra este tipo de amenazas.

Traducido y adaptado por Fernando Catoira, Analista de Seguridad