Análisis a fondo de malware: investigación de un punto de apoyo persistente y descubrimiento del payload

Cuando nos encontramos con un punto de apoyo persistente, suele ser solo la punta del iceberg. El equipo del SOC de Huntress marcó un valor de Run Key de un usuario con el nombre "xmNusBQH4865", que de por sí ya era sospechoso. El comando ejecutado era igual de sospechoso:

regsvr32.exe /s C:\ProgramData\xmNusBQH4865.dll

En cuanto al payload del DLL, cruzamos su hash en VirusTotal y descubrimos que no se había visto antes:

VirusTotal

Al considerar estas tres anomalías, fue bastante fácil concluir que esto era un punto de apoyo malicioso.

Cuando buscamos puntos de apoyo, nuestros partners dependen de nosotros para que les demos recomendaciones detalladas de remediación, que incluyen un resumen general de la amenaza, el riesgo que representa e instrucciones paso a paso para eliminar la infección. Aquí es donde nuestro equipo del SOC interviene con un análisis forense más profundo.

Para este malware en particular, empezamos por inspeccionar lo básico: propiedades del archivo, cadenas de texto e importaciones. Aunque las propiedades del archivo no aportaron información adicional, las cadenas de texto y las importaciones sugerían que este DLL era una especie de loader:

dll loader

  • Asigna memoria
  • Carga una biblioteca
  • Resuelve la dirección de una función
  • ¿Declara la victoria?

Un gráfico de llamadas muestra que el DLL no hace gran cosa:

High-level call graph overview

Vista general del gráfico de llamadas de alto nivel

En este punto, decidimos analizar dinámicamente el payload en una VM aislada. Usando un truco que aprendimos del gran libro de análisis de malware Practical Malware Analysis, convertimos el DLL en un ejecutable para que fuera un poco más fácil de trabajar. Esto se hizo con un editor hexadecimal, configurando la bandera IMAGE_FILE_DLL en el IMAGE_FILE_HEADER en 0 y renombrando el archivo con la extensión .exe.

hex editor

A continuación, abrimos ProcMon, configuramos nuestros filtros sobre el nombre del archivo, lanzamos el nuevo ejecutable y esperamos a ver qué acciones se realizaban:

ProcMon

Con base en este análisis rápido, parecía que el DLL cargaba WinSock e intentaba conectarse a la dirección IP 91.234.34.44 en el puerto 30970. Una búsqueda rápida en Google reveló que esta dirección IP estuvo antes asociada con Troj/Agent-AOZZ y el troyano bancario Vawtrak.

Dadas las similitudes con el mecanismo de persistencia de Vawtrak, que también usaba un valor de Run Key para llamar a regsvr32.exe y cargar un DLL con nombre aleatorio desde C:\ProgramData, es sumamente probable que este fuera el culpable.

En este punto, teníamos más que suficiente información para notificar a nuestro socio sobre el incidente, explicarle los riesgos que representaba y darle instrucciones sobre cómo eliminar el punto de apoyo.

¿Pero de dónde viene esa conexión?

De vez en cuando, la curiosidad nos puede más. En este caso, nos preguntamos: "¿dónde estaba el código que hacía esa conexión de red?". Después de notificar a nuestros socios sobre la infección, volvimos al desensamblador.

La última instrucción en el desensamblado es un "call EBX". El malware debe decodificar un payload y llamarlo desde ese registro (un gran lugar para que se esconda el código de comunicación de red).

EBX call

Sacamos WinDbg de la caja de herramientas para ver si podíamos encontrar qué había en EBX cuando se llamaba. Cargamos el archivo, buscamos el opcode FFD3 (call ebx) y pusimos el punto de interrupción en esa dirección. ¡Ahora era momento de ejecutar!

execute command

Apenas se activó el punto de interrupción, vimos EBX en una ventana de memoria:

memory window

Y ahí estaba nuestro payload decodificado. Efectivamente, vimos funciones de WinSock y la dirección IP a la que el malware intentaba conectarse.

¿Caso cerrado?

Como en la mayoría de las cosas en TI, profundizar en un problema te permite entender mejor a qué te enfrentas. En este caso, pasamos de un evento potencialmente sospechoso a una recomendación de remediación paso a paso.

Sin embargo, la mayoría de las empresas no pueden costear tener Centros de Operaciones de Seguridad con expertos forenses como el equipo de Operaciones de amenazas de Huntress. En el mundo de la ciberseguridad, las cosas se mueven rápido, y nuestro equipo está creciendo activamente para asegurarnos de poder satisfacer las necesidades de nuestros socios y sus clientes.

Si disfrutas la ciberseguridad y resolver problemas tanto como nosotros, ¡puedes unirte a nuestro equipo! Siempre estamos buscando analistas de amenazas con sólidas habilidades de TI. Mira nuestras vacantes abiertas.

También te podría interesar