28.8 C
Canberra
Wednesday, March 11, 2026

Sednit reloaded: Again within the trenches


Since April 2024, Sednit’s superior improvement staff has reemerged with a contemporary toolkit centered on two paired implants, BeardShell and Covenant, every utilizing a unique cloud supplier for resilience. This twin‑implant strategy enabled lengthy‑time period surveillance of Ukrainian army personnel. Curiously, these present toolsets present a direct code lineage to the group’s 2010‑period implants.

Key factors of this blogpost:

  • ESET researchers traced the reactivation of Sednit’s superior implant staff to a 2024 case in Ukraine, the place a keylogger named SlimAgent was deployed.
  • SlimAgent code was derived from Xagent, Sednit’s flagship backdoor from the 2010s.
  • Throughout that operation, BeardShell, a second Sednit‑developed implant, was deployed. It executes PowerShell instructions by way of a reliable cloud supplier used as its C&C channel.
  • BeardShell makes use of a particular obfuscation approach additionally present in Xtunnel, Sednit’s community‑pivoting device from the 2010s.
  • Throughout 2025 and 2026, Sednit repeatedly deployed BeardShell along with Covenant, a 3rd main piece of its trendy toolkit.
  • Sednit closely reworked this open‑supply implant to help lengthy‑time period espionage and to implement a brand new community protocol based mostly on yet one more reliable cloud supplier.

Sednit profile

The Sednit group – also called APT28, Fancy Bear, Forest Blizzard, or Sofacy – has been working since at the least 2004. The US Division of Justice named the group as a type of chargeable for the Democratic Nationwide Committee (DNC) hack simply earlier than the 2016 US elections and linked the group to Unit 26165 of the GRU, a Russian Federation intelligence company throughout the Primary Intelligence Directorate of the Russian army. The group can also be presumed to be behind the hacking of worldwide tv community TV5Monde, the World Anti-Doping Company (WADA) e mail leak, and plenty of different incidents.

What grew to become of Sednit’s superior implant staff?

The Sednit group is arguably one of many APT teams with probably the most spectacular file of compromised targets. Notable amongst its recognized compromises are the German parliament (2015), the French tv community TV5Monde (2015), and the United States Democratic Nationwide Committee (2016).

Throughout these years of high-profile assaults, Sednit relied on an in depth set of customized implants, starting from full-fledged espionage backdoors resembling Xagent and Sedreco, to specialised toolkits such because the network-pivoting device Xtunnel and the information stealer for air-gapped machines USBStealer. In 2016, we extensively documented this subtle arsenal in our white paper En Route with Sednit.

Nevertheless, in 2019, a shift occurred. Since then, and till not too long ago, Sednit’s high-end implants have not often been noticed within the wild (with only some exceptions, such because the Graphite malware documented by Trellix in 2021), whereas the group concurrently ramped up its phishing operations. The customized malware utilized in these phishing assaults consisted principally of straightforward script-based implants. The explanations behind that technical shift stay a thriller to us.

This blogpost paperwork the reappearance of Sednit’s high-end customized arsenal since 2024. Right here we give attention to attributing its trendy toolsets, as prior publications by CERT-UA and Sekoia have lined their inside workings.

A boutique developer store

Sednit maintains in-house improvement of its espionage implants, a particular trait that helps an attribution strategy based mostly on shared code artifacts.

For example this functionality, take into account Xagent, the group’s flagship backdoor in the course of the 2010s. In 2015, we discovered the Xagent supply code on a Linux server in Ukraine, left in an unprotected archive after the attackers had compiled it. Determine 1 exhibits that plugins and C&C channels had been enabled or disabled by commenting code in or out – chosen per goal in accordance with operational necessities – leaving little doubt that builders and operators labored in shut coordination.

Figure 1. Xagent source code with hardcoded instantiations of plugins and communication channels (2015)
Determine 1. Xagent supply code with hardcoded instantiations of plugins and communication channels (2015)

