La siguiente publicación es una adaptación de los posts  “Hesperbot – Technical analysis part 1/2” y  “Hesperbot – technical analysis: part 2/2” escritos por Robert Lipovsky y publicado en We Live Security.

Hesperbot como muchas otras familias de malware, tiene una arquitectura modular. A continuación presentaremos un resumen de cómo funcionan los principales módulos que componente este código malicioso.

El primer paso de la infección ocurre cuando el usuario descarga y ejecuta el componente dropper. Este componente tiene como objetivo inyectar el componente principal (core) en el proceso explorer.exe; para lograr descargar y ejecutar módulos adicionales para llevar a cabo las acciones maliciosas.
Rutina incial de Hesperbot

Módulos principales

dropper

Este módulo cuenta con varios métodos para inyectar el componente core en el proceso explorer.exe:

  • Iniciando una nueva instancia del explorer.exe, escribiendo su propio código utilizando WriteProcessMemory.
  • Inyectándose en el proceso actual usando el mismo procedimiento que PowerLoader y otros códigos maliciosos.
  • Inyectándose en el proceso utilizando el CreateRemoteThread.

core

Una vez que este componente ha sido inyectado en el explorer.exe, es el encargado de manejar la comunicación con el C&C, ejecutar los otros módulos, escribir en el registro de Windows en otras funcionalidades.

Para acceder al servidor C&C, Win32/Spy.Hesperbot.A puede utilizar alguna de las URL que están dentro del código o puede generar un dominio utilizando un algoritmo de generación en caso de que el primer servidor no se pueda acceder.

Dentro de la información que envía al C&C se encuentra el nombre del bot, la dirección IP asignada al adaptador de red e información sobre los módulos de Hesperbot ya instalados. En la respuesta del C&C se envía el archivo de configuración, módulos adicionales y actualizaciones propias.

Una característica bien conocida de los troyanos bancarios, y que ya fue vista en otros códigos maliciosos como Zeus y SpyEye es la capacidad que tienen para interceptar y modificar el tráfico HTTP y HTTPS. En este caso la técnica empleada es la conocida como ‘Man-in-the-Browser’, y los módulos que intervienen son nethk, httphk y httpi.

nethk

Este módulo es utilizado para configurar un proxy local, manejar las conexiones que salen desde el navegador y además se encarga de cifrar y descifrar el tráfico HTTPS que pueda pasar a través del mismo.

Configuración de un proxy localPara lograrlo el módulo nethk crea un proxy en un puerto aleatorio en la dirección 127.0.1.1 de tal forma que cuando el navegador trata de conectarse a un sitio web seguro de una entidad financiera, se conecta al proxy creado y hace una llamada al módulo httphk para procesar el tráfico interceptado.
Man-in-the-BrowserLa particularidad de este módulo es que puede manejar tráfico HTTP y HTTPS. Cuando se trata de tráfico HTTP los datos pasan al módulo httphk. Cuando el tráfico es HTTPS, nethk maneja el cifrado de la información.

Cuando la información sale desde el navegador se utiliza un certificado falso para pasarla al proxy y entregar los datos al módulo httphk, a la vez que se cifra con el certificado auténtico y para enviarlo a la página de la entidad financiera. Cuando la información vuelve del servidor del banco, se descifra, se envía a httphk y se utiliza nuevamente el certificado falso para pasarla al navegador.

httphk

Este módulo es utilizado para organizar todo el tráfico interceptado en el proxy, analizando las cabeceras HTTP y los datos interceptados para completar una estructura de datos que será accedida por el módulo httpi.

httpi

Este módulo se encarga de hacer las capturas de pantalla, manejar las capturas de video y llamar las inyecciones de acuerdo al archivo de configuración.

Dentro del archivo de configuración se especifican los sitios de los cuales se espera robar la información. De las muestras que fueron analizadas se pudo determinar que solamente se enfocaron en obtener información financiera, omitiendo el robo de otros servicios como redes sociales o correos electrónicos.

Componente para dispositivos móviles

Como ya es común en estas amenazas, este troyano también utiliza un componente para afectar dispositivos móviles (se pudo ver con ZitMo y SpitMo). En este caso, el código malicioso soportaba tres sistemas operativos móviles: Android, Symbian y Blackberry.

Sistemas operativos móviles afectadosEn este análisis se estudiaron las versiones que afectan Symbian y Android, ya que no se pudo acceder a una muestra diseñada para Blackberry. En las versiones para dispositivos móviles el código malicioso busca robar los mensajes enviados por la entidad financiera como segundo factor de autenticación y además obtener el control del sistema a través de mensajes SMS.

Otras funcionalidades

Esta amenaza cuenta además con un módulo keylogger para interceptar lo que ingresa el usuario para ser enviado al servidor C&C. Puede tambipen hacer capturas de pantalla y de video, si es que está especificado en el archivo de configuración.

Tiene una funcionalidad de crear un servidor VNC, tal como lo hace Carberp, buscando obtener acceso remoto a la máquina infectada. En este caso la sesión de VNC que se crea es un escritorio diferente que no es visible para el usuario.

El análisis completo de esta amenaza se encuentra publicado en el artículo Hesperbot. A New, Advanced Banking Trojan in the Wild, donde se detalla el funcionamiento de los módulos mencionados y se especifican las muestras analizadas.

Adaptado por H. Camilo Gutiérrez Amaya, Especialista de Awareness & Research.