Desde abril de 2024, el equipo de desarrollo avanzado de Sednit ha reaparecido con un conjunto de herramientas moderno centrado en dos implants emparejados, BeardShell y Covenant, cada uno utilizando un proveedor de nube distinto para asegurar resiliencia. Este enfoque de dual‑implant permitió vigilancia a largo plazo sobre personal militar ucraniano. De forma interesante, estos toolsets actuales muestran un linaje de código directamente relacionado con los implants del grupo de la era de 2010.

Puntos clave de esta publicación:

  • Los investigadores de ESET rastrearon la reactivación del equipo avanzado de implants de Sednit hasta un caso en Ucrania en 2024, donde se desplegó un keylogger llamado SlimAgent.

  • El código de SlimAgent fue derivado de Xagent, la backdoor insignia de Sednit en la década de 2010.

  • Durante esa operación, se desplegó BeardShell, un segundo implant desarrollado por Sednit. Ejecuta comandos de PowerShell mediante un proveedor de nube legítimo que es utilizado como su canal de C&C.

  • BeardShell utiliza una técnica de ofuscación distintiva que también se encuentra en Xtunnel, la herramienta de network pivoting de Sednit de la década de 2010.

  • A lo largo de 2025 y 2026, Sednit desplegó repetidamente BeardShell junto con Covenant, una tercera pieza clave de su toolkit moderno.

  • Sednit modificó profundamente este implant de código abierto para soportar espionaje a largo plazo e implementar un nuevo protocolo de red basado en otro proveedor de nube legítimo.

Perfil de Sednit

El grupo Sednit – también conocido como APT28, Fancy Bear, Forest Blizzard o Sofacy – ha estado activo por lo menos desde 2004.

El Departamento de Justicia de los Estados Unidos identificó al grupo como uno de los responsables del hackeo al Democratic National Committee (DNC) justo antes de las elecciones estadounidenses de 2016, y lo vinculó con la Unidad 26165 del GRU, una agencia de inteligencia de la Federación Rusa dentro de la Dirección Principal de Inteligencia del ejército ruso.

También se presume que el grupo estuvo detrás del ataque a la cadena global de televisión TV5Monde, la filtración de correos de la World Anti-Doping Agency (WADA) y muchos otros incidentes. 

¿Qué fue del equipo avanzado de implants de Sednit?

El grupo Sednit es, posiblemente, uno de los grupos APT con el historial más impresionante de compromisos. Entre sus intrusiones conocidas más destacadas se encuentran el parlamento alemán (2015), la cadena de televisión francesa TV5Monde (2015) y el Democratic National Committee de los Estados Unidos (2016).

Durante esos años de ataques de alto perfil, Sednit dependía de un conjunto amplio de implants personalizados, que iba desde backdoors de espionaje completamente desarrolladas, como Xagent y Sedreco, hasta toolkits especializados como la herramienta de network pivoting Xtunnel y el data stealer para máquinas air‑gapped USBStealer. En 2016, documentamos extensamente este arsenal sofisticado en nuestro white paper En Route with Sednit.

Sin embargo, en 2019 ocurrió un cambio. Desde entonces, y hasta hace poco, los implants de alto nivel de Sednit rara vez se observaron in the wild (con unas pocas excepciones, como el malware Graphite, documentado por Trellix en 2021), mientras que el grupo incrementó sus operaciones de phishing. El malware personalizado utilizado en estos ataques de phishing consistía principalmente en implants simples basados en scripts. Las razones detrás de ese cambio técnico siguen siendo un misterio para nosotros

Esta publicación documenta la reaparición del arsenal personalizado de alto nivel de Sednit desde 2024. Aquí nos enfocamos en atribuir sus toolsets modernos, ya que publicaciones anteriores de CERT-UA y Sekoia han cubierto su funcionamiento interno. y Sekoia han cubierto su funcionamiento interno.

Equipo de desarrollo interno altamente especializado

Sednit mantiene el desarrollo interno de sus implants de espionaje, un rasgo distintivo que respalda un enfoque de atribución basado en artefactos de código compartido.

Para ilustrar esta capacidad, consideremos Xagent, la backdoor insignia del grupo durante la década de 2010. En 2015, encontramos el código fuente de Xagent en un servidor Linux en Ucrania, dejado en un archivo sin protección después de que los atacantes lo compilaran.

La Figura 1 muestra que los plugins y canales de C&C se habilitaban o deshabilitaban comentando o descomentando partes del código —seleccionados por objetivo según los requisitos operativos—, lo que deja pocas dudas de que los desarrolladores y operadores trabajaban en estrecha coordinación.

