Operation SilentCanvas — JPEG-Staged PowerShell → Trojanized ScreenConnect

A fileless intrusion chain that hides obfuscated PowerShell inside a fake image (sysupdate.jpeg with no JPEG magic bytes), compiles a custom launcher on-host via csc.exe, performs a fileless ComputerDefaults.exe UAC bypass, then installs a trojanized ConnectWise ScreenConnect client as a service masquerading as OneDriveServers for persistent remote access. Defensive hunt & harden pack — no offensive code.
Threat
Operation SilentCanvas · trojanized ScreenConnect RAT
Severity
HIGH · FILELESS RMM ABUSE
Type
Stego-staged loader · UAC bypass · RMM persistence
Stager
sysupdate.jpeg (no magic bytes) → PowerShell → csc.exe launcher
C2
legitserver.theworkpc.com · ports 5443 / 8041
Version
v0.3 · 2026-06-12
Author
HuntPack
01

Executive Summary

Operation SilentCanvas is a stealthy, largely fileless intrusion chain. The first stage is a decoy file named sysupdate.jpeg that is not actually a JPEG — it carries no JPEG magic bytes and instead holds obfuscated PowerShell. A PowerShell stage reads/deobfuscates this payload, then uses the in-box C# compiler csc.exe to compile a custom launcher on the host (living-off-the-land — no precompiled EXE to flag).

The launcher performs a fileless UAC bypass via ComputerDefaults.exe (a known auto-elevating LOLBin hijack — registry-based, no file dropped), then installs a trojanized ConnectWise ScreenConnect remote-access client as a Windows service masquerading as OneDriveServers. ScreenConnect is legitimate RMM software, so the operator gets durable, hands-on remote control that blends in with normal IT tooling. The implant reportedly exposes ~46 capabilities with AMSI-bypass and anti-forensic steps, and beacons to legitserver.theworkpc.com on ports 5443/8041.

Defender priority: The fileless steps are the tells — hunt Q1 (PowerShell reading a .jpeg / file with no image header), Q2 (csc.exe invoked by PowerShell to compile a launcher), Q3 (ComputerDefaults.exe UAC-bypass lineage), and Q4 (a ScreenConnect service named OneDriveServers / beacon to the SilentCanvas C2). Any one of these on a non-IT host is high-signal.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry
1 · Vendor researchOperation SilentCanvas analysissysupdate.jpeg (no magic bytes) → PowerShell → csc.exe launcher → ComputerDefaults UAC bypass → trojanized ScreenConnect (OneDriveServers); C2 + portsyes
2 · ReferenceLOLBAS — ComputerDefaults.exe / csc.exeAuto-elevating UAC-bypass LOLBin; in-box C# compiler abuseyes
2 · Vendor / advisoryConnectWise ScreenConnect abuse reporting (CISA et al.)Legitimate RMM abused as a backdoor; service-masquerade persistenceyes

Decisions: behavior-anchored on the fileless tells (PowerShell reading a fake image, csc.exe compile, ComputerDefaults UAC bypass) because hashes/filenames rotate; the named C2 (legitserver.theworkpc.com, 5443/8041) and the OneDriveServers service name are strong but rotatable atoms; ScreenConnect is legit RMM, so detect the abuse pattern (unsanctioned instance, odd service name/path, unexpected relay) not the binary.

03

Hunt Brief & Attack Chain

Working hypothesis: A PowerShell stage reads sysupdate.jpeg (not a real image), deobfuscates payload, compiles a launcher with csc.exe, UAC-bypasses via ComputerDefaults.exe, and installs trojanized ScreenConnect as the OneDriveServers service beaconing to the SilentCanvas C2.

StepBehaviorTelemetryHunt Angle
1 · Deliverysysupdate.jpeg (no JPEG magic bytes) staged to diskfile; ProcessRollup2Q1; N1
2 · PS stagerPowerShell reads/deobfuscates the fake imageProcessRollup2; script-blockQ1; N2
3 · csc.exe buildIn-box C# compiler builds a custom launcherProcessRollup2; fileQ2
4 · UAC bypassFileless ComputerDefaults.exe elevationregistry; ProcessRollup2Q3
5 · RMM installTrojanized ScreenConnect service = "OneDriveServers"service; file; ProcessRollup2Q4; N3
6 · C2Beacon to legitserver.theworkpc.com 5443/8041NetworkConnectIP4; DNSQ5; N4

