TinyRCT Backdoor — CL-STA-1062 (UAT-7237)

Chinese-speaking espionage cluster against Southeast Asian government & state-owned energy / critical infrastructure — C# RAT delivered via AppDomainManager injection, PerfWatson2.exe masquerade, and ASPX web shells.
Threat
TinyRCT / CL-STA-1062
Severity
APT · ACTIVE
Type
Nation-state espionage backdoor
Access
Public-facing app + web shell
Version
v0.2 · 2026-07-10
Author
HuntPack
Confidence
High (Unit 42 attributed)
01

Executive Summary

CL-STA-1062 (overlaps Cisco Talos UAT-7237) is a Chinese-speaking espionage cluster active since at least March 2022. Unit 42 documented a 2025 campaign — surfacing again in the current intel cycle — in which the group compromised at least ten Southeast Asian organizations, including two state-owned energy operators, exfiltrating databases and web-server source code and maintaining long-dwell access.

The signature implant is TinyRCT, a lightweight C#-based backdoor that masquerades as PerfWatson2.exe (a legitimate Visual Studio telemetry binary) and beacons over HTTP with AES-128-CBC encryption using a hard-coded key. Initial access is via exploitation of public-facing applications and ASPX web shells; the loader uses AppDomainManager injection (a trojanized chrome_setup.zip) to run TinyRCT under a legitimate .NET host. The actor layers open-source tooling — fscan, Mimikatz, JuicyPotato, and SoftEther/VNT VPN tunnels — for discovery, credential theft, privilege escalation, and lateral movement.

Highest-value defensive angle: the masquerade and persistence artifacts are narrow and high-fidelity — PerfWatson2.exe running from %LOCALAPPDATA% instead of a Visual Studio path, the GoogleUpdaterTaskSystem140.0.7272.0 scheduled task, and web-server processes (w3wp.exe) spawning command shells. Those three signals catch the chain end-to-end with very low false-positive cost.

Defender priority: Hunt PerfWatson2.exe executing outside a Visual Studio install path and any IIS worker process spawning cmd.exe/powershell.exe first — these are the earliest reliable footholds in the TinyRCT chain and precede credential theft and lateral movement.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Forward
1Unit 42 (Palo Alto) — CL-STA-1062 / TinyRCT report, 2026-06-25Full IOC + TTP set: C2 infra, hashes, AppDomainManager injection, PerfWatson2 masquerade, hard-coded AES keyYes
1Hive Pro — Threat Advisory, 2026-06-29Corroborates IOCs; enumerates full MITRE technique set and scheduled-task persistenceYes
2The Hacker News / SC Media / Infosecurity MagAttribution overlap with UAT-7237; targeting of energy / government in Southeast AsiaPartial
2Cisco Talos — UAT-7237 (Aug 2025)Original cluster naming; Taiwan web-infrastructure targetingPartial

Web-hunter note: IOCs are vendor-attributed and corroborated across two Tier-1 reports. Atomic network IOCs (VPS C2 IPs) are perishable — treat as hunt/enrich after ~90 days. Behavioral signatures (masquerade path, task name, injection chain) are durable.

03

Hunt Brief & Attack Chain

Hunt hypotheses (ordered by fidelity)

  1. H1 — Masquerade (high): PerfWatson2.exe executing from a non-Visual-Studio path (e.g. %LOCALAPPDATA%) is TinyRCT, not telemetry. Very low FP.
  2. H2 — Web-shell foothold (high): IIS worker w3wp.exe spawning cmd.exe/powershell.exe/recon tooling indicates ASPX web-shell command execution.
  3. H3 — Scheduled-task persistence (high): creation of a task named GoogleUpdaterTaskSystem140.0.7272.0 via schtasks.exe with /rl highest /sc onlogon.
  4. H4 — AppDomainManager injection (medium): chrome_setup.exe launched from Downloads loading a sideloaded managed DLL.
  5. H5 — Offensive tooling (medium): fscan, JuicyPotato, Mimikatz, SoftEther/VNT present by name or hash.
  6. H6 — Self-destruct (medium): choice.exe used as a delay primitive in a self-deletion batch routine.
  7. H7 — C2 beacon (high, perishable): outbound connections to the four attributed VPS C2/staging IPs.
  8. H8 — Masquerading tunnels (medium): SoftEther/VNT renamed to vmtools.exe/VMware executables running from non-VMware paths.

