A newly identified worm-like malware toolkit dubbed SCKit has been observed in active attacks against managed service providers, abusing ConnectWise ScreenConnect as its propagation vehicle. What makes SCKit operationally significant is its direction of travel: rather than spreading laterally within a single victim network, it is designed to pivot upstream — from an infected customer endpoint onto the MSP technician's workstation during a remote support session, and from there into every other customer network that technician touches. One compromised endpoint becomes a compromise of the MSP's entire book of business.
This is the nightmare scenario for the MSP/MSSP model, and it mirrors the blast-radius logic that made the Kaseya VSA and SolarWinds incidents so damaging. Remote monitoring and management (RMM) tooling is trusted by design: it runs with SYSTEM-level privileges, is excluded from most EDR policies, and holds authenticated sessions into dozens or hundreds of downstream environments. SCKit weaponizes exactly that trust.
If you operate or defend an MSP, or you consume services from one, treat this as an active-threat containment problem, not a patching exercise. The sections below cover how the toolkit behaves, what to hunt for, and how to harden your RMM estate today.
Technical Analysis
What SCKit Does
Based on the reported campaign, SCKit exhibits classic worm characteristics wrapped around RMM abuse:
- Initial foothold on a customer endpoint. The toolkit lands on a managed device — delivery vectors in these campaigns typically include phishing, drive-by downloads, or exploitation of internet-facing services — and establishes persistence.
- Waiting for the technician session. Rather than beaconing aggressively, the malware monitors for an inbound ScreenConnect session from the MSP's technician console. When a technician connects to remediate or service the infected endpoint, SCKit uses that authenticated session channel to push itself to the technician's machine.
- Compromise of the technician workstation. Once on the technician's system, the malware inherits the most privileged position in the entire trust chain: a host with live or cached sessions into every managed customer network, saved credentials, and the RMM console itself.
- Downstream propagation. From the technician's machine (or via the ScreenConnect console's scripting/push capabilities), SCKit can be distributed to additional managed endpoints — turning one infection into a supply-chain-style cascade across the MSP's client base.
Why This Technique Is So Dangerous
- RMM processes are trusted and often excluded. Many organizations exclude
ScreenConnect.ClientService.exeand its install directories from antivirus and EDR scanning to avoid breaking remote support. Malware staging through or alongside the RMM inherits that blind spot. - ScreenConnect runs as SYSTEM. Anything executed through a session or by a malicious service binary runs with full privileges on both ends.
- Session-based transfer bypasses network controls. Propagation riding an established, encrypted RMM session does not look like worm traffic on the wire — there is no SMB scanning, no exploit attempt, no anomalous connection to flag.
- The MSP is a force multiplier. Compromising one technician workstation is functionally equivalent to compromising every customer network that technician services.
Exploitation Status
SCKit is confirmed deployed in active attacks against MSPs. This is not a proof-of-concept or a theoretical technique — it is a purpose-built toolkit observed in the wild targeting the MSP supply chain. No CVE has been associated with this campaign in public reporting at the time of writing; the toolkit abuses legitimate RMM functionality rather than exploiting a specific software vulnerability, which means patching alone will not stop it. Defense must be behavioral and architectural.
Defender's View of the Attack Chain
| Stage | Observable Behavior |
|---|---|
| Foothold | New unsigned binaries in %ProgramData%, %AppData%, or temp paths; new services or run keys |
| Session hijack | Child processes spawned by ScreenConnect.ClientService.exe (cmd.exe, powershell.exe, rundll32.exe) |
| Technician compromise | File writes to the technician machine during or immediately after a remote session; new ScreenConnect-related persistence |
| Downstream spread | ScreenConnect console-initiated script execution, mass session launches, or new client installs across multiple customer endpoints |
Detection & Response
The detections below focus on the highest-fidelity behaviors: ScreenConnect spawning shell interpreters, persistence planted around RMM components, and suspicious file staging in RMM working directories. Tune the false-positive notes against your environment before production deployment — legitimate MSP automation does sometimes spawn scripts through ScreenConnect, but it should be attributable to known packages and technician accounts.
Sigma Rules
---
title: ScreenConnect Spawning Shell or Script Interpreter
id: 3f8a2c41-9b1e-4d7a-a6c2-8e5f1b9d3a07
status: experimental
description: Detects ScreenConnect client service spawning command shells or script interpreters, consistent with SCKit-style execution through an RMM session or malicious service activity.
references:
- https://www.bleepingcomputer.com/news/security/new-worm-like-sckit-malware-targets-msps-in-screenconnect-attacks/
- https://attack.mitre.org/techniques/T1219/
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.command_and_control
- attack.t1219
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\ScreenConnect.ClientService.exe'
- '\ScreenConnect.Service.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
condition: selection_parent and selection_child
falsepositives:
- Legitimate MSP automation and remote scripts executed by technicians via ScreenConnect Backstage or toolbox functions — baseline known packages and technician activity windows
level: high
---
title: Persistence via ScreenConnect Service Manipulation
id: 7c1d4e92-6a3b-4f85-b2d9-1e8c4a7f5b06
status: experimental
description: Detects creation or modification of Windows services referencing ScreenConnect paths by processes other than the ScreenConnect installer or updater, indicating tampering or SCKit-style persistence piggybacking on the RMM install.
references:
- https://www.bleepingcomputer.com/news/security/new-worm-like-sckit-malware-targets-msps-in-screenconnect-attacks/
- https://attack.mitre.org/techniques/T1543/003/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.persistence
- attack.t1543.003
- attack.privilege_escalation
logsource:
category: process_creation
product: windows
detection:
selection_sc:
Image|endswith:
- '\sc.exe'
- '\powershell.exe'
- '\pwsh.exe'
CommandLine|contains:
- 'ScreenConnect'
selection_verbs:
CommandLine|contains:
- ' create '
- ' config '
- 'New-Service'
- 'Set-Service'
- 'binpath'
- 'binPath'
filter_installer:
CommandLine|contains:
- 'ScreenConnect.ClientSetup'
- 'ScreenConnect Installer'
condition: selection_sc and selection_verbs and not filter_installer
falsepositives:
- MSP deployment scripts that legitimately re-register ScreenConnect services during onboarding — scope to change windows
level: high
---
title: Unsigned Binary Execution from ScreenConnect Working Directory
id: b29e6a14-4d8c-4f19-9a73-2c6d8e1f4b52
status: experimental
description: Detects process execution from ScreenConnect temporary, toolbox, or user data directories by binaries that are not the ScreenConnect client itself — a common staging location for payloads pushed through compromised sessions.
references:
- https://www.bleepingcomputer.com/news/security/new-worm-like-sckit-malware-targets-msps-in-screenconnect-attacks/
- https://attack.mitre.org/techniques/T1219/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.command_and_control
- attack.t1219
logsource:
category: process_creation
product: windows
detection:
selection:
Image|contains:
- '\ScreenConnect Client\'
- '\ScreenConnect\App_Data\'
- '\Documents\ConnectWiseControl\'
filter_known:
Image|endswith:
- '\ScreenConnect.Client.exe'
- '\ScreenConnect.ClientService.exe'
- '\ScreenConnect.WindowsClient.exe'
- '\ScreenConnect.SessionClient.exe'
condition: selection and not filter_known
falsepositives:
- Legitimate third-party tools staged in the ScreenConnect toolbox by technicians — maintain an allowlist of approved toolbox utilities
level: medium
KQL — Microsoft Sentinel / Defender
This query hunts for the core SCKit behavior — ScreenConnect spawning shells or LOLBins — and correlates it with process ancestry so analysts can see which technician session and which endpoint were involved. Run it across both customer endpoints and, critically, technician workstations.
// Hunt: ScreenConnect spawning shells/script interpreters or staging unexpected binaries
// Scope: all endpoints, with emphasis on MSP technician workstations
let Lookback = 14d;
let SuspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","certutil.exe","bitsadmin.exe","wmic.exe","msbuild.exe","installutil.exe","regsvcs.exe"]);
DeviceProcessEvents
| where Timestamp > ago(Lookback)
| where InitiatingProcessFileName has_any ("ScreenConnect.ClientService.exe","ScreenConnect.Service.exe","ScreenConnect.WindowsClient.exe")
| where FileName has_any (SuspiciousChildren)
| extend ChildSHA256 = SHA256, ParentCommand = InitiatingProcessCommandLine
| summarize FirstSeen = min(Timestamp), LastSeen = max(Timestamp),
Commands = make_set(ProcessCommandLine, 20),
Accounts = make_set(AccountName, 10)
by DeviceName, FileName, ChildSHA256, ParentCommand
| extend DistinctCommands = array_length(Commands)
| order by LastSeen desc;
// Companion: outbound network connections from ScreenConnect child processes
DeviceNetworkEvents
| where Timestamp > ago(Lookback)
| where InitiatingProcessFileName has_any (SuspiciousChildren)
| join kind=inner (
DeviceProcessEvents
| where Timestamp > ago(Lookback)
| where InitiatingProcessFileName has "ScreenConnect"
| project DeviceName, ProcessId, Timestamp
) on DeviceName
| where RemoteIPType == "Public"
| summarize Connections = count(), RemoteIPs = make_set(RemoteIP, 25), Ports = make_set(RemotePort, 10)
by DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine
| order by Connections desc;
Velociraptor VQL
This artifact triages hosts for ScreenConnect-spawned suspicious processes, unexpected binaries in RMM working paths, and ScreenConnect service configuration — useful for rapidly sweeping an MSP's entire fleet during scoping.
-- SCKit / ScreenConnect abuse triage artifact
-- Sweep: suspicious children of ScreenConnect, staged binaries in RMM paths, service config
-- 1. ScreenConnect-spawned shells and LOLBins
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)screenconnect'
OR Name =~ '(?i)screenconnect'
-- 2. Unexpected executables staged in ScreenConnect working/toolbox directories
SELECT FullPath, Size, Mtime, Btime
FROM glob(globs=[
'C:/Program Files (x86)/ScreenConnect Client*/**/*.exe',
'C:/Program Files/ScreenConnect Client*/**/*.exe',
'C:/ProgramData/**/ScreenConnect*/**/*.exe',
'C:/Users/*/Documents/ConnectWiseControl/**/*.exe'
])
WHERE FullPath !~ '(?i)ScreenConnect\.(Client|ClientService|WindowsClient|SessionClient|Upstream)\.exe'
-- 3. ScreenConnect service registration and binary path (detect tampering / replaced binPath)
SELECT Name, DisplayName, PathName, StartName, State, StartMode
FROM wmi(query='SELECT Name, DisplayName, PathName, StartName, State, StartMode FROM Win32_Service WHERE Name LIKE "%ScreenConnect%"', namespace='root/cimv2')
-- 4. Active network connections from ScreenConnect-related processes
SELECT Pid, Name, RemoteAddress, RemotePort, Status
FROM netstat()
WHERE Name =~ '(?i)screenconnect|powershell|cmd|rundll32'
AND Status =~ 'ESTAB'
Remediation and Hardening Script
Run this PowerShell triage-and-hardening script (elevated) on technician workstations and managed endpoints. It inventories ScreenConnect services, verifies binary signatures, hunts for unexpected executables in RMM paths, audits recent child-process activity, and reports findings for IR scoping.
# SCKit / ScreenConnect Abuse Triage & Hardening Script - Security Arsenal
# Run elevated. Outputs a consolidated report for IR scoping.
$report = @()
# 1. Inventory ScreenConnect services and flag non-standard binary paths
```powershell
Get-CimInstance Win32_Service | Where-Object { $_.Name -like '*ScreenConnect*' -or $_.PathName -like '*ScreenConnect*' } | ForEach-Object {
$signed = $null
$binPath = if ($_.PathName -match '"([^"]+)"') { $Matches[1] } else { ($_.PathName -split ' ')[0] }
if (Test-Path $binPath) { $signed = (Get-AuthenticodeSignature $binPath).Status }
$report += [pscustomobject]@{
Check = 'Service'; Name = $_.Name; Detail = $_.PathName
StartAccount = $_.StartName; Signature = $signed
Risk = if ($signed -ne 'Valid') { 'HIGH - unsigned or invalid signature' } else { 'Review' }
}
}
2. Hunt for unexpected executables staged in ScreenConnect working directories
$scPaths = @("$env:ProgramFiles",
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.