As well as, the 2018 US DOJ indictment explicitly states that Xagent was developed in-house, accusing particular members of GRU Unit 26165 of being its builders.

On this blogpost, we leverage that improvement footprint as an attribution mechanism. By monitoring shared code artifacts throughout completely different implants, we hyperlink the group’s 2010-era toolsets to these at present in use.

SlimAgent

Our account of recent Sednit actions begins with SlimAgent, an espionage implant found on a Ukrainian governmental machine by CERT-UA in April 2024. SlimAgent is an easy but environment friendly spying device able to logging keystrokes, capturing screenshots, and gathering clipboard knowledge.

Ancestors

Curiously, we recognized in ESET telemetry beforehand unknown samples with code just like SlimAgent, which had been deployed as early as 2018 – six years earlier than the Ukrainian case – in opposition to governmental entities in two European nations. These samples exhibit sturdy code-level similarities with SlimAgent, together with an an identical six-step data-collection loop, proven in Determine 2. Every step is applied in a virtually an identical method, as illustrated in Determine 3 with the routine chargeable for logging the foreground window’s executable; the one variations lie within the format of the interior knowledge buildings.

Figure 2. Spying loop of 2024 SlimAgent (left) and 2018 samples (right)
Determine 2. Spying loop of 2024 SlimAgent (left) and 2018 samples (proper)
Figure 3. Logging foreground window in 2024 SlimAgent (left) and 2018 samples (right)
Determine 3. Logging foreground window in 2024 SlimAgent (left) and 2018 samples (proper)

SlimAgent contains a number of options that had been absent from the 2018 samples, resembling encryption of the collected logs. However, it’s outstanding that samples deployed six years aside exhibit such sturdy code similarities.

We subsequently assess with excessive confidence that each the 2018 samples and the 2024 SlimAgent pattern had been constructed from the identical codebase. The remaining query is: the place did the 2018 samples originate?

An notorious lineage

The 2018 samples have an inside title which will resonate with fellow analysts: RemoteKeyLogger.dll. That is the title of the keylogging module of Xagent, Sednit’s flagship espionage backdoor from 2012 to 2018 (documented in our white paper En Route with Sednit).

Digging into some previous Xagent samples (e.g., SHA-1: D0DB619A7A160949528D46D20FC0151BF9775C32), we had been certainly capable of finding some hanging similarities, such because the one proven in Determine 4. On this code, the keylogging logic is executed provided that the mouse cursor has not moved greater than 10 pixels (by evaluating the sq. of the gap between the final and the present place with 0x64, i.e., 100), and it’s applied with the identical API calls.

Figure 4. Code comparison between SlimAgent (left) and Xagent (right)
Determine 4. Code comparability between SlimAgent (left) and Xagent (proper)

As one other instance, SlimAgent emits its espionage logs within the HTML format, with the appliance title, the logged keystrokes, and the window title in blue, pink, and inexperienced, respectively. Determine 5 exhibits an instance generated whereas typing and copying textual content in a newly created TXT file utilizing notepad.exe. The Xagent keylogger additionally produces HTML logs utilizing the identical shade scheme. That is illustrated in Determine 6 with the definition of the corresponding shade HTML tags within the 2015 Xagent supply code.

Figure 5. Example of an HTML report produced by SlimAgent
Determine 5. Instance of an HTML report produced by SlimAgent
Figure 6. Xagent source code with definitions of the log colors (2015)
Determine 6. Xagent supply code with definitions of the log colours (2015)

Primarily based on these similarities, we consider that SlimAgent is an evolution of the Xagent keylogger module, which has been deployed as a standalone part since at the least 2018. Furthermore, as a result of Xagent is a customized toolset used completely by the Sednit group for greater than six years, we attribute SlimAgent to Sednit with excessive confidence.

This raises a query: why would Sednit reuse an implant derived from such a widely known codebase? One doable clarification is diminished improvement capability. Nevertheless, SlimAgent was not the one implant discovered on the Ukrainian machine in 2024; BeardShell – a way more latest addition to Sednit’s customized arsenal – was deployed there as effectively.