Attack chain

StepActionTelemetryHunt Angle
1 · Initial AccessExploit public-facing app; drop ASPX web shellProcessRollup2 (parent w3wp)Q5 · web-shell child processes
2 · Deliverychrome_setup.zip → AppDomainManager injectionProcessRollup2, PeFileWrittenQ4 · loader from Downloads
3 · ExecutionTinyRCT runs as PerfWatson2.exe from %LOCALAPPDATA%ProcessRollup2Q1 · masquerade path
4 · PersistenceScheduled task GoogleUpdaterTaskSystem140.0.7272.0ProcessRollup2 (schtasks)Q3 · task creation
5 · PrivEscJuicyPotato token impersonationProcessRollup2Q6 · tooling by name/hash
6 · Cred AccessMimikatz credential dumpingProcessRollup2Q6 · tooling by name/hash
7 · Discoveryfscan network sweepProcessRollup2Q6 · tooling by name/hash
8 · Lateral / C2SoftEther / VNT VPN tunnels; HTTP AES-CBC beaconNetworkConnectIP4, ProcessRollup2Q7 · C2 IPs · Q8 · tunnel masquerade
9 · Defense Evasionchoice.exe delayed self-deleteProcessRollup2Q2 · self-destruct
04

Consolidated IOC Table

All indicators trace to Unit 42 (2026-06-25) and Hive Pro (2026-06-29). Network IOCs are VPS-hosted and perishable; hashes and behavioral markers are durable.

TypeValueConfActionContext
IPv445.32.113.172meddetectPrimary TinyRCT C2
IPv4139.180.134.221meddetectStaging / payload server
IPv4202.182.102.5medhuntAttributed infrastructure
IPv445.76.210.43medhuntAttributed infrastructure
URLhttp://139.180.134.221/PerfWatson2.exehighdetectTinyRCT payload retrieval
URL path/sdksdk608/ (1.zip, anydesk_0117.zip, hamcore.se2, httpdf, vpn_bridge.config, win-vpn.rar)highhuntStaging directory for tooling/VPN
SHA25600e09754526d0fe836ba27e3144ae161b0ecd3774abec5560504a16a67f0087chighdetectchrome_setup.zip (loader package)
SHA256cbfe8de6ffadbb1d396f61e63eb18e8b11c29527c1528641e3223d4c516cf7c3highdetectTinyRCT downloader
SHA2564e1f8888d020decd09799ec946f1bf677cac6612b24582ddbf4d8ede425d8384highdetectTinyRCT backdoor
SHA256f34bd1d485de437fe18360d1e850c3fd64415e49d691e610711d8d232071a0b1highdetectfscan (network scanner)
SHA256dce5df29bddff5a4ddaea5c4fec14da91f7b69063a6e1c45ed61e5da4fc6c87bhighdetectSoftEther VPN (renamed)
SHA2569b481b69cd91b09fa7bae7428f646dd89473a4c03393e43da81fe756cde1c472highdetectVNT tunneling tool
FilenamePerfWatson2.exe (outside VS path)medhuntTinyRCT masquerade
TaskGoogleUpdaterTaskSystem140.0.7272.0highdetectPersistence artifact
CryptoAES-128-CBC key ThisIsASecretKey87654321, null IVhighenrichHard-coded C2 encryption
05

Affected Surface & Telemetry Matrix