Figure 1. Xagent source code with hardcoded instantiations of plugins and communication channels (2015)
Figura 1. Código fuente de Xagent con instancias hardcoded de plugins y canales de comunicación (2015)

Además, la acusación del Departamento de Justicia de los Estados Unidos de 2018 establece explícitamente que Xagent fue desarrollado internamente, acusando a miembros específicos de la Unidad 26165 del GRU de ser sus desarrolladores.

En esta publicación del blog aprovechamos esa huella de desarrollo como un mecanismo de atribución. Al rastrear artefactos de código compartidos entre distintos implants, vinculamos los toolsets del grupo de la era de 2010 con los que se utilizan actualmente.

SlimAgent

Nuestro relato sobre las actividades modernas de Sednit comienza con SlimAgent, un implant de espionaje descubierto en una máquina gubernamental ucraniana por CERT-UA en abril de 2024. SlimAgent es una herramienta de espionaje simple pero eficiente, capaz de registrar pulsaciones de teclado, capturar pantallas y recolectar datos del portapapeles.

Ancestros

Curiosamente, identificamos en la telemetría de ESET muestras previamente desconocidas con código similar a SlimAgent, que fueron desplegadas ya en 2018 —seis años antes del caso ucraniano— contra entidades gubernamentales en dos países europeos. Estas muestras exhiben fuertes similitudes a nivel de código con SlimAgent, incluyendo un bucle de recolección de datos de seis pasos idéntico, mostrado en la Figura 2. Cada paso está implementado de una manera casi idéntica, como se ilustra en la Figura 3 con la rutina responsable de registrar el ejecutable de la ventana en primer plano; las únicas diferencias radican en la estructura interna de los datos.

Figure 2. Spying loop of 2024 SlimAgent (left) and 2018 samples (right)
Figura 2. Bucle de espionaje de 2024 SlimAgent (izquierda) y muestras de 2018 (derecha)
Figure 3. Logging foreground window in 2024 SlimAgent (left) and 2018 samples (right)
Figura 3. Ventana de primer plano de registro en 2024 SlimAgent (izquierda) y muestras de 2018 (derecha)

SlimAgent incluye varias funcionalidades que estaban ausentes en las muestras de 2018, como el cifrado de los registros recolectados. No obstante, es notable que muestras desplegadas con seis años de diferencia exhiban similitudes de código tan fuertes.

Por lo tanto, evaluamos con alta confianza que tanto las muestras de 2018 como la muestra de SlimAgent de 2024 fueron construidas a partir de la misma codebase. La pregunta restante es: ¿de dónde se originaron las muestras de 2018?

Un linaje infame

Las muestras de 2018 tienen un nombre interno que puede resultar familiar para otros analistas: RemoteKeyLogger.dll. Este es el nombre del módulo de keylogging de Xagent, la backdoor de espionaje insignia de Sednit entre 2012 y 2018 (documentada en nuestro white paper En Route with Sednit).

Al analizar algunas muestras antiguas de Xagent (por ejemplo, SHA‑1: D0DB619A7A160949528D46D20FC0151BF9775C32), pudimos encontrar similitudes notables, como la que se muestra en la Figura 4. En este código, la lógica de keylogging se ejecuta solo si el cursor del mouse no se ha movido más de 10 píxeles (comparando el cuadrado de la distancia entre la última posición y la actual con 0x64, es decir, 100), y está implementada con las mismas llamadas a la API.

Figure 4. Code comparison between SlimAgent (left) and Xagent (right)
Figura 4. Comparación de código entre SlimAgent (izquierda) y Xagent (derecha)

Como otro ejemplo, SlimAgent emite sus registros de espionaje en formato HTML, con el nombre de la aplicación, las pulsaciones de teclado registradas y el nombre de la ventana en azul, rojo y verde, respectivamente. La Figura 5 muestra un ejemplo generado mientras se escribía y copiaba texto en un archivo TXT recién creado utilizando notepad.exe. El keylogger de Xagent también produce registros HTML utilizando el mismo esquema de colores. Esto se ilustra en la Figura 6 con la definición de las etiquetas HTML de color correspondientes en el código fuente de Xagent de 2015.

Figure 5. Example of an HTML report produced by SlimAgent
Figura 6. Ejemplo de un informe HTML producido por SlimAgent
Figure 6. Xagent source code with definitions of the log colors (2015)
Figura 6. Código fuente de Xagent con definiciones de los colores del registro (2015)