BeardShell

BeardShell is a classy implant able to executing PowerShell instructions inside a .NET runtime atmosphere, whereas leveraging the reliable cloud storage service Icedrive as its C&C channel.

This part bears the marks of intense improvement efforts and is the first motive we consider that Sednit’s superior improvement staff is as soon as once more lively. For instance, as a result of Icedrive doesn’t present a publicly documented API, the builders reimplemented the requests made by the official Icedrive shopper. Each time modifications to Icedrive’s non-public API disrupt BeardShell communications, Sednit builders produce an up to date model inside hours to revive entry.

A mathematical blast from the previous

Whereas we couldn’t discover different malware households instantly associated to BeardShell, we uncovered a stunning similarity with previous Sednit tooling, beginning with a C++ static initializer executed on the very begin of BeardShell. This routine’s goal, whose code is proven in Determine 7, is to decrypt the authentication token for the Icedrive cloud storage.

Figure 7. Static initializer to decrypt Icedrive authentication token
Determine 7. Static initializer to decrypt Icedrive authentication token

The routine accommodates a textbook instance of the obfuscation approach referred to as opaque predicate insertion (highlighted within the pink field in Determine 7):

  • An arithmetic expression evaluating to zero for all doable inputs – named x and y in Determine 7 – is used as a situation for a whereas loop. In observe, the loop physique is rarely executed, as a result of the predicate 2 (x2 + 1) + 2 = y2 + 5 has no integer answer.
  • The physique of this synthetic loop consists of two unique directions (proven within the yellow field in Determine 7), plus a dummy replace of the enter variable y to imitate an actual loop physique construction.
  • Following the pretend loop are the 2 unique directions that will likely be executed: a name to the Icedrive token decryption routine and the registration of a cleaner routine.

Opaque predicates are sometimes used to hinder static evaluation however usually are not notably helpful in such a small routine. Word that different BeardShell static initializers – which aren’t dealing with necessary knowledge – are protected with the identical approach, so evidently the builders merely utilized the safety to all of them indiscriminately.

Now, the predicate components might be simplified as (by subtracting 2 on either side) 2 (x2 + 1) = y2 + 3 . Curiously, that similar opaque predicate was utilized in Xtunnel, a network-pivoting device used completely by Sednit, from 2013 to 2016, and documented in our white paper En Route with Sednit. Determine 8 exhibits an instance of obfuscated code from Xtunnel (SHA-1: 99B454262DC26B081600E844371982A49D334E5E), with an if assertion whose predicate can’t be true.

Figure 8. Xtunnel opaque predicate (2015)
Determine 8. Xtunnel opaque predicate (2015)

Not solely is the predicate an identical to the one utilized in BeardShell, however the never-executed block is constructed in a similar way, by duplicating the 2 unique directions (within the yellow field) and doing a dummy replace of one of many predicate inputs (right here, x).

To one of the best of our data, this opaque predicate has not been noticed wherever else besides in Xtunnel. One may even marvel if it couldn’t have been used as a false flag, particularly because it was publicly talked about as being distinctive to Xtunnel, for instance in a BlackHat Europe 2016 presentation. However, a false flag operation would have doubtless used the an identical predicate, not the variant with +2 on either side of the equation.

The shared use of this uncommon obfuscation approach, mixed with its co‑location with SlimAgent, leads us to evaluate with excessive confidence that BeardShell is a part of Sednit’s customized arsenal.

For the reason that preliminary 2024 case, Sednit has continued deploying BeardShell by way of 2025 and into 2026, primarily in long-term espionage operations concentrating on Ukrainian army personnel. To take care of persistent entry to those high-value targets, Sednit systematically deploys one other implant alongside BeardShell: Covenant, the ultimate part of its trendy arsenal.

Covenant

