En nuestras investigaciones sobre una serie de ataques de ransomware recientes, hemos observado un conjuntos de herramientas asociadas con varios tipos de ransomware implementados de la misma manera, lo que sugiere su uso por parte de uno o más afiliados de ransomware como servicio. Una de esas herramientas es SystemBC, una puerta trasera que proporciona a los atacantes una conexión persistente con los sistemas de sus víctimas.
Visto por primera vez en 2019, SystemBC es una herramienta de administración remota y proxy, nombrada por los investigadores después de la cadena en el URI que usaba su panel de control. Actúa como un proxy de red para comunicaciones ocultas y como una herramienta de administración remota (RAT), capaz de ejecutar comandos de Windows y entregar y ejecutar scripts, ejecutables maliciosos y bibliotecas de vínculos dinámicos (DLL). Después de ser implementado por otro malware, proporciona a los atacantes una puerta trasera persistente.
Si bien SystemBC existe desde hace más de un año, hemos visto que tanto su uso como sus funciones continúan evolucionando. Las muestras más recientes de SystemBC llevan un código que, en lugar de actuar esencialmente como una red privada virtual a través de un proxy SOCKS5, utiliza la red anónima Tor para cifrar y ocultar el destino del tráfico de comando y control.
Durante los últimos meses, hemos seguido detectando cientos de intentos de implementación de SystemBC en todo el mundo. SystemBC se utilizó en ataques recientes de Ryuk y Egregor investigados por el equipo de Respuesta Rápida de Sophos MTR, a menudo utilizado en combinación con herramientas posteriores a la explotación como Cobalt Strike. En algunos casos, SystemBC RAT se implementó en servidores después de que los atacantes obtuvieran credenciales administrativas y se introdujeran profundamente en la red objetivo.
Despliegue
Cuando se implementa, SystemBC realiza una verificación para ver si se inició con una línea de comando “start”, lo que indica que se ejecutó como un servicio programado. De lo contrario, se copia a sí mismo en un directorio con nombre aleatorio y un nombre de archivo dentro del directorio ProgramData, y luego programa esa copia como una tarea (iniciada con el comando “start”) para lograr la persistencia.
Sin embargo, si SystemBC encuentra un proceso en ejecución llamado a2guard.exe, un componente del software anti-malware de Emsisoft, omite la creación de un servicio. Este comportamiento se remonta a las primeras muestras de SystemBC encontradas en 2019.
Una vez que SystemBC se inicia desde su tarea programada, arranca sus conexiones de comando y control.
BC llama a casa
Hay dos elementos del CnC: una conexión de baliza a un servidor remoto en uno de los dos dominios codificados en el malware y un cliente Tor ligero.
Las comunicaciones que no son de Tor son TCP sin procesar, que se conectan al puerto 4044 (normalmente utilizado por el protocolo de seguimiento de ubicación) en el servidor remoto. Los dominios variaron de una muestra a otra, probablemente configurados para una campaña específica en el momento de la compilación. Observamos dos dominios en uso en nuestra muestra principal: advertrex20 [.] Xyz y gentexman37 [.] Xyz. El primer dominio ya no se resolvió en el momento del análisis; durante el análisis, el segundo dominio también se volvió inalcanzable.
El malware selecciona uno de los dominios codificados y envía un bloque inicial de datos (100 bytes en este caso), luego mantiene un socket abierto, y ocasionalmente se restablece la conexión.
La mayoría de las comunicaciones CnC con SystemBC RAT se realizan a través de una conexión Tor. El elemento de comunicaciones Tor de SystemBC parece estar basado en mini-tor, una biblioteca de código abierto para una conectividad ligera a la red anónima Tor. El código de mini-Tor no está duplicado en SystemBC (ya que mini-Tor está escrito en C ++ y SystemBC está compilado desde C). Pero la implementación del cliente Tor por parte del bot se parece mucho a la implementación utilizada en el programa de código abierto, incluido su uso extensivo de las funciones Base Crypto (BCrypt) de la API de Windows Crypto Next Gen (CNG).
Cuando el bot se ejecuta desde una tarea programada, recopila la siguiente información, la almacena en un búfer y la envía a CnC a través de la conexión Tor:
- El nombre del usuario activo de Windows
- El número de compilación de Windows del sistema infectado
- Una verificación del proceso WOW (si el sistema operativo del sistema infectado es de 32 bits o de 64 bits)
- El número de serie del volumen.
Los datos recopilados se cifran con rc4 con una clave codificada de forma rígida antes de enviarlos a CnC, utilizando una conexión de socket manejada por la biblioteca mini-tor del malware y las API de socket.
Control remoto
Los operadores del bot pueden usar el servidor CnC para enviar una serie de cargas útiles al sistema infectado para su ejecución. SystemBC puede analizar y ejecutar blobs de datos EXE o DLL pasados a través de la conexión Tor, el código shell, los scripts VBS, los comandos de Windows y los scripts por lotes y los scripts de PowerShell.
Para los comandos VBS, BAT y CMD, el bot crea un archivo con un nombre aleatorio en el directorio% TEMP% y crea una tarea programada para el script. Para los comandos de Powershell, crea una tarea programada para el script y agrega la siguiente línea de comando para ocultarlo:
'-WindowStyle Hidden -ep bypass -file "'
Si los datos recibidos no se analizan como un script, busca un encabezado MZ en los datos para verificar si es un ejecutable de Windows. Si es así, SystemBC lo carga directamente para su ejecución sin escribir un archivo. Si los datos recibidos del CnC no tienen ninguna firma MZ, el bot asume que es un código shell y genera un hilo para ejecutarlo. Y si se determina que son datos binarios de DLL, SystemBC cargará el dll usando execute_pe_from_mem_thread y llamará a su función de exportación usando call_dll_export_function_thread.
De ataques masivos a ataques dirigidos
En conjunto, estas capacidades brindan a los atacantes la capacidad de apuntar y disparar para realizar descubrimientos, filtraciones y movimientos laterales con scripts y ejecutables empaquetados, sin tener que tener las manos en el teclado. En un principio, estas capacidades estaban destinadas a la explotación masiva, pero ahora se han incorporado al kit de herramientas para ataques dirigidos, incluido el ransomware.
En un ataque de Ryuk en septiembre, SystemBC se implementó en el controlador de dominio de la red objetivo, aparentemente implementado por CobaltStrike. Y en noviembre, vimos SystemBC en asociación con un ataque Egregor, nuevamente asociado con Cobalt Strike (aunque no está claro cuál introdujo a cuál).
En estos casos, SystemBC se implementó como una de varias herramientas básicas para establecer la persistencia en la red de destino. En los ataques de Ryuk que vimos con SystemBC, el compromiso inicial provino de mensajes de phishing que entregaron el malware Buer Loader, otros ataques en la misma campaña utilizaron Bazar o Zloader. Los ataques de Egregor que vimos utilizaron otro cargador lanzado por correos electrónicos maliciosos: Qbot.
Todos estos ataques parecen haber sido lanzados por afiliados de los operadores de ransomware, o por las propias bandas de ransomware a través de múltiples proveedores de malware como servicio. Involucraban días o semanas de tiempo en las redes de los objetivos y la exfiltración de datos. SystemBC es una herramienta atractiva en este tipo de operaciones porque permite trabajar varios objetivos al mismo tiempo con tareas automatizadas, lo que permite la implementación sin intervención del ransomware utilizando herramientas integradas de Windows si los atacantes obtienen las credenciales adecuadas.
Afortunadamente, SystemBC es detectado por muchas herramientas anti-malware, incluidas las de Sophos (a través de firmas y aprendizaje automático). Los atacantes continúan usando SystemBC con éxito porque aprovechan la protección contra malware inconsistente en las organizaciones o aprovechan las credenciales legítimas para deshabilitar alguna protección contra malware.
Puedes obtener una lista de los IOC para SystemBC en la página de GitHub de SophosLabs.