Skip to content

Response, New York. Noah Park: Check Point Patches Actively Exploited Management Server Path Traversal. Detection, Dallas. Ava Okello: Report Finds Nearly Half of Deployed Detections Need Attention Before SOCs Can Trust Them.

SOCtember

Always First. Fast SOC News.

Kaspersky diagram of NetamLoader's first stage, in which a CAB archive delivers PatchMyPC-ScriptRunner.exe, its config file, a Microsoft-signed assembly, fabric.config and a malicious Resources.resx.
Image: Kaspersky GReAT / Securelist (fair use).

Threat Intel

Kaspersky Says an Unknown APT Abused Patch My PC Components and a Microsoft-Signed Assembly to Load NetamLoader on a Government-Only Windows 10 Build in Asia, Then Scrubbed Update Logs and Prefetch Files

The chain used AppDomainManager injection and a booby-trapped .resx file to unpack layered XAML payloads, blinded AMSI and ETW, and moved into dllhost.exe through a remote COM object. Kaspersky found one victim and could not tie the framework to any known group, but the file paths, registry artifacts and command server it published give hunters something concrete.

Priya Shah, Threat IntelSingapore6 min read

SINGAPORE - An unidentified hacking group slipped a new malware framework onto a customized edition of Windows 10 built for government use in Asia, hiding it among legitimate patch management files and Microsoft-signed code, Kaspersky researchers said Thursday. The company calls the framework NetamLoader and said its design "strongly indicates a supply-chain attack targeting a custom Windows build used exclusively by government entities in Asia."

Kaspersky's Global Research and Analysis Team found a single victim through its telemetry and could not link the attack to any known group. "After analyzing the TTPs, code similarities, and infrastructure, we were unable to link the attack to any known APT group," the researchers wrote.

Hidden in the update folder

The trail began in the first half of 2026 with a detection alert for a .config file that used AppDomainManager injection to load arbitrary .NET assemblies. The file sat inside a CAB archive in C:\Windows\SoftwareDistribution\Download, the folder that stores Windows update packages. At first, Kaspersky found nothing malicious in it: most executables were legitimate components of the third-party patch management tool Patch My PC, and the .NET assemblies used for the injection were Microsoft-signed. Kaspersky did not observe how the archive reached the victim.

Kaspersky table of the seven files extracted from the CAB archive into the Windows SoftwareDistribution Download Install folder.
Image: Kaspersky GReAT / Securelist (fair use).Only Resources.resx among the seven files contains malicious code.

When PatchMyPC-ScriptRunner.exe runs with an update package argument, its config file loads a class from Microsoft.HostIntegration.Connectors.dll, a Microsoft-signed assembly. That class reads a crafted fabric.config, which in turn parses Resources.resx. The .resx file carries a serialized object that triggers a .NET BinaryFormatter deserialization attack and hands control to layered XAML payloads. The first layer derives its decryption key from a SHA-256 hash of the host process's full command line, so the next stage decrypts only when the loader is launched exactly as intended, and the process exits silently on any error.

Kaspersky diagram of the layers of XAML, .NET assemblies and JSON configuration that are compressed and encrypted inside the malicious Resources.resx file.
Image: Kaspersky GReAT / Securelist (fair use).Each layer unpacks and loads the next.

Blinding the defenses, then cleaning up

The later stages are built to defeat the tools a SOC relies on. One XAML layer patches the virtual method table of the AMSI COM object so that every scan returns clean, using fragments of strings to dodge signatures. The loader sets COMPlus_ETWEnabled to 0 to keep the .NET runtime from emitting ETW events, then uses an RPC call to a remote COM object and a second deserialization exploit to run its next payload inside dllhost.exe, separating the infection from the original process tree.

It also erases its tracks. The loader deletes the files it extracted, the CLR usage log for PatchMyPC-ScriptRunner.exe and the matching Windows Prefetch files, and strips lines containing GetExtendedUpdateInfoHandler from logs under %WINDIR%\Logs\CmitUpdateAgent, a path Kaspersky said may be linked to the government's custom Windows 10 build.

Kaspersky diagram of NetamLoader's second stage, showing XAML layers, a patched AMSI, the .NET loader and plugin, and a DCOM service that loads the payload.
Image: Kaspersky GReAT / Securelist (fair use).Stage two moves the payload into dllhost.exe through DCOM.

The final .NET plugin is patient. It waits 20 to 40 minutes before its first contact with the command server, a delay meant to outlast sandboxes, and when the server does not answer it waits 22 to 28 hours before trying again. A watchdog ends the process after about 28 hours. Traffic is encrypted with AES-128-CBC and authenticated with HMAC, and the command server in the sample Kaspersky analyzed, openaigpt4v[.]com, sits behind Cloudflare. The plugin runs further XAML it downloads inside an isolated application domain, then unloads it.

Where hunters can look

Because the framework scrubs logs and Prefetch, the most useful evidence may be what is missing or what it leaves in the registry. Kaspersky's report lists .config, fabric.config and Resources.resx files under C:\Windows\SoftwareDistribution\Download\Install, PatchMyPC-ScriptRunner.exe launched with the -updatepackage argument, a DllSurrogate value created under an AppID key in HKLM\SOFTWARE\Classes, and the domain openaigpt4v[.]com. Defenders can add their own checks around those artifacts: Patch My PC components on machines that do not use the product, dllhost.exe making outbound HTTPS connections, and a missing CLR usage log or Prefetch entry where one would be expected. Kaspersky detects the malware as HEUR:Trojan.MSIL.NetamLoader.gen, Trojan.MSIL.Zapchast and Trojan.Script.Agent, and its report lists file hashes for each stage.

The researchers framed the case as a warning about sovereign software. Countries building their own operating systems gain control of them, Kaspersky wrote, but must also protect "this entire vast ecosystem on its own," and until those systems mature, they and their supply chains "could be exposed to attacks through multiple vectors."

Sources:


Priya Shah covers threat intelligence, intrusion analysis, and adversary tradecraft for SOCtember from Singapore.

Related stories

Threat Intel desk