JadeProx — TriBack Loader, AdaptixC2 and the Beagle Backdoor

China-nexus espionage cluster running DLL-sideloading loaders against government, healthcare and education targets in South-East Asia and Latin America. Hunt, detect and harden.
Threat
JadeProx / TriBack Loader
Severity
ACTIVE ESPIONAGE
Type
Loader · Post-exploitation · C2
Initial Access
Spear-phish ZIP/LNK · malvertised MSI · public-facing Java exploit
Version
v0.1 · 2026-07-24
Author
HuntPack
Confidence
High (two primary vendor reports)
01

Executive Summary

JadeProx is a China-nexus espionage cluster that Group-IB exposed on 2026-07-23 after the operators left a Python HTTP server with directory listing enabled on an Alibaba Cloud Singapore instance. The open directory held bash history, a full post-exploitation toolkit, webshell paths against live victims and staged phishing packages. The objective is access and collection: government ministries, a public hospital medical-imaging estate, education infrastructure across Asia, and a legislature and municipal tax portal in Latin America.

The artefact that ties every intrusion together is TriBack Loader, a previously undocumented Windows loader. Every build is the same three-file triad: a legitimate, signed vendor executable, a malicious DLL that shares the name of a real dependency, and an encrypted companion payload with a .dat or .log extension. The DLL is sideloaded when the signed binary runs; it reverses the payload bytes, XOR-decrypts them with a rolling key, and executes the resulting shellcode through Win32 callback primitives that EDR watches less closely than CreateThreadInitOnceExecuteOnce, a TimerQueue callback, and EtwpCreateEtwThread, an undocumented thread-creation routine resolved from ntdll at runtime. Two of the four variants deliver AdaptixC2; a Claude-themed variant uses DonutLoader to run the Beagle backdoor, first documented by Sophos X-Ops.

The highest-value defensive angle is the file layout, not the filenames. The signed host binary changes between variants (a Microsoft Service Hub CLR host, a G DATA updater, a Microsoft Malware Protection utility) and so do the DLL names. What does not change is the shape: a signed vendor executable running from a user-writable, temporary or Startup directory with an encrypted companion file sitting beside it. Detection built on that shape survives the next build; detection built on avk.dll does not.

The second-highest-value angle is the network. The cluster registered update-crowdstrike[.]com, update-trellix[.]com and update-sentinelone[.]com on one shared IP. Nothing in a normal estate resolves those names. They are effectively zero-false-positive and they are the one indicator class that catches a host you have no endpoint visibility into. Section 8 gives them their own card.

Defender priority: block the confirmed C2 set at DNS and proxy today, then run Q1 and Q4 across a 90-day window. A hit on Q1 is a confirmed compromise until proven otherwise — there is no benign path to a security-vendor-lookalike domain. Treat any signed vendor binary executing out of the per-user Startup folder as an active TriBack triad and pull the directory listing before you isolate.

02

Source Review & Web Hunter Notes

TierSourceKey findingCarry forward
Tier 1Group-IB — JadeProx: Tracing a China-nexus Operation Through an OPSEC Mistake (2026-07-23)Primary research. Open-directory contents, bash-history intrusion timeline, all four TriBack variants, XOR keys, AdaptixC2 beacon configs, full domain/IP/MD5 IOC set, ATT&CK mapping.Yes — primary
Tier 1Sophos X-Ops — Donuts and Beagles: Fake Claude site spreads backdoorIndependent analysis of the Claude-themed chain. Beagle backdoor capability set, AES C2 key, TCP/443 and UDP/8080 transport, the shared XOR key that links builds back to February 2026.Yes — primary
Tier 1SophosLabs IoCs repository — Beagle_IOCs.csvVendor-published SHA-256 set for the archives, MSI droppers, sideloaded DLLs, first-stage shellcode, AdaptixC2 shellcode and the Beagle backdoor. Also names the encrypted companion file Windows.log.Yes — hashes
Tier 2The Hacker News — China-Nexus JadeProx Uses New TriBack Loader… (2026-07-23)Corroborates the Group-IB findings and independently confirmed the four exploited CVEs against NVD. Restates the domain/IP block list.Partial — corroboration only
Tier 2Infosecurity Magazine — Fake Claude AI Site Drops Beagle Backdoor on Windows UsersIndependent write-up of the Sophos research. Confirms the G DATA-signed updater, avk.dll sideload and the Cloudflare-delivery / Alibaba-C2 split.Partial — corroboration only

Research decisions

  • Prevent/critical requires two independent vendors. Only indicators appearing in both the Group-IB report and the Sophos material are shipped at action=prevent. Group-IB-only infrastructure (sylverixstrategy[.]com, vertextrust-advisors[.]com) ships at action=detect.
  • Shared-hosting IPs are deliberately excluded from the block list. The Cloudflare address fronting one C2 and the two DigitalOcean addresses are multi-tenant. Blocking them causes collateral outage and catches nothing the domain block does not already catch. They appear in section 4 at enrich only.
  • The legitimate signed host binaries are not blocked. The G DATA updater hash published by Sophos is a genuine, correctly signed vendor file that the actor reuses. It is listed as a hunt anchor with an explicit do-not-block marker; blocking it breaks a real product.
  • No aggregator-only indicators. Everything atomic in this pack traces to a saved snapshot of a Tier-1 vendor source. Aggregators were used to confirm the story, never to source an indicator.
  • Prompt-injection review: every fetched page was scanned for text addressed to an automated agent. None of the five sources contained agent-directed instructions, embedded commands, or requests to fetch further URLs. No source was disqualified.
  • Perishability: the staging server was already offline when Group-IB published. Domain indicators outlive the IPs; the behavioral queries outlive both.
03

Hunt Brief & Attack Chain

Attack chain

#StepObserved behaviorTelemetryHunt angle
1Initial access — spear-phishZIP containing a LNK, a decoy PDF and a nested _CL_###### folder holding the triad. Lures: a beverage-company account statement aimed at a Latin American legislature; a "Claude-Pro Relay" technical overview.Mail gateway, ZipFileWrittenQ7 — nested _CL_ path
1bInitial access — malvertisingCloned Claude site serves an approximately 505 MB ZIP and an MSI installer; Chinese-language installer strings.DnsRequest, ZipFileWrittenQ3 — distribution domain
1cInitial access — exploitationNuclei run with critical-severity templates only against a scan list of 14,653 education URLs; follow-up exploitation of four CVSS 9.8 flaws; webshells planted on an exposed Java management interface.WAF, web server logsSection 7 — native hunts
2ExecutionLNK triggers a VBS orchestrator. One variant substitutes ftp.exe -s: to run a script staged as script.dat.ProcessRollup2Q6, Q9
3PersistenceVBS drops the whole triad into the per-user Startup folder. The MSI variant does the same behind a UAC prompt, then self-deletes via a double-extension ~del.vbs.bat.ProcessRollup2, PeFileWrittenQ5, Q8, Q10
4Defense evasion — sideloadingSigned vendor EXE loads the attacker DLL from its own directory. Host binaries seen: a Microsoft Service Hub CLR host, a G DATA updater renamed NOVUpdate.exe, and a Microsoft Malware Protection copy-accelerator utility.ProcessRollup2, PeFileWrittenQ4, Q11
5Defense evasion — decryptDLL export reverses the .dat/.log bytes then applies a rolling XOR with offset. Two 32-character keys are reused across variants 2, 3 and 4 — the strongest correlation anchor in the campaign.Memory / manual analysisGap — see section 15
6Execution — callback primitiveShellcode is fired via InitOnceExecuteOnce (variant 1), a TimerQueue callback (variant 2), or EtwpCreateEtwThread resolved from ntdll by GetModuleHandleA + GetProcAddress (variant 3).Not exposed in Falcon event streamGap — IOA candidate
7Command & controlAdaptixC2 HTTP beacon (POST /api/v1/status, /updates/check.php, /content.html, stale Firefox 20 user-agent) or Beagle over TCP/443 and UDP/8080 with a hardcoded AES key.NetworkConnectIP4, DnsRequest, proxyQ1, Q2, Q3, Q12
8Lateral movement / tunnellingiox, suo5 (SOCKS5-over-HTTP through webshells), Neo-reGeorg, a garbled NPS build, plus fscan renamed to sys.log.NetworkListenIP4, web logsSection 7
9Credential accessAttempted download of a Chromium App-Bound-Encryption credential tool (failed in the captured history).ProcessRollup2Partial coverage

Hunt hypotheses (fidelity-ordered)

HHypothesisMITRETelemetryExpected FP sourceConf
H1A host in the estate resolved a security-vendor-impersonation update domain.T1071.001, T1583.001DnsRequestNone. No benign resolver path exists.High
H2A host resolved or connected to named JadeProx C2 or distribution infrastructure.T1071.001DnsRequest, NetworkConnectIP4Security-tool sandbox detonation from a scanning host.High
H3A signed vendor binary known to be abused by TriBack executed from a user-writable, temp or Startup directory.T1574.001, T1218ProcessRollup2Vendor installers staging to %TEMP% during a genuine upgrade.High
H4Any executable persists from the per-user Startup folder — the campaign-agnostic form of H3.T1547.001ProcessRollup2Legitimate consumer software, updaters, conferencing clients.Medium
H5A DLL matching a TriBack masquerade name was written outside its legitimate vendor directory.T1036.005, T1574.001PeFileWrittenDeveloper machines building .NET apps that emit their own hostfxr.dll.High
H6ftp.exe was used as a script interpreter via -s:.T1218ProcessRollup2Legacy batch FTP jobs on file-transfer servers.High
H7A nested _CL_###### staging directory appears in a command line or written path.T1027.013ProcessRollup2, file-write eventsNone observed.High
H8A double-extension self-delete artefact (~del.vbs.bat style) executed.T1070.004ProcessRollup2Rare. Some installers use ~-prefixed temp scripts.High
H9A script host ran from an archive-extraction, Downloads or Startup path.T1059.005, T1204.002ProcessRollup2Enterprise logon scripts, legacy line-of-business VBS.Medium
H10msiexec spawned a script host or LOLBIN — the MSI-to-Startup persistence path.T1218.007, T1547.001ProcessRollup2Packaged enterprise software with custom actions.Medium
H11A process launched from a Startup or temp path beacons outbound on 443 or 8080.T1071.001, T1573.001NetworkConnectIP4Updaters and telemetry agents on 443.Medium
H12A published JadeProx file hash executed or was written in the estate.T1204.002ProcessRollup2, PeFileWrittenMalware-analysis workstations.High
04

