IBM X-Force descubre un nuevo backdoor de Sheriff utilizado para atacar a Ucrania

Primer plano de unas manos que escriben en un teclado con vista al monitor de la computadora.

Autor

Golo Mühr

Malware Reverse Engineer

IBM

IBM X-Force descubrió un conjunto de malware desconocido hasta ahora (Sheriff backdoor) utilizado en un ataque de ciberespionaje contra una entidad del sector de la defensa de Ucrania durante la primera mitad de 2024. El actor de amenazas utilizó un popular portal de noticias en Ucrania, ukr.net, para alojar la puerta trasera de Sheriff. La puerta trasera modular puede ejecutar comandos dirigidos por actores, recopilar capturas de pantalla y exfiltrar de forma encubierta los datos de las víctimas usando la API de almacenamiento en la nube de Dropbox. Durante la investigación, X-Force identificó actividades maliciosas similares a las de CloudWizard APT y Turla (también conocido como ITG12), dos grupos de amenazas vinculados a Rusia que tenían como objetivo entidades ucranianas.

Principales conclusiones

  • Un novedoso cargador y una puerta trasera modular se utilizaron en un ataque en la primera mitad de 2024 dirigido al sector de defensa de Ucrania.
  • El módulo Sheriff Downloader descarga una carga útil de ukr.net, un popular portal de noticias ucraniano, lo que sugiere que el sitio web puede haber sido comprometido para facilitar el ataque
  • La puerta trasera utiliza la API de Dropbox para la comunicación de comando y control (C2) para facilitar la exfiltración de datos cifrados
  • Sheriff puede descargar y administrar varios módulos, incluido un módulo de captura de pantalla que se descubrió durante la investigación; los comandos y los valores de configuración se reciben como comentarios en archivos ZIP.
  • X-Force identificó similitudes con CloudWizard APT y Turla (ITG12), grupos de amenazas vinculados a Rusia que atacan a entidades ucranianas.

Datos técnicos

Durante la investigación, X-Force reconstruyó la siguiente cadena de infección:

Gráfico que representa la cadena de infección
Fig. 1: Cadena de infección

Subcargador

La muestra analizada es una DLL x86, que contiene una única exportación "MyFunc". Contiene una ruta relativa codificada a la DLL del módulo Sheriff Downloader en un recurso en ruso con el nombre "LoaderPath". La ruta codificada es

Local\WPnqv0hW\DZtdI.dll

que se concatena con la siguiente ruta: “%USERPROFILE%\AppData\”.

A continuación, el DLL utiliza la API CLRCreateInstance para alojar Common Language Runtime (CLR) de .NET. La función Loader.MainCycle.Run del módulo de DLL Sheriff Downloader se ejecuta con el método ExecuteInDefaultAppDomain

Ejecución de alojamiento CLR de fragmento de código
Fig. 2: Ejecución del alojamiento CLR

Esta técnica se detalló recientemente en una entrada en el blog de X-Force como una técnica de equipo rojo.

Deputy Loader también proporciona las rutas de ambas DLL como argumentos separados por un punto y coma (";"). 

Hombre mirando una computadora

Fortalezca su inteligencia de seguridad 


Adelántese cada semana a las amenazas con novedades e información sobre seguridad, IA y más con el boletín Think. 


Módulo Sheriff Downloader

El módulo Sheriff Downloader es una DLL x86 .NET, que contiene una biblioteca (dotnetzip.dll) empaquetada en un recurso que utiliza Fody Costura. 

La clase "MainCycle" contiene la función principal "Run", que comienza recuperando cuatro valores almacenados dentro de los recursos en ruso del binario:

Captura de pantalla de los recursos de Sheriff Downloader
Fig. 3: Recursos de Sheriff Downloader

Usando estos, la muestra intenta descargar un archivo desde

http://ukr[.]net/8V3fDJ0U/RDZXVh

 

en la carpeta

%APPDATA%\Xpgx2dAn\RDZXVh

Si el archivo ya existe, se omite el comportamiento de descarga y el malware actúa solo como cargador. 

