NetamLoader: XAML-based .NET loader hits Asian government Windows 10 build in suspected supply-chain attack
Matéria consolidada. Reúne 4 matérias que o Tifon tinha publicado separadamente sobre a mesma história. A IA reescreveu o relatório com o que as 3 fontes trouxeram em 02/11/2026 00:02; os links antigos trazem para cá.
Fontes: thehackernews.com ↗ gbhackers.com ↗ securelist.com ↗
Kaspersky GReAT (securelist.com) describes NetamLoader, a previously unknown multi-stage .NET loading framework built on XAML. It was found after a KSN alert in the first half of 2026 and strongly indicates a supply-chain attack on a custom Windows 10 build used exclusively by government entities in Asia. The malicious CAB archive sat in the Windows update download folder and carried legitimate Patch My PC components and Microsoft-signed assemblies. Kaspersky saw a single victim, a government organization in Asia, and infers a wider government focus (gbhackers.com). The country was not disclosed, but thehackernews.com says signs point to China because of the Windows 10 China Government Edition. This is not confirmed by the other sources. The delivery vehicle for the CAB is unknown, and a compromise of a trusted third-party vendor is only suspected (thehackernews.com). No known APT group has been linked to the activity (securelist.com, gbhackers.com, thehackernews.com). The loader bypasses AMSI, erases forensic traces and runs its payload in dllhost.exe, outside the original process tree, to evade EDR.
Detalhes técnicos
- Delivery: a CAB archive (
e4537a1762fcafd2fd96bfc825bad34f9db9a24d) holds seven files extracted toC:\Windows\SoftwareDistribution\Download\Install\(securelist.com). Four of the seven files are legitimate Patch My PC components, includingPatchMyPC-ScriptRunner.exe, its.configfile andMicrosoft.HostIntegration.Connectors.dll(thehackernews.com). Telemetry flagged a malicious.configfile in the CAB (gbhackers.com). - Initial execution:
PatchMyPC-ScriptRunner.exeuses AppDomainManager injection throughPatchMyPC-ScriptRunner.exe.config. The config loads the Microsoft-signedDataCacheFactoryConfigurationclass (securelist.com), tied toMicrosoft.HostIntegration.Connectors(gbhackers.com, thehackernews.com). That DLL parses a craftedfabric.config, which instantiatesResXResourceSetto parseResources.resx, the only file with embedded malicious code (thehackernews.com). - Stage 1:
Resources.resxcontains a Base64 BinaryFormatter object that triggers a TypeConfuseDelegate deserialization chain. It holds multiple layers of encoded, compressed or encrypted payloads (XAML files, .NET assemblies, JSON) (thehackernews.com). The chain callsXamlReader.Parse()to load XAML-1. XAML-1 derives an AES key from the SHA-256 of the lowercased host command line and decrypts XAML-2. On any failure the process exits silently viaEnvironment.Exit(0). - Stage 2: XAML-2-1 patches AMSI by redirecting the
CAmsiAntimalware::Scanvtable pointer to a patchedConsole.Clear(), so every scan returns clean. XAML-2-2 holds the .NET 1 Loader and its JSON C2 configuration. The .NET 1 Loader assembles XAML-3 and reports status to the C2 (thehackernews.com). - Anti-forensics: the loader deletes the malicious files, update records, CLR usage logs and Prefetch entries. It strips lines containing
GetExtendedUpdateInfoHandlerfrom%WINDIR%\Logs\CmitUpdateAgentlogs. TheCmitUpdateAgentkeyword may point to the custom Windows 10 build. - State tracking: a GUID-based exception-state log under
HKLM\SOFTWARE\Classes\appidis derived from the C2 URL (securelist.com). - Execution outside the process tree: with administrator rights it sets
COMPlus_ETWEnabled=0. It then abuses a remote COM object over RPC (CLSIDab8902b4-09ca-4bb6-b78d-a8f59079a8d5) with the same deserialization technique to load XAML-3 intodllhost.exe, detaching the payload from the original process and evading EDR behavioral monitoring. - .NET 2 Plugin: runs in
dllhost.exe, collects .NET and BuildLab registry values and system information from the Registry, and locks the process withCoLockObjectExternal. It waits a random 20-40 minutes before first contact to defeat sandboxes. A watchdog terminates it after about 28 hours (100801 s). - C2: polls
https://openaigpt4v.com/model_v4/<instance GUID>every 5-6 minutes after a valid C2 response. After a failure it pauses 22-28 hours, checking every 10 minutes (gbhackers.com, thehackernews.com). Traffic uses AES-128-CBC with HMAC-SHA256, and the plugin accepts any certificate. Downloaded XAML runs in an isolated AppDomain. The domainopenaigpt4v[.]comsits behind Cloudflare at104.18.14[.]219(gbhackers.com). - Detections: Kaspersky detects it as
HEUR:Trojan.MSIL.NetamLoader.gen,Trojan.MSIL.Zapchast.*andTrojan.Script.Agent.*(securelist.com).
Remediação
- Hunt for
PatchMyPC-ScriptRunner.exewith an accompanying.config,fabric.configorResources.resxinSoftwareDistribution\Download\Install(securelist.com, gbhackers.com). - Review
SoftwareDistribution\Downloadfor unexpected CAB content (thehackernews.com). - Watch for unexpected
.configfiles beside .NET executables, especially ones that set AppDomainManager (gbhackers.com, thehackernews.com). - Alert on AMSI tampering and on
dllhost.exelaunched through COM (gbhackers.com). - Block and monitor traffic to
openaigpt4v[.]com. - Audit third-party endpoint management software and its vendors (thehackernews.com). The article gives no explicit remediation, so this is an inference from it.
Relatos divergentes
- Country and attribution: securelist.com and gbhackers.com say only that the victim is in Asia and that no known actor is linked. thehackernews.com says the country was not disclosed but signs point to China because of the Windows 10 China Government Edition. This is an inference, not a confirmed attribution.
- Delivery vector: securelist.com describes a suspected supply-chain attack on a custom Windows 10 build. thehackernews.com says a trusted third-party vendor compromise is suspected but the CAB delivery vehicle is unknown.
- CAB name: thehackernews.com gives the download folder as
e4537a1762fcafd2fd96bfc825bad34f9db9a24, one character shorter than the 40-character hashe4537a1762fcafd2fd96bfc825bad34f9db9a24dgiven by securelist.com. The Kaspersky-sourced hash is more authoritative, and the shorter form is probably a truncation.
Linha do tempo
-
NetamLoader .NET framework used in suspected supply chain attack on Asian government Windows 10 build
ler a análise desta fonte ocultar
Kaspersky disclosed a targeted intrusion against a government organization in Asia. The attackers deployed NetamLoader, a previously undocumented .NET assembly-loading framework, on a custom Windows 10 build used exclusively by government entities. The artifact was detected in the first half of 2026 and has not been attributed to any known actor. A supply chain compromise of a trusted third-party vendor is suspected, but the delivery vehicle for the CAB archive is unknown. Telemetry shows a single victim. The country was not disclosed, though signs point to China because of the Windows 10 China Government Edition.
Technical Details
- The payload was packaged in a Windows CAB file placed in
C:\Windows\SoftwareDistribution\Download\e4537a1762fcafd2fd96bfc825bad34f9db9a24. Its contents were extracted toC:\Windows\SoftwareDistribution\Download\Install\. - The archive holds seven files, four of them legitimate Patch My PC components, including
PatchMyPC-ScriptRunner.exe, its.configfile andMicrosoft.HostIntegration.Connectors.dll. PatchMyPC-ScriptRunner.exeabuses AppDomainManager injection through its.configfile to loadMicrosoft.HostIntegration.Connectors.dll. That DLL parsesfabric.configand loadsResources.resx, the only file with embedded malicious code.Resources.resxholds multiple layers of encoded, compressed or encrypted payloads (XAML files, .NET assemblies, JSON). XAML-2-1 bypasses AMSI. The .NET 1 Loader assembles XAML-3, reports status to the C2 and deletes extracted files, CLR usage logs and Prefetch entries.- XAML-3 runs inside
dllhost.exeand loads the .NET 2 Plugin. The plugin collects system information from the Registry and waits a 20-40 minute random delay before contacting the C2openaigpt4v[.]com. It then polls periodically and runs fetched XAML in an isolated AppDomain. - Polling pauses 5-6 minutes after a valid C2 response. Otherwise it pauses 22-28 hours, checking every 10 minutes.
Remediation
The article gives no explicit remediation. Defenders in similar environments can review
SoftwareDistribution\Downloadfor unexpected CAB content, monitor for .NET.configfiles that set AppDomainManager, and audit third-party endpoint management software and its vendors. - The payload was packaged in a Windows CAB file placed in
-
NetamLoader, a XAML-based .NET loader, hits Asian government networks via a trojanized Windows update channel
ler a análise desta fonte ocultar
Kaspersky researchers identified NetamLoader, a .NET loading framework built on XAML markup. It appears to be a supply-chain attack on a customized Windows build used only by Asian government bodies. No known APT group has been linked to it. Kaspersky saw one victim in Asia and infers a wider government focus. Telemetry flagged a malicious
.configfile inside a CAB archive inC:\Windows\SoftwareDistribution\Download. The rest of the CAB held legitimate Patch My PC components, and the injected assemblies were Microsoft-signed.Technical Details
- Initial execution:
PatchMyPC-ScriptRunner.exeloads a crafted config file that uses AppDomainManager injection. The config points toMicrosoft.HostIntegration.Connectors. Its DataCacheFactoryConfiguration class readsfabric.config, which parses the maliciousResources.resx. Resources.resxholds a Base64 BinaryFormatter object that triggers a TypeConfuseDelegate deserialization attack and callsXamlReader.Parse()to run XAML-1.- XAML-1 derives an AES key from the SHA-256 hash of the host's command line and decrypts XAML-2. If decryption fails, the process exits silently.
- XAML-2 unpacks XAML-2-1, which hijacks AMSI by redirecting the CAmsiAntimalware::Scan pointer to a patched Console.Clear() so every scan returns clean. It also unpacks XAML-2-2, which delivers the .NET 1 Loader and its JSON C2 configuration.
- The loader erases update records, CLR usage logs and Prefetch files. It strips GetExtendedUpdateInfoHandler entries from CmitUpdateAgent logs, which may point to the custom government Windows build.
- It uses an RPC-created COM object to launch XAML-3 inside
dllhost.exe, detaching the payload from the original process tree to evade EDR. - The final plugin waits 20–40 minutes before first contact to defeat sandboxes. It polls its C2 every 5–6 minutes, or every 22–28 hours after a failure.
- C2 traffic uses AES-128-CBC with HMAC-SHA256, and the plugin accepts any certificate. Downloaded XAML runs in an isolated AppDomain. A watchdog terminates the process after about 28 hours.
- C2:
openaigpt4v[.]com, behind Cloudflare at104.18.14[.]219.
Remediation
- Watch for unexpected
.configfiles beside .NET executables, especially inSoftwareDistribution\Download\Install. - Alert on AMSI tampering and on
dllhost.exelaunched through COM.
- Initial execution:
-
Unknown APT deploys NetamLoader XAML framework against custom Windows 10 build used by Asian governments
ler a análise desta fonte ocultar
Kaspersky GReAT reports NetamLoader, a previously unknown, multi-stage .NET loading framework built on XAML. It was found after a KSN alert in the first half of 2026 and strongly indicates a supply-chain attack on a custom Windows 10 build used exclusively by government entities in Asia. The malicious CAB archive sat in the Windows update download folder and carried legitimate Patch My PC components and Microsoft-signed assemblies. No attribution to a known APT group has been established.
Technical Details
- Delivery: a CAB archive (
e4537a1762fcafd2fd96bfc825bad34f9db9a24d) holds seven files extracted toC:\Windows\SoftwareDistribution\Download\Install\. Execution ofPatchMyPC-ScriptRunner.exeuses AppDomainManager injection viaPatchMyPC-ScriptRunner.exe.config. The config loads the Microsoft-signedDataCacheFactoryConfigurationclass, which reads a craftedfabric.config. That in turn instantiatesResXResourceSetto parseResources.resx. - Stage 1:
Resources.resxcontains a Base64 BinaryFormatter object that triggers a TypeConfuseDelegate deserialization chain. The chain callsXamlReader.Parse()to load XAML-1, which derives an AES key from the SHA-256 of the lowercased host command line and decrypts XAML-2. On any failure it callsEnvironment.Exit(0). - Stage 2: XAML-2-1 patches AMSI by redirecting the
CAmsiAntimalware::Scanvtable pointer to a patchedConsole.Clear(), so every scan returns clean. XAML-2-2 holds the .NET 1 Loader and its JSON C2 configuration. - Anti-forensics: the loader deletes the malicious files, update records, CLR usage logs and Prefetch entries. It also strips lines containing
GetExtendedUpdateInfoHandlerfrom%WINDIR%\Logs\CmitUpdateAgentlogs. TheCmitUpdateAgentkeyword may link to the custom Windows 10 build. - Registry state tracking: a GUID-based exception-state log under
HKLM\SOFTWARE\Classes\appidis derived from the C2 URL. - Execution outside the process tree: it requires administrator rights and sets
COMPlus_ETWEnabled=0. It then abuses a remote COM object over RPC (CLSIDab8902b4-09ca-4bb6-b78d-a8f59079a8d5) with the same deserialization technique to load XAML-3 intodllhost.exe. This separates the payload from the initial process and evades EDR behavioral monitoring. - .NET 2 Plugin: runs inside
dllhost.exe, collects .NET and BuildLab registry values, and locks the process withCoLockObjectExternal. It waits a 20-40 minute jitter delay before first contact, has a ~28-hour (100801 s) watchdog that triggers exit, and polls the C2 athttps://openaigpt4v.com/model_v4/<instance GUID>with AES-encrypted traffic. - Detections: Kaspersky detects the threat as
HEUR:Trojan.MSIL.NetamLoader.gen,Trojan.MSIL.Zapchast.*andTrojan.Script.Agent.*.
Remediation
- Hunt for
PatchMyPC-ScriptRunner.exewith an accompanying.config,fabric.configorResources.resxinSoftwareDistribution\Download\Install. - Look for
dllhost.exeinstances spawned via RPC with .NET CLR loaded. - Look for anomalous
appidregistry key creation or deletion and theDllSurrogatevalue. - Monitor for outbound traffic to
openaigpt4v.com. - Audit update-channel integrity for the custom Windows 10 build.
- Delivery: a CAB archive (