Affected surface & telemetry

SurfaceRequired TelemetryPriorityGap Risk
Windows endpointsProcess lineage + file eventsCriticalLow — process telemetry
PowerShellScript-block + module loggingHighMedium — logging gap
Service / registryService install + UAC-bypass registryHighLow
EgressDNS / netflow to C2MediumLow — named atoms
04

Consolidated IOC Table

The named atoms (C2, service name, filename) are strong but rotatable. The fileless behaviors — fake-image PowerShell read, csc.exe compile, ComputerDefaults UAC bypass, RMM-service masquerade — are durable. Copy-ready blocks in §9.
TypeValueConfActionContext
Networklegitserver.theworkpc.com — ports 5443 / 8041highblockSilentCanvas C2
Filesysupdate.jpeg (no JPEG magic bytes; holds PowerShell)highhuntStego-style stager
ServiceScreenConnect service named "OneDriveServers"highdetectRMM masquerade persistence
BehaviorPowerShell → csc.exe compiling an on-host launchermediumdetectLOLBin build
BehaviorComputerDefaults.exe fileless UAC bypasshighdetectElevation
05

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Defense EvasionT1027.003 / T1564 — Stego / hidden payloadPowerShell in a fake .jpeg (no magic bytes)Q1; N1
ExecutionT1059.001 / T1027.004 — PowerShell / compile-after-deliverycsc.exe builds a launcher on hostQ2; N2
Privilege Esc / Defense EvasionT1548.002 — Bypass UAC (ComputerDefaults)Fileless auto-elevationQ3
Persistence / C2T1543.003 / T1219 — Service / remote-access softwareTrojanized ScreenConnect = OneDriveServersQ4; N3
Command & ControlT1071 / T1219 — RMM C2Beacon to C2 on 5443/8041Q5; N4
Defense EvasionT1562.001 — AMSI bypass / anti-forensicsImplant disables/clears defensesQ2; N2
06

Native Audit-Log Hunts

HuntSourceLogicResponse
N1 · Fake-image stagerFile inventory / EDR.jpeg/.jpg/.png files whose first bytes are NOT a valid image header (e.g. read by PowerShell)Quarantine; analyze
N2 · PowerShell script-blockPowerShell Operational (4104)Reads of sysupdate.jpeg / image files; AMSI-bypass strings; Add-Type/csc usageTriage host; pull launcher
N3 · RMM service masqueradeService install (7045) / inventoryScreenConnect service with an odd name (OneDriveServers) or path; unsanctioned RMM instanceRemove; scope access
N4 · C2 egressDNS / proxy / netflowResolution/connection to legitserver.theworkpc.com or ports 5443/8041Block; identify host
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Field names validated against the Falcon event reference; process hunts include SyntheticProcessRollup2. Pair the fileless hunts (Q1-Q3) with PowerShell script-block logging. ScreenConnect is legitimate RMM — Q4 keys on the abuse pattern (odd service name/relay), not the product itself.
Q1 · PowerShell reading a fake-image (.jpeg) payload
CONF HIGHFP LOW-MEDCOST LOW

Looks for: PowerShell command lines referencing an image file with read/Base64/Get-Content (the fake-JPEG stager). Accomplishes: the first fileless tell. FP: low — legit scripts rarely Get-Content a .jpeg as code.

// HUNT: PowerShell reading a fake-image payload (sysupdate.jpeg)
// MITRE: T1027.003, T1059.001 | CONF: high  FP: low-med  COST: low
// FP NOTES: legit scripts rarely Get-Content/Base64-decode a .jpeg as executable
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^(powershell|pwsh)\.exe$/i
| CommandLine=/\.(jpe?g|png|bmp|gif)\b/i
| CommandLine=/(Get-Content|ReadAllBytes|FromBase64|IEX|Invoke-Expression|\[byte\[\]\])/i
| table([@timestamp, ComputerName, UserName, FileName, CommandLine], limit=200)
Q2 · PowerShell → csc.exe launcher compile
CONF MED-HIGHFP LOW-MEDCOST LOW

Looks for: the in-box C# compiler (csc.exe) spawned by PowerShell/cmd (compile-after-delivery). Accomplishes: the on-host launcher build. FP: low-med — some dev/.NET tooling; flag PowerShell parent + temp output.

