On November 11, 2026, threat actors exploited cloud-hosted ConnectWise ScreenConnect panels to deploy attacker-controlled ScreenConnect clients and the SCKit worm toolkit across 288 hosts spanning 48 organizations. ConnectWise responded by disabling five third-party extensions as a precaution, though the initial access vector remains under active investigation — with CVE-2026-84869 flagged as the associated vulnerability.
This campaign represents a textbook RMM (Remote Monitoring & Management) abuse operation with worm-like self-propagation. Rather than dropping traditional malware that triggers EDR signatures, the operators weaponize a legitimate, trusted remote access platform — turning the defenders' own tooling against them. The attack chain unfolds in two stages:
-
Initial Compromise & Rogue Client Deployment: Attackers exploit cloud ScreenConnect panels to push attacker-controlled ScreenConnect client instances to endpoints. Because ScreenConnect binaries are signed and commonly whitelisted, this stage bypasses most application control policies.
-
Worm Propagation via Session Cookie Theft: The SCKit worm harvests active session cookies from infected endpoints, then leverages RelayTrap — a session cookie relay component — to hijack authenticated technician sessions and spread laterally to technician workstations. This enables the actor to ride legitimate admin sessions across the environment without needing credentials.
The objective is persistent, scalable remote access across victim organizations — positioning for follow-on activity that typically includes data theft, ransomware staging, or resale of access on dark web markets. Session cookie relay tooling is particularly dangerous because it defeats MFA: a stolen authenticated session token bypasses the authentication layer entirely.
The campaign's infrastructure — dynamic DNS hostnames (homedns.org, gotdns.org), disposable domains (payproofkit.com, cdn007-digitaldownloads.com), and PHP-based relay endpoints — matches the classic crimeware pattern of low-cost, rapidly rotating C2 built on free DNS services and bulletproof hosting.
Threat Actor / Malware Profile
SCKit (Worm Component)
- Classification: Self-propagating worm / lateral movement toolkit
- Distribution Method: Deployed via compromised cloud-hosted ScreenConnect panels; spreads endpoint-to-endpoint by hijacking authenticated technician sessions
- Payload Behavior: Installs attacker-controlled ScreenConnect client instances, harvests browser and RMM session cookies, enumerates reachable technician workstations for propagation
- Persistence Mechanism: Rogue ScreenConnect client registers as a system service (e.g.,
ScreenConnect Client (*)service naming pattern), surviving reboots and blending with legitimate deployments - Anti-Analysis: Leverages signed, legitimate binaries (living-off-the-land RMM abuse); no custom-packed payload in initial stage, minimizing static detection surface
RelayTrap (Session Cookie Relay)
- Classification: Session hijacking / credential theft relay
- Function: Intercepts and relays stolen session cookies to attacker infrastructure, enabling real-time session riding against ScreenConnect technician portals and web applications
- C2 Communication: HTTP/HTTPS callbacks to dynamic DNS hosts and PHP relay endpoints (e.g.,
https://ns.mo7sen.dev/EadF.php?p=4); parameterized GET requests consistent with tasking/heartbeat beacons - Infrastructure Pattern: Free dynamic DNS (
homedns.org,gotdns.org) combined with lookalike domains (sc.payproofkit.commimicking ScreenConnect branding) for social engineering resilience and takedown evasion - MITRE ATT&CK Mapping: T1219 (Remote Access Software), T1071.001 (Web Protocols), T1539 (Steal Web Session Cookie), T1557 (Adversary-in-the-Middle), T1543.003 (Windows Service), T1572 (Protocol Tunneling)
Vulnerability Context: CVE-2026-84869
The pulse associates exploitation with CVE-2026-84869 affecting ScreenConnect. ScreenConnect has a documented history of critical authentication bypass flaws (e.g., CVE-2024-1708/1709), and any new panel-side vulnerability is a maximum-priority patch item given this platform's direct remote code execution capability on managed endpoints.
IOC Analysis
The pulse contains 29 indicators across four operationally distinct types:
| Type | Examples | Operationalization |
|---|---|---|
| Dynamic DNS hostnames | soxnewwork.homedns.org, newnewnew.gotdns.org, sc.payproofkit.com | Block at DNS resolver and web proxy; alert on ANY resolution. DynDNS from corporate endpoints is a high-fidelity anomaly on its own |
| IPv4 (C2 infrastructure) | 185.99.255.28, 155.94.150.39 | Block at egress firewall; retro-hunt NetFlow/proxy logs for 30 days |
| URLs (relay/tasking endpoints) | https://ns.mo7sen.dev/EadF.php?p=4 | Proxy block with full URL; hunt for parameterized .php?p= callbacks in proxy telemetry |
| CVE | CVE-2026-84869 | Feed to vulnerability management; emergency patch/verify ScreenConnect panel version; audit extension inventory |
SOC operationalization guidance:
- DNS-layer detection is your highest-fidelity control.
homedns.organdgotdns.orgare free dynamic DNS providers with virtually no legitimate enterprise use. Alert on resolution of these TLD patterns regardless of the subdomain. - Import indicators into MISP/ThreatConnect/OpenCTI and sync to your EDR (custom IOC lists), firewall, and SIEM. Set a 90-day expiration on infrastructure IOCs — this actor rotates quickly.
- Behavioral coverage matters more than IOCs. ScreenConnect client installs outside your managed deployment tooling, ScreenConnect services with unknown instance GUIDs, and session cookie access by non-browser processes are durable detections that survive infrastructure rotation.
- Tooling: Velociraptor or OSQuery for fleet-wide service/file hunts; Suricata/Zeek for DynDNS and beaconing detection; Wireshark/mitmproxy for relay traffic analysis in a sandbox.
Detection Engineering
---
title: Rogue ScreenConnect Client Service Installation — SCKit Worm
id: 8f2a1c4e-7b3d-4f9a-a1e2-5c6d7e8f9a0b
status: experimental
description: Detects installation of ScreenConnect client services outside of known managed deployments, consistent with SCKit worm rogue RMM deployment activity
author: Security Arsenal Threat Intelligence
references:
- https://www.huntress.com/blog/sckit-worm-rogue-screenconnect
date: 2026/11/12
modified: 2026/11/12
tags:
- attack.command_and_control
- attack.t1219
- attack.persistence
- attack.t1543.003
logsource:
category: process_creation
product: windows
detection:
selection_service_install:
EventID: 7045
ServiceName|contains: 'ScreenConnect'
selection_cmdline:
Image|endswith: '\ScreenConnect.ClientService.exe'
CommandLine|contains:
- 'homedns.org'
- 'gotdns.org'
- 'payproofkit.com'
- 'digitaldownloads'
condition: selection_service_install or selection_cmdline
falsepositives:
- Legitimate IT-managed ScreenConnect deployments (whitelist known instance GUIDs and service names)
level: high
---
title: SCKit / RelayTrap C2 Communication to Dynamic DNS Infrastructure
id: 9d3b2e5f-6c4a-5e8b-b2f3-6d7e8f9a0b1c
status: experimental
description: Detects network connections to known SCKit worm and RelayTrap C2 infrastructure including dynamic DNS hosts and relay endpoints
author: Security Arsenal Threat Intelligence
references:
- https://www.huntress.com/blog/sckit-worm-rogue-screenconnect
date: 2026/11/12
modified: 2026/11/12
tags:
- attack.command_and_control
- attack.t1071.001
- attack.t1572
logsource:
category: network_connection
product: windows
detection:
selection_domain:
DestinationHostname|contains:
- 'soxnewwork.homedns.org'
- 'newnewnew.gotdns.org'
- 'cdn007-digitaldownloads.com'
- 'sc.payproofkit.com'
- 'ns.mo7sen.dev'
selection_ip:
DestinationIp:
- '185.99.255.28'
- '155.94.150.39'
selection_dyndns_heuristic:
DestinationHostname|endswith:
- '.homedns.org'
- '.gotdns.org'
condition: selection_domain or selection_ip or selection_dyndns_heuristic
falsepositives:
- Rare; dynamic DNS resolution from enterprise endpoints is anomalous by default
level: critical
---
title: Suspicious Session Cookie Access by Non-Browser Process — RelayTrap
id: 1a4c3f6d-8d5b-6f9c-c3e4-7e8f9a0b1c2d
status: experimental
description: Detects non-browser processes accessing browser cookie stores, consistent with RelayTrap session cookie theft enabling worm propagation to technician workstations
author: Security Arsenal Threat Intelligence
date: 2026/11/12
modified: 2026/11/12
tags:
- attack.credential_access
- attack.t1539
- attack.collection
logsource:
category: file_access
product: windows
detection:
selection_paths:
TargetFilename|contains:
- '\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies'
- '\AppData\Local\Microsoft\Edge\User Data\Default\Network\Cookies'
- '\AppData\Roaming\Mozilla\Firefox\Profiles\'
filter_browsers:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
filter_av:
Image|contains:
- '\ProgramData\Microsoft\Windows Defender\'
condition: selection_paths and not filter_browsers and not filter_av
falsepositives:
- Endpoint backup agents, forensic tooling, some EDR scanners (whitelist known-good)
level: high
// SCKit Worm & RelayTrap Hunt — Rogue ScreenConnect + C2 + Cookie Theft
// Microsoft Sentinel / Defender XDR | Lookback: 30 days
let C2Domains = dynamic(["soxnewwork.homedns.org", "newnewnew.gotdns.org", "cdn007-digitaldownloads.com", "sc.payproofkit.com", "ns.mo7sen.dev"]);
let C2IPs = dynamic(["185.99.255.28", "155.94.150.39"]);
let DynDNS = dynamic([".homedns.org", ".gotdns.org"]);
let NetworkHits = DeviceNetworkEvents
| where Timestamp > ago(30d)
| where RemoteUrl has_any (C2Domains)
or RemoteIP in (C2IPs)
or RemoteUrl endswith ".homedns.org"
or RemoteUrl endswith ".gotdns.org"
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort, ActionType
| extend HitType = "C2_Network";
let RogueSC = DeviceProcessEvents
| where Timestamp > ago(30d)
| where FileName has_any ("ScreenConnect.ClientService.exe", "ScreenConnect.Service.exe")
or ProcessCommandLine has "screenconnect"
| where ProcessCommandLine has_any ("homedns", "gotdns", "payproofkit", "digitaldownloads", "mo7sen")
or FolderPath !has_any ("C:\\Program Files\\ScreenConnect", "C:\\Program Files (x86)\\ScreenConnect") // tune to your managed path
| project Timestamp, DeviceName, FileName, FolderPath, ProcessCommandLine, InitiatingProcessFileName, AccountName
| extend HitType = "Rogue_ScreenConnect";
let RelayURL = DeviceNetworkEvents
| where Timestamp > ago(30d)
| where RemoteUrl contains "mo7sen.dev" or RemoteUrl contains "EadF.php"
| project Timestamp, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP
| extend HitType = "RelayTrap_Endpoint";
union NetworkHits, RogueSC, RelayURL
| sort by Timestamp desc
# SCKit / RelayTrap IOC & Artifact Hunt — Run elevated on endpoints or via EDR Live Response
# Checks: rogue ScreenConnect services, DynDNS DNS cache, established C2 connections, cookie store access artifacts
$C2Hosts = @("soxnewwork.homedns.org","newnewnew.gotdns.org","cdn007-digitaldownloads.com","sc.payproofkit.com","ns.mo7sen.dev")
$C2IPs = @("185.99.255.28","155.94.150.39")
$DynDNS = @("homedns.org","gotdns.org")
Write-Host "=== [1] Rogue ScreenConnect Services ===" -ForegroundColor Cyan
Get-CimInstance Win32_Service | Where-Object {
$_.Name -match "ScreenConnect" -and ($_.PathName -notmatch "Program Files")
} | Select-Object Name, DisplayName, State, PathName, StartName | Format-List
Write-Host "=== [2] All ScreenConnect Service Instances (validate against known-good GUIDs) ===" -ForegroundColor Cyan
Get-CimInstance Win32_Service | Where-Object { $_.Name -match "ScreenConnect" } |
Select-Object Name, DisplayName, State, PathName | Format-Table -AutoSize
Write-Host "=== [3] DNS Cache — C2 / Dynamic DNS Resolution ===" -ForegroundColor Cyan
Get-DnsClientCache | Where-Object {
$e = $_.Entry; ($C2Hosts + $DynDNS | Where-Object { $e -like "*$_*" })
} | Select-Object Entry, Data, TimeToLive | Format-Table -AutoSize
Write-Host "=== [4] Active/Recent Connections to C2 IPs ===" -ForegroundColor Cyan
Get-NetTCPConnection | Where-Object { $C2IPs -contains $_.RemoteAddress } |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess,
@{N='Process';E={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName}} | Format-Table -AutoSize
Write-Host "=== [5] ScreenConnect Client Artifacts on Disk (non-standard paths) ===" -ForegroundColor Cyan
$paths = @("$env:ProgramFiles","${env:ProgramFiles(x86)}","$env:ProgramData","$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA")
foreach ($p in $paths) {
Get-ChildItem -Path $p -Recurse -Filter "ScreenConnect*" -ErrorAction SilentlyContinue -Depth 3 |
Where-Object { $_.FullName -notmatch "Program Files" } |
Select-Object FullName, CreationTime, LastWriteTime
}
Write-Host "=== [6] Recent Browser Cookie Store Modifications (RelayTrap staging) ===" -ForegroundColor Cyan
$cookiePaths = @(
"$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Network\Cookies",
"$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Network\Cookies"
)
foreach ($cp in $cookiePaths) {
if (Test-Path $cp) {
Get-Item $cp | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) } |
Select-Object FullName, LastWriteTime, LastAccessTime
}
}
Write-Host "=== [7] Scheduled Tasks referencing ScreenConnect or DynDNS ===" -ForegroundColor Cyan
Get-ScheduledTask | ForEach-Object {
$t = $_
$t.Actions | Where-Object {
$_.Execute -match "ScreenConnect" -or $_.Arguments -match "homedns|gotdns|payproofkit|mo7sen"
} | ForEach-Object { [PSCustomObject]@{ Task=$t.TaskName; Action=$_.Execute; Args=$_.Arguments } }
} | Format-Table -AutoSize
Write-Host "`nHunt complete. Any hits in sections 1, 3, 4, or 5 warrant immediate isolation." -ForegroundColor Yellow
Response Priorities
Immediate (0–4 hours)
- Block all listed IOCs at DNS resolver, web proxy, and egress firewall: the two IPs, all hostnames/domains, and the full relay URL. Add wildcard blocks for
*.homedns.organd*.gotdns.orgresolution from corporate segments. - Isolate and audit all ScreenConnect instances: enumerate every ScreenConnect service in the fleet (script section 2) and validate each instance GUID against your managed deployment. Any unknown instance = compromised host — isolate immediately.
- Emergency patch/verify ScreenConnect panels against CVE-2026-84869; disable all non-essential third-party extensions pending vendor guidance.
- Execute the PowerShell hunt fleet-wide via EDR Live Response; run the KQL query for 30-day retro coverage.
24 Hours
- Force session invalidation enterprise-wide: because RelayTrap steals session cookies (MFA-bypassing), revoke all active sessions for ScreenConnect technician accounts, IdP/SSO sessions, and browser sessions on affected hosts. Password resets alone are insufficient — tokens must be revoked.
- Audit technician workstation activity for the past 30 days: rogue session joins, unexpected remote commands, and downstream connections from technician machines (the worm's propagation vector).
- Credential rotation for any account authenticated from an infected endpoint, prioritizing privileged/RMM admin accounts.
1 Week
- RMM allowlisting: implement application control (WDAC/AppLocker) permitting only your authorized ScreenConnect instance GUID(s); alert on any other RMM tooling (ScreenConnect, AnyDesk, TeamViewer, Splashtop) installing outside the management pipeline.
- DNS policy hardening: block free dynamic DNS TLD categories at the resolver; implement newly-registered-domain (NRD) blocking on the proxy.
- Cookie theft mitigations: enable Chrome/Edge App-Bound Encryption enforcement, restrict cookie store file access via EDR exploit guard rules, and shorten IdP session lifetimes for admin/technician roles.
- Detection onboarding: deploy the Sigma rules above to production with a 14-day tuning window; add DynDNS beaconing detection to network sensors (Zeek/Suricata).
Related Resources
Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.