SectopRAT: la nueva versión agrega comunicación encriptada

Infecciones y alias

Las nuevas apariciones de los intentos de infección de SectopRAT en nuestra telemetría me llevaron a investigar la amenaza que parecía estar en su infancia en el momento de la primer artículo . El malware se ha perfeccionado y ha obtenido más funciones desde entonces. Para resumir el primer artículo: SectopRAT utiliza un segundo escritorio oculto para permitir el control remoto. Algunas partes parecen inacabadas.

Si bien el artículo anterior establece que SectopRAT se mencionó por primera vez el 15 de noviembre de 2019, ahora descubrí que los tweets anteriores de @nao_sec de marzo de 2019 usan un nombre diferente para el malware: ArechClient . Otros alias son 1xxbot , ArechSoft y Asatafar . La mayoría de los nombres provienen del nombre del módulo de la ruta RAT o PDB. Este nombre ha cambiado en el curso del desarrollo, probablemente para evadir la detección e identificación. En aras de la coherencia y claridad me quedo con SectopRAT debido a que el uso de un seg ond mesa superiorparece ser la característica principal más notable. Muchas políticas de nomenclatura de antivirus también prohíben el uso de un nombre elegido por el desarrollador de malware.

Tres capas de embalaje

La muestra analizada tiene tres capas que es necesario desembalar. El primero está ofuscado con SmartAssembly. El método con el token 0x060001C6 invoca una biblioteca de inyección .NET (vea la imagen del código desofuscado a continuación).

La biblioteca de inyección [2] tiene una configuración que permite múltiples opciones, una de ellas es RunPE para archivos nativos. Sin embargo, solo se usa una pequeña parte que descomprimirá un archivo que está incrustado como matriz de bytes y lo ejecutará. El código de la captura de pantalla a continuación muestra el método que se puede volver a enviar para el código auxiliar de descompresión.

Este archivo descomprimido resulta ser otra biblioteca de inyección [3] . A primera vista, las dos bibliotecas [2] [3] se ven diferentes porque usan una ofuscación diferente. Pero en realidad son la misma biblioteca de inyecciones. Esto no tiene sentido desde la perspectiva de un atacante, ya que agregar más capas del mismo brinda una amplia oportunidad para detectar el código del stub del empaquetador, al menos más que tener solo uno. Si una ofuscación evade el software antivirus, es posible que la otra no.

La biblioteca descomprimida [3] es la última capa empaquetada y finalmente realiza la inyección de SectopRAT [4] en su propio proceso hijo a través del clásico RunPE.

Configuración y comunicación CnC cifrada

La muestra analizada [1] guarda los datos de configuración, así como la IP del servidor en una clase diferente. La clase que contenía la IP en versiones anteriores ahora muestra el localhost. Lo más probable es que se trate de un intento de evadir la extracción automática del servidor de comando y control (CnC). Si tales herramientas de extracción son estáticas, ahora podrían producir 127.0.0.1, lo que no generará tanta sospecha como una extracción de IP que no funciona. El análisis dinámico, por supuesto, todavía muestra la IP real.

La configuración ahora tiene entradas adicionales, como un ID de compilación y una clave de cifrado para la comunicación CnC. El ID de compilación muestra “Build 3”.

La configuración simulada de SectopRAT con localhost
La configuración real de SectopRAT

La clave de cifrado de comunicación CnC se guarda en una matriz de 32 bytes denominada rawData . Esta clave cambia con diferentes versiones de compilación. Los datos de comunicación CnC se cifran y descifran con AES256 utilizando dicha clave y un vector de inicialización de 16 bytes generado aleatoriamente (IV). Este IV se antepone a los datos cifrados antes de enviarlos.

Nuevos comandos

Además del cifrado agregado, el servidor también admite varios comandos nuevos. Estos se activan a través de una cadena JSON (un formato de intercambio de datos) que contiene una de las siguientes cadenas de comandos.

La mayoría de estas cadenas de comandos aún no están implementadas. Los que están allí soportan principalmente el cifrado CnC. Las cadenas no implementadas pintan una imagen de las actualizaciones planificadas de SectopRAT que pueden incluir la captura de pantalla, el control de la resolución de la pantalla y el soporte de pantalla completa. El propósito de la lista de participantes y del comando ReceiveControlInt no está claro. ReceiveServerAfkSystem puede ser una notificación de que el usuario está “lejos del teclado”, lo que significa que el sistema no se utiliza actualmente.

Otros cambios

SectopRAT ya no tiene código relacionado con la persistencia. Esta pieza probablemente se subcontrató al cargador.

Evasión de las reglas de caza de Yara

En mi último artículo sobre SectopRAT publiqué una regla de Yara que contenía tres nombres de métodos, una enumeración y el nombre del módulo. Se ha cambiado el nombre de todas las cadenas de métodos y módulos, excepto una, en la compilación más reciente:

  • EnoughSpace -> EnoghtSpace
  • RemoteClient -> rsddsrrg
  • InitHDesktop -> WaitReq

Puede que esto no sea una coincidencia. Sabemos que los desarrolladores de malware leen las noticias. Esta es la razón por la que las reglas públicas de Yara a menudo solo son adecuadas para recolectar muestras pasadas. Recomiendo a los cazadores de malware después de publicar las reglas de detección que tengan un segundo conjunto de reglas privadas completamente diferentes para mantenerse al día con las muestras actuales.

Conclusión

SectopRAT se usa activamente para infectar sistemas, lo cual es evidente por nuestra telemetría, así como por investigadores como @nao_sec que encontraron que el malware se distribuía a través del kit de explotación RIG.Los métodos stub en el código muestran qué funcionalidad se planea agregar pronto. Eso puede incluir captura de pantalla, compatibilidad con pantalla completa y configuración de resolución de pantalla.

La denominación de malware es, una vez más, un tema difícil de abordar. Se desconocían las menciones anteriores del malware debido a los diferentes nombres de los investigadores. A menudo se trata de tener un poco de suerte y buenos contactos con otros investigadores para ver la conexión. De momento no hay otra solución para eso que documentar los alias en blogs y recursos públicos.

Resumen de hechos e IoC

Alias:Alias 1xxbot, ArechClient, ArechSoft, Arech, AsataFar, AsataFarClient

Primera aparición conocida:

marzo de 2019 https://twitter.com/nao_sec/status/1103474183676125185

TCP IP y puerto: 54.194.254.16:15647

Identificación de compilación: Build 3

Fecha de compilación: 2020-10-19 19:07:33

Compilador: .NET Framework 4

La IP actual del servidor guardada en: % LOCALAPPDATA% \ Microsoft \ crds.rtt

Clave AES para comunicación CnC: 64 6a 14 63 72 7f d8 7d c5 f5 30 46 8f 7f b0 59 28 85 67 d2 38 64 e 5e 8d 91 d2 4b 45 d1 25 d5

Enlace:https://www.gdatasoftware.com/blog/sectoprat-adds-encrypted-communication Blog de G DATA