// HUNT: PowerShell-driven csc.exe launcher compile
// MITRE: T1027.004, T1059.001 | CONF: med-high  FP: low-med  COST: low
// TUNING: flag csc.exe with a PowerShell/cmd parent writing to a temp path
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^csc\.exe$/i
| ParentBaseFileName=/^(powershell|pwsh|cmd)\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q3 · ComputerDefaults.exe UAC-bypass lineage
CONF HIGHFP LOWCOST LOW

Looks for: ComputerDefaults.exe spawning a child, or the registry hijack it abuses (ms-settings\\shell\\open\\command). Accomplishes: the fileless UAC bypass. FP: low — ComputerDefaults rarely launches anything.

// HUNT: ComputerDefaults.exe fileless UAC bypass
// MITRE: T1548.002 | CONF: high  FP: low  COST: low
// FP NOTES: ComputerDefaults spawning a child / ms-settings command hijack is high-signal
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2|AsepValueUpdate|RegGenericValueUpdate/
| (ParentBaseFileName=/^ComputerDefaults\.exe$/i
   or RegObjectName=/\\ms-settings\\[Ss]hell\\[Oo]pen\\command/i)
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, RegObjectName, RegStringValue], limit=200)
Q4 · Trojanized ScreenConnect service masquerade
CONF MED-HIGHFP LOW-MEDCOST LOW

Looks for: a ScreenConnect client process/service named OneDriveServers or installed from a non-standard path. Accomplishes: the RMM persistence. FP: low-med — allow-list sanctioned RMM relays/instances.

// HUNT: trojanized ScreenConnect service masquerade (OneDriveServers)
// MITRE: T1543.003, T1219 | CONF: med-high  FP: low-med  COST: low
// TUNING: allow-list sanctioned ScreenConnect instances/relays; flag odd names/paths
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2|ServiceImagePath|ServiceStarted/
| (FileName=/^(ScreenConnect\.ClientService|ScreenConnect\.WindowsClient)\.exe$/i
   or ServiceName=/OneDriveServers/i
   or CommandLine=/ScreenConnect.+(theworkpc\.com|OneDriveServers)/i)
| table([@timestamp, ComputerName, UserName, FileName, ServiceName, CommandLine], limit=200)
Q5 · SilentCanvas C2 egress
CONF HIGHFP LOWCOST LOW

Looks for: DNS for theworkpc.com or connections on the C2 ports 5443/8041. Accomplishes: confirms beaconing. FP: low for the domain; the ports alone are higher-FP — pair with process context.

// HUNT: SilentCanvas C2 (legitserver.theworkpc.com / 5443 / 8041)
// MITRE: T1071, T1219 | CONF: high  FP: low  COST: low
// TUNING: domain is high-fidelity; the bare ports are higher-FP -- add process context
#event_simpleName=/DnsRequest|NetworkConnectIP4/
| (DomainName=/(^|\.)theworkpc\.com$/i or RemotePort=5443 or RemotePort=8041)
| table([@timestamp, ComputerName, ContextBaseFileName, DomainName, RemoteAddressIP4, RemotePort], limit=200)
Q6 · sysupdate.jpeg file write
CONF MED-HIGHFP LOWCOST LOW

Looks for: creation of sysupdate.jpeg (or similar decoy image names) in user/temp paths. Accomplishes: catches the stager on disk. FP: low — combine with Q1 for the read-as-code confirmation.

// HUNT: sysupdate.jpeg (decoy image) staged to disk
// MITRE: T1027.003 | CONF: med-high  FP: low  COST: low
// TUNING: combine with Q1 (read-as-code); decoy name may rotate
// NOTE: Falcon standard coverage for non-PE file writes is limited; PeFileWritten fires only
// if the payload is a PE disguised as .jpeg; NewExecutableWritten covers renamed executables.
#event_simpleName=/NewExecutableWritten|PeFileWritten/
| TargetFileName=/\\sysupdate\.jpe?g$/i
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, TargetFileName], limit=200)
08

CrowdStrike Custom IOA Recommendations

IOA NameField PatternsBenign ExclusionsDeployment Path
SilentCanvas — ComputerDefaults UAC bypassParent ComputerDefaults.exe spawns child, or ms-settings\shell\open\command writeNone (high-signal)Endpoint Security → Custom IOA → Process/Registry, Detect+Block
SilentCanvas — PowerShell reads image-as-codePowerShell CommandLine with .jpeg + Get-Content/FromBase64/IEXVetted image-processing scriptsCustom IOA → Process Creation, Detect+Block
Q3 (ComputerDefaults UAC bypass) and Q1 (image-as-code) are strong promotions. Block the C2 domain/ports (Q5) and alert on unsanctioned ScreenConnect instances (Q4) — keep an allow-list of approved RMM relays.
09

