Microsoft says the SCKit worm uses a hijacked ScreenConnect session to reach IT technicians' workstations
Microsoft's post of 13 November 2026 says the SCKit worm targets IT technician workstations through a hijacked authenticated ScreenConnect session. It lists 27 indicators (derived) and seven hunting queries, and prints no victim count, no actor and no confirmed way in.
By Parminder Kumar Sharma · LinkedIn · · 22 min read
Seven steps, seven queries, 27 indicators and no victim count
Microsoft's post on SCKit, dated 13 November 2026 (the page data says published 21:31 UTC and updated 22:07 UTC), numbers 7 steps in its attack chain, prints 7 Microsoft Defender XDR advanced hunting queries and lists 27 indicators in three tables: 5 domains and 2 IP addresses, 18 file hashes (15 SHA-256 and 3 SHA-1) and 2 ScreenConnect client identifiers. The counts are derived: 7 + 18 + 2 = 27. The three SHA-1 rows carry the same three roles as the first three SHA-256 rows, so the post hashes 15 files in all (derived).
The post says Microsoft Threat Intelligence "confirmed ConnectWise's reported activity" and that "the worm targets IT support technician workstations using the hijacked authenticated ScreenConnect Session". The angle of this briefing is that sentence: in the post's account the person doing remote support, and the browser session they use, is a target as well as the customer machine.
What that does not establish. The post prints no count of MSPs, instances, endpoints, technician workstations or downstream devices. It names no actor beyond "a threat actor". It gives no first-activity date of Microsoft's own. It does not say any customer data was taken. And its own caption on the attack-chain figure says the dashed path "describes the toolkit's propagation design, not a confirmed sequence of infections". The way in is also open: the post says "the entry method for the reported campaign remains under investigation". Read the technician-targeting parts as what Microsoft says the toolkit is built to do and what it says it has identified, not as a measured tally.
Whose interests. Microsoft sells Microsoft Defender XDR and Defender for Endpoint, and the queries, alert titles and detection names in the post are those products'. ConnectWise sells ScreenConnect, the product the post says is abused. The post is Microsoft's account of ConnectWise's reported activity and advisory; this site did not open either ConnectWise page that the post lists.
Three roles, and where the post says the attacker works
The post explains ScreenConnect as three parts. Each row below is the post's description, with what the post says the actor does there. The first column is the post's own labels.
ScreenConnect's three roles and what the post says happens at each. Source: Microsoft Security Blog post, 13 November 2026.
| Role, as the post names it | What the post says it is | What the post says the actor does there |
|---|---|---|
| Management instance | "A cloud-hosted or on-premises ScreenConnect server provides the web console and manages sessions". Its relay carries traffic between technician and clients. | The actor "uses the MSP's ScreenConnect management instance" to direct the installed endpoint client to run commands (step 1). The post says ConnectWise reported an active campaign of a threat actor "gaining unauthorized access to cloud-hosted ConnectWise ScreenConnect instances belonging to managed service providers (MSPs)". |
| Technician workstation | "Support staff sign in to the console through a browser and launch a local host client for interactive support". | RelayTrap is "designed to deliver a payload to a technician's workstation when they connect for support". The browser component targets the technician's console cookies. |
| Customer endpoint | "An installed guest, or access, client maintains unattended access and executes commands delivered through ScreenConnect". | An identical second client is installed, persistence is planted and RelayTrap is built from the local client's libraries. |
The post then separates two attack surfaces and says they must be handled separately: "Extension authentication and client-side file transfer are different attack surfaces". One is a reported entry to the server through its add-ons. The other is the path from a customer endpoint to the technician.
The reported way in, as the post relays it. The post says ConnectWise's advisory describes a reported authentication flaw in RMM+ versions 1.0.31 and 1.0.32: "when no access key was configured, the extension accepted an empty key". In that configuration, per the post, an unauthorized caller "could submit commands to the server's API for delivery to managed endpoints without a normal ScreenConnect user sign-in". The post adds that ConnectWise is investigating extension abuse as a route in and that the entry method for the campaign "remains under investigation". It prints no CVE identifier for the RMM+ flaw. The only identifier it prints is CVE-2026-84869, which it ties to a different path, covered below.
Fix date before write-up date. The post says "The fix for CVE-2026-84869 was released on September 8, 2026". That is 66 days before the post (derived: 22 days left in September, 31 in October and 13 in November). The post says that beginning on 11 November ConnectWise reported an active campaign, two days before the post (derived). The post does not say which entry route, if any, the actor used in a given intrusion, and it says the client-side path "is separate from the server-side access used to deploy SCKit".
The chain, step by step, as the post numbers it
The post's attack-chain section has 7 numbered steps and 8 figures (derived by counting the headings and captions). Steps 1 to 6 run on a customer endpoint; the post says the sequence "establishes a separate remote-access connection and prepares the scripts and RelayTrap component that target a later technician". The table keeps to what the post prints and names each artifact it prints.
The seven steps in the post's attack-chain section. Source: Microsoft Security Blog post, 13 November 2026. Wording follows the post; the step count is the post's own numbering.
| Step, as the post numbers it | What the post says happens | Artifacts the post names |
|---|---|---|
| 1. ScreenConnect commands install an additional client | Through the MSP's instance the actor has the endpoint client start cmd.exe, which runs curl.exe to download an MSI over HTTP from an attacker-controlled ScreenConnect server. Windows Installer then installs it silently without a restart. "The added client connects to an attacker-controlled ScreenConnect instance, creating a remote-access channel separate from the MSP's approved instance". | C:\Windows\Temp\sc.msi; a c=Exploited<N> marker (c=Exploited9 in the illustrated command); /i, /qn, /norestart |
| 2. A batch launcher retrieves the PowerShell decoder | A PowerShell command decodes a URL-safe Base64 string into a batch file in Windows Temp. The batch sets BATPATH to its own location, downloads the decoder and starts it with -Mode full. A hidden-relaunch branch uses a VBScript wrapper run through wscript.exe. | BATPATH, SCKIT_SELF, -Mode full, wscript.exe; five request selectors p=1, 3, 4, 5, 6 |
| 3. The decoder decrypts and extracts the SCKit bundle | The decoder reads the machine's MachineGuid and uses it as device-specific key material for AES-256-CBC decryption, then decompresses with GZip and extracts the ZIP. In full mode it stages the watcher, installer, alert script and RelayTrap.cs, copies its batch launcher into the payload directory "for RelayTrap to distribute", and stages ToolboxRelayUploader.exe. | %TEMP%\SCKitBundle; %TEMP%\SCKit\trapkit\payload; ToolboxRelayUploader.exe; sqlite3.exe |
| 4. Additional component: PowerShell script loader | A separate loader requests an encrypted script with p=1, decrypts it, writes it to a randomly named file, starts a hidden PowerShell process to run it and then attempts to remove it. | %TEMP%\k<32-hex>.ps1 |
| 5. RelayTrap adds persistence and targets connecting technicians | Scripts go under a ProgramData folder. A Run value launches an alert script at user logon. A scheduled task starts the watcher, which polls every 10 seconds, enumerates ScreenConnect client services and compiles RelayTrap.exe from each client's libraries. ScreenConnect services are set to start automatically. Registry writes add Microsoft Defender Antivirus path exclusions. | C:\ProgramData\RelayTrap; RelayTrapLiteAlert; -PollSeconds 10; trapbins; RelayTrap.exe |
| 6. Browser access targets authenticated ScreenConnect sessions | The code searches Chrome, Edge, Opera and Opera GX profiles for cookies named .ASPXAUTH, by a database route and by scanning browser memory, and uses the Chromium master key and DPAPI. The console-distribution component is designed to use a cookie to enumerate sessions, upload a payload and queue it through the Shared Toolbox. | .ASPXAUTH; ToolboxRelayUploader.exe; Shared Toolbox |
| 7. Cleanup and redeployment | The cleanup script places a stop marker, removes trap tasks, services, processes, Run entries and files, and restores ScreenConnect client services. The decoder's cleanup mode then starts the bundled dropper again unless -NoReArm is set. | -NoReArm; stop marker |
The part the post leaves quiet. The post does not say how many endpoints reached step 5 or step 6, or whether any technician workstation reached step 7 in the wild rather than in the design. It also prints the request selectors p=1, p=3, p=4, p=5 and p=6 and no p=2 (derived from the five rows of its selector table); the post does not explain the gap.
The technician is the target: two routes the post describes
The post describes two ways SCKit is built to reach a technician, and it keeps them apart.
Route one: RelayTrap, from the endpoint to the technician. RelayTrap is a "malicious replacement for the ScreenConnect client on an affected customer endpoint". It is "designed to reuse the customer endpoint's ScreenConnect connection details in place of its normal client", and "When a technician connects with a vulnerable host client, RelayTrap attempts to deliver the staged batch launcher through that session". The launcher retrieves the same decoder, which the post calls "extending the toolkit's deployment design from the customer device to the technician workstation". The post says ConnectWise states that client 26.6.5 and later block this transfer technique, and that the fix for CVE-2026-84869 was released on 8 September 2026. Because "a cloud-console update does not automatically update those clients", the post tells defenders to verify each technician client's installed version.
Route two: the browser session. The toolkit looks for cookies named .ASPXAUTH, in a section the post heads "6. Browser access targets authenticated ScreenConnect sessions". The post's description of what a stolen cookie is for is that the distribution component is "designed to combine an authentication cookie with the required anti-forgery and access tokens, enumerate accessible sessions, upload a payload using ToolboxRelayUploader.exe, and queue execution through the Shared Toolbox". It adds that the workflow removes the uploaded Toolbox item afterwards, and that "The account's permissions determine which additional sessions and devices the distribution workflow can reach". The post does not say which route it means by "hijacked authenticated ScreenConnect Session" in its opening; this site reads it as this cookie route, which is an inference.
This site's inference, labelled as such. A technician account that can see many customers' sessions is a wider door than any one customer endpoint, and the post says reach follows the account's permissions. The post prints no example of how many sessions a typical account reaches, so the size of that door is not stated. The post also does not say whether route two works without route one, that is, whether the toolkit reaches a technician workstation by any route other than a connection to an endpoint that carries RelayTrap, or how many technician workstations received the launcher.
Labels that stand in for a clean machine
The post's headline warning is one sentence: "Removing an unauthorized client alone does not remove the toolkit's persistence or invalidate exposed web sessions". Five comforting actions each leave something behind, in the post's own words.
Comforting labels and what the post says each leaves in place. Source: Microsoft Security Blog post, 13 November 2026.
| The label a team might use | What the post says it leaves | The post's sentence |
|---|---|---|
| "We removed the unauthorized client" | The toolkit's persistence and the exposed web sessions. | "Removing an unauthorized client alone does not remove the toolkit's persistence or invalidate exposed web sessions" |
| "We secured the console" | The additional client and its connection to the actor's instance. | "Securing access to the legitimate console does not remove this additional client or its connection" |
| "We patched the cloud console" | Technician clients that are not updated, which the post says update separately. | "a cloud-console update does not automatically update those clients" |
| "We changed the password" | Existing sessions that a password change does not end. | "Password changes alone do not address every existing session" |
| "We ran the kit's own cleanup" | A path back in: the cleanup restores ScreenConnect services and the decoder's cleanup mode can start the dropper again. | "Cleanup therefore also serves as a path to redeploy the toolkit" |
The post's guidance for the removal itself is blunt about the kit's own script: "Do not use a cleanup script recovered from the kit as a remediation tool". It also says to "Verify the complete state before restoring connectivity" and, where that cannot be done, to "Rebuild devices when integrity cannot be established".
What the post states, and what it does not
Stated and not stated in Microsoft's SCKit post. Source: the post, saved 14 November 2026. Searches of the saved text for victim counts, an actor name, attribution, ransomware, exfiltration, a first-observed date and an earlier ConnectWise incident found none.
| Question | What the post states | Not stated |
|---|---|---|
| How did the actor first get in? | ConnectWise reported unauthorized access to cloud-hosted instances of MSPs, beginning 11 November 2026. A reported empty-access-key flaw in RMM+ 1.0.31 and 1.0.32. The post says the actor "uses the MSP's ScreenConnect management instance" in step 1. | The entry method "remains under investigation". No CVE for the RMM+ flaw. Whether SCKit's operators used it. |
| How many were affected? | Nothing numeric. | Any count of MSPs, instances, endpoints, technician workstations or downstream devices. |
| Who is behind it? | Refers to "a threat actor" and "threat actors". | A name, an attribution, a motive. |
| When did it start? | ConnectWise's report began on 11 November 2026. The CVE-2026-84869 fix was released on 8 September 2026. The post is dated 13 November. | Microsoft's first-observed date. When SCKit first ran anywhere. |
| Is the spread observed? | "We have identified that the worm targets IT support technician workstations". | A count of technician workstations that received the launcher. Its figure caption says the dashed path is design, not "a confirmed sequence of infections". |
| Was data taken? | The browser component queries cookies and uses DPAPI in its decryption routines. | Any statement that customer data or credentials were taken, or that a stolen session was used. |
| Is it linked to another ConnectWise incident? | The post names no earlier ConnectWise incident. | Any link. This site draws none. |
| How well do the detections work? | Lists Defender alert titles and antivirus detection names by tactic. | Any detection rate or coverage figure. |
What a hunt team can copy from Microsoft's post
Everything in this section is copied from Microsoft's post. Where the post prints an indicator, it prints it defanged, and so does this site. Do not open, resolve or fetch any of these; they are for matching in logs. Each block says in words whose it is and what a defender does with it. Nothing here was written or altered by this site except the plain-text introductions.
Network indicators. Microsoft's table lists 5 domains and 2 IP addresses with a role for each. A defender searches DNS, proxy, firewall and EDR network logs for them and, per the post, reviews the full destination and the initiating process, because an approved remote-support server can sit close to an unapproved one.
Network indicators as Microsoft's post prints them, defanged. Source: the post's indicator table, saved 14 November 2026.
| Indicator | Type | Role, as the post words it |
|---|---|---|
| ns[.]mo7sen[.]dev | Domain | Decoder, bundle, script, and utility retrieval |
| sc[.]payproofkit[.]com | Domain | Unauthorized ScreenConnect panel and installer source |
| cdn007-digitaldownloads[.]com | Domain | Campaign infrastructure; configured installer source |
| newnewnew[.]gotdns[.]org | Domain | Associated ScreenConnect relay |
| soxnewwork[.]homedns[.]org | Domain | Associated ScreenConnect relay |
| 185[.]99[.]255[.]28 | IPv4 | Unauthorized ScreenConnect server and installer source |
| 155[.]94[.]150[.]39 | IPv4 | Address associated with the unauthorized panel |
File hashes. The post lists 15 SHA-256 hashes and 3 SHA-1 hashes, and warns that "The watcher compiles RelayTrap against local client libraries, and embedded configuration changes script hashes". A defender matches these against file events and treats a miss as inconclusive: the post says to use file and process behaviour to investigate other builds. The SHA-1 rows are printed for the query that follows; the post says SHA-256 is usually unpopulated in DeviceFileEvents.
File hashes as Microsoft's post prints them. Source: the post's hash table, saved 14 November 2026. The SHA-1 rows end with a stray semicolon in the post; it is dropped here.
| Hash | Type | Role, as the post words it |
|---|---|---|
| 61a672a13f03a9e81f573535ee92b1ed6cb7e848a33a06048865312d4e185ae2 | SHA-256 | sc.msi installer package |
| 8e6912deed82e80bb6bd66f73509d024b1f78b993515366d8317e69a97cff4f4 | SHA-256 | Staged toolkit ZIP |
| 8cb5f48bbe70b5248db7f327f3d1ad6649df5c767d2a7e0711ee147fd92e06af | SHA-256 | ToolboxRelayUploader.exe |
| 94b93c649b0ae0281352da9d01761fa9195ab1e6ac7010af3b9ba1646355eb11 | SHA-256 | Panel-Lateral-free.ps1 |
| 7a9aca9fdd4dcc13fe497cabdb13ca1e5d6a529271c8aa495e5ca1c1c80271ec | SHA-256 | Panel-Lateral.ps1 |
| b93f10f30ee453d1e1c046fec9d141c41d7680be5cd46c3aeb3febe0f4953b4d | SHA-256 | LabConfig.ps1 helper |
| 3c7a98f0fdb6235b8076319c74dc1085f7b349b6d750416dd0cadb07d7972ec4 | SHA-256 | RelayTrap.cs source |
| d2ed7a7bf4f8ac9c7969e9b3a07ebd4dda0d858f372c876ac0a041611698de9a | SHA-256 | TrapWatch.ps1 |
| 4a1dd3cd2ea14368afadf7e9dfdd63b104e3981ef8c85bbb6510919b810af04b | SHA-256 | trapkit\install.ps1 |
| cf50d73fa8117a758093b1344de41cd6a6ccddc645cdda1fa91a9264efe93956 | SHA-256 | Lite-Alert.ps1 |
| 81cc2baa35b798d6084bd078662fa29ff28df02c46c6ccdb2b43bde97d19f781 | SHA-256 | Stage0Loader.ps1 |
| 43b7a5e56f9e6c7b74e1ce2b7b5af63f383084625fcc2d3a5985fa1059e2db95 | SHA-256 | Run-Lateral-Full.bat |
| 50659748723e906c8b3d3c0386bd4cf692f693a3e23639398c1a14d0c31fed61 | SHA-256 | runnew.cmd |
| 5dd3a6ba806ac472663e243cfc1c034c534d5d9a42ec362c3dbf0f8d950148d0 | SHA-256 | Stop-LabTrap.bat cleanup-mode launcher |
| 454c43d296b1276bde9a4f6ff1da2221cb35ccdb2fc7991bdd572e45bce12a8a | SHA-256 | TRAP-PROOF.bat proof artifact |
| 0be01e7bd69cfdd222645d49bb5ad9961372fef2 | SHA-1 | sc.msi |
| 3f81c9c874a896c46e4bccea2fad2eaa3d9f2054 | SHA-1 | Staged toolkit ZIP |
| 13ce33b19daee3963f7e15d461b191c38f6bc0d3 | SHA-1 | Uploader |
Client identifiers. Two identifiers are labelled "Unauthorized ScreenConnect client identifier". The post does not say where on a device the identifier is read. This site's suggestion: compare the clients installed on managed devices with these two. The post's own advice is to validate each client's enrolled instance and relay destination before removing it.
Unauthorized ScreenConnect client identifiers as Microsoft's post prints them. Source: the post's second indicator table, saved 14 November 2026.
| Identifier | Type | Role, as the post words it |
|---|---|---|
| 2588ef5c15954b10 | Client ID | Unauthorized ScreenConnect client identifier |
| ed630cc2c873b091 | Client ID | Unauthorized ScreenConnect client identifier |
Paths, names and strings. These are the file paths, registry value, task markers and request strings the post names in its text. They are matching strings, not instructions. A defender searches command lines, file events and the registry for them, and inspects any scheduled task whose definition mentions them.
C:\Windows\Temp\sc.msi
/Bin/ScreenConnect.ClientSetup.msi
c=Exploited<N>
ns[.]mo7sen[.]dev/EadF.php?p=4
-Mode full
BATPATH
SCKIT_SELF
%TEMP%\SCKitBundle
%TEMP%\SCKit\trapkit\payload
%TEMP%\k<32-hex>.ps1
C:\ProgramData\RelayTrap
RelayTrapLiteAlert
-PollSeconds 10
ToolboxRelayUploader.exe
RelayTrap.cs
RelayTrap.exe
trapbins
TrapWatch
.ASPXAUTH
-NoReArm
Request selectors. The post says the scripts use these values of p at the decoder's server path to request components. They help a defender read a proxy log: a request for one of these on a host that is not on the approved list is worth a look.
Request selectors as Microsoft's post prints them. Source: the post's selector table, saved 14 November 2026.
| Request selector | Component | Role in the chain |
|---|---|---|
| p=4 | Decoder | Downloads, decrypts, and expands the toolkit |
| p=3&m=<machine-guid> | Encrypted bundle | Carries scripts, configuration, and trap components |
| p=5 | SQLite utility | Supports browser-cookie database queries |
| p=1&m=<machine-guid> | Encrypted script | Supplies the loader’s next PowerShell stage |
| p=6&m=<machine-guid> | Cleanup component | Removes an old trap before optional redeployment |
Microsoft Defender for Endpoint alert titles. The post lists alert titles by tactic, and separate Microsoft Defender Antivirus detection names (including the Tikise, RelayPersist, SCRelayTrap and ScreenConnect families, not repeated here). A defender checks whether those alerts fired in the period and reads them with the device timeline and the ScreenConnect audit records, as the post advises.
Defender for Endpoint alert titles by tactic, as Microsoft's post prints them. Source: the post's detections table, saved 14 November 2026. Antivirus detection names are in the post and not repeated.
| Tactic | What the post says it covers | Defender for Endpoint alert titles |
|---|---|---|
| Execution | ScreenConnect remote commands launch command-shell, batch, and PowerShell stages. | Suspicious command execution via ScreenConnect |
| Persistence | Additional clients and automatic-start services; the RelayTrapLiteAlert Run entry and scheduled tasks. | Suspicious installation of remote management software; Anomaly detected in ASEP registry; Suspicious Scheduled Task Process Launched |
| Defense evasion | The loader removes its temporary PowerShell payload; registry writes target Defender path exclusions. | Possible PowerShell indicator removal; Suspicious Microsoft Defender Antivirus exclusion |
| Credential access | The browser component queries .ASPXAUTH cookies, scans browser memory and uses DPAPI. | Possible theft of passwords and other sensitive web browser information; Suspicious DPAPI Activity |
| Command and control | PowerShell and curl.exe retrieve the decoder, components and installers. | Command-line process communicating with malicious network endpoint; Powershell made a suspicious network connection |
| Multiple tactics | Remote commands, client installation, persistence and security-setting changes. | Potential human-operated malicious activity |
The seven advanced hunting queries. Microsoft prints seven queries for Microsoft Defender XDR advanced hunting. They are reproduced exactly: this site did not write or change any query. The post says "Each query below runs independently and uses a 14-day lookback" and to adjust the range to the investigation window and retention. One difference inside the post: the last query, for the generated PowerShell file name, uses a 30-day lookback in its own text. The first query holds the campaign domain names and addresses. The post prints them undefanged inside the query; this site shows them defanged with [.] and nothing else changed, so refang them before running the query in Defender. None of them should be opened.
Connections to campaign infrastructure. Searches network events for the listed domains and addresses. A defender reviews the full destination, the initiating process and the approved remote-support infrastructure for each match.
DeviceNetworkEvents
| where Timestamp > ago(14d)
| where RemoteUrl has_any (
"ns[.]mo7sen[.]dev", "sc[.]payproofkit[.]com",
"newnewnew[.]gotdns[.]org", "soxnewwork[.]homedns[.]org",
"cdn007-digitaldownloads[.]com")
or RemoteIP in ("185[.]99[.]255[.]28", "155[.]94[.]150[.]39")
| project Timestamp, DeviceId, DeviceName, RemoteUrl, RemoteIP,
InitiatingProcessFileName, InitiatingProcessCommandLine, ReportId
Toolkit command lines and cookie-query activity. Searches process command lines for the toolkit's distinctive names, a staging path, the installer marker and the cookie name. This site's reading: a match on the cookie name in a command line is worth treating as urgent on a technician workstation.
DeviceProcessEvents
| where Timestamp > ago(14d)
| where ProcessCommandLine contains "/EadF.php"
or ProcessCommandLine contains "SCKit"
or ProcessCommandLine contains "RelayTrap"
or ProcessCommandLine contains "Panel-Lateral"
or ProcessCommandLine contains "ToolboxRelayUploader"
or ProcessCommandLine contains ".ASPXAUTH"
or ProcessCommandLine contains "c=Exploited"
| project Timestamp, DeviceId, DeviceName, FileName,
ProcessCommandLine, InitiatingProcessFileName, ReportId
Known installer, archive and uploader files. Matches file events for the sc.msi package, the staged ZIP and the uploader by SHA-1. The post says to combine hash matches with command-line and persistence findings.
DeviceFileEvents
| where Timestamp > ago(14d)
| where SHA1 in~ (
"0be01e7bd69cfdd222645d49bb5ad9961372fef2",
"3f81c9c874a896c46e4bccea2fad2eaa3d9f2054",
"13ce33b19daee3963f7e15d461b191c38f6bc0d3")
| project Timestamp, DeviceId, DeviceName, FileName, FolderPath,
SHA1, InitiatingProcessFileName, ReportId
Registry values referencing RelayTrap. Finds writes to the RelayTrapLiteAlert value or any value whose data contains RelayTrap. A defender reviews the registry key, the value data and the initiating process.
DeviceRegistryEvents
| where Timestamp > ago(14d)
| where ActionType == "RegistryValueSet"
| where RegistryValueName =~ "RelayTrapLiteAlert"
or RegistryValueData contains "RelayTrap"
| project Timestamp, DeviceId, DeviceName, RegistryKey,
RegistryValueName, RegistryValueData,
InitiatingProcessFileName, ReportId
RelayTrap scheduled-task events. Finds scheduled-task events mentioning RelayTrap or TrapWatch. The post says to inspect the task definition for its triggers, executable and arguments.
DeviceEvents
| where Timestamp > ago(14d)
| where ActionType contains "ScheduledTask"
| where AdditionalFields contains "RelayTrap"
or AdditionalFields contains "TrapWatch"
| project Timestamp, DeviceId, DeviceName, ActionType,
AdditionalFields, InitiatingProcessFileName, ReportId
Defender Antivirus path-exclusion writes. Finds writes to the Defender exclusions paths. The post says to review changes naming Windows Temp, ConnectWiseControl_, CWInstall_ or RelayTrap and to verify their authorization and effective policy.
DeviceRegistryEvents
| where Timestamp > ago(14d)
| where ActionType == "RegistryValueSet"
| where RegistryKey contains @"\Windows Defender\Exclusions\Paths"
| project Timestamp, DeviceId, DeviceName, RegistryKey,
RegistryValueName, RegistryValueData,
InitiatingProcessFileName, ReportId
Generated PowerShell loader files. Looks for temporary files named k followed by 32 hexadecimal characters and .ps1, which the post says can reveal staged payloads independently of known hashes or infrastructure.
DeviceFileEvents
| where Timestamp > ago(30d)
| where FileName matches regex @"(?i)^k[0-9a-f]{32}\.ps1$"
| project Timestamp, DeviceId, DeviceName,
ActionType, FileName, FolderPath, SHA256,
InitiatingProcessFileName
What to do, in order
Take this with you
Checklist (each item says whose it is)
- Microsoft's mitigation: keep the identified extensions disabled and follow the vendor advisory for Labtech Plus, RMM Plus, RMM+, RMM Plus Password Link and RMM+ Password Link; review their installation and configuration history alongside administrative access.
- Microsoft's mitigation: update technician clients separately from the console and verify each technician client's installed version. ConnectWise states client 26.6.5 and later block the attempted endpoint-to-technician transfer.
- Microsoft's mitigation: investigate through a separate channel such as Defender for Endpoint live response, not ScreenConnect; isolate affected endpoints and include connecting technician workstations in scope.
- Microsoft's mitigation: preserve extension, authentication, Run Command and Toolbox records with process, file, task and registry history, and review Toolbox history for tools removed after use.
- Microsoft's mitigation: revoke exposed sessions from a clean device, including identity-provider sessions, rotate exposed credentials and review accounts and permissions.
- Microsoft's mitigation: validate each client's enrolled instance and relay destination before removing it; remove malicious tasks, Run values, trap files and unauthorized exclusions; do not use the kit's own cleanup script; rebuild devices when integrity cannot be established.
- Microsoft's mitigation: keep Defender Antivirus, cloud-delivered protection and tamper protection on, and keep an inventory of authorized remote-management instances with application control against unapproved software.
- This site's suggestion, MSPs and IT support teams: treat the technician workstation as a crown asset. Use a separate, hardened machine and browser profile for the console, and do not browse or read mail in it.
- This site's suggestion, MSPs: limit who can launch Access sessions and which sessions each console account can reach, since the post says reach follows the account's permissions.
- This site's suggestion, MSPs: review installed ScreenConnect clients on managed devices against an allow-list of your own instance and relay, and check for the two unauthorized client identifiers.
- This site's suggestion, MSPs: review the instance's session, extension and Run Command logs now, then rotate sessions and credentials even after a client is removed, because the post says removal alone does not invalidate sessions.
- This site's suggestion, customers of an MSP: ask in writing which remote-support tools are installed on your devices, by whom, and whether the clients point at your provider's instance; ask whether the provider checked its technician workstations and rotated sessions.
The question the post leaves open
If removing the unauthorized client leaves a scheduled task, a Run value and live web sessions, and Microsoft prints no count of technician workstations that received the launcher, how does an MSP show a customer that the machine its staff sign in from is clean, and who checks?
Key facts
Sources
- PrimarySCKit abuses ScreenConnect to deploy remote access and target technician sessions, post dated 13 November 2026 (page data: published 21:31 UTC, modified 22:07 UTC): the attack chain, mitigation guidance, detections, seven hunting queries and the indicator tables. Saved by the lead on 14 November 2026 at about 09:40 UTCMicrosoft Threat Intelligence (Microsoft Security Blog)accessed 2026-11-14
- PrimaryConnectWise security investigation and partner guidance, listed in Microsoft's references as the advisory covering the RMM+ extension authentication flaw. Not opened by this site; cited as printed in Microsoft's postConnectWiseaccessed 2026-11-14
- PrimaryScreenConnect security bulletin of 2026-09-08, listed in Microsoft's references for the CVE-2026-84869 fix and client 26.6.5 guidance. Not opened by this site; cited as printed in Microsoft's postConnectWiseaccessed 2026-11-14