A continuación, descifra la carga útil a través de la biblioteca “SymmetricCrypt” implementada a medida y la contraseña “BS7IMxWRXueASSN”. El algoritmo parece ser idéntico al cifrado AES integrado en .NET (https://gist.github.com/jbtule/4336842#file-aesthenhmac-cs). 

El archivo ZIP resultante se extrae en la memoria y revela al menos dos archivos que se ordenan por tamaño de archivo. Finalmente, el primer archivo (Módulo principal de Sheriff) se carga reflexivamente como un ensamblado .NET, llamando al método "MainClass.Run". El último archivo (Sheriff Init File) se lee línea por línea y se suministra al ensamblado de ejecución como un argumento de objeto de lista, junto con las rutas de la DLL del cargador adjunto, la DLL del descargador de Sheriff y la carga útil descargada "RDZXVh".

Posible compromiso de ukr.net

La URL de descarga genera inquietudes de inmediato, ya que el host ukr.net está clasificado como el cuarto sitio web más visitado en Ucrania según Semrush.. Ukr.net también es un proveedor de servicios de Internet (ISP), un popular proveedor de correo electrónico, y aloja uno de los portales de noticias más grandes de Ucrania, con más de 100 millones de visitas al mes. Aunque ukr.net parece ofrecer también servicios de alojamiento, por lo general los usuarios no pueden alojar archivos en directorios raíz arbitrarios en el servidor web principal. Por lo tanto, es probable que el actor de amenazas comprometiera ukr.net para organizar la carga útil de puerta trasera cifrada de Sheriff a principios de marzo de 2024. 

En el momento de la investigación, la carga útil no estaba disponible y X-Force no pudo identificar otras cargas útiles maliciosas alojadas en ukr.net.Es posible que el acceso del actor de amenazas fuera limitado en alcance, solo disponible por un corto periodo de tiempo, o que se usara intencionadamente con moderación. El acceso de un actor de amenazas al portal de noticias más grande de Ucrania los posicionaría para llevar a cabo una serie de ataques de alto impacto y operar con mayor ofuscación. En este incidente concreto, el actor de amenazas pudo haber abusado del dominio de confianza para introducir malware sin levantar sospechas. 

Módulo principal de Sheriff

El módulo principal de Sheriff es una DLL x86 .NET, que nuevamente contiene una biblioteca (dotnetzip.dll) empaquetada en un recurso que utiliza Costura.

Inicialización y configuración

Cuando se ejecuta por primera vez, la función "Ejecutar" en la clase principal comienza leyendo los argumentos recibidos como una lista del archivo de inicialización de Sheriff. Asigna los siguientes valores:

_symKey: "tkE7BqJ45HKwOes"
ConfName: "mInv.cfg"
ModulsFolder: "DxyVS1"
UploadLocalFolder: "gyTufW"
_defaultZipExt: "d7r"
refreshToken:
"sPfSlLkE3UcAAAAAAAAAAeUXe9lToajHac8y3w_9mmDptZKSU_Q0wdd4XSCZxfaU:yfw5e008wxkqbxg:ax6a2el8rf4cjo0"
_guid: "W5d2090860fd54c17809fb4da0b42b34d.test"
_asymPrivKey:
"MIICXAIBAAKBgQCuqWqUX60ArocW6V8zJN0vZ0CRAiY2jL+Ohjunh3p7wgac57Lwrmj0NIK80eLAO1zBIWEJZHH8vgapuLbv857SdG0Yw9iyGT2TLIIZH3ITrruJlxj62gMfKml2vRGK1jB4pnwZVTjc3zTO4Oko3Svy3PilTdyGMCp9FWf/ytex9QIDAQABAoGARTT79i6y7kI5ZOqzviAtREs1Wj/vxE2g2Wh22rrj3YXT+PgV/ygcjicAZrEDmAftiNkhCgey4uKo4Tc/xXRSyYlm8U2tNdv2YfC0mL04kUWRowoHZn6iTsm3D60ECSTfi9/WvkJEu2t8ufglGrWKd1atqmpbNl7BrA/+R9EDyUECQQDIWP1jxv6s2wueSov8T1J3tgQJJaazLYImdvCRLjUQ0iTpw12VfCkipATwnkST4NkGgGnAb6NxB4N9Qc5qOPb3AkEA3y3emkmA28f45TiP9WFjsqe+YYZUkL5zuotGP+IrkYvniefqCJSAyWtaN0gGQGjJEUEsVL5tIzewY9Z1/4AHcwJAc+2aYbvp7dep92QncE3t6Ds4Rpq0xQVWRC+asEdOiXcvyNw1MKRxoQvLl/fcsrzul6aCismOh37ThQ0pBaoErQJAdn2ZARtjUczjBXg5XlM9pn3O42J5hXvIX9NQEdzXuuenn51EsRd/JPFdLZqMzyeTERkkGz4bHaaUfP1BGszzpwJBAKF312U3h7fpzpMC10jI8F0M5aEOCgSax6EpW3aJEc6WZ7z4hvnZMpxtuGaEJE98kzpYuzzBJL+qOjmeCBoVS8I="
_asymPubKey:
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBT+7FB360l8kvgAmCUKYjWxcybjTJiq81x0s56g+rxdvxHOlayuYhSb7xJ2JKv/1k1LtnAT9rfhPLJQPvwMsVeeFUvIpc5+ovrIi3Ow0n8n3je1zSqpFRK488XZ9NMDkVSLLQKNcgOYox0eSXPmnTzvNffaFGVnm1EuimsnSjpQIDAQAB"

La siguiente tabla enumera una explicación para cada uno de los argumentos:

Nombre

Explicación

  
_SymKeyClave AES utilizada para descifrar la configuración

ConfName

Nombre del archivo de configuración

ModulsFolder

Nombre de la carpeta utilizada para descargar más módulos

UploadLocalFolder

Nombre de la carpeta utilizada para exfiltrar datos

_defaultZipExt

Extensión predeterminada empleada para identificar archivos ZIP

RefreshToken

Token de actualización de OAuth para la autenticación con la API de Dropbox

_guid

Cadena utilizada junto con el número de serie como ID de víctima

_asymPrivKey

Clave privada RSA utilizada para descifrar los módulos descargados

_asymPubKey

Clave pública RSA utilizada para cifrar datos antes de la exfiltración

Las claves asimétricas son de dos conjuntos diferentes de claves, lo que impidió el descifrado de los datos de exfiltración durante la investigación. 

A continuación, Sheriff crea las carpetas locales de carga y descarga. Si no está presente, el archivo de configuración mlvn.cfg se escribe cuando se ejecuta por primera vez el módulo principal de Sheriff. Después de eso, se puede leer y modificar para mantener configuraciones separadas para cada módulo. El archivo de configuración descifrado contiene los siguientes valores para el módulo "principal", separados por un punto y coma (";"):

  1. RefreshToken
  2. Tamaño máximo de archivo ZIP para datos exfiltrados
  3. Tamaño máximo de archivo para datos exfiltrados antes de la compresión
  4. URL utilizada para recuperar la dirección IP pública de la víctima
  5. Intervalo mínimo (ms) utilizado para descargar y cargar archivos
  6. Intervalo máximo (ms) utilizado para descargar y cargar archivos
[main];sPfSlLkE3UcAAAAAAAAAAeUXe9lToajHac8y3w_9mmDptZKSU_Q0wdd4XSCZxfaU:yfw5e008wxkqbxg:ax6a2el8rf4cjo0;220200960;209715200;https://api.ipify.org;30000;30000
[key];1024

No se encontró ningún módulo "clave" durante la investigación. Este módulo podría haber sido responsable de establecer la persistencia de la DLL de Deputy Loader, que escribe la siguiente clave de registro:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MicrosoftEdgeAutoLaunch_<REDACTED>

La clave contiene el comando para ejecutar la exportación MyFunc del cargador adjunto:

"C:\WINDOWS\SysWOW64\rundll32.exe" "<LOCAL_APPDATA>\GRPRhuI4\T5CBy.dll",MyFunc

Dropbox C2

La comunicación de comando y control se gestiona a través de una clase "DbApiV2", que utiliza la API de Dropbox para crear, buscar, descargar, cargar, mover y analizar archivos y carpetas remotos en Dropbox. Utiliza el token de actualización para obtener un token de acceso temporal para la autenticación vía la siguiente URL:

https://api.dropbox.com/oauth2/token

Estos endpoints de API se utilizan para gestionar archivos y carpetas remotos:

https://content.dropboxapi.com/2/files/upload
https://content.dropboxapi.com/2/files/upload_session/start
https://content.dropboxapi.com/2/files/upload_session/finish
https://content.dropboxapi.com/2/files/upload_session/append_v2
https://content.dropboxapi.com/2/files/download
https://api.dropboxapi.com/2/files/delete
https://api.dropboxapi.com/2/files/create_folder
https://api.dropboxapi.com/2/files/list_folder

Antes de intentar descargar archivos, el módulo principal de Sheriff carga un mensaje de registro que contiene la dirección IP pública de la víctima y la lista de módulos cargados. El registro está encriptado con XOR utilizando el ID de la víctima que consiste en el GUID (a partir de los argumentos o generado aleatoriamente) y el número de serie. Después del cifrado, el registro se sube a una carpeta de Dropbox cuyo nombre coincide con el ID de la víctima. 

Todos los archivos se recuperan de la carpeta de Dropbox en /<victim_id>/Dow/ y se descargan en la "ModulsFolder" local codificada como "/DxyVS1". Después de la descarga, todos los archivos se eliminan instantáneamente de Dropbox. A continuación, analizaremos cómo el módulo principal maneja los archivos descargados. 

El proceso de carga comienza enumerando todos los archivos locales en "UploadLocalFolder", en este caso codificado como "/gyTufW". Según sus extensiones, se clasifican en tres categorías:

  1. Los archivos que utilizan el.d7r "_defaultZipExt"codificado de forma rígida ya están comprimidos;
  2. Los archivos sin extensión ya están cifrados y listos para cargar; y
  3. Todos los demás archivos todavía están en texto no cifrado.

La función "PreparingForUpload" comprimirá todos los archivos de texto sin cifrar en un nuevo archivo ZIP. Todos los archivos ZIP se cifran posteriormente con una clave AES generada aleatoriamente que, a su vez, se cifra con la clave RSA pública y se concatena con el archivo cifrado. Durante la ejecución, la función elimina todos los archivos residuales de la carpeta hasta que solo quedan archivos completamente comprimidos y cifrados. Luego, se cargan en la carpeta de Dropbox en /<victim_id>/Up/ mientras se eliminan localmente. 

Tanto las funciones de carga como de descarga se ejecutan de forma asíncrona y se ejecutan con un temporizador codificado a 30 segundos en la muestra analizada. 

En el momento de la investigación, la cuenta de Dropbox ya no alojaba ningún archivo, como indica el uso del espacio:

{
  "used": 0,
  "allocation": {
    ".tag": "individual",
    "allocated": 2147483648
  }
}

La cuenta de Dropbox asociada muestra la siguiente información:

{
  "account_id": "dbid:AABLMHYTVufS0NLF_cnID1nm_-R9m1aj9ds",
  "name": {
    "given_name": "Poco",
    "surname": "Poco",
    "familiar_name": "Poco",
    "display_name": "Poco Poco",
    "abbreviated_name": "PP"
  },
  "email": "poco.m5.miui.13@gmail.com",
  "email_verified": true,
  "disabled": false,
  "country": "DE",
  "locale": "ru",
  "referral_link": "https://www.dropbox.com/referrals/AABf13Qzpq31wbsquudl7xfwagHIa8GgdZg?src=app9-5618657",
  "is_paired": false,
  "account_type": {
    ".tag": "basic"
  },
  "root_info": {
    ".tag": "user",
    "root_namespace_id": "2199102147",
    "home_namespace_id": "2199102147"
  }
}

Módulos y comandos de Sheriff

La tarea del módulo principal de Sheriff es actuar como orquestador para lanzar y gestionar diferentes módulos. Estos módulos se pueden descargar a través del proceso descrito anteriormente, uno de los cuales se descubrió durante la investigación ("./DxyVS1/dowtuxZml"). 

La función "LoadModuls" itera a través de los archivos descargados, descifrándolos utilizando la clave privada RSA y la clave AES resultante. El archivo ZIP descifrado contiene una cadena de comentarios que se utiliza para analizar el módulo:

Un encabezado PK-ZIP que contiene un comentario al final del archivo.
Fig. 4: Un encabezado PK-ZIP que contiene un comentario al final del archivo

El comentario se separa en varios valores a través del símbolo de barra vertical ("|") y más adelante en subvalores separados por un punto y coma (";"). 

D|scr;ScreenShot.Shot;LoadDll;KillDll;ConfDll|0|0;None

La siguiente es una descripción de los valores después del análisis:

  1. Comando: "D"
  2. ModInfo (parte de un objeto que mantiene información sobre cada módulo durante la ejecución del módulo principal)
    1. Marcador: "scr"
    2. NameSpace: "ScreenShot.Shot"
    3. LoadMethod: "LoadDll"
    4. KillMethod: "KillDll"
    5. ConfigMethod: "ConfDll"
  3. Activar/desactivar (si se debe eliminar el archivo original)
  4. NeedZip (si el módulo requiere que el módulo principal comprima sus resultados); Compresión (el método de compresión deseado, el valor predeterminado es Deflate)

Sheriff acepta los siguientes comandos:

Comando y descripción

  • D: analiza el ModInfo del comentario y, en función del valor On/Off, elimina el archivo original después de cargar el ensamblado .NET. Para cargar o eliminar el módulo (si ya está cargado), utiliza los valores "LoadMethod" y "KillMethod" respectivamente. El "LoadMethod" toma el "Marker", el "UploadLocalFolder" y el "_defaultZipExt" como argumentos.
  • T: analiza el ModInfo del comentario, elimina el archivo original y ejecuta el "LoadMethod". El "LoadMethod" toma el "Marker", el "UploadLocalFolder", el "LoadMethod", el "KillMethod" y el "ConfigMethod" como argumentos.
  • E: solo acepta un único valor (argumento de comando) después del primer símbolo de barra vertical ("|") y ejecuta la función "RunExeInMemory". El archivo dentro del archivo ZIP se coloca en una ruta temporal como %TMP%\<number_of_ticks>.exe y se ejecuta como un nuevo proceso con el argumento, si se proporciona. El archivo soltado y el archivo ZIP se eliminan posteriormente.
  • C: analiza un archivo de texto dentro del ZIP, línea por línea, que puede contener una lista de comandos personalizados (véase la segunda tabla a continuación).
  • R: actualiza el módulo principal cambiando el nombre del archivo original y escribiendo la carga útil descargada en la ruta original. Dependiendo del éxito, se cargará uno de los dos mensajes de estado: "MainModule se cambió correctamente" o "MainModule no se cambió".

 La segunda tabla detalla una lista de comandos que se pueden leer como un archivo de texto usando el comando "C":

Patrón de comando

Descripción

(árbol)

<path_1>

<path_2>

...

Carga archivos desde una lista de rutas especificadas.

(árbol)

<path_1>

<path_2>

...

Elimina archivos de una lista de rutas especificadas y carga un mensaje de registro “Los archivos se eliminaron: <number_of_files>”

(cmd);
value1;
value2;...

Ejecuta cada valor como un comando separado en un nuevo proceso “cmd.exe /c <value>“, lee stdout y stderr, y lo carga como un archivo cifrado RSA en Dropbox. 

[modname];
value1;
value2;...

Inserta la cadena completa en el archivo de configuración. Tenga en cuenta que el "modname" es idéntico al marcador de un módulo.

{modname};
value1;
value2;...

Si el "modname" es "Suicide", Sheriff eliminará todos los módulos, quitará todos los archivos y ejecutará un script de limpieza. Si el “modname” coincide con un módulo cargado, invocará el “killMethod” y eliminará su archivo correspondiente. 

Fragmento de código que muestra el comando "suicide" del módulo principal de Sheriff
Fig. 5: Comando de "suicidio" del módulo principal de Sheriff

Una vez cargados todos los módulos, la función "Ejecutar" del módulo principal iterará a través de cada módulo cargado e invocará el "ConfigMethod", proporcionando la configuración del módulo correspondiente analizada desde el archivo de configuración original. Es probable que esto permita a los operadores actualizar fácilmente las configuraciones de varios módulos mientras se están ejecutando. 

Módulo de captura de pantalla

Uno de los módulos recuperados durante la investigación es el módulo Captura de pantalla. Cuando se carga el módulo, recibe los siguientes argumentos del módulo principal:

  1. marcador
  2. uploadPath
  3. defaultZip

El módulo aún contiene un valor predeterminado "tgr" para "defaultZip", que se sobrescribe en ese punto. Con el "ConfigMethod" del módulo, el módulo principal también puede especificar los siguientes valores de configuración:

  1. ImageCount (número de capturas de pantalla tomadas hasta que se comprimen). Valor predeterminado = 25
  2. TimerCount (intervalo del temporizador, con qué frecuencia se puede tomar una captura de pantalla). Default = 5 segundos
  3. DefiniteShot (tiempo máximo hasta que se toma definitivamente una captura de pantalla). Default = 15 minutos
  4. BmpQuality (parámetro de compresión/calidad de captura de pantalla entre 0 y 100). Valor predeterminado = 25
  5. WindowsTitle (lista separada por comas de títulos de ventanas específicamente diseñados para capturas de pantalla).

Una vez iniciado, el módulo verificará cada 5 segundos (TimerCount) si puede tomar una captura de pantalla. Para tomar una captura de pantalla, se debe cumplir una de las siguientes condiciones:

  1. La última captura de pantalla se tomó hace más de 15 minutos (DefiniteShot);
  2. La ventana de primer plano es diferente a la última vez que se tomó una captura de pantalla; o,
  3. El título de las ventanas en primer plano coincide con cualquiera de las cadenas de la lista "WindowsTitle".

Durante cada disparo, si el número de disparos alcanza "ImageCount", las capturas de pantalla existentes se agregan a un archivo ZIP con formato {0:yyyy.MM.dd_HH.mm.ss}.jpg utilizando el objeto "DateTime" de la captura de pantalla.

El nombre del archivo ZIP se formatea como {0:yyyy.MM.dd_HH.mm.ss.ffff}.<defaultZip> empleando el objeto "DateTime" en el que se crea el ZIP. El archivo ZIP también recibe un comentario que consiste en el marcador del módulo ("scr") como se muestra en la captura de pantalla a continuación.

Módulo de capturas de pantalla de Sheriff
Fig. 6: Módulo de capturas de pantalla de Sheriff

Función suicida

El módulo principal de Sheriff también contiene una función Suicidio, que se puede invocar de forma remota. La función detiene toda la actividad de descarga y carga y luego itera a través de cada módulo para invocar el "KillMethod" correspondiente. Luego procede a eliminar todo el directorio que contiene el módulo principal y la carpeta global en Dropbox utilizada para la comunicación C2. A continuación, la función busca la ruta de la DLL del cargador de primera etapa (cargador adjunto) dentro de las subclaves del registro a continuación:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Cualquier subclave que contenga la ruta se elimina posteriormente. 

Finalmente, Sheriff inserta las rutas del "cargador" (Sheriff Downloader Module) y "LoadDll" (Advice Loader) en el siguiente archivo BAT, lo deja caer a %TMP% y lo ejecuta:

SET loader="<loader.path>"
SET loadDll="<loadDll.path>"
:loop
IF EXIST %loader% del /F %loader%
IF EXIST %loader% goto loop
:loop1
IF EXIST %loadDll% del /F %loadDll%
IF EXIST %loadDll% goto loop1
rmdir /s /q "<loader.directory_name>"
rmdir /s /q "<loadDll.directory_name>"
(goto) 2>nul & del "%~f0"

El script anterior eliminará los archivos tanto del módulo Sheriff Downloader como del cargador adjunto, así como sus respectivos directorios, antes de eliminarse a sí mismo. 

Técnicas similares de actores de amenazas

Durante el análisis, varios indicadores iniciales apuntan a actores de amenazas con sede en Rusia, entre ellos:

  • Deputy Loader y Sheriff Downloader contienen recursos en ruso;
  • Configuración regional rusa utilizada por la cuenta de Dropbox; y,
  • Objetivo Ucrania.

X-Force evalúa que la puerta trasera de Sheriff es probablemente una herramienta diseñada para el espionaje cibernético y la recopilación de inteligencia frente a los delitos cibernéticos motivados financieramente. El malware se enfoca en exfiltrar datos y tomar capturas de pantalla mientras mantiene un perfil bajo diseñado para compromisos prolongados. Se desarrolló con la clara intención de permanecer lo más encubierto posible, garantizando que la comunicación y la mayoría de los artefactos que se depositan en el disco permanezcan encriptados. La comunicación de red sigue siendo sigilosa gracias al uso indebido de la API legítima de Dropbox, así como de ukr.net, un sitio web popular en Ucrania, que se utiliza para alojar el malware. Sheriff también implementa varias funciones autodestructivas para eliminar los rastros después de la ejecución. Por último, el código bien estructurado, la estructura de carpetas, la implementación modular, el registro y la funcionalidad y configurabilidad completas indican un mayor nivel de sofisticación, como cabría esperar de un grupo patrocinado por el Estado. 

La investigación también reveló varias superposiciones menores con campañas previamente documentadas atribuidas al conocido grupo de actores de amenazas ruso-nexo Turla (alias ITG12). Por ejemplo, la puerta trasera Kazuar.NET del grupo muestra varias similitudes con Sheriff, incluyendo:

  • Kazuar también mantiene una estructura de carpetas ligeramente similar;
  • Aunque es diferente, Kazuar también genera un GUID y utiliza el número de serie de la víctima;
  • Kazuar también implementa el registro y utiliza cifrado AES y RSA;
  • Kazuar también es modular, aunque parece referirse a “plugins” en lugar de módulos;
  • Kazuar también utiliza valores de intervalo máximo y mínimo; y,
  • Kazuar admite comandos similares a los de Sheriff, incluidos "Suicidio", captura de pantalla, ejecución de línea de comandos, ejecución binaria, eliminación de archivos, exfiltración y actualización automática.

De manera notable, la puerta trasera Muletch atribuida a Turla por ESET también emplea la API de Dropbox para la comunicación C2 de forma similar a Sheriff, aunque no es . Basado en RED.

Investigaciones adicionales también revelaron las superposiciones de Sheriff con la puerta trasera Prikormka de la Operación Groundbait, que incluyen:

  • Backdoor modular con un módulo descargador, núcleo y captura de pantalla;
  • Prikormka también mantiene dos carpetas en %USERPROFILE%\AppData\Local\ para cargas y descargas;
  • Prikormka también utiliza extensiones personalizadas para identificar archivos destinados a ser cifrados y comprimidos antes de la exfiltración;
  • El módulo de captura de pantalla de Prikormka usaba “.tgz” como parte de la extensión personalizada, el módulo de captura de pantalla de Sheriff usa “.tgr”; y
  • Los módulos Prikormka enumeran "Ciclo" como una de las funciones de exportación requeridas, que es similar a la clase "MainCycle" utilizada por el módulo Sheriff Downloader.

Kaspersky Labs documentó posteriormente fuertes superposiciones entre Prikormka y CloudWizard APT. X-Force también observó varias similitudes entre Sheriff y CloudWizard, entre ellas:

  • Puerta trasera modular con un módulo principal que gestiona la configuración y C2 para cada módulo;
  • CloudWizard también emplea AES y RSA para cifrar/descifrar ZIP antes/luego de cargarlos y descargarlos;
  • CloudWizard también admite Dropbox como mecanismo C2 con autenticación OAuth;
  • Tanto CloudWizard como Sheriff contienen una función “getSettings”/”get_settings” para recuperar la configuración de cada módulo;
  • Tanto el módulo de captura de pantalla de CloudWizard como el de Sheriff admiten un argumento "WindowsTitle", para compararlo con el título de la ventana actual antes de tomar una captura de pantalla;
  • CloudWizard, Prikormka y Sheriff comparten el mismo intervalo de captura de pantalla de 15 minutos; y,
  • Los módulos de listado de archivos de CloudWizard y Prikormka se denominan "árbol", que es el nombre que Sheriff utiliza para la exfiltración de una lista de archivos.

X-Force cree que la puerta trasera de Sheriff se utilizó como parte de una operación dirigida. El malware posiblemente esté relacionado con CloudWizard APT, alineado con Rusia, que se sabe que se dirigió a entidades en Ucrania en el pasado. Existe una menor posibilidad de conexión con el clúster de amenazas Turla (ITG12) debido a superposiciones menores en TTP y malware. 

Conclusión

La puerta trasera de Sheriff y su uso dentro de las operaciones de espionaje cibernético detalladas en este informe muestra varias características interesantes. En primer lugar, la puerta trasera de Sheriff es una herramienta de espionaje modular bien diseñada que permite el acceso a largo plazo al entorno de la víctima. En segundo lugar, su estructura modular y sus características de autodestrucción ponen de manifiesto la preocupación de los desarrolladores por la detección y el análisis de sus herramientas. Además, la capacidad de alojar el malware en ukr.net también es indicativa de las avanzadas capacidades del actor de amenazas.

Recomendaciones

X-Force recomienda que las personas y entidades asociadas con el gobierno, el ejército o el sector de defensa de Ucrania permanezcan en un estado de mayor seguridad defensiva y que:

  • Busquen tráfico inusual con servicios de resolución de IP públicas, como https://api.ipify[.]org
  • Busquen tráfico inusual que se comunique con la API de Dropbox:
    • https://api.dropboxapi.com
    • https://content.dropboxapi.com
  • Instalen y configuren el software de seguridad endpoint.
  • Actualicen las reglas relevantes de monitoreo de seguridad de la red.

Apéndice técnico

Para que la atribución sea más transparente y fomentar una mayor colaboración entre los investigadores, IBM X-Force cargó las muestras en VirusTotal. 

Indicador

Tipo de indicador

Contexto

60f20be29cafea3402c8cb396
c1cb43ef21ec1b401ad1d4239c0
a990670daa8d

SHA256

Módulo principal cifrado “RDZXVh”

86b8d48df5787d57836276219
a9e3dbc0d7e56d68cf99b514a
ca55564f818182

SHA256

Archivo de inicialización de Sheriff “n5K3B”

8832fb7ef434a56f9d151d8e1eb
da94544a90a420fee0820b5b0
8d95224763f5

SHA256

Cargador adjunto “t5cby.dll”

8c22326d08a6334181c06e25c6
df35032cd6916cfbe692d66fc8d
b3aa8b70e42

SHA256

Módulo de captura de pantalla cifrada “dowtuxZmI”

8d4df90f4e7fc6d9d08d4b5a27
2037ee7c565def9df180ad1eb08
efe8d357bd4

SHA256

Módulo principal de Sheriff “1Pr3v”

92b9ef4e81610487ea9df255fa83
a8e6c3bd2726ccdb909988e8c8
b919506289

SHA256

Archivo de configuración de Sheriff “mInv.cfg”

e2b892533bd4135004778783b95
e833fca6ee740bf0a1cb2d5d1a44b
93fd7962

SHA256

Archivo ZIP del módulo de captura de pantalla descifrado

ec84ae8db92a88109bc68baefc3b
0a9de8579129d7a5a431072f09fdc
b8c7862

SHA256

Módulo de captura de pantalla de Sheriff “NexSV”

f9e237a939b998fe071e0101904f7d
10cde6ce7b1cb4df1e7d345094af6b
048e

SHA256

Módulo de descarga de Sheriff “DZtdI.dll”

http://ukr[.]net/8V3fDJ0U/RDZXV

URL

URL de descarga de Sheriff. Tenga en cuenta que ukr.net es un sitio web legítimo.

https://api.ipify[.]Org

URL

Servicio legítimo utilizado para determinar la dirección IP pública, del que abusan con frecuencia los autores de malware.

IBM X-Force Premier Threat Intelligence ahora está integrado con OpenCTI, lo que ofrece inteligencia de amenazas aplicable en la práctica sobre esta actividad de amenazas y más. Acceda a insights sobre los actores de amenazas, el malware y los riesgos de la industria. Instale el OpenCTI Connector para mejorar la detección y la respuesta, reforzando su ciberseguridad con la experiencia de IBM X-Force. Manténgase a la vanguardia e integre hoy mismo.

Mixture of Experts | 12 de diciembre, episodio 85

Decodificación de la IA: Resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Soluciones relacionadas
Servicios de respuesta a incidentes

Mejore el programa de respuesta ante incidentes de su organización, minimice el impacto de una violación y experimente una respuesta rápida a los incidentes de ciberseguridad

Explore los servicios de respuesta a incidentes
Soluciones de detección y respuesta a amenazas

Utilice las soluciones de detección y respuesta a amenazas de IBM para fortalecer su seguridad y acelerar la detección de amenazas.

Explorar las soluciones de detección de amenazas
IBM QRadar SOAR Solutions

Optimice los procesos de toma de decisiones, mejore la eficiencia de los SOC y acelere la respuesta ante incidentes con una solución de orquestación y automatización inteligente.

Explore QRadar SOAR
Dé el siguiente paso

Mejore el programa de respuesta ante incidentes de su organización, minimice el impacto de una violación y experimente una respuesta rápida a los incidentes de ciberseguridad

  1. Explore los servicios de respuesta a incidentes
  2. Más información sobre IBM X-Force