Covenant is an open-source .NET submit exploitation framework first launched in February 2019. It allows the creation and administration of .NET implants by way of a web-based dashboard – see the instance in Determine 9 – and supplies over 90 built-in duties, supporting capabilities resembling knowledge exfiltration, goal monitoring, and community pivoting.

Figure 9. Covenant dashboard
Determine 9. Covenant dashboard

Since 2023, Sednit builders have made a variety of modifications and experiments with Covenant to determine it as their major espionage implant, retaining BeardShell primarily as a fallback in case Covenant encounters operational points, such because the takedown of its cloud-based infrastructure.

For instance, Sednit changed Covenant’s unique implant name-generation mechanism with a deterministic technique (see Determine 10), producing identifiers derived from machine traits fairly than producing a brand new random worth at every execution (see the Identify column within the Grunts part in Determine 9). This modification illustrates how Sednit tailored Covenant for long-term espionage fairly than for short-term, post-exploitation exercise: in lengthy‑operating operations, having the identical machine seem below completely different identifiers after every reboot would muddle the dashboard and scale back operational effectivity.

Figure 10. Grunt ID generation routine added by Sednit
Determine 10. Grunt ID era routine added by Sednit

Sednit additionally modified Covenant’s execution movement, which is a two-stage implant, in all probability to keep away from behavioral detection. As an alternative of getting the first-stage downloader invoke the primary technique of the second-stage .NET meeting utilizing a hard and fast index (as initially applied), they launched a DisplayName attribute and iterated over technique attributes to search out the entry level. In early 2023 variants, Sednit builders even experimented with embedding each levels right into a single binary.

Covenant formally helps solely HTTP and SMB, which ends up in Sednit’s most vital Covenant modification: the addition of a cloud-based community protocol. To realize this, Sednit builders leveraged the C2Bridge undertaking, a standalone framework created by Covenant’s unique writer to facilitate integration of recent communication protocols. With C2Bridge, builders want solely implement a category conforming to the IMessenger interface on the implant facet, offering Learn and Write strategies to handle low-level communications. C2Bridge can then run as a standalone part on the controller to relay messages, whereas new implants created by the controller use the applied communication strategies.

Determine 11 exhibits the lessons launched by Sednit builders to speak with the Filen cloud supplier, used since July 2025. The FilenMessenger class implements IMessenger and depends on FilenClient to work together with the Filen API. Beforehand, in 2023, Sednit’s Covenant abused the reliable cloud service pCloud, and in 2024–2025, Koofr, utilizing comparable implementations.

Figure 11. Additional Covenant classes handling communications with a Filen cloud drive
Determine 11. Extra Covenant lessons dealing with communications with a Filen cloud drive

These variations present that Sednit builders acquired deep experience in Covenant – an implant whose official improvement ceased in April 2021 and should have been thought-about unused by defenders. This stunning operational alternative seems to have paid off: Sednit has efficiently relied on Covenant for a number of years, notably in opposition to chosen targets in Ukraine. For example, in 2025, our evaluation of Sednit-controlled Covenant cloud drives revealed machines that had been monitored for greater than six months. In January 2026, Sednit additionally deployed Covenant in a collection of spearphishing campaigns exploiting the CVE-2026-21509 vulnerability, as reported by CERT‑UA.

Conclusion

On this blogpost, we’ve got proven that Sednit’s superior improvement staff is lively as soon as once more, working an arsenal centered on two implants – BeardShell and Covenant – deployed in tandem and every leveraging a unique cloud supplier. This setup allows operators to reestablish entry shortly if the infrastructure for one is taken down. We consider that this dual-implant technique shouldn’t be new. For instance, within the 2021 marketing campaign documented by Trellix, Sednit deployed two implants in parallel: Graphite, which used OneDrive as its C&C channel, and PowerShell Empire, which relied on separate devoted infrastructure.

The sophistication of BeardShell and the intensive modifications made to Covenant display that Sednit’s builders stay totally able to producing superior customized implants. Moreover, the shared code and methods linking these instruments to their 2010-era predecessors strongly counsel continuity throughout the improvement staff.

