Si a principios de año hablábamos  de una nueva etapa en el robo cibernético y la pasada semana PandaLabs destapaba los detalles del último caso de phishing bancario ; hoy compartimos un informe en el que el laboratorio de Panda Security lleva trabajando los últimos meses. El objetivo de este informe de malware es la última versión de Dridex, un famoso troyano bancario conocido por su sofisticación y capacidad de pasar desapercibido en los equipos infectados.

¿Qué es Dridex?

El presente documento recoge el análisis de una nueva variante del código dañino “Dridex”, en concreto la versión número cuatro. Los equipos infectados por Dridex son incorporados a una botnet modular que les permite añadir nuevas características maliciosas, propias o externas, por medio de módulos o librerías (vendidas por separado).

Descarga el informe

La primera versión apareció a finales 2014; a principios del 2015 se lanzó una nueva gran actualización y se pasó a la segunda versión del troyano. Cuando se trata de las versiones principales de Dridex, la versión más estable y resistente hasta la fecha ha sido la tercera, que se lanzó en abril de 2015 y se ha utilizado en todas las campañas de ataque conocidas hasta la cuarta versión. La última versión conocida es la versión 4, objeto de este informe, y que fue encontrada por primera vez en febrero de 2017.

No se habían observado nuevas grandes actualizaciones de Dridex desde que se realizó el desmantelamiento de componentes clave de la botnet por agencias gubernamentales en 2015.

Esta nueva variante del troyano bancario incorpora nuevas funcionalidades. Una de esas nuevas funcionalidades es el AtomBombing que tiene como objetivo realizar inyección de código sin llamar a APIs sospechosas para evitar ser detectado por los sistemas de monitorización. Por otra parte, incorpora también la técnica de DLL hijacking para obtener persistencia y se realizan varias optimizaciones en los métodos criptográficos usados para obtener la configuración.

Características del troyano

A continuación se muestran algunas propiedades estáticas del fichero analizado.

El hash del troyano es el siguiente:

MD5 001fcf14529ac92a458836f7cec03896
SHA256 a6db7759c737cbf6335b6d77d43110044ec049e8d4cbf7fa9bd4087fa7e415c7

 

La fecha interna de creación de la muestra analizada es el 16 de Mayo de 2017. El fichero en cuestión se ha compilado para ser ejecutado en entornos de 64 bits y a la vez simula ser una dll legítima de Microsoft.

Ilustración 1. Propiedades del fichero

Además, se encuentra cifrado con un algoritmo propio de cara a evadir las detecciones de los antivirus.

Por otra parte, se ha observado que el ejecutable tiene una cantidad bastante elevada de secciones, 11 en total, tal y como se observa a continuación:

Ilustración 2. Información estática del binario analizado

En la sección DATA podemos observar que la entropía es de 7.799 y tiene un tamaño bastante grande. En dicha sección es donde se encuentra el binario altamente cifrado y empaquetado el cual una vez descifrado genera el código dañino real.

En la primera capa de descifrado, el ejecutable aloja memoria en el proceso, a continuación copia el código a ejecutar y por último lo llama y lo ejecuta tal y cómo vemos a continuación:

Ilustración 3. Salto a la shellcode

Lo primero que hace dicho código es obtener las direcciones de las funciones que va a utilizar más adelante, esto lo realizará de forma dinámica buscando en las librerías cargadas por el programa.

Para llevar a cabo esta tarea recorre la estructura PEB_LDR_DATA y las estructuras LDR_MODULE para encontrar la dirección base de las dlls cargadas. A continuación, accede al offset de la export table, para recorrer todas las funciones exportadas por la dll y encontrar la dirección en memoria de la función buscada.

 

Ilustración 4. Enumeración de módulos cargados

Por otra parte, la shellcode comprueba si se ha realizado un hook en la función no documentada LdrLoadDll, accediendo a su dirección y comprobando si el primer bytes es igual a E9 que equivale a un jmp en ensamblador.

Ilustración 5. Comprobación Hooks

En caso de que la comprobación anterior sea exitosa, va a proceder a desmapear de la memoria del proceso la dll con nombre “snxhk.dll” que se trata de una librería de Avast y AVG que realiza hooks para monitorizar los procesos en su sandbox.

Ilustración 6. Librería snxhk.dll

Por último, la shellcode descifra el ejecutable que se encuentra en la sección DATA en memoria, lo copia en la dirección de la imagen base y pasa la ejecución a ese nuevo ejecutable.

Ilustración 7. Ejecutable descifrado

A modo de resumen, en la imagen que se adjunta a continuación se puede ver todo el proceso completo de desempaquetado de la muestra de un modo más gráfico y esquemático.

Ilustración 8. Proceso completo de desempaquetado.

No dejar de lado las soluciones de ciberseguridad avanzada como Adaptive Defense 360 que monitorizan los sistemas de la organización en tiempo real, detectando y deteniendo cualquier comportamiento sospechoso que podría resultar dañino, proporcionarán la mejor seguridad a organización.

Amplía la información descargándote el informe técnico completo de PandaLabs.