Basándonos en estas similitudes, creemos que SlimAgent es una evolución del módulo de keylogging de Xagent, que ha sido desplegado como un componente independiente desde al menos 2018. Además, dado que Xagent es un toolset personalizado utilizado exclusivamente por el grupo Sednit durante más de seis años, atribuimos SlimAgent a Sednit con alta confianza.

Esto plantea una pregunta: ¿por qué reutilizaría Sednit un implant derivado de una codebase tan conocida? Una posible explicación es una capacidad de desarrollo reducida. Sin embargo, SlimAgent no fue el único implant encontrado en la máquina ucraniana en 2024; BeardShell —una incorporación mucho más reciente al arsenal personalizado de Sednit— también fue desplegado allí.

BeardShell

BeardShell es un implant sofisticado, capaz de ejecutar comandos de PowerShell dentro de un entorno de ejecución .NET, mientras aprovecha el servicio de almacenamiento en la nube legítimo Icedrive como su canal de C&C.

Este componente lleva las marcas de un esfuerzo de desarrollo intenso y es la razón principal por la que creemos que el equipo de desarrollo avanzado de Sednit está nuevamente activo. Por ejemplo, dado que Icedrive no ofrece una API pública documentada, los desarrolladores reimplementaron las solicitudes realizadas por el cliente oficial de Icedrive. Cada vez que cambios en la API privada de Icedrive interrumpen las comunicaciones de BeardShell, los desarrolladores de Sednit producen una versión actualizada en cuestión de horas para restaurar el acceso.

Un eco matemático del pasado

Si bien no pudimos encontrar otras familias de malware directamente relacionadas con BeardShell, descubrimos una similitud sorprendente con herramientas antiguas de Sednit, comenzando con un inicializador estático en C++ que se ejecuta al inicio mismo de BeardShell. El propósito de esta rutina, cuyo código se muestra en la Figura 7, es descifrar el authentication token para el almacenamiento en la nube de Icedrive.

Figure 7. Static initializer to decrypt Icedrive authentication token
Figura 7. Inicializador estático para descifrar el token de autenticación de Icedrive

La rutina contiene un ejemplo clásico de la técnica de ofuscación conocida como opaque predicate insertion (destacada en el recuadro rojo de la Figura 7):

  • Se utiliza una expresión aritmética que evalúa a cero para todas las entradas posibles —denominadas x y y en la Figura 7— como condición de un bucle while. En la práctica, el cuerpo del bucle nunca se ejecuta, porque el predicado  2 ( x2 + 1) + 2 = y2 + 5 no tiene solución entera.
  • El cuerpo de este bucle artificial consiste en dos instrucciones originales (mostradas en el recuadro amarillo de la Figura 7), más una actualización ficticia de la variable de entrada y para imitar la estructura de un cuerpo de bucle real.

  • Tras el bucle falso aparecen las dos instrucciones originales que sí se ejecutarán: una llamada a la rutina de descifrado del token de Icedrive y el registro de una rutina de limpieza.

Los opaque predicates se utilizan típicamente para dificultar el análisis estático, pero no resultan particularmente útiles en una rutina tan pequeña. Cabe señalar que otros inicializadores estáticos de BeardShell —que no manejan datos importantes— están protegidos con la misma técnica, por lo que parece que los desarrolladores simplemente aplicaron la protección a todos ellos de manera indiscriminada.

Ahora, la fórmula del predicado puede simplificarse (restando 2 en ambos lados) a  2 ( x2 + 1) = y2 + 3 . Curiosamente, ese mismo predicado opaco se utilizó en Xtunnel, una herramienta de network pivoting utilizada exclusivamente por Sednit, de 2013 a 2016, y documentada en nuestro white paper En route with Sednit. La figura 8 muestra un ejemplo de código ofuscado de Xtunnel (SHA-1: 99B454262DC26B081600E844371982A49D334E5E), con una instrucción if cuyo predicado no puede ser verdadero.

Figure 8. Xtunnel opaque predicate (2015)
Figura 8. Predicado opaco de Xtunnel (2015)

No solo es idéntico el predicado al utilizado en BeardShell, sino que el bloque que nunca se ejecuta está construido de manera similar: duplicando las dos instrucciones originales (en el recuadro amarillo) y realizando una actualización ficticia de una de las variables de entrada del predicado (en este caso, x).

Hasta donde sabemos, este opaque predicate no se ha observado en ningún otro lugar excepto en Xtunnel. Incluso podría uno preguntarse si no se habría utilizado como un false flag, especialmente dado que se mencionó públicamente como algo único de Xtunnel, por ejemplo en una presentación de BlackHat Europe 2016. Sin embargo, una operación de false flag probablemente habría utilizado el predicado idéntico, no la variante con +2 en ambos lados de la ecuación.