This raises the query of what these builders had been doing throughout all these years, when the safety group primarily noticed phishing exercise from Sednit. One chance is that superior improvement efforts had been reactivated following the Russian invasion of Ukraine. One other is that they by no means stopped working, however as an alternative grew to become extra cautious.

For any inquiries about our analysis printed on WeLiveSecurity, please contact us at threatintel@eset.com
ESET Analysis presents non-public APT intelligence studies and knowledge feeds. For any inquiries about this service, go to the ESET Risk Intelligence web page.

IoCs

Recordsdata

A complete record of indicators of compromise (IoCs) and samples might be present in our GitHub repository.

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

MITRE ATT&CK methods

This desk was constructed utilizing model 18 of the MITRE ATT&CK framework.

Tactic ID Identify Description
Useful resource Improvement T1583.006 Purchase Infrastructure: Net Companies BeardShell depends on Icedrive cloud storage.
Covenant depends on Filen cloud storage.
T1587.001 Develop Capabilities: Malware BeardShell and SlimAgent are customized malware.
Execution T1059.001 Command and Scripting Interpreter: PowerShell BeardShell executes PowerShell instructions.
T1129 Shared Modules BeardShell and SlimAgent are full-fledged DLL information.
Privilege Escalation T1546.015 Occasion Triggered Execution: Element Object Mannequin Hijacking BeardShell and SlimAgent are made persistent by hijacking COM objects.
Protection Evasion T1027 Obfuscated Recordsdata or Data BeardShell Icedrive token decryption is obfuscated.
T1140 Deobfuscate/Decode Recordsdata or Data BeardShell decrypts its strings.
T1480 Execution Guardrails BeardShell solely executes in taskhost.exe or taskhostw.exe.
SlimAgent solely executes in explorer.exe.
T1564 Cover Artifacts SlimAgent logs are written right into a hidden file.
Discovery T1082 System Data Discovery BeardShell sends a fingerprint of the compromised machine.
Assortment T1005 Information from Native System BeardShell, Covenant, and SlimAgent acquire knowledge from a compromised machine.
T1056.001 Enter Seize: Keylogging SlimAgent performs keylogging.
T1113 Display screen Seize SlimAgent captures screenshots of the compromised machine.
T1115 Clipboard Information SlimAgent collects clipboard knowledge.
Command and Management T1001 Information Obfuscation BeardShell exfiltrates knowledge in pretend pictures.
T1071.001 Software Layer Protocol: Net Protocols BeardShell and Covenant use HTTPS for C&C.
T1102 Net Service BeardShell will get instructions from Icedrive.
Covenant will get instructions from Filen.
T1573.002 Encrypted Channel: Uneven Cryptography BeardShell communications with Icedrive are encrypted utilizing HTTPS.
Covenant communications with its controller makes use of RSA-encrypted session keys.
Exfiltration T1567 Exfiltration Over Net Service BeardShell exfiltrates knowledge to Icedrive.
Covenant exfiltrates knowledge to Filen.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

[td_block_social_counter facebook="tagdiv" twitter="tagdivofficial" youtube="tagdiv" style="style8 td-social-boxed td-social-font-icons" tdc_css="eyJhbGwiOnsibWFyZ2luLWJvdHRvbSI6IjM4IiwiZGlzcGxheSI6IiJ9LCJwb3J0cmFpdCI6eyJtYXJnaW4tYm90dG9tIjoiMzAiLCJkaXNwbGF5IjoiIn0sInBvcnRyYWl0X21heF93aWR0aCI6MTAxOCwicG9ydHJhaXRfbWluX3dpZHRoIjo3Njh9" custom_title="Stay Connected" block_template_id="td_block_template_8" f_header_font_family="712" f_header_font_transform="uppercase" f_header_font_weight="500" f_header_font_size="17" border_color="#dd3333"]
- Advertisement -spot_img

Latest Articles