Desde el laboratorio de ESET Latinoamérica hemos detectado una amenaza que se propaga por la región, con foco en los países de Colombia y Ecuador. Esta amenaza, la cual afecta a sistemas operativos Windows, es detectada por nuestras soluciones de seguridad como Win32/Loader.Lycaon.AB.

La amenaza intenta camuflarse de aplicación legítima de Adobe, manipulando los metadatos del archivo ejecutable para aparentar legitimidad. Sin embargo, el archivo carece de firma digital válida, lo que confirma su origen fraudulento.

El objetivo es infectar a las víctimas con el troyano DCRat, una variante de AsyncRAT, un software usado en varias campañas de la región. Si bien no se encontraron los métodos de propagación para llegar hasta sus víctimas, se encontró que la cadena de infección inicia con archivos comprimidos que utilizan nombres que aparentan ser comunicaciones judiciales o gubernamentales como, por ejemplo, “Informe Especial Notificado Nro. 113510000548595265844”, lo cual deja pensar que se trata de una propagación a través de correo electrónico.

Este método de propagación de archivos comprimidos con malware vía correos electrónicos de malspam coincide con investigaciones previas en la región, acompañado del uso de temáticas que generan temor o urgencia en la víctima para aumentar la probabilidad de que el destinatario ejecute el archivo malicioso. En la Imagen 1, se observa cómo la amenaza presenta sus campos de metadatos configurados para aparentar ser una aplicación de Adobe.

malware-adobe-robo-informacion-1

Imagen 1: Metadatos del binario analizado

Sin embargo, no cuenta con firma digital válida ni certificado asociado, lo cual confirma que no se trata de un binario legítimo emitido por la compañía.

A continuación, se detalla el comportamiento de esta amenaza cuando se ejecuta en un entorno que no esté adecuadamente protegido.

El loader

El siguiente análisis fue realizado sobre la muestra SHA1: 758d3c028faaf023c28890f3c4a68cdbce5159e3.

Evasión de defensas

El flujo de ejecución del binario analizado comienza antes del punto de entrada (o Entry Point) declarado en el código, ya que la amenaza tiene registrada una rutina en la tabla de funciones TLS del ejecutable. Esta estructura forma parte del formato PE y es leída por el cargador de Windows al crear el proceso, lo que permite definir una o más funciones (TLS Callbacks) que serán invocadas automáticamente por el sistema antes de transferir el control al Entry Point oficial del binario.

En este caso, la totalidad de la rutina maliciosa se encuentra contenida dentro del TLS Callback. Esta estrategia tiene un propósito anti-análisis, ya que muchos enfoques de ingeniería inversa parten del supuesto de que la lógica maliciosa se inicia en el Entry Point, lo que puede llevar a pasar por alto actividades maliciosas que ocurren en la fase previa de inicialización.

Otra estrategia utilizada por el código malicioso es la resolución dinámica de funciones, particularmente algunas de las pertenecientes a la API de Windows asociadas con la gestión de memoria como VirtualProtect. Tal como se observa en la Imagen 2, el binario construye de manera manual los nombres de las funciones, cargando caracter por caracter en la pila.

malware-adobe-robo-informacion-2
Imagen 2: Código de carga de la función VirtualProtect, a resolver posteriormente

Una vez formada la cadena correspondiente, el malware lo utiliza para obtener la dirección real de la función y así llamarla, en lugar de referenciarla directamente en la tabla de imports.

Persistencia

Como puede verse en la Imagen 3, el loader asegura persistencia agregando una entrada en los registros de Windows sobre la ruta HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run. Dicha entrada se define con clave la cadena de caracteres “LLFTOOL” y por valor la ruta donde va a estar instalada la amenaza, C:\Users\<USUARIO>\Documents\KCSoftwares\sdk\mdb2db.exe.

malware-adobe-robo-informacion-3
Imagen 3: Registro modificado por el loader

El nombre “LLFTool” hace referencia a una herramienta de manejo de discos. Además, la ruta del ejecutable deja ver que los atacantes intentan camuflarlo como un SDK, o una herramienta de desarrollo de software. Ambas técnicas buscan impostar legitimidad en el código malicioso.

En cuanto al contenido del ejecutable, el malware emplea su propio binario que se copia en disco con un tamaño mayor al original debido a la adición de bytes nulos al final. Este padding, si bien no altera la ejecución del binario, deja al archivo con alrededor de 900 MB extras vacíos. Esto podría impactar en su análisis con herramientas automatizadas o entornos tipo sandbox que toman en cuenta el tamaño del archivo o el contenido útil del mismo para identificar comportamientos maliciosos, además de cambiar su hash.

Ejecución

Luego de asegurar la persistencia en el sistema, el loader comienza las operaciones para inyectar y ejecutar la amenaza final. Una de ellas es verificar registros de Windows asociados a la versión actual de .NET del equipo víctima, con el objetivo de seleccionar la ruta adecuada del programa legítimo donde inyectará el payload. Una vez determinado el entorno, procede a desofuscar un shellcode mediante operaciones lógicas simples (como AND u OR), para luego seguir ejecutando su código.

Este shellcode contiene los últimos pasos de la infección, así como el propio payload encriptado en su memoria. En primer lugar, ejecuta una rutina de desofuscación basada en XOR con la clave 851B5D9F635B2774136FF413C55F4440A57C281CC8D6B3E506206FD73A4C839AA1818E8C7D7EB90120C79993133781EB21A6C836F9C20CB8A7D1181A608ACC87, con la cual desencripta el payload en memoria antes de su inyección.