Consolidated IOC Table

Confidence high = named in two independent primary vendor reports. medium = one primary vendor. Action follows the confidence, not the drama: shared-hosting addresses never get a block action regardless of how good the intel is.

TypeValueConfActionContextExpiry
domainclaude-pro[.]comhighdetectCloned Claude site; serves the ZIP and MSI that carry the triad.2027-01-24
domainlicense[.]claude-pro[.]comhighdetectBeagle backdoor C2. TCP/443 and UDP/8080, AES-encrypted.2027-01-24
domainupdate-crowdstrike[.]comhighdetectSecurity-vendor impersonation. Shares one IP with the other two lookalikes.2027-01-24
domainupdate-trellix[.]comhighdetectC2 for a standalone MSI variant; observed on port 8080.2027-01-24
domainupdate-sentinelone[.]comhighdetectSecurity-vendor impersonation, same registrar and IP.2027-01-24
domaingouvvbo[.]tophighdetectAdaptixC2 C2 for the Latin America variant; also hosted a fake municipal tax portal.2027-01-24
domainsylverixstrategy[.]commediumdetectAdaptixC2 C2 recovered from the open-directory beacon config. Single primary source.2027-01-24
domainvertextrust-advisors[.]commediumdetectFake advisory-firm site providing reputation cover on shared C2 infrastructure.2027-01-24
domaindlrz-web[.]oss-cn-beijing[.]aliyuncs[.]commediumhuntOperator-controlled Alibaba OSS bucket staging Go proxy and mining binaries. Parent service is legitimate and heavily shared — hunt the full hostname only.2026-10-24
ipv48.217.190[.]58highdetectResolves the Beagle C2. Alibaba US (AS45102) — shared provider, dedicated-enough to alert on.2027-01-24
ipv4192.252.186[.]62mediumdetectHosts all three security-vendor lookalike domains.2026-10-24
ipv443.106.71[.]28highhuntAlibaba Singapore staging server, open directory on port 8000. Offline at publication — hunt historically, do not block.2026-10-24
ipv4104.21.60[.]96mediumenrichCloudflare edge — never block. Fronted one AdaptixC2 domain. Context only.2026-08-24
ipv4161.35.236[.]255mediumenrichDigitalOcean, multi-tenant. Context only.2026-08-24
ipv4178.128.108[.]89mediumenrichDigitalOcean, multi-tenant. Hosted the fake advisory site. Context only.2026-08-24
filenamehostfxr.dll, avk.dll, MpClient.dllhighhuntMasquerading TriBack loader DLLs. All three are also real dependency names — hunt on location, not name alone.2027-01-24
filenameNOVUpdate.exe.dat, Windows.log, script.dathighhuntEncrypted companion payloads. Byte-reversed then XOR-decrypted.2027-01-24
path_CL_177387, _CL_177530highhuntNested staging folder inside the phishing archive. Generalise to _CL_ + 5-8 digits.2027-01-24
artefact~del.vbs.bathighhuntDouble-extension self-delete script created by the MSI variant.2027-01-24
keyXOR keys pmm3jPpdu8NYvVQ5JxRnQdP2vhxAU3nn and Qby2RSGkGIHumNrDlbt1OEHV3y2dVh5bhighpivotReused across variants 2, 3 and 4. The single best correlation anchor for finding new builds on VirusTotal.2027-01-24
keyBeagle AES key beagle_default_secret_key_12345!mediumpivotHardcoded in the backdoor. Looks like an unchanged default — useful for YARA, weak as a blocklist entry.2027-01-24
networkAdaptixC2 URIs /api/v1/status, /updates/check.php, /content.htmlhighhuntBeacon HTTP profile from the decrypted config, paired with a Firefox 20 user-agent.2026-10-24
cveCVE-2018-11511, CVE-2021-24139, CVE-2021-31755, CVE-2021-32305highdetectAll CVSS 9.8, all attempted against internet-facing hosts. The Tenda flaw has been on the CISA KEV catalog since 2021-11-03.2027-01-24

Do not block the host binaries. The Microsoft Service Hub CLR host, the G DATA updater and the Microsoft Malware Protection copy-accelerator utility are genuine signed vendor files. They are the sideloading vehicle, not the malware. Blocking their hashes breaks working products and does nothing to the loader, which will simply pick a fourth signed binary.

05

Affected Surface & Telemetry Matrix

SurfaceExposureRequired telemetryPriorityGap risk
Windows workstationsPhishing ZIP/LNK and malvertised MSI both land here. Full triad plus Startup persistence.ProcessRollup2, PeFileWritten, ZipFileWritten, NetworkConnectIP4, DnsRequestCriticalLow — standard Falcon coverage
Windows serversPivot target once SOCKS tunnels are established from a compromised workstation or webshell.ProcessRollup2, NetworkListenIP4, UserLogonHighLow
Internet-facing Java applicationsPrimary non-phishing entry. Exposed management interfaces exploited to plant webshells.App server access logs, WAF, file-integrity monitoring on webrootsCriticalHigh — often outside EDR scope
Linux / appliance web serversHost the webshells that suo5 and Neo-reGeorg tunnel through.Falcon Linux sensor, auditd, webroot FIMHighHigh — sensor coverage on appliances is usually partial
Perimeter DNS / proxyOnly place a host with no endpoint agent shows up.DNS resolver logs, proxy logs with URI and user-agentCriticalMedium — URI-level logging often not retained
Email gatewayZIP+LNK+PDF-decoy delivery.Attachment-type logs, archive-inspection verdictsHighMedium
Medical imaging / OT-adjacent estatesExplicitly targeted. Typically unpatched, flat-networked and agent-light.Network flow, segmentation logsHighHigh — frequently no endpoint telemetry at all
Loader in-memory behaviorCallback-primitive execution and the XOR decrypt stage.Not surfaced as a discrete Falcon eventMediumGap — memory-scan / IOA territory only
06

ATT&CK Mapping

TacticTechniqueObserved behaviorQuery / control
ReconnaissanceT1595.002 — Active Scanning: Vulnerability ScanningNuclei run with critical-severity templates only against a large education-sector URL list.Section 7 · H-Immediate-8
Resource DevelopmentT1583.001 — Acquire Infrastructure: DomainsNameSilo registrations; Cloudflare fronting; security-vendor lookalikes on one IP.Q1, Q2 · H-Strategic-14
Initial AccessT1190 — Exploit Public-Facing ApplicationFour CVSS 9.8 CVEs attempted; webshells on an exposed Java management interface.Section 7 · H-Near-8
Initial AccessT1566.001 — Spearphishing AttachmentZIP carrying LNK + decoy PDF + nested _CL_###### triad folder.Q7 · H-Immediate-3
ExecutionT1204.002 — User Execution: Malicious FileLNK and MSI both require a user double-click; MSI additionally passes a UAC prompt.Q10, Q13
ExecutionT1059.005 — Command and Scripting Interpreter: Visual BasicVBS orchestrator pops the decoy, stages the triad and chains the next stage.Q9 · H-Immediate-4
Execution / Defense EvasionT1218 — System Binary Proxy Executionftp.exe -s: used as a script runner; signed vendor EXEs used as loader hosts.Q4, Q6
Execution / Defense EvasionT1218.007 — MsiexecMSI installer plants the triad in Startup behind a UAC prompt.Q10 · H-Near-7
PersistenceT1547.001 — Registry Run Keys / Startup FolderWhole triad dropped into the per-user Startup folder to survive reboot.Q5 · H-Immediate-2
Defense EvasionT1574.001 — Hijack Execution Flow: DLLSigned binary loads the attacker DLL from its own directory. Three different vendor binaries across four builds.Q4, Q11 · H-Near-6
Defense EvasionT1036.005 — Masquerading: Match Legitimate Name or LocationLoader DLLs named after real dependencies; fscan renamed sys.log; NOVUpdate.exe is a renamed G DATA updater.Q11
Defense EvasionT1140 — Deobfuscate/Decode Files or InformationByte reversal then rolling XOR with offset on the .dat/.log payload.Gap — IOA-1
Defense EvasionT1027.013 — Obfuscated Files or Information: Encrypted/Encoded FileEncrypted companion payload plus the nested _CL_###### path.Q7
Defense EvasionT1070.004 — Indicator Removal: File DeletionDouble-extension ~del.vbs.bat deletes the VBS two seconds after execution.Q8
Defense EvasionT1562.001 — Impair Defenses: Disable or Modify Toolsfuckaliyun.sh disables the cloud host-monitoring agent on the operator's own staging server.Section 7 (Linux)
Credential AccessT1555.003 — Credentials from Web BrowsersAttempted download of a Chromium App-Bound-Encryption credential tool.Partial
Command & ControlT1071.001 — Application Layer Protocol: Web ProtocolsAdaptixC2 HTTP beacon with a fixed URI set and a stale Firefox user-agent.Q1, Q2, Q3, Q12
Command & ControlT1573.001 — Encrypted Channel: Symmetric CryptographyBeagle encrypts with a hardcoded AES key over TCP/443 and UDP/8080.Q12 · Section 7
Command & ControlT1090.001 — Proxy: Internal Proxyiox, suo5, Neo-reGeorg and a garbled NPS build relay traffic through compromised hosts.Section 7 · H-Strategic-13
Command & ControlT1105 — Ingress Tool TransferToolkit pulled directly from public repositories onto the staging server, then served to victims over HTTP on a high port.Q12
07