SurfaceRequired TelemetryPriorityGap Risk
Internet-facing IIS / ASP.NET web serversProcessRollup2 (parent-child), PeFileWritten (.aspx)CriticalLow — Falcon on web tier
Windows workstations / jump hostsProcessRollup2, ScheduledTask registrationCriticalLow
Domain controllers / identityProcessRollup2 (Mimikatz, JuicyPotato)HighMedium — LSASS access visibility
Network egressNetworkConnectIP4, DnsRequestHighMedium — VPS C2 rotates
State-owned energy / OT-adjacent ITProcessRollup2 on IT hosts bridging to OTCriticalHigh — sparse EDR in OT
06

ATT&CK Mapping

TacticTechniqueBehaviorCoverage
Initial AccessT1190Exploit public-facing applicationQ5 / native
PersistenceT1505.003ASPX web shellQ5
PersistenceT1053.005Scheduled task (GoogleUpdaterTaskSystem140.0.7272.0)Q3
Execution / DefEvasionT1574.014AppDomainManager injectionQ4
Defense EvasionT1036.005Masquerade as PerfWatson2.exe / vmtools.exeQ1 / Q8
Defense EvasionT1070.004choice.exe delayed self-deletionQ2
Defense EvasionT1497Sandbox / environment checksnative
Priv EscalationT1068JuicyPotato token impersonationQ6
Credential AccessT1003Mimikatz credential dumpingQ6
DiscoveryT1046 / T1082fscan network + system discoveryQ6
Lateral Movement / C2T1572 / T1090SoftEther / VNT / yuze VPN tunnelsQ8
Command & ControlT1071.001 / T1573.001HTTP beacon, AES-128-CBC encryptionQ7
Collection / ExfilT1560.001 / T1041 / T1113RAR staging, gzip+AES 40 KB-chunk exfil, screenshotsnative / Q7
07

Native Audit-Log Hunts (non-CQL)

  • Windows Security 4698 — scheduled-task creation; filter for task name containing GoogleUpdaterTaskSystem140.
  • Sysmon Event 11 / IIS logs — new .aspx files written under inetpub\wwwroot outside a deployment window; correlate with w3wp child processes.
  • Sysmon Event 1 / 4688PerfWatson2.exe with a parent that is not devenv.exe or a Visual Studio installer.
  • Windows Security 4624/4672 — logon + privilege assignment bursts on IIS hosts consistent with JuicyPotato SeImpersonate abuse.
  • Firewall / proxy logs — HTTP GET/POST to the four attributed VPS IPs; look for fixed ~10-second beacon cadence.
  • DNS / NetFlow — long-lived outbound sessions to VPS ranges from web-tier or energy-IT subnets.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · PerfWatson2.exe masquerade (non-VS path)
CONF HIGHFP LOWCOST LOW

Looks for: the TinyRCT masquerade — PerfWatson2.exe running from a path that is not a Visual Studio install. Legitimate PerfWatson2 lives under a Microsoft Visual Studio directory.

// HUNT: TinyRCT PerfWatson2.exe masquerade
// MITRE: T1036.005  | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^PerfWatson2\.exe$/i
| ImageFileName!=/Microsoft Visual Studio/i
| table([ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName, SHA256HashData], limit=200)
Q2 · choice.exe delayed self-deletion
CONF MEDFP MEDCOST LOW

Looks for: TinyRCT's self-destruct — choice.exe used as a delay primitive alongside a file delete. FP: some installers/scripts use choice.exe for prompts; scope to command lines that also delete a file or are spawned by a suspicious parent.

// HUNT: TinyRCT choice.exe self-delete routine
// MITRE: T1070.004  | CONF: med  FP: med  COST: low
// REQUIRES: ProcessRollup2
// TUNING: exclude known software installers by ParentBaseFileName
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^choice\.exe$/i
| CommandLine=/timeout|ping|del |del\t/i
| table([ComputerName, UserName, ParentBaseFileName, CommandLine], limit=200)
Q3 · GoogleUpdaterTaskSystem persistence task
CONF HIGHFP LOWCOST LOW

