Muy a menudo encontramos malware ingenioso aquí en Huntress. Buscamos puntos de apoyo persistentes: los implantes y puertas traseras que dejan los hackers para mantener el acceso. A menudo, esto toma la forma de código que necesita iniciarse automáticamente, sin interacción del usuario.
Solemos encontrar estos puntos de apoyo en los autoruns de Windows, tareas o servicios programados, archivos de inicio o incluso en el registro de Windows.
Recientemente nos topamos con una muestra de malware particular que usaba una técnica muy peculiar. Utilizaba una aplicación legítima inherente a Windows... pero, curiosamente, una versión muy antigua de Windows.
Las primeras huellas
En un endpoint, descubrimos esta clave del registro de Windows:
HKLM\SYSTEM\CurrentControlSet\Services\system
Para quienes no lo sepan, este es el árbol del registro “Services” dentro de la colmena HKEY_LOCAL_MACHINE. Esto almacena información sobre cada servicio en el sistema, y la última cadena, system, se refiere al nombre del servicio definido.
Dentro de cada clave en la clave del registro Service, el valor interesante para examinar más a fondo es el valor ImagePath, que especifica el comando completo que se ejecuta cuando arranca el servicio. Para este servicio del sistema, el valor ImagePath estaba configurado como:
C:\Windows\System32\system\svchost.exe msg
A primera vista, esto no parece muy sospechoso. Parece ser solo una ejecución de svchost.exe, que los sistemas operativos Windows ejecutan de forma nativa.
Sin embargo, el svchost.exe real solo existe dentro de la ubicación C:\Windows\System32 en el sistema de archivos. ¿Qué hace en un subdirectorio del sistema? Eso no es normal.
Además, ¿qué es este argumento msg que se le pasa a svchost.exe?
Svchost.exe sospechoso
Naturalmente, nuestro equipo del SOC fue a investigar. Dado que este svchost.exe se veía muy fuera de lugar, pensamos que podría ser malware, así que profundizamos.
Resulta que este svchost.exe era en realidad el programa legítimo svchost.exe de Windows XP.
Sí, leíste bien. Windows XP.
Aunque esto es muy extraño, en realidad funciona como una técnica única de los hackers. Después de todo, es una aplicación legítima de Microsoft Windows. El binario por sí solo “no es malware” y pasa un análisis de virus.
Bien, esa es una pieza del rompecabezas, pero ¿qué pasa con ese extraño parámetro msg?
Después de revisar rápidamente esa carpeta C:\Windows\System32\system, pudimos ver que msg era en realidad un directorio. El servicio invocó a este svchost.exe desconocido, y los atacantes debieron saber que el primer argumento leería desde una ruta de archivo.
Para respaldar esta afirmación, encontramos un archivo config.txt dentro del directorio C:\Windows\System32\system\msg. Este archivo contenía:
DisplayName=msgDescription=DescriptionServiceType=272WaitActive=0StartType=2ErrorControl=1Source=C:\security\system.vbsResetPeriod=0RebootMsg=Command=nActions=0Actions=StartAtTime=OneTime
Esto parece delinear cómo se ejecutaría este nuevo servicio msg, lo que indica otro artefacto que podríamos examinar: ¡C:\security\system.vbs!
Antes de sumergirnos en este nuevo VBScript, quiero tomarme un momento para destacar lo que acabamos de ver. Las piezas del rompecabezas que hemos encontrado hasta ahora demuestran una versión antigua de Windows XP de svchost.exe, usada para iniciar un servicio basado en una configuración de archivo local. Sinceramente, a todos en Huntress nos pareció bastante ingenioso. No habíamos visto esta técnica antes... y de una manera extraña, tenemos que “quitarnos el sombrero” ante los hackers.
Explorando system.vbs
A continuación, veremos el VBScript que fue ejecutado por nuestra llamada fuera de lugar de svchost.exe msg. C:\security\system.vbs contiene:
set variable=createobject("wscript.shell") variable.run "svchost.exe /e:VBScript.Encode ""C:\security\blood.dat",false
Bueno, esto fue bastante sencillo. ¡Corto y simple!
Sin embargo, hay algunas cosas que desglosar aquí: este VBScript está creando un objeto WScript.Shell para poder iniciar otros procesos y ejecutar otros programas. Sí ejecuta svchost.exe... pero no es ninguno de los svchosts que conocemos y amamos de nuestro análisis anterior.
Este svchost.exe que se invoca es en realidad una copia renombrada de wscript.exe, el intérprete de Windows para ejecutar VBScript. Ahora está intentando ejecutar C:\security\blood.bat... otro artefacto más.
Un dato interesante, sin embargo, es que esto ejecuta ese archivo blood.dat con una marca /e:VBScript.Encode. Eso nos indica que blood.dat es un script codificado, y no será legible de inmediato.
Reconstruyendo el ataque
En este punto, tenemos algo con qué trabajar. El nombre del archivo blood.dat es muy extraño, y podría ser una pista para descubrir qué es realmente este malware. Hicimos nuestra tarea y lo rastreamos hasta una amenaza conocida.
Tal vez no sea una sorpresa que esta variante de malware se descubrió por primera vez en 2014. Lamentablemente, seguimos enfrentando las mismas amenazas de la última década.
Esto fue identificado como VBS/Satoban.A. Todo nuestro análisis coincidió con la investigación conocida: el nombre del servicio, las descripciones, los archivos y las carpetas creadas... pudimos validarlo todo.
Decodificando blood.dat
Nuestro último artefacto por explorar es este archivo C:\security\blood.dat, que sabemos que es VBScript codificado y que se ejecuta mediante wscript.exe (bajo la apariencia de otro svchost.exe más).
Lo primero que hay que hacer es decodificar blood.dat para poder restaurarlo a una forma legible para humanos.
Por suerte, esto es trivial. Existen muchos decodificadores de VBScript en línea. Personalmente, me gusta este script de Python que cumple bien su función (admito que funciona mejor en Python2, así que disculpen, puristas de Python3).
¡Y con eso pudimos recuperar el VBScript original!
Este es un script largo (más de 1000 líneas, incluyendo comentarios). Para los curiosos e interesados, pueden encontrar el script completo aquí.
Análisis preliminar del VBScript
Como VBScript es… un lenguaje de scripting, podemos leer este código fácilmente y no tenemos que lidiar con la ingeniería inversa de ningún binario compilado ni con revisar instrucciones de Assembly.
Hay un banner muy interesante que incluye un “apodo de hacker.”
'==================================================================''' C0d3 N4me : S4T4n ' Cr34t0r : R4PTOR ' Created for personal use , modifications/others are not authorized ' For more informations, looking 4 me { - CNG4L on Race }''=================================================================='
Aunque no voy a repasar cada una de las funciones del VBScript, hay algunas peculiares que dejaré “como ejercicio para el lector” si les interesa. Personalmente, encuentro la historia de “cómo llegamos hasta aquí” mucho más interesante que señalar culpables. Algunos de los trucos más destacables del VBScript:
- Asegurarse de que Símbolo del sistema, Administrador de tareas y Regedit estén habilitados.
- Deshabilitar la función de tiempo de espera de Windows Script Host.
- Propagarse a unidades USB conectadas para seguir contaminando.
- Comunicarse con múltiples servidores web externos para descargar más malware.
- Eliminar en silencio los volúmenes de sombra.
Las cadenas y los nombres de variables a lo largo del script indican que el autor del malware era francés. “NomFichier” = “Filename”, “Amovible” = “Removable”, etc.
Para tu uso, aquí tienes una recopilación de los otros archivos o directorios que este malware podría crear (posibles IOC útiles).
C:\security\blood.datC:\security\system.vbeC:\security\system.vbeC:\security\system.vbsC:\security\system.batC:\security\system.exeC:\security\index.exeC:\security\zoneh.exeC:\security\bump.vbeC:\security\av.batC:\security\update.exeC:\kernel\explorer.exeC:\kernel\update.exeC:\system32\C:\Windows\System32\system\msg\config.txtC:\Users\{Username}\AppData\Local\Temp\uac.batC:\Users\{Username}\AppData\Local\Temp\temp.batC:\Users\{Username}\AppData\Local\Temp\tmp.batC:\Users\{Username}\AppData\Local\Temp\ADMIN.vbeC:\Users\{Username}\AppData\Local\Temp\CPBA.batC:\Users\{Username}\AppData\Local\Temp\tp.vbeC:\Users\{Username}\AppData\Local\Temp\booter.datC:\Users\{Username}\AppData\Local\Temp\reskp.exeC:\ProgramData\rescue.vbeC:\ProgramData\kernel\r00t3r
Y posibles dominios o sitios web a los que podría conectarse:
http://sauvegarde.1x.biz/booter.dathttp://registered.co.nf/sat39/index.phphttp://zoneh.me.pn/zoneh.dathttp://users2.Jabry.com/mysiteweb2/bump.jpghttp://newsonline.125mb.com/av.jpghttp://mysiteweb.eu5.org/system.jpghttp://mysiteweb.freezoy.com/explorer.jpghttp://babybot.125mb.com/update.jpg
Al intentar conectarme a cualquiera de estos, noto que la mayoría parecen estar caídos.
Sin embargo, al momento de escribir esto: http://users2.Jabry.com/mysiteweb2/bump.jpg y http://mysiteweb.freezoy.com/explorer.jpg sí obtienen una respuesta HTTP 200 y me llevan en espiral a través de múltiples redirecciones, probablemente identificando al cliente que se conecta en cada paso. Me gustaría seguir investigando este camino y formalizar qué rutas de código descargan qué artefactos (¿tal vez una segunda parte del blog? 😜).
¿Qué sigue?
La verdad es que todavía no hemos terminado con esta muestra de malware. Claro, ya ha sido “identificada”, pero nos interesa seguir estas rutas de código para determinar qué se hace y cuándo. Al analizar el código fuente y encontrar estos artefactos, construiremos sistemas de detección más automatizados para encontrar este malware rápidamente en el futuro. Huntress está comprometido a hacer que los hackers se ganen cada centímetro de su acceso: los perseguiremos en cada paso del camino.
En definitiva, esto demuestra cómo el análisis manual y la conciencia contextual suman otro punto. svchost.exe puede parecer inocente si pasa un escaneo de VirusTotal, pero ya no podemos simplemente decir “¡Lo escaneé, está bien!” y desentendernos del asunto.
Tenemos que profundizar más.
Ya nos han escuchado decirlo antes: vamos a buscar en cada rincón y grieta para encontrar los puntos de apoyo de los hackers, y con una mirada analítica, vamos a cuestionar e indagar cada pieza del rompecabezas. Trucos como vivir de la tierra, usar nuevas tácticas para evadir la detección… los hackers se están volviendo más sofisticados. Y nosotros también debemos hacerlo.