Native Audit-Log Hunts (non-CQL)

Proxy / web gateway

  • Search request logs for the AdaptixC2 beacon URI set — POST /api/v1/status, /updates/check.php, /content.html — to any external host. Individually these are unremarkable; the same client hitting all three on a fixed interval is not.
  • Filter on the beacon user-agent Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0. A 2012 Firefox build string in 2026 is a configuration artefact, not a browser.
  • Look for an X-Beacon-Id request header. It is not a standard header and appears in the recovered AdaptixC2 HTTP profile.
  • Alert on any newly registered domain matching update-*, download-*, patch-* or license-* concatenated with a security-vendor brand. Feed the pattern to your brand-monitoring and certificate-transparency watch.

DNS resolver

  • Query resolver logs for the full campaign domain set in section 4 over the longest retention you hold. The staging infrastructure was live from roughly February to April 2026, so a 30-day window will miss it.
  • Flag NXDOMAIN storms against .top and freshly registered .com names from a single client — the fallback pattern once C2 is sinkholed.

Email gateway

  • Search archived mail for ZIP attachments whose listing contains a folder named _CL_ followed by five to eight digits, or a LNK plus PDF plus DLL in the same archive.
  • Pull messages carrying an account-statement or software-technical-overview decoy PDF alongside an executable-bearing archive.
  • Check whether your gateway inspects inside ZIP archives at all. If archive inspection is off, every query in this pack is a compensating control for a delivery gap you can close in an afternoon.

Windows endpoint (Sysmon / native)

  • Sysmon Event ID 7 (Image Loaded): a signed vendor EXE loading an unsigned or differently-signed DLL from its own directory. This is the single cleanest sideloading signal and Falcon does not expose a direct equivalent.
  • Sysmon Event ID 11 (File Create): files matching *.exe.dat, *.exe.log or Windows.log created in the same directory as an executable.
  • Enumerate every per-user and all-users Startup folder for an executable with a same-stem companion file. The playbook in section 13 does this estate-wide.
  • Event ID 4688 with a parent of msiexec.exe and a child of wscript.exe, cscript.exe or ftp.exe.

Linux / Java application servers

  • File-integrity monitoring across all webroots and servlet deployment directories. suo5 and Neo-reGeorg both require a planted webshell to function.
  • Confirm no Java management or monitoring interface is reachable from the internet. That was the confirmed entry route for the healthcare intrusion.
  • Grep application access logs for long-lived POST sessions with large symmetric byte counts to a single URI — the SOCKS-over-HTTP tunnel signature.
  • Audit for unexpected listeners and for binaries renamed to log-file names (a scanner renamed sys.log, a tunnel binary renamed mail.log). Check the file type, not the extension.
  • Verify your cloud host-monitoring agents are actually reporting. The operators shipped a script specifically to silence one.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.

None of these queries carry an in-query time filter. Set the window with the console time picker — the intended lookback is recorded in each card as a // LOOKBACK: comment. For this campaign use 90 days minimum; the staging infrastructure was live from February 2026.

Q1 · Security-vendor impersonation domains (highest fidelity)
CONF HIGHFP LOWCOST LOW

Looks for: any DNS resolution of the three fake security-vendor update domains registered by this cluster. There is no benign path to these names — no vendor ships updates from update-<vendor>.com. Run this first. A single hit is a confirmed compromise until you prove otherwise.

// HUNT: JadeProx security-vendor impersonation C2 resolution
// MITRE: T1071.001, T1583.001 | CONF: high  FP: low  COST: low
// REQUIRES: DnsRequest telemetry
// FALSE POSITIVES: none expected; no legitimate resolver path exists for these hostnames
// LOOKBACK: 90d (set in the console time picker)
#event_simpleName=/^(DnsRequest|SuspiciousDnsRequest)$/
| DomainName=/^([a-z0-9_-]+\.)*update-(crowdstrike|trellix|sentinelone)\.com$/i
| table([@timestamp, aid, ComputerName, UserName, ContextBaseFileName, DomainName])
| sort(@timestamp, order=desc, limit=500)
Q2 · Generalised security-vendor lookalike domains
CONF MEDFP MEDCOST MED

Looks for: the pattern rather than the three known names — an update/download/patch/licence prefix bolted onto a security-vendor brand. This is what catches the fourth lookalike the actor registers next month. FP: medium — the vendors' own genuine hostnames match the shape, so the tuning line below is mandatory before this goes anywhere near an alert.

// HUNT: Security-vendor brand lookalike domain resolution (generalised)
// MITRE: T1583.001 | CONF: medium  FP: medium  COST: medium
// REQUIRES: DnsRequest telemetry
// FALSE POSITIVES: the vendors' own update and CDN hostnames match this shape
// TUNING: append the exclusion stage below to drop every genuine vendor apex, then baseline
// TUNING: the survivors for a week before promoting to an alert
// LOOKBACK: 90d
#event_simpleName=/^(DnsRequest|SuspiciousDnsRequest)$/
| DomainName=/(update|download|patch|licen[cs]e|portal|support)[-.](crowdstrike|sentinelone|trellix|mcafee|sophos|fortinet|paloalto|trendmicro|kaspersky|bitdefender|eset|carbonblack|cylance|defender)[a-z0-9-]*\.[a-z]{2,12}$/i
| DomainName!=/\.(crowdstrike|sentinelone|trellix|mcafee|sophos|fortinet|paloaltonetworks|trendmicro|kaspersky|bitdefender|eset)\.com$/i
| groupBy([DomainName, ComputerName, aid], function=[count(as=Hits), max(@timestamp, as=LastSeen)], limit=1000)
| sort(Hits, order=desc, limit=200)
Q3 · Named JadeProx C2 and distribution domains
CONF HIGHFP LOWCOST LOW

Looks for: resolution of the remaining named campaign infrastructure — the cloned Claude distribution site, the Beagle C2 subdomain, both AdaptixC2 domains and the reputation-cover site. Projecting ContextBaseFileName tells you immediately whether a browser or a loader made the request.

// HUNT: JadeProx named C2 and distribution domain resolution
// MITRE: T1071.001 | CONF: high  FP: low  COST: low
// REQUIRES: DnsRequest telemetry
// FALSE POSITIVES: a security research or sandbox host detonating the sample
// LOOKBACK: 90d
#event_simpleName=/^(DnsRequest|SuspiciousDnsRequest)$/
| DomainName=/^([a-z0-9_-]+\.)*(claude-pro\.com|sylverixstrategy\.com|gouvvbo\.top|vertextrust-advisors\.com)$/i
| table([@timestamp, aid, ComputerName, UserName, ContextBaseFileName, DomainName])
| sort(@timestamp, order=desc, limit=500)
Q4 · TriBack sideloading host binary in a user-writable path
CONF HIGHFP LOWCOST LOW

Looks for: the three signed vendor executables the campaign uses as loader hosts, executing from anywhere other than their real install directory. These binaries belong in Program Files. Seeing one run out of Startup, AppData, ProgramData, Temp, Downloads or a public folder is the TriBack triad. Project SHA256HashData so you can immediately confirm the host binary is the genuine signed file and pivot to the DLL beside it.

// HUNT: Abused signed vendor binary executing outside its install path (TriBack host)
// MITRE: T1574.001, T1218, T1036.005 | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2
// FALSE POSITIVES: a genuine vendor installer staging its own updater into %TEMP% mid-upgrade
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| FileName=/^(NOVUpdate|NOVupdate|avk|ServiceHub\.DataWarehouseHost|MpCopyAccelerator|MpCmdRun)(\.exe)?$/i
| ImageFileName=/(Programs.{0,4}Startup|AppData|ProgramData|Temp|Downloads|Users.{0,40}Public)/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, SHA256HashData, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q5 · Rare executables persisting from the Startup folder
CONF MEDFP MEDCOST MED

Looks for: the campaign-agnostic version of Q4. Every TriBack variant that achieves persistence does it by dropping the triad into a Startup folder, and the filenames change per build. Sorted ascending so the rarest executables — the ones on one or two hosts — surface first. FP: medium — plenty of legitimate consumer software persists this way, so read this as a rarity ranking rather than an alert. Anything appearing on fewer than three hosts deserves a look.

// HUNT: Rare executable persisting from a Startup folder (TriBack-agnostic)
// MITRE: T1547.001 | CONF: medium  FP: medium  COST: medium
// REQUIRES: ProcessRollup2
// FALSE POSITIVES: conferencing clients, vendor updaters and consumer utilities legitimately autostart
// TUNING: exclude your approved autostart estate by name, e.g. append
// TUNING: | FileName!=/^(teams|onedrive|slack|zoom|steam|discord|dropbox|greenshot)\.exe$/i
// TUNING: then investigate any FileName seen on fewer than 3 distinct hosts
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| ImageFileName=/Programs.{0,4}Startup/i
| FileName=/\.(exe|scr|com|pif)$/i
| groupBy([FileName], function=[count(aid, distinct=true, as=HostCount), count(as=Execs), selectFromMax(field=@timestamp, include=[ComputerName, UserName, ImageFileName, SHA256HashData])], limit=2000)
| sort(HostCount, order=asc, limit=200)
Q6 · ftp.exe abused as a script interpreter
CONF HIGHFP LOWCOST LOW

Looks for: the variant-3 execution trick — ftp.exe -s: pointed at a file staged with a .dat extension, so a script runs under a signed Microsoft networking binary instead of a script host. The command line also carries the nested _CL_ path, which cross-confirms Q7.