Machine-Readable IOC Appendix

Grouped IOC Quick-Copy

One-click blocks for blocking and detection. Named atoms are strong but rotatable; the fileless behaviors are durable. Add per-incident atoms during triage.

Network IOCsblock list
legitserver.theworkpc.com   # SilentCanvas C2 (domain)
theworkpc.com               # parent domain
5443/tcp                    # C2 port
8041/tcp                    # C2 port
# Block domain + ports at proxy/firewall; alert on resolution from any host.
Host IOCsfile / service
sysupdate.jpeg              # fake image stager (NO JPEG magic bytes; holds PowerShell)
OneDriveServers            # Windows service name masquerade (trojanized ScreenConnect)
ScreenConnect.ClientService.exe / ScreenConnect.WindowsClient.exe  # abused RMM client
csc.exe (PowerShell/cmd parent)  # in-box C# compiler building the launcher
ComputerDefaults.exe       # auto-elevating LOLBin abused for fileless UAC bypass
# Note: any image file whose first bytes are not a valid image header is suspect.
Behavioral Signaturesdetection logic
PowerShell Get-Content/ReadAllBytes/FromBase64 on a .jpeg/.png then IEX (image-as-code)
csc.exe with a PowerShell/cmd parent compiling a launcher to a temp path
ComputerDefaults.exe spawning a child, or ms-settings\shell\open\command registry hijack
ScreenConnect service with an odd name (OneDriveServers) or non-standard install path
DNS/connection to theworkpc.com or ports 5443/8041
sysupdate.jpeg (or similar decoy image) written to a user/temp path
Hardening / Blockdefense-in-depth
Block legitserver.theworkpc.com + ports 5443/8041 at proxy/firewall
RMM governance: allow only sanctioned ScreenConnect instances/relays; alert on the rest
PowerShell CLM + script-block/module logging; AMSI on
Promote Q3 (ComputerDefaults UAC bypass) + Q1 (image-as-code) to Detect+Block IOAs
WDAC/app control: constrain csc.exe + LOLBin abuse on non-dev hosts
ASR: block executable content from email/web; block obfuscated scripts
10

Hardening — Tiered & Deployable

Cut the C2, govern RMM, and surface the fileless tells.

Immediate — Cut C2 & the fileless elevation
  • Block legitserver.theworkpc.com + ports 5443/8041M1037. Severs the C2 (Q5/N4).
  • Promote Q3 (ComputerDefaults UAC bypass) + Q1 (image-as-code) to Detect+BlockM1040.
  • RMM governance: allow only sanctioned ScreenConnect instances/relaysM1042. Alert on the rest (Q4/N3).
  • PowerShell CLM + script-block/module logging; AMSI onM1038 / M1047. Surfaces stages 1-2.
Near term — Constrain LOLBins (pilot first)
  • WDAC/app control: constrain csc.exe + LOLBin abuse on non-dev hostsM1038. Blunts the launcher build (Q2).
  • ASR: block executable content from email/web; block obfuscated scriptsM1042.
  • Monitor service installs (7045) for odd RMM service names/pathsM1047.
Strategic — Reduce RMM-abuse surface
  • Application allowlisting; default-deny user-path executionM1038.
  • RMM inventory + alerting program (which tools, which hosts, which relays)M1033.
  • UAC at max; tiered admin; phishing-resistant MFAM1052 / M1026 / M1032.
11

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host; preserve sysupdate.jpeg + the compiled launcher + the ScreenConnect install + PowerShell logsSOC L2Containment timestamp; Q1/Q3 events
TriageMap stager → csc build → UAC bypass → ScreenConnect install → C2; assess hands-on RMM access & lateral movement; pull C2 listIRProcess tree; service install; C2
EradicateRemove the ScreenConnect service (OneDriveServers) + launcher + stager + UAC-bypass registry; block C2; reset credsIRRemoval log; cred reset
RecoverReimage if hands-on RMM control occurred; verify; restore from clean backupIR + ITRebuild ticket
HardenBlock C2; RMM governance; promote Q1/Q3; CLM + script-block logging; constrain csc.exeDetection EngIOA enabled; egress rule
12

Detection Coverage Map & Validation