Luego, y gracias a la versión de Microsoft .NET determinada anteriormente, se lanza un proceso en estado suspendido correspondiente al ejecutable en la ruta C:\Windows\Microsoft.Net\Framework\<VERSION_ACTUAL>\csc.exe para luego reemplazar la memoria de este por el código del payload, empleando la técnica Process Hollowing.

Con base en la versión de Microsoft .NET detectada, ejecuta el archivo C:\Windows\Microsoft.Net\Framework\<VERSION_ACTUAL>\csc.exe de esta librería, para luego inyectarle el payload final por medio de la técnica Process Hollowing.

Este ejecutable corresponde al compilador de C# de Microsoft dentro del framework .NET, aunque se han visto otros programas legítimos usados con el mismo objetivo, como el precompilador de ASP.NET, relacionados también a ejecuciones de AsyncRAT.

Una vez que el loader delegó la infección al proceso inyectado, este se autoelimina antes de finalizar su ejecución

DCRat, una variante de AsyncRAT

DCRat, el payload final, es uno de los tantos forks existentes de AsyncRAT y uno de los más propagados mundialmente.

DCRat incluye las funcionalidades típicas de un troyano de acceso remoto, entre las que se destacan:

  • Captura de pantalla y webcam
  • Registro de teclas (keylogger)
  • Administración de archivos y procesos
  • Ejecución remota de comandos (CMD/PowerShell)
  • Carga y descarga de archivos
  • Acceso a credenciales almacenadas (browsers, sistemas)
  • Persistencia mediante modificaciones en el registro o carpetas de inicio
  • Autoactualización del binario
  • Plugins adicionales descargables desde el servidor de Comando y Control

Inicialmente, el código malicioso envía información básica del sistema al servidor C&C, que funciona tanto para identificar a la víctima como para la toma de decisiones por parte de los atacantes sobre ejecución de otras amenazas en el sistema.

La Imagen 4 muestra la lógica utilizada en DCRat para enviar la información básica de la víctima hacia el servidor C&C.

malware-adobe-robo-informacion-3
Imagen 4: Función del payload que recopila la información identificadora de la víctima

Como característica de AsyncRAT y sus variantes, podemos encontrar las configuraciones iniciales cifradas utilizando AES256 y Base64. Dichas configuraciones en la muestra analizada son:

  • Host y puerto: pctrabajonuevo2[.]casacam[.]net:8849
  • Protocolo: TCP
  • Mutex: DcRatMutex_qwqdanchun
  • Llave AES: 4ff06580a02ea318bc7f6f9ed382b62947a700969d6dee30a789e62a1a03ed94

Más allá de modificaciones estructurales, entre las “mejoras” más destacables que ofrece DCRat con respecto a AsyncRAT es el robustecimiento de las capacidades anti-análisis. Esto se refleja en, por ejemplo, la inclusión de una función (verImagen 5) que aborta la ejecución de la amenaza si encuentra procesos relacionados con análisis dinámico de malware o de monitoreo del sistema.

malware-adobe-robo-informacion-5
Imagen 5: Función anti-análisis empleada por el payload

DCRat también implementa otras técnicas de evasión como la desactivación de componentes AMSI así como ETW patching, que funcionan desactivando las funciones de seguridad que detectan y registran comportamientos maliciosos.

Indicadores de compromiso

Hashes

Los hashes de las muestras analizadas y archivos relacionados con la campaña, son:

SHA1

Nombre

Deteccion

758d3c028faaf023c28890f3c4a68cdbce5159e3

AdobeARM.exe

Win32/Loader.Lycaon.AB.gen

adc96ef4fc323a836087b5e53bf7e69be2a9ac9f

AdobeARM.exe

Win32/Loader.Lycaon.AB.gen

Registros de Windows

El registro utilizado para la persistencia es:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

  • Carpetas y archivos modificados

La muestra crea los siguientes directorios y archivos:

  • C:\Users\<NOMBRE_USUARIO> \Documents\KCSoftwares\sdk\
  • mdb2db.exe

Indicadores de red

Las URL e IP relacionadas al servidor C&C son:

  • pctrabajonuevo2[.]casacam[.]net
  • 154[.]216[.]19[.]63

Técnicas MITRE ATT&CK

A continuación, se listan las tácticas, técnicas y procedimientos utilizadas en las muestras analizadas utilizando el framework MITRE ATT&CK.

Tactica ID Name
Collection T1056.001 Input Capture: Keylogging
T1113 Screen Capture
T1125  
T1005

Data from Local System

Defense evation T1027.001 Obfuscated Files or Information: Binary Padding
T1027.007 Obfuscated Files or Information: Dynamic API Resolution
T1027.009 Obfuscated Files or Information: Embedded Payloads 
T1027.013 Obfuscated Files or Information: Encrypted/Encoded File 
T1036.005 Masquerading: Match Legitimate Resource Name or Location 
T1055.012 Process Injection: Process Hollowing
T1070.004 Indicator Removal: File Deletion
T1140 Deobfuscate/Decode Files or Information
T1497.001 Virtualization/Sandbox Evasion: System Checks
T1564.003 Hide Artifacts: Hidden Window
T1622 Debugger Evasion
Discovery T1033 System Owner/User Discovery
T1057 Process Discovery
T1082 System Information Discovery
Execution T1059.003 Command and Scripting Interpreter: Windows Command Shell
T1106 Native API
Persistence T1112 Modify Registry
T1547.001 Boot or Logon Autostart Execution: Registry Run Keys/ Startup Folder 
Command and Control T1571 Non-Standard Port
Exfiltration T1041 Exfiltration Over C2 Channel