La semana pasada fuimos testigos de una oleada de documentos office con macros maliciosas y que revisaremos en esta entrada. Los hashes de los documentos son:
- md5: d98680e6e410392687f4f90e89aa0219
- md5: 6d071548627b5ddc42b9b6c991a5be1f
- md5: a4b39127e501b1ab9c667d45b9b600c0
- md5: b343fcfdff4be29b7a2e7f78da85505a
Si ejecutamos 1) se produce el siguiente comportamiento en el sistema (pinchar en las imágenes para ver la versión ampliada – se abren en una pestaña nueva):
Vemos como lo importante es que mediante powershell (sí, otra vez powershell) intenta descargar el fichero benhawkcrypted.exe. Los cuatro documentos apuntan al mismo dominio autoglobe.tv. Cada uno de ellos con un nombre de binario diferente (¿será todo lo mismo?). Todo apunta a que se trata de un WordPress comprometido.
- hxxp://autoglobe[.]tv/wp-includes/ben/benhawkcrypted.exe
- hxxp://autoglobe[.]tv/wp-setting.php/tukopredatorcrypted.exe
- hxxp://autoglobe[.]tv/wp-setting.php/stancrypted.exe
- hxxp://autoglobe[.]tv/wp-setting.php/LADING.exe
Los cuatro binarios tienen el mismo comportamiento que veremos a continuación menos en lalógica del payload que se inyecta en memoria. El binario cuyo comportamiento vamos a observar es el de nombre benhawkcrypted.exe, md5: e2c13dc54dac33ce19d978860f3f26f2. Lo primero que vemos son sus metadatos:
Podemos ver que la frase en PrivateBuild va dirigida al equipo de ESET. Una vez lo ejecutamos vemos lo siguiente:
Lo que hace el binario principal es añadir el binario al planificador de tareas y copiarlo a la carpeta Roaming del usuario. La persistencia la establece en el planificador de tareas:
Una vez se ejecuta la tarea veremos lo siguiente en cualquier visor de sucesos:
El binario app.exe crea el proceso RegAsm.exe (cada cierto tiempo intenta lanzar el binario RegAsm.exe) que será el que ejecutará el proceso malicioso:
El malware genera los siguientes archivos en disco:
En los ficheros de texto guarda el pid del proceso RegAsm.exe que ha arrancado app.exe. Después en pidloc.txt guarda la ruta al fichero RegAsm.exe. Dentro de las distintas regiones de memoria del proceso RegAsm.exe, se puede observar que en la posición 0x00400000 tiene mapeado un MZ (que generalmente identifica un ejecutable).
Este binario mapeado es lo que diferencia a los documentos entre ellos ya que cada uno mapea un binario diferente.
Al extraer el binario mapeado tras la ejecución de benhawkcrypted.exe (MD5: e2c13dc54dac33ce19d978860f3f26f2) y analizar dicho ejecutable, se pueden encontrar cadenas que indican que probablemente se trate de un keylogger o infostealer como Pony:
Otro de los documentos (4) descarga otro ejecutable llamado tukopredatorcrypted.exe (MD5: f86d9654d4761957c105d065da401212) que mapea en memoria un binario prácticamente idéntico al anterior.
El siguiente documento (2) cuando se ejecute el binario descargado por llamado stancrypted.exe (MD5: c0f982bc465ffa28439715f2c8ba6e4a) en .NET mapeará en la dirección 0x00400000 una muestra del Keylogger Hawkeye:
Y por último, el documento que queda (3) descargará otro ejecutable llamado LADING.exe (MD5: 7200f9e04cbdfbf5684c5d60f0264de7), que mapeará otro Keylogger conocido como Keybase, en el que se ha podido encontrar en la memoria del proceso un enlaceal dominio de c2 (command and control), que coincide con el de descarga de los documentos iniciales:
Respecto al tráfico de red generado por estos payloads inyectados hemos observado que el primer binario que comentábamos genera el siguiente tráfico de red:
- Consulta whatismyipaddress.com.
- Intenta la comunicación con el dominio: mail.enerijsa.com al puerto 26/tcp.
En el caso de los binarios correspondientes a Keybase:
- En primer lugar contacta con el mismo dominio de obtención de IP publica whatismyipaddress.com
- Contacta con el C2 en el servidor del WordPress: hxxp://autoglobe[.]tv/wp-ben/kbpanel/image/upload.php
En este caso para subir una captura de pantalla del equipo infectado.
Volviendo a la muestra inicial “benhawkcrypted.exe”, una vez arranca el proceso RegAsm.exe, volcamos el keylogger mapeado y podremos ver el código del mismo al cargarlo en herramientas como dnSpy. En la siguiente imagen vemos ejemplos de funciones que tiene el keylogger:
Después en otra zona del código vemos como tiene las cadenas de conexión, usuario y credenciales codificadas en base64 y después cifradas:
Para ver el contenido descifrado solo tenemos que coger el código .NET y crearnos un clon del código que lo descifra. Con esto obtenemos lo siguiente:
En la imagen anterior vemos como solo han configurado la parte de SMTP, lo que encaja con lo que veíamos en el análisis dinámico de conexiones al puerto 26 tcp. Como vemos durante esta oleada el objetivo principal es el robo de credenciales de los usuarios u organizaciones destino de estos documentos. En el momento que los atacantes roben credenciales estas pueden ser utilizadas por ellos para venderlas, para usarlas e intentar probar a diferentes servicios de la organización, etc.
¿Todavía trabajando con MD5? Amigos, que estamos en el año 2017 :-)
¡Increíble Jose Miguel! Uno de los creadores del RSA. se ha fijado en tú artículo. ¡Enhorabuena!
Yeah Rivi! We’re in fact, in 2017!