BLOG

Dridex te está observando

Miniatura F5
F5
Publicado el 22 de junio de 2016

Los autores de Dridex publican con frecuencia actualizaciones como nuevas funciones de ofuscación y nueva codificación de configuración para seguir evadiendo las técnicas de detección y mitigación de los proveedores de seguridad. Han cambiado el foco de su malware desde instituciones financieras europeas a nuevas instituciones bancarias en Estados Unidos.

Evidentemente, los desarrolladores del malware demuestran una gran competencia en los paradigmas cliente-servidor, así como en la ofuscación. La siguiente investigación describe este conjunto de habilidades. Esto, junto con el compromiso de los autores de Dridex con las actualizaciones constantes y frecuentes de las características del malware, hace que Dridex sea muy ágil y, en consecuencia, difícil de detectar, descifrar y analizar.

¿Cómo te vigila Dridex?

Entonces, ¿cómo es posible que Dridex te esté vigilando sin tu permiso y tú no lo sepas?

Se conecta a la máquina del usuario infectado durante las transacciones bancarias con una sesión remota. Esta sesión es invisible para el usuario porque se realiza en otra instancia del escritorio que el malware abre utilizando el protocolo VNC. Esta instancia está duplicada pero no compartida, lo que significa que el atacante no puede ver el movimiento del mouse y el teclado del usuario y viceversa.

Una vez instalado el malware en la máquina de la víctima, se comunica con el Comando y Control (C&C) de la botnet para obtener la lista de objetivos y solicitar los siguientes módulos: VNC y SOCKS.

El proceso de activación se puede activar de dos maneras:

  • Por orden recibida del C&C
  • Mediante el gancho de función del navegador después de inspeccionar el indicador VNC en la configuración

Esta investigación se centra en el enfoque del módulo inyectado. (La forma en que se activó el inicio de VNC dentro de la configuración de Dridex se describió en un artículo anterior de F5).

Flujo de activación de VNC

El flujo implica la interacción entre el navegador infectado y el proceso explorer.exe infectado.

El papel del navegador

La bandera VNC en la configuración es inspeccionada por el código malicioso en el gancho de función de red que Dridex inyectó en el navegador.

  1. Este gancho permite a Dridex inspeccionar cada solicitud antes de enviarla por cable.

Este gancho permite a Dridex inspeccionar cada solicitud antes de enviarla por cable.
  1. Si la URL de la solicitud coincide con una URL en la configuración de “redirecciones”, se envía una solicitud del script malicioso al C&C desde la función de red enganchada.
  2. Se accedió a una URL específica y se envió un script malicioso al usuario. ¿Y ahora qué?

  3. Cuando se recibe el script, se inspecciona el indicador VNC.
    Si la bandera VNC está activada, el malware espera recibir datos cifrados. Estos datos cifrados contienen información que el malware utiliza más adelante:

    • IP y PUERTO de VNC: la dirección remota a la que conectarse al iniciar la sesión de VNC
    • IP y PUERTO DE SOCKS: la dirección remota a la que conectarse al iniciar la sesión SOCKS
    • Los datos se cifran mediante un XOR (los primeros 4 bytes son la clave)
Figura 1 de Dridex: Rutina de descifrado completa
Figura 1: Rutina de descifrado completa

A continuación se muestra un ejemplo de una respuesta HTML simple del servidor con IP + Puerto adjunto (después de la rutina descifrada):

alt="Dridex Figura 2: Contenido del script descifrado; se añaden la IP y el PUERTO.
Figura 2: Contenido del script descifrado; se añaden la IP y el PUERTO

El navegador infectado almacena estos registros IP cifrados en el registro bajo la misma clave que la configuración pero bajo una subclave separada.
 

Figura 3 de Dridex: Los registros de IP y PORT
Figura 3: Los registros de IP y PORT

El navegador infectado utiliza la API de objetos de eventos de Windows para indicar al archivo explorer.exe infectado que inicie VNC. A partir de este momento, el proceso del explorador infectado asume el control del proceso de activación.


El papel del explorador

  1. El código malicioso en Explorer se ejecuta en un bucle infinito en un hilo dedicado que es responsable de la conexión VNC y espera la señal del evento del navegador. Una vez recibida esta señal, extrae los registros IP + Puerto del registro y los decodifica.
Figura 4 de Dridex: El navegador infectado escribe los registros antes de que el explorer.exe infectado los lea.
Figura 4: El navegador infectado escribe los registros antes de que el explorer.exe infectado los lea.
  1. El explorador carga vnc_x32.dll utilizando una implementación personalizada de la API de Windows “LoadLibrary”.
    • Antes de este punto, el módulo VNC reside en la memoria de Explorer como datos en bruto.
    • Después de mapear todas las secciones PE, llama a DllEntryPoint de vnc.dll (con el indicador DLL_PROCESS_ATTACH)
    • Esta técnica ofusca el punto en el tiempo en el que se carga el módulo VNC, ya que no es posible seguir “LoadLibrary”, lo que hace mucho más difícil su análisis.
Dridex Figura 5: explorer.exe – el código original del explorador,worker_x32.dll – el módulo principal de Dridex,vnc_x32.dll – el módulo vnc
Figura 5: explorer.exe – el código original del explorador,worker_x32.dll – el módulo principal de Dridex,vnc_x32.dll – el módulo vnc
  1. vnc_x32.dll exporta dos funciones para iniciar y detener el servidor.
  2.  

Figura 6 de Dridex: Funciones exportadas de VNC
Figura 6: Funciones exportadas de VNC

     

  1. El módulo de trabajo del explorador llama a la función VncStartServer con IP y puerto como parámetros para iniciar la conexión VNC.
     

     

Figura 7 de Dridex: La llamada a VNCStartServer con parámetros
Figura 7: La llamada a VNCStartServer con parámetros

     

  1. En caso de que se reciba una dirección IP VNC externa sin el módulo SOCKS involucrado, el módulo VNC inicia una conexión con el servidor VNC del atacante. La máquina infectada inicia la sesión remota. Esta es una forma única de utilizar el protocolo, ya que normalmente el espectador actúa como servidor.
    • Si se recibió una dirección VNC local, el módulo Dridex escuchará la conexión VNC entrante del atacante.
  2.  

     

  3. Después de establecer una conexión TCP con el servidor VNC, vnc_x32.dll utiliza la cadena bot_id, pasada como parámetro a la rutina VncStartServer, para generar un desafío. Esto se utiliza para verificar la identidad del servidor antes de que se realice el protocolo de enlace VNC.

     

  4.  

Figura 8 de Dridex: Esquema de comunicación entre víctima y atacante
Figura 8: Esquema de comunicación entre víctima y atacante

Después de esto, si todas las etapas tienen éxito, se inicia una sesión remota VNC y el estafador puede realizar acciones en la máquina de la víctima sin su conocimiento.

Esta función suele utilizarse como acción complementaria tras el robo de credenciales para eludir los productos de seguridad dentro del banco. Estos productos tienen como objetivo identificar al usuario mediante la huella digital única del navegador.

El equipo de investigación de F5 está siguiendo de cerca a Dridex

La carrera constante entre proveedores de seguridad y cibercriminales empuja a estos últimos a crear malware más ofuscado y con muchos componentes diferentes e independientes. Estos componentes ayudan a los autores de malware a superar los obstáculos y las protecciones que implementan las instituciones bancarias y los proveedores de seguridad. Estos componentes también añaden una capa de complejidad al proceso de análisis, ya que ahora es necesario comprender la interacción entre los módulos.

Esta carrera también nos impulsa, como investigadores, a monitorear y estar atentos a las campañas y la evolución de Dridex.