The shared use of this rare obfuscation technique, combined with its co‑location with SlimAgent, leads us to assess with high confidence that BeardShell is part of Sednit’s custom arsenal.

Desde el caso inicial de 2024, Sednit ha continuado desplegando BeardShell durante 2025 y hasta 2026, principalmente en operaciones de espionaje de largo plazo dirigidas a personal militar ucraniano. Para mantener acceso persistente a estos objetivos de alto valor, Sednit despliega sistemáticamente otro implant junto con BeardShell: Covenant, el componente final de su arsenal moderno.

Covenant

Covenant es un framework de explotación posterior .NET, de código abierto, lanzado por primera vez en febrero de 2019. Permite la creación y gestión de implants .NET a través de un panel de control basado en web —véase el ejemplo de la Figura 9— y proporciona más de 90 tareas integradas que soportan capacidades como la exfiltración de datos, la monitorización de objetivos y el network pivoting.

Figure 9. Covenant dashboard
Figura 9. Cuadro de mandos de Covenant

Desde 2023, los desarrolladores de Sednit han realizado varias modificaciones y experimentos con Covenant para establecerlo como su implant de espionaje principal, manteniendo BeardShell principalmente como respaldo en caso de que Covenant encuentre problemas operativos, como la caída de su infraestructura basada en la nube.

Por ejemplo, Sednit reemplazó el mecanismo original de generación de nombres de implants de Covenant por un método determinista (véase la Figura 10), produciendo identificadores derivados de características de la máquina en lugar de generar un nuevo valor aleatorio en cada ejecución (como se ve en la columna Name de la sección Grunts en la Figura 9). Esta modificación ilustra cómo Sednit adaptó Covenant para operaciones de espionaje de largo plazo, en lugar de actividades de posexplotación de corto plazo: en operaciones prolongadas, que la misma máquina aparezca bajo distintos identificadores después de cada reinicio saturaría el panel y reduciría la eficiencia operativa.

Figure 10. Grunt ID generation routine added by Sednit
Figura 10. Rutina de generación de ID de Grunt añadida por Sednit

Sednit también modificó el flujo de ejecución de Covenant, que es un implant de dos etapas, probablemente para evitar detección basada en comportamiento. En lugar de hacer que el downloader de primera etapa invoque el primer método del ensamblado .NET de la segunda etapa usando un índice fijo (como estaba implementado originalmente), introdujeron un atributo DisplayName y recorrieron los atributos de los métodos para encontrar el punto de entrada. En variantes de principios de 2023, los desarrolladores de Sednit incluso experimentaron con incrustar ambas etapas en un solo binario.

Covenant admite oficialmente solo HTTP y SMB, lo que lleva a la modificación más significativa que Sednit hizo a Covenant: la incorporación de un protocolo de red basado en nube. Para lograr esto, los desarrolladores de Sednit aprovecharon el proyecto C2Bridge, un framework independiente creado por el autor original de Covenant para facilitar la integración de nuevos protocolos de comunicación. Con C2Bridge, los desarrolladores solo necesitan implementar una clase que cumpla con la interfaz IMessenger del lado del implant, proporcionando métodos Read y Write para gestionar comunicaciones de bajo nivel. C2Bridge puede ejecutarse como un componente independiente en el controlador para retransmitir mensajes, mientras que los nuevos implants generados por el controlador utilizan los métodos de comunicación implementados.

La Figura 11 muestra las clases introducidas por los desarrolladores de Sednit para comunicarse con el proveedor de nube Filen, utilizado desde julio de 2025. La clase FilenMessenger implementa IMessenger y se basa en FilenClient para interactuar con la API de Filen. Previamente, en 2023, el Covenant de Sednit abusó del servicio en la nube legítimo pCloud, y en 2024–2025, Koofr, utilizando implementaciones similares.

Figure 11. Additional Covenant classes handling communications with a Filen cloud drive
Figura 11. Clases adicionales de Covenant que gestionan las comunicaciones con una unidad en la nube de Filen

Estas adaptaciones muestran que los desarrolladores de Sednit adquirieron una experiencia profunda en Covenant, un implant cuyo desarrollo oficial cesó en abril de 2021 y que podría haber sido considerado en desuso por los defensores. Esta sorprendente elección operativa parece haber dado resultado: Sednit ha confiado con éxito en Covenant durante varios años, particularmente contra objetivos seleccionados en Ucrania. Por ejemplo, en 2025, nuestro análisis de las unidades en la nube controladas por Sednit para Covenant reveló máquinas que habían sido monitoreadas durante más de seis meses. En enero de 2026, Sednit también desplegó Covenant en una serie de campañas de spearphishing que explotaban la vulnerabilidad CVE‑2026‑21509, según lo reportado por CERT‑UA.