Looks for: creation of the TinyRCT persistence task via schtasks.exe. The genuine Google updater task does not carry this exact versioned name created with /rl highest /sc onlogon from a user-writable path.

// HUNT: TinyRCT scheduled task creation
// MITRE: T1053.005  | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^schtasks\.exe$/i
| CommandLine=/GoogleUpdaterTaskSystem140/i
| table([ComputerName, UserName, ParentBaseFileName, CommandLine], limit=200)
Q4 · AppDomainManager loader from Downloads
CONF MEDFP MEDCOST LOW

Looks for: the trojanized installer — chrome_setup.exe executing from a Downloads directory (loader validates %USERPROFILE%\Downloads before injecting). FP: legitimately named installers may exist; confirm the sideloaded .config and child PerfWatson2.exe.

// HUNT: TinyRCT chrome_setup loader from Downloads
// MITRE: T1574.014  | CONF: med  FP: med  COST: low
// REQUIRES: ProcessRollup2
// TUNING: pair with Q1 child PerfWatson2.exe to confirm
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^chrome_setup\.exe$/i
| ImageFileName=/Downloads/i
| table([ComputerName, UserName, ImageFileName, CommandLine, SHA256HashData], limit=200)
Q5 · IIS worker spawning a shell (web shell)
CONF HIGHFP MEDCOST LOW

Looks for: ASPX web-shell command execution — w3wp.exe spawning shells or recon tooling. FP: some app deployments run cmd.exe under w3wp; baseline your app pools and exclude known deployment accounts.

// HUNT: Web-shell command execution via IIS worker
// MITRE: T1505.003, T1190  | CONF: high  FP: med  COST: low
// REQUIRES: ProcessRollup2
// TUNING: exclude approved app-pool deployment jobs
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^w3wp\.exe$/i
| FileName=/^(cmd|powershell|net|net1|whoami|ipconfig|fscan|systeminfo)\.exe$/i
| table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q6 · Offensive tooling by name or hash
CONF MEDFP MEDCOST LOW

Looks for: the open-source toolkit CL-STA-1062 layers in — fscan, JuicyPotato, Mimikatz — by binary name or the attributed SHA256 values. FP: red-team use; confirm against change tickets.

// HUNT: CL-STA-1062 offensive tooling
// MITRE: T1068, T1003, T1046  | CONF: med  FP: med  COST: low
// REQUIRES: ProcessRollup2
// TUNING: exclude sanctioned pentest hosts
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^(fscan|juicypotato|mimikatz)\.exe$/i
  or SHA256HashData=/^(f34bd1d485de437fe18360d1e850c3fd64415e49d691e610711d8d232071a0b1|dce5df29bddff5a4ddaea5c4fec14da91f7b69063a6e1c45ed61e5da4fc6c87b|9b481b69cd91b09fa7bae7428f646dd89473a4c03393e43da81fe756cde1c472)$/i
| table([ComputerName, UserName, FileName, ImageFileName, SHA256HashData, ParentBaseFileName], limit=200)
Q7 · Beacon to attributed C2 / staging IPs
CONF HIGHFP LOWCOST LOW

Looks for: outbound connections to the four Unit 42-attributed VPS addresses. Perishable — VPS infra rotates; keep the IP set current.

// HUNT: TinyRCT C2 / staging connections
// MITRE: T1071.001  | CONF: high  FP: low  COST: low
// REQUIRES: NetworkConnectIP4
#event_simpleName=/NetworkConnectIP4/
| RemoteAddressIP4=/^(45\.32\.113\.172|139\.180\.134\.221|202\.182\.102\.5|45\.76\.210\.43)$/
| table([ComputerName, RemoteAddressIP4, RemotePort, ContextBaseFileName], limit=200)
Q8 · VPN tunnel masquerading as VM tools
CONF MEDFP MEDCOST LOW

Looks for: SoftEther/VNT tunnels renamed to vmtools.exe or VMware executables but running from outside a VMware install path. FP: genuine VMware Tools; the path exclusion removes most noise.