TechniqueBehaviorCQLIOACoverage
T1027.003Fake-image stager (read-as-code)Q1, Q6IOA-2Good
T1027.004 / T1059.001csc.exe launcher compileQ2Partial + script-block (N2)
T1548.002ComputerDefaults UAC bypassQ3IOA-1Good
T1543.003 / T1219ScreenConnect masquerade persistenceQ4Good + RMM governance (N3)
T1071 / T1219C2 beacon (5443/8041)Q5Good + proxy (N4)
Initial delivery of sysupdate.jpegGAP mail/web + file inventory (N1)

Validation gates: (1) confirm process + file + registry + DNS telemetry + PowerShell script-block; (2) allow-list sanctioned ScreenConnect relays + any vetted image-processing scripts; (3) lab-test a benign powershell Get-Content image.jpg (tune Q1 to require the code-exec verbs) and a benign ComputerDefaults launch (must NOT spawn a child for Q3); (4) block the C2 + promote Q1/Q3. Any one fileless tell on a non-IT host is high-signal.

13

Hunt Summary Ticket

TITLE:        Hunt — Operation SilentCanvas (JPEG-staged PS -> trojanized ScreenConnect)
SEVERITY:     High (fileless loader + UAC bypass + RMM persistence)
SCOPE:        Windows endpoints; PowerShell logging; service/registry; egress
HYPOTHESIS:   PowerShell reads sysupdate.jpeg (no magic bytes) -> csc.exe builds a launcher ->
              ComputerDefaults.exe fileless UAC bypass -> trojanized ScreenConnect (OneDriveServers)
              -> beacon to legitserver.theworkpc.com 5443/8041.
QUERIES RUN:  Q1 image-as-code (IOA) | Q2 csc.exe compile | Q3 ComputerDefaults UAC bypass (IOA) |
              Q4 ScreenConnect masquerade | Q5 C2 egress | Q6 sysupdate.jpeg write
              + Native N1-N4 (fake-image stager, script-block, RMM masquerade, C2 egress)
DO FIRST:     Block C2; Q3 + Q1 -- escalate any fileless tell on a non-IT host
FINDINGS:     <pending analyst execution>
GAPS:         Initial delivery of sysupdate.jpeg (mail/web); named atoms may rotate
ACTIONS:      Block theworkpc.com + 5443/8041; RMM governance; promote Q1/Q3; CLM + script-block
              logging; constrain csc.exe; ASR; reimage affected hosts
OWNER:        HuntPack
VERSION:      v0.3 - 2026-06-12
14

Changelog

v0.52026-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.42026-06-29CQL syntax review (crowdstrike-logscale-v3): RemotePort numeric-equality fix and removed invalid file-write event names (Q5, Q6).
v0.32026-06-12Re-hunt + reformatted to the review-v2 gold layout (fixed left-sidebar scrollspy TOC, collapsible, cloud selector inside the CQL section, per-card Copy/Open-in-Falcon, Grouped IOC Quick-Copy grid, coverage+validation, .ticket). Refreshed research: sysupdate.jpeg fileless stager (no JPEG magic bytes), PowerShell → csc.exe launcher, ComputerDefaults.exe UAC bypass, trojanized ConnectWise ScreenConnect masquerading as the OneDriveServers service, C2 legitserver.theworkpc.com ports 5443/8041, AMSI-bypass/anti-forensics. 6 CQL + 4 native hunts, 2 IOA candidates.
v0.12026-05-06Initial pack: Operation SilentCanvas overview + hunts. Pre-gold top-bar layout.
15

References

TierSourceUsed For
1Operation SilentCanvas analysis (vendor/news reporting)Full chain: JPEG stager, csc.exe, UAC bypass, ScreenConnect, C2 + ports
2LOLBAS — ComputerDefaults.exe · csc.exeUAC-bypass LOLBin + in-box C# compiler abuse
2CISA — RMM abuse advisories (ConnectWise ScreenConnect)Legit RMM abused as a backdoor; service-masquerade persistence

HuntPack v0.3 · Operation SilentCanvas · Generated 2026-06-12 · Defensive use only — no offensive code. Block the named C2 (theworkpc.com, 5443/8041), but anchor durable detection on the fileless tells — image-as-code PowerShell, csc.exe launcher compile, and the ComputerDefaults UAC bypass — and govern RMM so trojanized ScreenConnect stands out. Validate field names before promoting any query.