Conclusión

En esta publicación del blog hemos mostrado que el equipo de desarrollo avanzado de Sednit está nuevamente activo, operando un arsenal centrado en dos implants —BeardShell y Covenant— desplegados en tándem y cada uno aprovechando un proveedor de nube distinto. Esta configuración permite a los operadores restablecer el acceso rápidamente si la infraestructura de uno de ellos es derribada. Creemos que esta estrategia de dual‑implant no es nueva. Por ejemplo, en la campaña de 2021 documentada por Trellix, Sednit desplegó dos implants en paralelo: Graphite, que utilizaba OneDrive como canal de C&C, y PowerShell Empire, que dependía de infraestructura dedicada separada.

La sofisticación de BeardShell y las amplias modificaciones realizadas a Covenant demuestran que los desarrolladores de Sednit siguen siendo plenamente capaces de producir implants personalizados avanzados. Además, el código y las técnicas compartidas que vinculan estas herramientas con sus predecesores de la era de 2010 sugieren fuertemente continuidad dentro del equipo de desarrollo.

Esto plantea la pregunta de qué estuvieron haciendo estos desarrolladores durante todos estos años, cuando la comunidad de seguridad observaba principalmente actividad de phishing por parte de Sednit. Una posibilidad es que los esfuerzos de desarrollo avanzado se reactivaran tras la invasión rusa de Ucrania. Otra es que nunca hayan dejado de trabajar, sino que simplemente se volvieron más cautelosos.

Para cualquier consulta sobre nuestra investigación publicada en WeLiveSecurity, por favor contáctenos en threatintel@eset.com.
ESET Research ofrece informes privados de inteligencia APT y fuentes de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.

IoCs

Archivos

Puede encontrar una lista completa de indicadores de compromiso (IoCs) y muestras en nuestro repositorio GitHub.

SHA-1 Filename Detection Description
5603E99151F8803C13D48D83B8A64D071542F01B eapphost.dll Win64/Spy.KeyLogger.LS SlimAgent.
6D39F49AA11CE0574D581F10DB0F9BAE423CE3D5 tcpiphlpsvc.dll Win64/BeardShell.A BeardShell.

Técnicas ATT&CK de MITRE

Esta tabla se ha creado utilizando la versión 18 del marco MITRE ATT&CK.

Tactic ID Name Description
Resource Development T1583.006 Acquire Infrastructure: Web Services BeardShell relies on Icedrive cloud storage.
Covenant relies on Filen cloud storage.
T1587.001 Develop Capabilities: Malware BeardShell and SlimAgent are custom malware.
Execution T1059.001 Command and Scripting Interpreter: PowerShell BeardShell executes PowerShell commands.
T1129 Shared Modules BeardShell and SlimAgent are full-fledged DLL files.
Privilege Escalation T1546.015 Event Triggered Execution: Component Object Model Hijacking BeardShell and SlimAgent are made persistent by hijacking COM objects.
Defense Evasion T1027 Obfuscated Files or Information BeardShell Icedrive token decryption is obfuscated.
T1140 Deobfuscate/Decode Files or Information BeardShell decrypts its strings.
T1480 Execution Guardrails BeardShell only executes in taskhost.exe or taskhostw.exe.
SlimAgent only executes in explorer.exe.
T1564 Hide Artifacts SlimAgent logs are written into a hidden file.
Discovery T1082 System Information Discovery BeardShell sends a fingerprint of the compromised machine.
Collection T1005 Data from Local System BeardShell, Covenant, and SlimAgent collect data from a compromised machine.
T1056.001 Input Capture: Keylogging SlimAgent performs keylogging.
T1113 Screen Capture SlimAgent captures screenshots of the compromised machine.
T1115 Clipboard Data SlimAgent collects clipboard data.
Command and Control T1001 Data Obfuscation BeardShell exfiltrates data in fake images.
T1071.001 Application Layer Protocol: Web Protocols BeardShell and Covenant use HTTPS for C&C.
T1102 Web Service BeardShell gets commands from Icedrive.
Covenant gets commands from Filen.
T1573.002 Encrypted Channel: Asymmetric Cryptography BeardShell communications with Icedrive are encrypted using HTTPS.
Covenant communications with its controller uses RSA-encrypted session keys.
Exfiltration T1567 Exfiltration Over Web Service BeardShell exfiltrates data to Icedrive.
Covenant exfiltrates data to Filen.