// HUNT: ftp.exe -s: script-file execution (LOLBIN proxy execution)
// MITRE: T1218 | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2
// FALSE POSITIVES: legacy scripted FTP jobs on file-transfer servers; scope these out by host role
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| FileName=/^ftp(\.exe)?$/i
| CommandLine=/\s-s\s*:/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q7 · Nested _CL_###### staging folder
CONF HIGHFP LOWCOST MED

Looks for: the distinctive nested folder name the phishing archives use to hide the triad one level down from the decoy. Coalescing the command line, the written path and the image path means one query covers execution and file-drop events together.

// HUNT: JadeProx _CL_###### nested staging directory
// MITRE: T1027.013, T1566.001 | CONF: high  FP: low  COST: medium
// REQUIRES: ProcessRollup2 plus file-write telemetry
// FALSE POSITIVES: none observed; the token is campaign-specific
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2|PeFileWritten|NewExecutableWritten|ZipFileWritten)$/
| TargetFileName := coalesce([TargetFileName, CommandLine, ImageFileName])
| TargetFileName=/_CL_\d{5,8}/i
| table([@timestamp, aid, ComputerName, UserName, #event_simpleName, TargetFileName])
| sort(@timestamp, order=desc, limit=500)
Q8 · Double-extension self-delete artefact
CONF HIGHFP LOWCOST LOW

Looks for: the tilde-prefixed double-extension batch file the MSI variant writes to erase its own VBS two seconds after execution. The pattern is generalised beyond the exact observed name so a rename does not evade it.

// HUNT: Tilde-prefixed double-extension self-delete script
// MITRE: T1070.004 | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2 plus file-write telemetry
// FALSE POSITIVES: rare; a few installers use tilde-prefixed temp scripts during cleanup
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2|PeFileWritten|NewExecutableWritten)$/
| TargetFileName := coalesce([TargetFileName, CommandLine, ImageFileName])
| TargetFileName=/(~del[\w.-]*\.(bat|cmd)|\.(vbs|js|pdf|doc|docx|xls)\.(bat|cmd|exe|scr))/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, #event_simpleName, TargetFileName])
| sort(@timestamp, order=desc, limit=500)
Q9 · Script host running from an extraction, Downloads or Startup path
CONF MEDFP MEDCOST LOW

Looks for: the VBS orchestrator stage. Every variant except the DeviceSync build routes through wscript or cscript executing a script that was extracted from an archive, downloaded, or planted in Startup. FP: medium — enterprise logon scripts and legacy line-of-business VBS will surface. Scope by user population first: a script host running out of a Downloads folder for a non-developer is the signal.

// HUNT: Script host executing from a user-writable staging path (VBS orchestrator)
// MITRE: T1059.005, T1204.002 | CONF: medium  FP: medium  COST: low
// REQUIRES: ProcessRollup2
// FALSE POSITIVES: logon scripts, packaging tooling, legacy VBS line-of-business apps
// TUNING: exclude your logon-script share and packaging hosts, e.g. append
// TUNING: | CommandLine!=/(netlogon|sysvol|sccmcache|ccmcache)/i and scope to non-IT user groups
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| FileName=/^(wscript|cscript|mshta)(\.exe)?$/i
| CommandLine=/(Programs.{0,4}Startup|AppData.{0,4}Local.{0,4}Temp|Downloads|Desktop|_CL_\d{5,8})/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q10 · msiexec spawning a script host or LOLBIN
CONF MEDFP MEDCOST LOW

Looks for: the malvertised-MSI persistence path. The installer runs a VBScript custom action that plants the triad in Startup and creates the desktop shortcut. FP: medium — packaged enterprise software legitimately uses script custom actions, so pair this with the parent MSI's signing status and whether the child touches a Startup path.

// HUNT: MSI custom action launching a script host or LOLBIN child
// MITRE: T1218.007, T1547.001 | CONF: medium  FP: medium  COST: low
// REQUIRES: ProcessRollup2
// FALSE POSITIVES: legitimate packaged software with VBScript or PowerShell custom actions
// TUNING: keep only children whose command line touches an autostart path, e.g. append
// TUNING: | CommandLine=/(Programs.{0,4}Startup|CurrentVersion.{0,4}Run)/i
// LOOKBACK: 90d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| ParentBaseFileName=/^msiexec\.exe$/i
| FileName=/^(wscript|cscript|mshta|ftp|regsvr32|rundll32|powershell|pwsh)(\.exe)?$/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q11 · Masquerading loader DLL written outside its vendor directory
CONF HIGHFP MEDCOST LOW

Looks for: the TriBack DLL hitting disk. All three names are real dependency names, so the location does the work: a hostfxr.dll in Program Files is the .NET host, and a hostfxr.dll in a Startup folder is the loader. FP: medium — .NET developer machines emit their own hostfxr.dll into build output directories, which is the dominant benign hit.

// HUNT: TriBack masquerading DLL written outside a legitimate vendor path
// MITRE: T1036.005, T1574.001 | CONF: high  FP: medium  COST: low
// REQUIRES: PeFileWritten or NewExecutableWritten
// FALSE POSITIVES: .NET build output on developer workstations emits hostfxr.dll legitimately
// TUNING: exclude vendor and build directories, e.g. append
// TUNING: | TargetFileName!=/(Program Files|Windows.{0,4}(System32|SysWOW64|WinSxS|assembly)|dotnet|\\bin\\(Debug|Release))/i
// LOOKBACK: 90d
#event_simpleName=/^(PeFileWritten|NewExecutableWritten)$/
| TargetFileName=/(hostfxr|avk|MpClient|MpCopyAccelerator)\.dll$/i
| TargetFileName=/(Programs.{0,4}Startup|AppData|ProgramData|Temp|Downloads|Users.{0,40}Public)/i
| table([@timestamp, aid, ComputerName, UserName, ContextBaseFileName, TargetFileName, SHA256HashData])
| sort(@timestamp, order=desc, limit=500)
Q12 · Loader-host beacon egress on 443 / 8080
CONF MEDFP MEDCOST HIGH

Looks for: external egress on the two ports this campaign uses — Beagle speaks TCP/443 and UDP/8080, and one MSI variant reported to its C2 on 8080 — attributed to the process names that carry the loader. Aggregating by first-seen and last-seen turns a connection list into a beacon-lifetime view. FP: medium — script hosts and updaters legitimately reach 443. The distinguishing feature is a long, steady connection count to a single external address from a process that has no business talking to the internet at all.

// HUNT: External beacon egress from a TriBack loader host process
// MITRE: T1071.001, T1573.001, T1105 | CONF: medium  FP: medium  COST: high
// REQUIRES: NetworkConnectIP4
// FALSE POSITIVES: legitimate updaters and script-driven integrations reaching 443
// TUNING: drop your known-good egress destinations first, e.g. append
// TUNING: add a second !cidr() stage covering your CDN and vendor egress ranges,
// TUNING: then keep groups where Conns is large and FirstSeen to LastSeen spans multiple days
// LOOKBACK: 30d (this one is expensive; widen only after tuning)
#event_simpleName=/^NetworkConnectIP4$/
| !cidr(RemoteAddressIP4, subnet=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","127.0.0.0/8","169.254.0.0/16"])
| in(RemotePort, values=[443, 8080])
| ContextBaseFileName=/^(NOVUpdate|NOVupdate|avk|ServiceHub\.DataWarehouseHost|MpCopyAccelerator|ftp|wscript|cscript|mshta)\.exe$/i
| groupBy([aid, ComputerName, ContextBaseFileName, RemoteAddressIP4, RemotePort], function=[count(as=Conns), min(@timestamp, as=FirstSeen), max(@timestamp, as=LastSeen)], limit=2000)
| sort(Conns, order=desc, limit=200)
Q13 · Known JadeProx file hashes
CONF HIGHFP LOWCOST LOW

Looks for: the vendor-published SHA-256 set — archives, MSI droppers, the three sideloaded DLLs, the first-stage and AdaptixC2 shellcode, and the Beagle backdoor. Retrospective hash hunting is the cheapest confirmation you have; run it before anything else if you only have time for one query besides Q1.

// HUNT: JadeProx / TriBack / Beagle known-bad SHA-256 set
// MITRE: T1204.002, T1574.001 | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2, PeFileWritten or ImageHash
// FALSE POSITIVES: malware-analysis workstations and detonation sandboxes
// NOTE: the legitimate signed host binaries are deliberately NOT in this list; see section 10
// LOOKBACK: 180d
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2|PeFileWritten|NewExecutableWritten|ImageHash)$/
| in(SHA256HashData, values=[
    "d5590802bf0926ac30d8e31c0911439c35aead82bf17771cfd1f9a785a7bf143",
    "0a19870ba24aeb9d4b5dde091ef8071d76f8a5e43ac8c6f5b9f283020580a60a",
    "a3c5c7253c0b3ed92e86dc5661d8530a0e8acdf8768e80362e5fe897ccb6cd84",
    "99cb90a3cd46650b8b766c658b7af1b8bbe54a2ac7dcf61429686fd1c548395b",
    "7f50afef2d6e52a160cceb5f2c9945ce89b8e923836e0e550245a46509a98851",
    "2c30c20854e1f6a493aef344cea2d114c566ebae096c3c75508f4e03d5492288",
    "86a6ffa23e924d1afbfb31b55fe780916cf3c9a4f8c3165542fdd726783fc796",
    "586f27257d3eaee7d4bec9e9207c317a9caeded95eca3969739d7e8181d24620",
    "35feef0e6806c14f4ccdb4fceff8a5757956c50fb5ec9644dedae665304f9f96",
    "4457ed2e5ef770f70596735a6bac03f78e426a548335742ac761fba60f987a26",
    "46dea8c1af85134a7b15fc7168386eadd15474b1a6159567b24e83d8a30fc6ef",
    "e6d66d192a779f195426db94d2568c03a9bd0d2e8f1972aa32a0317940ae19c2",
    "8ac88aeecd19d842729f000c6ab732261cb11dd15cdcbb2dd137dc768b2f12bc",
    "33f0caec6f03727fc77ca656ab92cbf20fed53f0fe85a06ec9620aab5e8c9e27"])
| table([@timestamp, aid, ComputerName, UserName, #event_simpleName, FileName, ImageFileName, TargetFileName, SHA256HashData])
| sort(@timestamp, order=desc, limit=500)
09

CrowdStrike Custom IOA Recommendations

Three of the thirteen queries are clean enough to promote to Custom IOAs. The rest stay investigate-only. Build these under Endpoint security > Custom IOA rule groups, start every rule at Detect, and only move to Prevent after a two-week clean baseline.

IOA-1 · Sideload host binary outside its install path

FieldValue
Rule typeProcess Creation
Source from QQ4
Image filename pattern.*\\(NOVUpdate|NOVupdate|avk|ServiceHub\.DataWarehouseHost|MpCopyAccelerator)\.exe
Grandparent / path guardCommand line pattern .*(Startup|AppData|ProgramData|Temp|Downloads).*
ExclusionImage filename under .*\\Program Files( \(x86\))?\\.*
SeverityHigh
ActionDetect first. Promote to Prevent once the vendor-installer staging FP is confirmed absent.

IOA-2 · ftp.exe used as a script interpreter

FieldValue
Rule typeProcess Creation
Source from QQ6
Image filename pattern.*\\ftp\.exe
Command line pattern.*\s-s\s*:.*
ExclusionScope the rule group to exclude designated file-transfer server host groups.
SeverityHigh
ActionDetect, then Prevent on workstation host groups only.

IOA-3 · Tilde double-extension self-delete script

FieldValue
Rule typeFile Creation
Source from QQ8
File path pattern.*\\~del[\w.-]*\.(bat|cmd)
SeverityMedium
ActionDetect. This is an evidence-destruction signal — its value is that it fires during, not after, the incident.

Not promoted, and why

  • Q1 / Q3 (domain resolution) — better served by Falcon IOC Management domain entries and a DNS/proxy block than by a Custom IOA. Import the CSV in section 10 instead.
  • Q5, Q9, Q10, Q11, Q12 — FP medium. These need per-environment tuning before an IOA is safe; run them as scheduled searches for two weeks first.
  • Q2 — deliberately broad, intended for periodic hunting rather than continuous alerting.
  • The XOR decrypt and callback-primitive stages — no Custom IOA rule type reaches them. They are memory-behavioral and belong to the sensor's own on-sensor ML and memory scanning, not to a rule you can write. Treat this as a known ceiling, not a gap you can close with more queries.
10

Machine-Readable IOC Appendix

Read before importing. Every value below traces to a saved snapshot of a primary vendor report. Nothing here is inferred, and nothing here is a shared-hosting address. Two-vendor-corroborated infrastructure carries severity=critical; single-vendor infrastructure is downgraded to high. Set the action column to prevent only after you have confirmed your own resolvers do not legitimately touch these names.

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
domain,claude-pro.com,prevent,critical,2027-01-24,JadeProx cloned Claude distribution site,campaign:JadeProx
domain,license.claude-pro.com,prevent,critical,2027-01-24,Beagle backdoor C2,campaign:JadeProx
domain,update-crowdstrike.com,prevent,critical,2027-01-24,Security vendor impersonation C2,campaign:JadeProx
domain,update-trellix.com,prevent,critical,2027-01-24,Security vendor impersonation C2,campaign:JadeProx
domain,update-sentinelone.com,prevent,critical,2027-01-24,Security vendor impersonation C2,campaign:JadeProx
domain,gouvvbo.top,prevent,critical,2027-01-24,AdaptixC2 C2 and fake municipal tax portal,campaign:JadeProx
domain,sylverixstrategy.com,detect,high,2027-01-24,AdaptixC2 C2 single primary source,campaign:JadeProx
domain,vertextrust-advisors.com,detect,high,2027-01-24,Reputation cover site on campaign infrastructure,campaign:JadeProx
ipv4,8.217.190.58,detect,high,2027-01-24,Resolves the Beagle C2 hostname,campaign:JadeProx
ipv4,192.252.186.62,detect,high,2026-10-24,Hosts all three security vendor lookalike domains,campaign:JadeProx
ipv4,43.106.71.28,detect,high,2026-10-24,Staging server open directory on port 8000 now offline,campaign:JadeProx
sha256,d5590802bf0926ac30d8e31c0911439c35aead82bf17771cfd1f9a785a7bf143,prevent,critical,2027-01-24,TriBack Loader sideloaded DLL avk.dll,campaign:JadeProx
sha256,0a19870ba24aeb9d4b5dde091ef8071d76f8a5e43ac8c6f5b9f283020580a60a,prevent,critical,2027-01-24,TriBack Loader sideloaded DLL hostfxr.dll,campaign:JadeProx
sha256,a3c5c7253c0b3ed92e86dc5661d8530a0e8acdf8768e80362e5fe897ccb6cd84,prevent,critical,2027-01-24,TriBack Loader sideloaded DLL MpClient.dll,campaign:JadeProx
sha256,99cb90a3cd46650b8b766c658b7af1b8bbe54a2ac7dcf61429686fd1c548395b,prevent,critical,2027-01-24,Beagle backdoor payload,campaign:JadeProx
sha256,7f50afef2d6e52a160cceb5f2c9945ce89b8e923836e0e550245a46509a98851,prevent,critical,2027-01-24,TriBack first stage shellcode,campaign:JadeProx
sha256,2c30c20854e1f6a493aef344cea2d114c566ebae096c3c75508f4e03d5492288,prevent,critical,2027-01-24,AdaptixC2 shellcode,campaign:JadeProx
sha256,86a6ffa23e924d1afbfb31b55fe780916cf3c9a4f8c3165542fdd726783fc796,detect,high,2027-01-24,Claude.msi dropper,campaign:JadeProx
sha256,586f27257d3eaee7d4bec9e9207c317a9caeded95eca3969739d7e8181d24620,detect,high,2027-01-24,GolddTV.msi dropper,campaign:JadeProx
sha256,35feef0e6806c14f4ccdb4fceff8a5757956c50fb5ec9644dedae665304f9f96,detect,high,2027-01-24,Claude-Pro-windows-x64.zip delivery archive,campaign:JadeProx
sha256,4457ed2e5ef770f70596735a6bac03f78e426a548335742ac761fba60f987a26,detect,high,2027-01-24,Claude-Pro-Relay-Technical-Overview.zip archive,campaign:JadeProx
sha256,46dea8c1af85134a7b15fc7168386eadd15474b1a6159567b24e83d8a30fc6ef,detect,high,2027-01-24,Spearphishing archive with account statement decoy,campaign:JadeProx
sha256,e6d66d192a779f195426db94d2568c03a9bd0d2e8f1972aa32a0317940ae19c2,detect,high,2027-01-24,DeviceSync.zip archive,campaign:JadeProx
sha256,8ac88aeecd19d842729f000c6ab732261cb11dd15cdcbb2dd137dc768b2f12bc,detect,high,2027-01-24,Encrypted TriBack companion payload,campaign:JadeProx
sha256,33f0caec6f03727fc77ca656ab92cbf20fed53f0fe85a06ec9620aab5e8c9e27,detect,high,2027-01-24,Encrypted TriBack companion payload variant,campaign:JadeProx
# DO NOT BLOCK be153ac4db95db7520049a4c1e5182be07d27d2c11088a2d768e931b9a981c7f
# That SHA-256 is the LEGITIMATE signed vendor updater the loader sideloads into.
# It is a hunt anchor only. Blocking it breaks a real product and stops nothing.
# Shared hosting deliberately omitted: 104.21.60.96 Cloudflare, 161.35.236.255 and
# 178.128.108.89 DigitalOcean. Alert on them if you must; never block them.
MD5 cross-referencehunt only
# Published as MD5 by the primary report. Use for VirusTotal pivots and
# retro-hunting where only MD5 is retained. Falcon IOC Management prefers SHA-256.
d99392248bdd7e351e63ead6733638ba  hostfxr.dll
df1f03a2534480a4838f62339bcb90d8  hostfxr.dll (second build)
88ac1c5fc9ee89491c70ea16131e264a  avk.dll
3b3dd8f3a5e1ff85c63f2453ad270415  MpClient.dll
5222a31cf24f9f57ae3d1831f264a983  encrypted .dat companion payload
9e01bf0e28c86435cfb1afaef44238e9  encrypted .log companion payload
3fe9c84025f4401f8cd661675642c526  NOVUpdate.exe.dat
0e6d22c2a81d29b1f9d8395d44e19e53  script.vbs orchestrator
bef0b8599d18acf1c74192ae9f198f85  pdf.vbs orchestrator
c512adfa8743c3b3c776d4452f00c6c0  Claude.vbs orchestrator
a4cdecc57a215243d279cdb065863308  script.dat (ftp.exe script stage)
35cdbf8a16da1245d574a0365cb87287  spearphishing LNK
c1f45a0609c5c1bd2c21cad20703f126  Claude-Pro-Relay LNK
bb5c88de9e04e6306260b9f3a4498933  spearphishing archive
7840f30b395fac347f85b38633c2d08d  operator-staged sideload package
c64eda499e2a21ad158841b9dbc7adc9  Claude-Pro-windows-x64.zip
efac43473d7e87ede5176fe01a114abb  Claude.msi
796f82a4833be330b1e35af63e55b597  GolddTV.msi
4faf4fd91d28e014b4f2362d6a7bb8ac  DeviceSync.zip
# Operator Linux toolkit staged on the exposed server
7c84e75817349adcdea9925b86f67670  iox port-forwarding tool
38e317af0fc0efcc88265f243a264542  suo5 SOCKS5-over-HTTP tunnel
f360afe51b499a036c7be8c0ecc4dc89  Neo-reGeorg neoreg.py
b8053bcd04ce9d7d19c7f36830a9f26b  fscan renamed to a log filename
ee5a2cdd4ce6ccb2e9279c9e13e8bd15  nuclei scanner
aedd185b76ccda8d65dbd26204cc0e9a  cloud agent disable script
0482d6053f96e6bde0a92af25497f3c0  socks5 proxy server
5b75b00a4b4c32b6e213514e80500a65  garbled NPS proxy build
8002ab4d0cf7e1888ee72de0b9f4282c  garbled NPS proxy build (second)
39d4012e49f58092ec5cefed13dbbcfd  XXE payload dtd
Behavioral signaturesoutlives the IOCs
# These survive a rebuild. The atomic indicators above will not.
TRIAD_LAYOUT      signed vendor EXE + same-named-as-real DLL + encrypted .dat/.log
                  companion, all three in one user-writable directory
PERSISTENCE       whole triad copied into a per-user Startup folder by a VBS
                  or an MSI custom action
STAGING_PATH      nested folder matching _CL_ followed by 5-8 digits
SELF_DELETE       tilde-prefixed double-extension script, e.g. ~del.vbs.bat
LOLBIN_SCRIPT     ftp.exe -s: pointed at a file with a non-script extension
DECRYPT_ROUTINE   payload bytes reversed, then rolling XOR with offset
EXEC_PRIMITIVE    InitOnceExecuteOnce / TimerQueue callback / EtwpCreateEtwThread
                  resolved from ntdll via GetModuleHandleA + GetProcAddress
BEACON_HTTP       POST /api/v1/status, /updates/check.php, /content.html
BEACON_UA         Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0
BEACON_HEADER     non-standard X-Beacon-Id request header
BEAGLE_TRANSPORT  TCP/443 or UDP/8080, AES with a hardcoded key
TUNNELLING        SOCKS5-over-HTTP through a planted webshell; long-lived POST
                  sessions with symmetric byte counts
RENAMED_TOOLS     ELF binaries renamed to log filenames; check type not extension
Named malware & toolingdetection naming
cluster            JadeProx (China-nexus, tracked separately to avoid misattribution)
loader             TriBack Loader (4 variants, one custom builder)
post-exploitation  AdaptixC2 (open-source framework, HTTP beacon)
shellcode loader   DonutLoader
backdoor           Beagle (8 commands: shell, file transfer, dir list, self-remove)
tunnelling         iox, suo5, Neo-reGeorg, garbled NPS
scanning           nuclei (critical templates only), fscan
credential access  Chromium App-Bound-Encryption stealer (download attempt only)
misc               XMRig proxy, Go socks5-server, cloud-agent disable script
overlaps           tradecraft shared with several documented China-nexus clusters;
                   no single group accounts for the whole picture
Patch / ASR / policy auditprevent half
# Exploited by this cluster against internet-facing hosts. All CVSS 9.8.
CVE-2018-11511   SQL injection in a NAS photo-gallery application
CVE-2021-24139   SQL injection in a WordPress photo-gallery plugin
CVE-2021-31755   stack buffer overflow in a consumer router (on CISA KEV since 2021-11-03)
CVE-2021-32305   arbitrary command execution in a web SVN interface

# Defender ASR rules to enable in Block mode
BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550  Block executable content from email and webmail
D3E037E1-3EB8-44C8-A917-57927947596D  Block JS/VBS launching downloaded executable content
5BEB7EFE-FD9A-4556-801D-275E5FFC04CC  Block execution of potentially obfuscated scripts
3B576869-A4EC-4529-8536-B80A7769E899  Block Office apps creating executable content
D4F940AB-401B-4EFC-AADC-AD5F3C50688A  Block Office apps creating child processes

# Policy values to verify
HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings\Enabled          = 0
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated = 0
HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated = 0
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\DisableMSI         = 2
Mail gateway: archive inspection ON, LNK inside archives BLOCKED
DNS: newly-registered-domain category BLOCKED for all user subnets
11

Detection Validation Gates

Gate 1 — Telemetry ready

  • Confirm DnsRequest events are present estate-wide: #event_simpleName=/^DnsRequest$/ | groupBy([ComputerName], function=count(as=n), limit=5000). Any host group returning zero is invisible to Q1, Q2 and Q3.
  • Confirm PeFileWritten is flowing before trusting Q11's silence.
  • Confirm your DNS resolver and proxy retention actually covers 90 days. If it covers 30, say so in the ticket rather than reporting a clean hunt.

Gate 2 — Benign baseline

  • Run Q5, Q9, Q10, Q11 and Q12 in report-only mode for one full business week. Record the top twenty benign hits per query and turn them into the exclusion stage in each card's // TUNING: line.
  • Q2 will hit your own security vendors' genuine domains before tuning. That is expected and is the point of the exclusion stage.

Gate 3 — Positive test (safe, non-offensive)

  • Q1/Q3: add one campaign domain to an internal test resolver zone and resolve it from a lab host. No malware needed; you are testing the query and the pipeline, not the payload.
  • Q4: copy any benign signed vendor executable into a lab user's Startup folder and run it. The query should fire on path alone.
  • Q6: run ftp.exe -s:C:\lab\commands.txt on a lab host with a harmless command file.
  • Q7: create a folder named _CL_123456 on a lab host and execute a benign binary from inside it.
  • Q13: cannot be positively tested without the samples. Validate the query shape by substituting the SHA-256 of a known-good local file and confirming it returns.

Gate 4 — Promotion

  • Promote to a scheduled search only after Gate 2 produces a stable, explainable hit rate.
  • Promote to a Custom IOA only for IOA-1, IOA-2 and IOA-3, and only at Detect severity first.
  • Move an IOC row from detect to prevent only after two clean weeks and a documented owner for the false-positive rollback.
12

Hardening — Tiered

Each control names the MITRE mitigation it satisfies (the why) and the platform authority that defines it (the what). Controls are ordered by leverage against this specific chain, not by comprehensiveness.

Immediate — deploy this week, no compatibility risk
  1. Block the confirmed C2 set at DNS and proxy. Import the section 10 CSV into Falcon IOC Management and add the same domains to your resolver's denylist. MITRE M1037 Filter Network Traffic. Verify: resolve each name from a user subnet and confirm NXDOMAIN or sinkhole.
  2. Deny execution from the per-user Startup folder. An AppLocker or WDAC deny rule on %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\* removes the persistence mechanism every TriBack variant depends on and breaks essentially nothing in a managed estate. MITRE M1038 Execution Prevention; CIS Microsoft Windows Benchmark application-control section; Microsoft Security Baseline. Verify: drop a benign EXE in the folder and confirm it is blocked.
  3. Block LNK files inside archives at the mail gateway, and turn archive inspection on. The spear-phishing half of this campaign is a ZIP containing a LNK. If your gateway does not open archives, none of your attachment policy applies. MITRE M1049 Antivirus/Antimalware, M1031 Network Intrusion Prevention. Verify: send a test ZIP containing a benign LNK to a monitored mailbox.
  4. Disable Windows Script Host for standard users. Every variant except one routes through wscript or cscript. MITRE M1042 Disable or Remove Feature or Program. Verify: cscript //nologo on a test host should refuse. Pilot first if you still run legacy VBS logon scripts.
  5. Enable the five Defender ASR rules listed in section 10 in Block mode. The email-content and JS/VBS rules alone cut the delivery-to-execution step. MITRE M1038, M1040 Behavior Prevention on Endpoint; Microsoft Defender ASR documentation. Verify: Get-MpPreference | Select-Object -ExpandProperty AttackSurfaceReductionRules_Ids.
  6. Block the newly-registered-domain category at DNS for all user subnets. Every domain in this campaign was registered weeks before use. MITRE M1037. best practice — no formal benchmark covers NRD categories.
Near term — 1 to 4 weeks, pilot on a ring first
  1. Publisher-and-path allowlisting for the abused vendor binaries. WDAC or AppLocker publisher rules that permit the Microsoft and third-party security binaries only from their real install paths. This directly kills sideloading regardless of which signed binary the actor picks next. MITRE M1038; CIS Windows Benchmark; Microsoft WDAC design guide. Verify: Get-AppLockerPolicy -Effective -Xml and a copy-to-Temp execution test.
  2. Remove non-admin MSI install rights. Set AlwaysInstallElevated=0 in both hives and DisableMSI=2 for standard users. The malvertising chain depends on a user clicking through a UAC prompt on an unmanaged MSI. MITRE M1026 Privileged Account Management, M1038; CIS Windows Benchmark installer section.
  3. Patch and expose-check every internet-facing application, prioritising Java. Close the four CVEs in section 10, then sweep for any public-facing host with an unpatched CVSS 9.8. Specifically confirm no Java management or monitoring interface is internet-reachable — that was the confirmed healthcare entry point. MITRE M1051 Update Software, M1035 Limit Access to Resource Over Network; NIST SP 800-40; CISA KEV.
  4. Webroot file-integrity monitoring on every application server. Both tunnelling tools in this toolkit require a planted webshell. FIM on servlet and webroot directories turns a silent pivot into an alert. MITRE M1040; CIS Benchmarks for Apache Tomcat and NGINX.
  5. Default-deny egress from server VLANs; force workstations through an inspecting proxy. AdaptixC2 and Beagle both need outbound HTTP/S. A server that cannot originate arbitrary egress cannot beacon. MITRE M1030 Network Segmentation, M1037.
  6. Certificate-transparency and brand monitoring for update-<yourvendor> patterns. The lookalike domains were registered before use and were visible in CT logs. MITRE M1056 Pre-compromise. best practice — vendor-dependent, no formal benchmark.
Strategic — 1 to 3 months, architectural
  1. WDAC in enforcement mode across the managed estate. Application control is the only control in this list that defeats an unknown fifth TriBack variant on the day it ships. Audit mode first, then enforce ring by ring. MITRE M1038; Microsoft WDAC deployment guidance.
  2. Segment the medical-imaging and OT-adjacent estate. These systems were explicitly targeted, are typically unpatchable on a normal cycle, and often carry no endpoint agent. Compensate with segmentation and flow monitoring rather than pretending an agent will arrive. MITRE M1030; NIST SP 800-82 for OT environments; IEC 62443 zone-and-conduit model.
  3. TLS inspection on user egress, with a documented exception list. Without it the AdaptixC2 URI and user-agent signals in section 7 are unavailable to you. MITRE M1020 SSL/TLS Inspection.
  4. Retention uplift for DNS and proxy logs to 12 months. This campaign was live for five months before disclosure. A 30-day window would have reported it clean. MITRE M1047 Audit. best practice — retention targets are regulatory, not benchmark-defined.
13

Deployable Playbooks

Playbook 1 — Sweep every Startup folder for a TriBack triad (PowerShell)

Finds executables in per-user and all-users Startup folders that have a same-stem companion file, which is the TriBack layout. Read-only; run it estate-wide before you change anything.

# Run as SYSTEM or an admin. Read-only enumeration.
$roots = @()
$roots += Join-Path $env:ProgramData 'Microsoft\Windows\Start Menu\Programs\StartUp'
Get-ChildItem 'C:\Users' -Directory -ErrorAction SilentlyContinue | ForEach-Object {
    $roots += Join-Path $_.FullName 'AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup'
}

foreach ($root in $roots) {
    if (-not (Test-Path $root)) { continue }
    $items = Get-ChildItem -Path $root -File -ErrorAction SilentlyContinue
    foreach ($exe in ($items | Where-Object { $_.Extension -match '^\.(exe|scr|com|pif)$' })) {
        $stem      = $exe.BaseName
        $companion = $items | Where-Object {
            $_.Name -ne $exe.Name -and
            ($_.Name -like "$stem*" -or $_.Extension -match '^\.(dat|log|bin|tmp)$')
        }
        $dll = $items | Where-Object { $_.Extension -eq '.dll' }
        $sig = Get-AuthenticodeSignature -FilePath $exe.FullName -ErrorAction SilentlyContinue

        if ($companion -or $dll) {
            [pscustomobject]@{
                Host       = $env:COMPUTERNAME
                Startup    = $root
                Executable = $exe.Name
                Signer     = $(if ($sig) { $sig.SignerCertificate.Subject } else { 'unsigned' })
                SigStatus  = $(if ($sig) { $sig.Status } else { 'none' })
                SideloadDll= ($dll.Name -join ';')
                Companion  = ($companion.Name -join ';')
                Sha256     = (Get-FileHash $exe.FullName -Algorithm SHA256).Hash
            }
        }
    }
}
# A SIGNED executable with an unsigned DLL and a .dat/.log companion beside it
# in a Startup folder is the TriBack triad. Collect the folder before isolating.

Playbook 2 — Block execution from the Startup folder (AppLocker, GPO)

Deny rule applied to Everyone. Deploy in Audit mode for 48 hours first; the report tells you which legitimate applications you are about to break.

# 1. Create or edit a GPO linked to your workstation OU.
# 2. Computer Configuration
#      -> Policies
#      -> Windows Settings
#      -> Security Settings
#      -> Application Control Policies
#      -> AppLocker
#      -> Executable Rules
# 3. New Rule: Action = Deny, User = Everyone, Condition = Path
#      %OSDRIVE%\Users\*\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\*
#      %OSDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\*
# 4. Repeat under "DLL Rules" with the same two paths. DLL rules are what
#    actually stop the sideload; the executable rule alone leaves the DLL loadable.
# 5. Set enforcement to "Audit only", collect for 48h, then switch to "Enforce rules".
# 6. Application Identity service must be running and set to Automatic:
Set-Service -Name AppIDSvc -StartupType Automatic
Start-Service -Name AppIDSvc

# Verification
Get-AppLockerPolicy -Effective -Xml | Out-String -Width 4096
# Functional test: copy a benign signed EXE into the Startup folder and run it.
# Expected result: execution blocked, Event ID 8004 in
# Microsoft-Windows-AppLocker/EXE and DLL.

Playbook 3 — Disable Windows Script Host and lock down MSI (registry / GPO)

# Disable Windows Script Host machine-wide (both hives on 64-bit).
$wsh   = 'HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings'
$wsh32 = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Script Host\Settings'
foreach ($k in @($wsh, $wsh32)) {
    if (-not (Test-Path $k)) { New-Item -Path $k -Force | Out-Null }
    New-ItemProperty -Path $k -Name 'Enabled' -Value 0 -PropertyType DWord -Force | Out-Null
}

# Remove non-admin MSI elevation and disable user-initiated installs.
$inst = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Installer'
if (-not (Test-Path $inst)) { New-Item -Path $inst -Force | Out-Null }
New-ItemProperty -Path $inst -Name 'AlwaysInstallElevated' -Value 0 -PropertyType DWord -Force | Out-Null
New-ItemProperty -Path $inst -Name 'DisableMSI'            -Value 2 -PropertyType DWord -Force | Out-Null

# Verification
Get-ItemProperty -Path $wsh  -Name Enabled
Get-ItemProperty -Path $inst -Name AlwaysInstallElevated, DisableMSI
# Expected: Enabled = 0, AlwaysInstallElevated = 0, DisableMSI = 2.
# NOTE: pilot the WSH change. If you still run VBS logon scripts, exempt those
# hosts by scoping the GPO rather than skipping the control estate-wide.

Playbook 4 — Enable the Defender ASR rules (PowerShell)

$rules = @(
    'BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550',  # executable content from email/webmail
    'D3E037E1-3EB8-44C8-A917-57927947596D',  # JS/VBS launching downloaded executables
    '5BEB7EFE-FD9A-4556-801D-275E5FFC04CC',  # obfuscated script execution
    '3B576869-A4EC-4529-8536-B80A7769E899',  # Office creating executable content
    'D4F940AB-401B-4EFC-AADC-AD5F3C50688A'   # Office creating child processes
)
# Start in Audit (2). Switch the value to 1 for Block once the audit is clean.
foreach ($id in $rules) {
    Add-MpPreference -AttackSurfaceReductionRules_Ids $id -AttackSurfaceReductionRules_Actions 2
}

# Verification
$p = Get-MpPreference
for ($i = 0; $i -lt $p.AttackSurfaceReductionRules_Ids.Count; $i++) {
    [pscustomobject]@{
        Rule   = $p.AttackSurfaceReductionRules_Ids[$i]
        Action = $p.AttackSurfaceReductionRules_Actions[$i]   # 0 off, 1 block, 2 audit
    }
}

Playbook 5 — Linux / Java application server exposure check (shell)

#!/usr/bin/env bash
# Read-only triage for the exploitation half of this campaign.
set -u

echo '== Listening services reachable off-box =='
ss -lntup 2>/dev/null | grep -v '127.0.0.1' | grep -v '::1'

echo
echo '== Java management / monitoring interfaces =='
ps -ef | grep -i java | grep -Ei 'jmxremote|com.sun.management|jolokia|hawtio' | grep -v grep

echo
echo '== Recently modified files under common webroots =='
for d in /var/www /opt/tomcat/webapps /usr/share/tomcat/webapps /srv/http; do
    [ -d "$d" ] || continue
    find "$d" -type f -mtime -90 \
        \( -name '*.jsp' -o -name '*.jspx' -o -name '*.php' -o -name '*.war' \) \
        -printf '%TY-%Tm-%Td  %p\n' 2>/dev/null
done | sort

echo
echo '== Binaries masquerading as log files =='
find /tmp /var/tmp /dev/shm /root /home -maxdepth 3 -type f -name '*.log' 2>/dev/null \
  | while read -r f; do
        t=$(file -b "$f" 2>/dev/null)
        case "$t" in *ELF*) echo "ELF BINARY NAMED AS LOG: $f  [$t]";; esac
    done

echo
echo '== Cloud host-security agent status =='
systemctl list-units --type=service --state=running 2>/dev/null \
  | grep -Ei 'aegis|assist|cloudmonitor|guard|hids|falcon-sensor' || echo 'none running - investigate'
# A silenced host-security agent is itself an indicator; the operators shipped a
# script whose only job was disabling one.
14

Containment Runbook

PhaseActionsOwnerEvidence to capture
0 · Triage
0-1h
Confirm the hit is real: which query fired, on which host, which user. For a Q1 hit, treat as compromise immediately. For Q4/Q11, confirm the triad layout before escalating. SOC L1 Query output, host and user identity, first-seen timestamp
1 · Preserve
0-2h
Collect before you isolate. Pull the full contents of the implicated directory over RTR — the EXE, the DLL and the encrypted companion. The companion file is the only copy of the payload and the self-delete script may remove the orchestrator at any moment. IR lead Triad files, directory listing, prefetch, Startup folder inventory
2 · Isolate
1-3h
Network-contain the host via Falcon. Do not power off — the loader is memory-resident and a reboot re-executes it from Startup while destroying volatile evidence. IR lead Containment timestamp, memory image if capability exists
3 · Block
1-4h
Import the section 10 CSV. Add the domains to the DNS denylist and proxy block. Confirm the shared-hosting addresses were not included. Network / SecOps IOC import receipt, resolver test output
4 · Scope
2-8h
Run Q13 (hashes) and Q1/Q3 (domains) across the maximum retention you hold. Run playbook 1 estate-wide. Then run Q4, Q7 and Q11 for hosts the hash set missed. Assume the sample you have is one of several builds. Threat hunting Affected host list, per-host first-seen, variant fingerprint
5 · Identity
4-12h
Treat every credential used on an affected host as exposed. Reset the interactive user, any cached service accounts, and browser-stored credentials. Revoke active sessions and tokens. Beagle supports arbitrary shell and file transfer — assume collection succeeded. IAM Reset log, session-revocation confirmation
6 · Hunt the entry
8-24h
Determine which of the three entry routes was used: mail (search the gateway for the archive), malvertising (browser history to the distribution domain), or exploitation (run playbook 5 against internet-facing servers and check webroots for planted shells). IR / AppSec Delivery artefact, webshell if present, exploited CVE
7 · Lateral review
12-48h
Look for the tunnelling toolkit: unexpected listeners, long-lived symmetric POST sessions, ELF binaries renamed to log filenames. A compromised workstation in this campaign is a pivot, not the objective. Threat hunting Tunnel evidence, internal connection graph
8 · Eradicate
24-72h
Rebuild affected hosts. Do not clean in place — you cannot prove the loader is gone when the payload never touched disk unencrypted and the persistence is a three-file copy that a partial cleanup will miss. Endpoint ops Rebuild record, re-enrolment confirmation
9 · Recover & harden
72h+
Release containment only after a clean re-run of Q4, Q5, Q7 and Q12 against the rebuilt host. Deploy the Immediate tier from section 12 before release, not after. IR lead Clean-hunt evidence, hardening deployment record
10 · Report
1 week
Close the ticket in section 16 with the variant identified, the entry route, the credential exposure scope, and the coverage gaps you hit. Note the retention limit if it constrained the scoping. IR lead Final report, updated coverage map
15

Detection Coverage Map

TechniqueBehaviorCQLIOAHardeningCoverage
T1583.001Vendor-impersonation domain infrastructureQ1, Q2H-Imm-1, H-Near-12Good
T1071.001AdaptixC2 / Beagle C2 channelQ1, Q2, Q3, Q12H-Imm-1, H-Near-11Good
T1566.001ZIP + LNK spear-phish with nested staging folderQ7H-Imm-3Good
T1204.002User executes LNK or MSIQ10, Q13H-Imm-5, H-Near-8Good
T1059.005VBS orchestratorQ9H-Imm-4, H-Imm-5Partial — FP-limited until tuned
T1218ftp.exe as script interpreterQ6IOA-2H-Near-7Good
T1218.007MSI custom action to StartupQ10H-Near-8Partial — needs baseline
T1547.001Startup folder persistenceQ4, Q5IOA-1H-Imm-2, H-Strat-13Good
T1574.001DLL sideloading via signed host binaryQ4, Q11IOA-1H-Near-7, H-Strat-13Good
T1036.005DLL masquerading as a real dependencyQ11IOA-1H-Strat-13Partial — name list is variant-specific
T1027.013Encrypted .dat/.log companion payloadQ7 (path only)H-Imm-2Gap — Falcon does not emit a discrete write event for the non-PE companion; playbook 1 covers it on demand
T1140Byte-reversal plus rolling XOR decryptH-Strat-13Gap — in-memory only; no rule type reaches it
Callback-primitive execution (InitOnceExecuteOnce, TimerQueue, EtwpCreateEtwThread)H-Strat-13Gap — deliberately chosen because EDR watches these less; sensor memory scanning is the only counter
T1070.004Double-extension self-deleteQ8IOA-3H-Imm-4Good
T1190Public-facing application exploitationH-Near-9, H-Near-10Gap — no endpoint query reaches this; playbook 5 and WAF logs are the coverage
T1090.001SOCKS / HTTP tunnelling through webshellsH-Near-10, H-Near-11Gap — section 7 native hunts only
T1555.003Browser credential theftH-Strat-13Partial — tool download failed in the observed intrusion; no build recovered
T1562.001Cloud host-agent disableH-Near-10Partial — playbook 5 checks agent state

Thirteen queries cover fifteen of eighteen mapped techniques at Good or Partial. The three hard gaps are all in the same place and for the same reason: the loader's in-memory stages were engineered specifically to avoid the primitives EDR instruments, so no additional query closes them. The counters are application control (H-Strat-13), which stops the chain before the loader runs at all, and the sensor's own memory scanning. The exploitation and tunnelling gaps are not detection failures either — they sit on infrastructure that usually has no endpoint agent, which is why sections 7 and 13 carry log-based and shell-based coverage instead. Before reporting a clean hunt, complete Gate 1 in section 11: a query that returns nothing because the telemetry never arrived is not a negative result.

16

Hunt Summary Ticket

TITLE:      JadeProx / TriBack Loader - DLL sideloading, AdaptixC2 and Beagle backdoor hunt
SEVERITY:   High - active China-nexus espionage, confirmed intrusions, live infrastructure class
SCOPE:      All Windows endpoints and servers; internet-facing Java applications;
            DNS resolver and proxy logs; email gateway archives. Minimum 90-day lookback.

HYPOTHESIS: A signed vendor binary is executing from a user-writable or Startup
            directory with an encrypted .dat/.log companion beside it, sideloading
            an attacker DLL that decrypts and runs AdaptixC2 or the Beagle backdoor.
            Corollary: any host resolving a security-vendor-lookalike update domain
            is compromised.

QUERIES:    Q1  vendor-impersonation domains          CONF high / FP low   RUN FIRST
            Q2  generalised vendor lookalikes          CONF med  / FP med
            Q3  named C2 and distribution domains      CONF high / FP low
            Q4  sideload host binary, wrong path       CONF high / FP low   RUN SECOND
            Q5  rare Startup-folder executables        CONF med  / FP med
            Q6  ftp.exe -s: script execution           CONF high / FP low
            Q7  nested _CL_###### staging folder       CONF high / FP low
            Q8  tilde double-extension self-delete     CONF high / FP low
            Q9  script host from staging path          CONF med  / FP med
            Q10 msiexec spawning script host           CONF med  / FP med
            Q11 masquerading DLL written to disk       CONF high / FP med
            Q12 loader-host beacon egress 443/8080     CONF med  / FP med
            Q13 known-bad SHA-256 set                  CONF high / FP low   RUN SECOND

DO FIRST:   1. Import the section 10 CSV into Falcon IOC Management.
            2. Block the domain set at DNS and proxy.
            3. Run Q1 and Q13 across maximum retention.
            4. Run playbook 1 estate-wide to inventory Startup folders.
            5. Complete Gate 1 in section 11 before reporting any query clean.

FINDINGS:   [ ] Q1 hits ............ hosts: ______  users: ______
            [ ] Q4 hits ............ hosts: ______  triad confirmed: Y / N
            [ ] Q13 hits ........... hosts: ______  variant: 1 / 2 / 3 / 4
            [ ] Entry route ........ mail / malvertising / exploitation / unknown
            [ ] Webshell found ..... Y / N   server: ______
            [ ] Credential exposure  scope: ______

GAPS:       - XOR decrypt and callback-primitive stages are in-memory only; no
              query or Custom IOA reaches them. Application control is the counter.
            - Encrypted .dat/.log companion write is not a discrete Falcon event;
              playbook 1 covers it on demand.
            - Public-facing exploitation and webshell tunnelling need WAF, webroot
              FIM and playbook 5; endpoint telemetry does not cover them.
            - Record your actual DNS and proxy retention here. If it is under
              90 days, this hunt is inconclusive, not clean: ______

ACTIONS:    [ ] Immediate hardening tier deployed (section 12, items 1-6)
            [ ] IOA-1, IOA-2, IOA-3 created at Detect severity
            [ ] Q5, Q9, Q10, Q11, Q12 baselined for one week and tuned
            [ ] Four CVEs in section 10 patched or confirmed not present
            [ ] Java management interfaces confirmed not internet-reachable

OWNER:      ______________________
VERSION:    v0.1 (2026-07-24)
17

Changelog

v0.12026-07-24Initial build. Thirteen CQL hunt queries, three Custom IOA candidates, sixteen tiered hardening controls, five deployable playbooks and an eleven-phase containment runbook. Atomic indicators sourced from the Group-IB primary report and the Sophos X-Ops research plus the SophosLabs IOC repository; every value traced to a saved source snapshot. Shared-hosting addresses and the legitimate signed host binaries deliberately excluded from the block list.
18

References

TierSourceUsed forAccessed
1Group-IB — JadeProx: Tracing a China-nexus Operation Through an OPSEC MistakePrimary research: attack chain, all four loader variants, XOR keys, beacon configs, domain/IP/MD5 IOC set, ATT&CK mapping, victimology2026-07-24
1Sophos X-Ops — Donuts and Beagles: Fake Claude site spreads backdoorBeagle backdoor analysis, AES key, transport ports, XOR-key linkage back to February 2026, vendor-lookalike domains2026-07-24
1SophosLabs IoCs — Beagle_IOCs.csvVendor-published SHA-256 set for archives, droppers, sideloaded DLLs, shellcode and the backdoor2026-07-24
2The Hacker News — China-Nexus JadeProx Uses New TriBack Loader in Government and Healthcare AttacksCorroboration; independent NVD confirmation of the four exploited CVEs; detection guidance summary2026-07-24
2Infosecurity Magazine — Fake Claude AI Site Drops Beagle Backdoor on Windows UsersCorroboration of the Sophos chain: signed updater, DLL sideload, Cloudflare-delivery and Alibaba-C2 split2026-07-24
RefMITRE ATT&CKTechnique and mitigation identifiers throughout sections 6 and 122026-07-24
RefCISA Known Exploited Vulnerabilities CatalogKEV status of the router vulnerability used in the scanning campaign2026-07-24
RefMicrosoft Defender — Attack Surface Reduction rules referenceASR rule GUIDs in sections 10 and 132026-07-24
RefCIS BenchmarksWindows application-control and installer baselines; Tomcat and NGINX server hardening2026-07-24

Source snapshots for every cited primary source are stored alongside this file in JadeProx-TriBack-Loader-Hunt-sources/. Every atomic indicator shipped in section 10 traces to one of them.