// HUNT: SoftEther/VNT tunnel masquerade
// MITRE: T1036.005, T1572  | CONF: med  FP: med  COST: low
// REQUIRES: ProcessRollup2
// TUNING: exclude C:\Program Files\VMware paths
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^(vmtools|vmware|vmtoolsd)\.exe$/i
| ImageFileName!=/VMware/i
| table([ComputerName, UserName, ImageFileName, CommandLine, SHA256HashData], limit=200)
09

CrowdStrike Custom IOA Recommendations

IOA NamePatternExclusionsAction
TinyRCT PerfWatson2 MasqueradeProcess PerfWatson2.exe where image path does not contain Microsoft Visual StudioVS install / update pathsDetect → Block (high confidence)
IIS Worker Shell SpawnParentImage w3wp.exe → child cmd/powershell/whoami/fscanApproved app-pool deploy accountsDetect
GoogleUpdater Fake Taskschtasks.exe CommandLine contains GoogleUpdaterTaskSystem140NoneDetect → Block

Promote Q1 and Q3 to Custom IOAs first — both are high-confidence, low-FP, and cover the earliest reliable stages. Keep Q4/Q5/Q6/Q8 as Investigate-only hunts pending environment baselining.

10

Machine-Readable IOC Appendix

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
sha256,00e09754526d0fe836ba27e3144ae161b0ecd3774abec5560504a16a67f0087c,prevent,critical,2027-01-10,TinyRCT chrome_setup.zip,campaign:CL-STA-1062
sha256,cbfe8de6ffadbb1d396f61e63eb18e8b11c29527c1528641e3223d4c516cf7c3,prevent,critical,2027-01-10,TinyRCT downloader,campaign:CL-STA-1062
sha256,4e1f8888d020decd09799ec946f1bf677cac6612b24582ddbf4d8ede425d8384,prevent,critical,2027-01-10,TinyRCT backdoor,campaign:CL-STA-1062
sha256,f34bd1d485de437fe18360d1e850c3fd64415e49d691e610711d8d232071a0b1,detect,high,2027-01-10,fscan scanner,campaign:CL-STA-1062
sha256,dce5df29bddff5a4ddaea5c4fec14da91f7b69063a6e1c45ed61e5da4fc6c87b,detect,high,2027-01-10,SoftEther VPN renamed,campaign:CL-STA-1062
sha256,9b481b69cd91b09fa7bae7428f646dd89473a4c03393e43da81fe756cde1c472,detect,high,2027-01-10,VNT tunnel,campaign:CL-STA-1062
ipv4,45.32.113.172,detect,high,2026-10-10,TinyRCT primary C2,campaign:CL-STA-1062
ipv4,139.180.134.221,detect,high,2026-10-10,TinyRCT staging server,campaign:CL-STA-1062
ipv4,202.182.102.5,detect,medium,2026-10-10,Attributed infrastructure,campaign:CL-STA-1062
ipv4,45.76.210.43,detect,medium,2026-10-10,Attributed infrastructure,campaign:CL-STA-1062
Behavioral Signatureshunt logic
PerfWatson2.exe running outside a "Microsoft Visual Studio" path
schtasks.exe creating task "GoogleUpdaterTaskSystem140.0.7272.0" (/rl highest /sc onlogon)
w3wp.exe spawning cmd.exe / powershell.exe / fscan.exe
chrome_setup.exe executing from a Downloads directory
choice.exe used as a delay before a file-delete (self-destruct)
HTTP beacon with ~10s cadence + AES-128-CBC (key ThisIsASecretKey87654321, null IV)
Named Malware / Toolingwatchlist
TinyRCT (C# backdoor, masquerades as PerfWatson2.exe)
MyAppDomainManager.dll (AppDomainManager injection loader)
fscan (network scanner)
JuicyPotato (SeImpersonate priv-esc)
Mimikatz (credential dumping)
SoftEther VPN / VNT / yuze (tunneling; renamed to vmtools.exe / VMware exes)
Web-Shell / IIS Auditchecklist
1. Enumerate .aspx files under inetpub\wwwroot written outside deploy windows
2. Review app-pool identities for SeImpersonatePrivilege exposure (JuicyPotato)
3. Audit scheduled tasks for GoogleUpdater* names created onlogon /rl highest
4. Confirm all PerfWatson2.exe instances resolve to a Visual Studio install
5. Block egress to the four attributed VPS IPs at the perimeter
11

Detection Validation Gates

GateCheckPass Criteria
Telemetry readyProcessRollup2 + NetworkConnectIP4 flowing from web tier and jump hostsBoth event types present in last 24h
Benign baselineRun Q5 over 7 days; record app-pool deploy accounts that legitimately spawn cmdExclusion list built before enabling alerting
Positive testRename a benign binary to PerfWatson2.exe in a lab %LOCALAPPDATA% path; run Q1Q1 fires
Positive testCreate a test task named GoogleUpdaterTaskSystem140.0.7272.0; run Q3Q3 fires
PromotionQ1 + Q3 zero FPs over baseline windowPromote to Custom IOA (block)
12

Hardening — Tiered

Immediate (this week)
  • Block egress to the four attributed C2/staging IPs at perimeter and cloud NSGs (MITRE M1037).
  • Patch internet-facing web apps and remove any unauthorized .aspx under web roots (M1051, M1050).
  • Import the SHA256 IOC set to Falcon IOC Management as prevent/detect (M1040).
Near term (1–4 weeks)
  • Strip SeImpersonatePrivilege from IIS app-pool identities where not required to neutralize JuicyPotato (M1026, CIS Windows Benchmark 2.2.x user-rights).
  • Constrain outbound from web-tier and energy-IT subnets to an allowlist; deny arbitrary VPS egress (M1037).
  • Enable Credential Guard / LSASS PPL to blunt Mimikatz (M1043, MS Security Baseline).
Strategic (1–3 months)
  • Application control (WDAC/AppLocker) allowlisting on web servers and jump hosts to block unsigned tunnels and renamed binaries (M1038, CIS).
  • Segment IT from OT for state-owned energy environments; broker all IT→OT access through monitored jump hosts (M1030, NIST SP 800-82).
  • Deploy .NET AppDomainManager hardening — restrict APPDOMAIN_MANAGER_* and audit .config sideloading (M1042).
13

Deployable Playbooks

1 · Remove SeImpersonate from an IIS app-pool identity (PowerShell + secedit)

# Audit which accounts currently hold SeImpersonatePrivilege
secedit /export /areas USER_RIGHTS /cfg C:\temp\rights.inf
Select-String -Path C:\temp\rights.inf -Pattern "SeImpersonatePrivilege"
# Then remove the app-pool virtual account from that line via GPO:
#   Computer Config > Windows Settings > Security Settings > Local Policies >
#   User Rights Assignment > "Impersonate a client after authentication"
# Keep only: Administrators, SERVICE, LOCAL SERVICE, NETWORK SERVICE (as required)

2 · Hunt + remove the persistence task (PowerShell)

Get-ScheduledTask | Where-Object { $_.TaskName -like "GoogleUpdaterTaskSystem140*" } |
  ForEach-Object {
    Write-Host "SUSPECT TASK:" $_.TaskName $_.TaskPath
    # Unregister-ScheduledTask -TaskName $_.TaskName -Confirm:$false   # after triage
  }

3 · Confirm every PerfWatson2.exe is legitimate (PowerShell)

Get-CimInstance Win32_Process -Filter "Name='PerfWatson2.exe'" |
  Select-Object ProcessId, ExecutablePath, CommandLine |
  Where-Object { $_.ExecutablePath -notmatch 'Microsoft Visual Studio' }

4 · Block C2 egress (Windows Firewall example)

$ips = "45.32.113.172","139.180.134.221","202.182.102.5","45.76.210.43"
New-NetFirewallRule -DisplayName "Block CL-STA-1062 C2" -Direction Outbound `
  -RemoteAddress $ips -Action Block -Profile Any
# Prefer enforcing at the perimeter / cloud NSG as the primary control.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain hosts hitting C2 IPs or running masqueraded PerfWatson2.exe; preserve memorySOC / IRFalcon host containment, RTR memory capture
EradicateKill TinyRCT process, unregister GoogleUpdater task, remove sideloaded DLL + web shells, rotate exposed credsIRRTR command log, task/registry export
EradicateReset app-pool + service accounts; revoke any SoftEther/VNT tunnelsIdAMPassword reset log, VPN session teardown
RecoverRebuild compromised web servers from known-good; re-patch; re-baseline scheduled tasksPlatformGolden-image restore ticket
RecoverConfirm no residual egress to VPS ranges; enable Q1/Q3 as blocking IOAsSOCClean 72h monitoring window
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1036.005PerfWatson2 masqueradeQ1YesGood
T1053.005GoogleUpdater taskQ3YesGood
T1505.003 / T1190ASPX web shellQ5CandidatePartial
T1574.014AppDomainManager injectionQ4NoPartial
T1068 / T1003 / T1046JuicyPotato / Mimikatz / fscanQ6NoPartial
T1071.001C2 beaconQ7NoGood (perishable)
T1572 / T1090VPN tunnel masqueradeQ8NoPartial
T1070.004choice.exe self-deleteQ2NoPartial
T1497Sandbox checksNoGap
T1560.001 / T1041RAR staging / chunked exfilnativeNoGap

Known gaps: environment/sandbox checks (T1497) and RAR-staged chunked exfiltration (T1560.001/T1041) are not directly covered by process telemetry — lean on native audit-log hunts and egress-volume anomaly detection. Validate Q4/Q5 field behavior and app-pool baselines in your tenant before promoting to blocking IOAs.

16

Hunt Summary Ticket

TITLE:      TinyRCT / CL-STA-1062 (UAT-7237) — SE-Asia energy/gov espionage hunt
SEVERITY:   Critical (nation-state, active)
SCOPE:      Internet-facing IIS/ASP.NET, Windows jump hosts, energy-IT subnets
HYPOTHESIS: CL-STA-1062 established web-shell foothold and deployed TinyRCT
            (PerfWatson2.exe masquerade) with GoogleUpdater task persistence.
QUERIES:    Q1 masquerade · Q3 task · Q5 web-shell · Q7 C2 (start here)
            Q2 self-delete · Q4 loader · Q6 tooling · Q8 tunnels (secondary)
DO FIRST:   Q1 (PerfWatson2 outside VS path) + Q5 (w3wp child shells)
FINDINGS:   ____________________________________________
GAPS:       T1497 sandbox checks; T1560/T1041 chunked exfil (native/anomaly)
ACTIONS:    Block 4 C2 IPs; import SHA256 IOCs; strip SeImpersonate; hunt tasks
OWNER:      ____________________
VERSION:    v0.2 · 2026-07-10
17

Changelog

v0.22026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.12026-07-10Initial HuntPack — 8 CQL queries, IOA recs, tiered hardening, playbooks, containment. Intel: Unit 42 (2026-06-25), Hive Pro (2026-06-29).
18

References

TierSourceUsed ForAccess Date
1Unit 42 — CL-STA-1062 Targets SE Asian Governments and Critical Infrastructure (TinyRCT)IOCs, TTPs, attribution, masquerade & injection chain2026-07-10
1Hive Pro — TinyRCT Threat AdvisoryCorroborating IOCs, full MITRE set, persistence detail2026-07-10
2The Hacker News — Chinese-Speaking APT Deploys New TinyRCT BackdoorCampaign context, targeting2026-07-10
2Security Affairs — CL-STA-1062 Expands Attacks on SE-Asian CNISector targeting, UAT-7237 overlap2026-07-10