Warlock Ransomware — Longlegs SharePoint Campaign

China-nexus actor Longlegs (Storm-2603) exploits on-premises SharePoint Server (ToolShell + 2026 CVEs) to steal ASP.NET machine keys, forge signed __VIEWSTATE RCE, abuse a vulnerable signed driver (BYOVD), install VS Code Insiders as a tunneling service, run NetExec for AD enumeration, and stage Warlock ransomware domain-wide via SYSVOL.
Threat
Warlock Ransomware / Longlegs (Storm-2603)
Severity
ACTIVE RaaS
Type
Ransomware + China-nexus intrusion set
Access
On-prem SharePoint Server (exploited in the wild)
Version
v0.1 (Draft) · 2026-10-03
Author
HuntPack
Confidence
High
01

Executive Summary

The attacker's objective in this campaign is domain-wide ransomware detonation launched from a single exploited internet-facing SharePoint Server. Longlegs (tracked by Microsoft as Storm-2603, with older activity linked to CL-CRI-1040, CamoFei and ChamelGang) exploits on-premises SharePoint vulnerabilities, drops a webshell into the LAYOUTS directory, steals the farm's ASP.NET machine keys, and forges a validly signed __VIEWSTATE payload to get code execution inside the SharePoint application pool. From there the group pivots through living-off-the-land recon, DLL side-loading, a masquerading domain account, NetExec-driven AD enumeration, and finally a BYOVD defense-evasion stage before staging Warlock ransomware in the domain's SYSVOL share for replication to every domain controller.

Symantec's Threat Hunter Team (security.com, published 1–2 Oct 2026) documented at least four victims over the preceding two months: a water utility, a telecommunications provider, a regional government body and a university, concentrated in Portuguese- and Spanish-speaking countries across Europe, Africa and Latin America. In one intrusion the actor disabled security tooling on at least 40 hosts within about two hours, then deployed Warlock on at least 33 hosts.

The single highest-leverage defensive angle in this pack is the Visual Studio Code Insiders tunnel-as-a-service technique: it is the most distinctive persistence/C2 mechanism in the campaign, it rides on a Microsoft-signed binary and Microsoft's own relay infrastructure, and it is unlikely to be present at all on a SharePoint farm member or domain controller in most environments, making it one of the cleanest high-fidelity signals available. The BYOVD stage and the SYSVOL-staged ransomware execution are the two steps immediately before mass detonation and deserve equal priority.

Defender priority: hunt and alert on code-insiders.exe tunnel-service installs and on vulnerable-driver loads (K7RKScan / CVE-2025-1055-class) on any host that is not a known developer workstation. In the documented intrusion, the gap between the defense-evasion stage and domain-wide ransomware execution was roughly two hours, which is the entire available response window.
02

Source Review & Web Hunter Notes

Four sources were fetched and saved verbatim to Warlock-Longlegs-SharePoint-Hunt-sources/. Two additional sources (Industrial Cyber and cyberpress.org) were attempted and are listed in References as not cited, because both returned a Cloudflare bot-detection interstitial (HTTP 403 "Just a moment...") rather than article content. Per policy against bypassing bot detection, no further access was attempted and no claim in this pack relies on either page.

TierSourceKey FindingCarry Forward
1 (Primary)Symantec / Carbon Black Threat Hunter Team — security.comFull attack chain, timeline (Jul 22–31, 2026), actor attribution (Longlegs/Storm-2603/CL-CRI-1040/CamoFei/ChamelGang), CVE list, K7RKScan/CVE-2025-1055 BYOVD, full IOC list (19 hashes + 2 domains)Yes
2BleepingComputer (Ionut Ilascu)Corroborates Symantec's findings; adds Microsoft's prior attribution of Storm-2603 alongside state-backed Linen Typhoon/Violet Typhoon ToolShell activityYes
2The Record / Recorded Future News (Jonathan Greig)Corroborates victim set and targeting; confirms CISA's July 2026 advisory on six additional SharePoint vulnerabilities; confirms Microsoft's 2025 LockBit-to-Warlock switch attributionYes
3 (Secondary aggregation)Rankiteo blog, citing cyberpress.orgReproduces the Symantec hash list and timeline; headline references "Microsoft" but the body contains no direct Microsoft quote or MSTIC-attributed statement about this specific campaignPartial — used only to corroborate values already present in the primary source, not as an independent fact source

No distinct, directly-quoted Microsoft blog post or advisory specific to this October 2026 Warlock/Longlegs campaign could be located. Microsoft's documented connection to this activity is limited to its prior (2025) attribution of the ToolShell exploit chain to Storm-2603, alongside state-backed Linen Typhoon/Violet Typhoon activity, as reported independently by BleepingComputer and The Record. This pack does not attribute any 2026-specific claim to Microsoft that Microsoft itself has not been quoted making.

Prompt-injection check: all fetched content was treated as untrusted data. No fetched page contained text directing the model to run a command, fetch an unrequested URL, change the output path, skip a step, or claiming user/administrator authorization. Nothing was found to report on this front.

03

Hunt Brief & Attack Chain

Hunt Hypotheses

  1. H1 — Initial access/execution: SharePoint ToolShell-class exploitation drops a webshell and triggers a deserialization gadget under the SharePoint worker process. (T1190, T1505.003, T1059.001 · high confidence)
  2. H2 — Tool ingress: Follow-on payloads are pulled via msiexec from public object-storage/paste services. (T1105 · high confidence)
  3. H3 — Defense evasion via side-loading: DLL side-loading pairs are staged outside standard install directories to run without a flagged standalone binary. (T1574.002 · medium confidence)
  4. H4 — Recon & masquerade: Living-off-the-land recon runs from the SharePoint worker process, and a masquerading setup-style account is added to local Administrators. (T1087.002, T1482, T1098.007 · medium-high confidence)
  5. H5 — OOB canary beaconing: Out-of-band DNS callbacks to a Burp-Collaborator-style domain confirm RCE. (T1071.004 · medium confidence, dual-use infrastructure)
  6. H6 — Covert C2/persistence via VS Code tunneling: VS Code Insiders is installed as a Windows service to open a Microsoft-signed remote tunnel. (T1219, T1543.003, T1036 · high confidence — most distinctive signal in this campaign)
  7. H7 — Lateral movement: NetExec drives AD enumeration and credential spraying ahead of domain-wide staging. (T1087.002, T1110.003, T1021.002 · high confidence)
  8. H8 — BYOVD defense evasion → domain-wide ransomware: A vulnerable signed driver disables security tooling at kernel level, immediately followed by Warlock staged through SYSVOL/DFSR replication. (T1068, T1562.001, T1072, T1486 · high confidence)

Attack Chain — Documented Intrusion, 22–31 July 2026

StepDateTelemetryHunt Angle
1Jul 22PowerShell WriteAllBytes to SharePoint LAYOUTS directoryWebshell drop (layout2sp.aspx) — Q1
2Jul 24net user /domain, whoami, nltest /domain_trusts; cleanup of staging files incl. doexeloc.dllLOTL recon from w3wp.exe — Q5
3Jul 24ssvagent.exe/doexe.exe + gsdll64.dll.tmp/doexeloc.dll side-load pairsDLL side-loading — Q4
4Jul 27Outbound request to a per-target *.oastify.com subdomainBurp Collaborator OOB canary — Q6
5Jul 28Repeated load of System.Workflow.ComponentModel via PowerShell under w3wp.exeDeserialization gadget → forged __VIEWSTATE RCE — Q2
6Jul 28msiexec against catbox.moe and wasabisys.com URLs (three packages, two services)Follow-on payload ingress — Q3
7Jul 28–29net localgroup administrators SPSEPRDSetup /add on three further hostsMasquerading setup account — Q7
8Jul 28code-insiders.exe tunnel service install --accept-server-license-terms from \Windows\debug\Covert persistence/C2 via VS Code tunnel — Q8, Q9, Q10
9Jul 28nxc.exe (NetExec) executionAD enumeration / credential spraying — Q11
10Jul 30–31Side-load pair reappears in backgroundPersistence check — Q4
11Jul 31 (early hours)net use + copy from internal \av\ share, launch of a.exe log on 40+ hosts within ~2 hoursAV/EDR-killer staged via vulnerable driver (BYOVD) — Q12, Q13, Q14
12Jul 31run.exe/rune.exe + ransom note, parented by dfsrs.exe/cmd.exe, delivered via SYSVOL replication to 33+ hostsDomain-wide Warlock detonation — Q15, Q16
04

Consolidated IOC Table

TypeValueConfidenceActionContextExpiry
SHA256116ca4e88a1bcebb6c0da7fb431c8eca7b8ef3f9767194820c56091972ccac2cHighDetectWarlock ransomware payload2027-04-03
SHA256155fb1cbdaea12c83ba92d18c88cf38bbc42bb684f913ca0bc26fcf115426a55HighDetectWarlock ransomware payload2027-04-03
SHA2566d07f1232dc59b84038fd0b2e75fdd3d5b825882bb0dba9e6724b7b0823fa3adHighDetectWarlock ransomware payload2027-04-03
SHA2568b58f7811a2a2f2a5024220490473774f02759dd2dd904b5b9fabfbaae37125fHighDetectWarlock ransomware payload2027-04-03
SHA2568ce8d8270ee9de02644530b8dd7fa78973b4a3b80f121e2c5f45ae68cce196f9HighDetectWarlock ransomware payload2027-04-03
SHA2561edb2c0b537cd95bbd5fc16321b4c38a6adf325ccc7b588ad6acc980b0463b60HighDetectMalicious side-loaded DLL2027-04-03
SHA256206f27ae820783b7755bca89f83a0fe096dbb510018dd65b63fc80bd20c03261HighDetectMalicious side-loaded DLL2027-04-03
SHA25627b7591cf9e1283010ca98fa5dbe970a73fee0d8cde277639924c144718db7c0HighDetectMalicious side-loaded DLL2027-04-03
SHA256c46825fcc0d1bf7a8b192facb176d6bf916c9dccfd6fa994be691e3b0e585f4eHighDetectMalicious side-loaded DLL2027-04-03
SHA256e14240bac8277b0f6dd4d29ab5da20d246bcccae647e5fe8d19cdae7fe471b20HighDetectMalicious side-loaded DLL2027-04-03
SHA256fb3846c9ac53d1b841ada3a6b1091153fea41a169cb44fe0084097d1f4d45984HighDetectMalicious side-loaded DLL2027-04-03
SHA25673c5268256c9da5488cd9e2b79013060ac321c7e54129344dc7b51e268af36eaHighDetectAV/EDR-killer tool2027-04-03
SHA256ae9f7fce57c7b928e659dccf0e00fa79cd9cd61a106f18d4e03f92dc3a03c295HighDetectVulnerable signed driver used for BYOVD (Symantec IOC list). Identity unconfirmed in this specific intrusion; the actor used the K7RKScan driver (CVE-2025-1055) in other recent attacks. This is a legitimate, signed security-product driver file — never action as Prevent.2027-04-03
Domainlitter[.]catbox[.]moeHighDetectPayload staging host (public paste/file service, dual-use)2027-04-03
Domainxn8xyt-drop[.]s3[.]wasabisys[.]comHighDetectPayload staging host (S3-compatible cloud storage, dual-use)2027-04-03
SHA25637f94fe1b4a106f02b6f74a69cbc05e69c17406f688beef4c9a045ffcbd2e65eLowEnrichListed "suspicious file" in Symantec IOC appendix, role not attributed2026-11-03
SHA2569ceb01f8bf7d6dba2ae07f5bd6070de3ec67b5eb01f969b0ba85e74564fb83a7LowEnrichListed "suspicious file" in Symantec IOC appendix, role not attributed2026-11-03
SHA256aaff04d84ef85353966aa4af186ff1254b72c068f33f802417b29dc23fb9f192LowEnrichListed "suspicious file" in Symantec IOC appendix, role not attributed2026-11-03
SHA256e3204b05e2f3a29bb6e6fcc21dda77d7cd31dfa755c21da0aa8661b5619ee0a1LowEnrichListed "suspicious file" in Symantec IOC appendix, role not attributed2026-11-03
SHA256eea631b5f7125239db0811e4682c2316ead69f9822e02d94fb5d8bf0d2faebedLowEnrichListed "suspicious file" in Symantec IOC appendix, role not attributed2026-11-03
SHA256f7269f80f81e99d06a590d7ab374e12fdf7e5f55a02c2a46c342d670f8519fdfLowEnrichListed "suspicious file" in Symantec IOC appendix, role not attributed2026-11-03

All atomic indicators above trace to a single primary research source (Symantec/Carbon Black). Per this pack's sourcing policy, nothing here ships at Prevent or Critical severity: pure-malware hashes are single-sourced for exact values (the bar for Prevent/Critical is two independent sources), and the driver hash/filename is a legitimate signed product that is never actioned as Prevent regardless of sourcing.

05

Affected Surface & Telemetry Matrix

SurfaceTelemetryPriorityGap Risk
On-prem SharePoint Server farm (WFEs/app servers)Falcon sensor (ProcessRollup2, PeFileWritten, DriverLoad) + IIS/ULS logsCriticalMachine-key / web.config secret access is not visible to EDR process telemetry — needs IIS/ULS log review (Section 7)
Active Directory / domain controllers (SYSVOL abused for deployment)Falcon sensor on DCs (ProcessRollup2 for dfsrs.exe/run.exe, CreateService)CriticalNone major; DFSR replication telemetry is directly observable
Endpoint fleet (ransomware execution, BYOVD)Falcon RansomwareOpenFile, DriverLoadCriticalNone major
Egress / DNS (oastify.com canary, catbox.moe, wasabisys.com, VS Code tunnel relay)Falcon DnsRequest/NetworkConnectIP4 + DNS/proxy logsHighVS Code tunnel traffic is TLS to legitimate Microsoft infrastructure — network telemetry alone cannot distinguish abuse; host-level process/service detection (Q8–10) is the primary control
Identity (masquerading setup account, NetExec credential spraying)Falcon ProcessRollup2 + Identity Protection eventsHighNone major
06

ATT&CK Mapping

TacticTechniqueNameObserved Behavior
Initial AccessT1190Exploit Public-Facing ApplicationSharePoint ToolShell (CVE-2025-49704/49706/53770/53771) + newer CISA-flagged 2026 SharePoint flaws
PersistenceT1505.003Server Software Component: Web Shelllayout2sp.aspx dropped into the LAYOUTS directory
Credential AccessT1552.001Unsecured Credentials: Credentials In FilesTheft of ASP.NET machine keys from SharePoint farm config
ExecutionT1059.001PowerShellWebshell write, recon, and deserialization-gadget loading all via base64 PowerShell
Defense EvasionT1574.002Hijack Execution Flow: DLL Side-Loadingssvagent.exe/doexe.exe/logger.exe with doexeloc.dll/gsdll64.dll
Command and ControlT1105Ingress Tool TransferMSI payload retrieval via msiexec from catbox.moe / wasabisys.com
DiscoveryT1087.002 / T1482Account & Domain Trust Discoverynet user /domain, whoami, nltest /domain_trusts
Command and ControlT1071.004Application Layer Protocol: DNSPer-target canary subdomain of oastify.com (Burp Collaborator, dual-use)
Privilege EscalationT1098.007Account Manipulation: Additional Local or Domain GroupsSPSEPRDSetup masquerading account added to local Administrators
Command and Control / PersistenceT1219 / T1543.003Remote Access Software / Create or Modify System Process: Windows ServiceVS Code Insiders tunnel installed as a service via code-insiders.exe tunnel service install
Defense EvasionT1036MasqueradingSigned Microsoft binary run from a non-standard path (\Windows\debug\) to blend with developer traffic
Discovery / Credential Access / Lateral MovementT1087.002 / T1110.003 / T1021.002Account Discovery / Password Spraying / SMB-WinRMNetExec (nxc.exe) AD enumeration and credential spraying
Defense Evasion / Privilege EscalationT1562.001 / T1068Impair Defenses / Exploitation for Privilege EscalationBYOVD: vulnerable signed driver (K7RKScan-class, CVE-2025-1055) terminates security processes at kernel level
Lateral MovementT1072Software Deployment ToolsWarlock staged in SYSVOL, replicated domain-wide by ordinary DFSR
ImpactT1486Data Encrypted for ImpactWarlock ransomware execution (run.exe/rune.exe) and ransom note on 33+ hosts
Defense EvasionT1070.004Indicator Removal: File DeletionEarly staging artifacts (incl. doexeloc.dll) deleted from Public/ProgramData
07

Native Audit-Log Hunts

Non-CQL checks that close the gaps Falcon process telemetry alone cannot reach:

  • IIS / SharePoint ULS logs: search for anomalous POST requests to /_layouts/15/ or /_vti_bin/ endpoints carrying large base64 payloads or abnormal response codes, correlated to the exploitation window.
  • Windows Security Event ID 4697/4698/7045 (service installed): cross-reference against Falcon's CreateService event for the code-insiders.exe tunnel; Windows Event Forwarding is a useful independent confirmation channel where deployed.
  • SharePoint machineKey / web.config change auditing: file-integrity monitoring on every farm member's web.config, alerting on any modification timestamp outside a planned change window.
  • DNS resolver / proxy logs: lookups for *.oastify.com, *.wasabisys.com, and *.catbox.moe originating outside approved developer or security-testing source ranges.
  • AD "Restricted Groups" / local administrators drift report: any account matching an SPS*Setup / SP*PRDSetup naming pattern added outside a documented patch or farm-configuration window.
  • SYSVOL file-integrity monitoring: alert on any new, unexpected file under \SYSVOL\<domain>\scripts\ on any domain controller.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first, since every "Open in Falcon" button below uses this selection.
Q1 · SharePoint LAYOUTS webshell write
CONF HIGHFP LOWCOST LOW

Looks for: a PowerShell or SharePoint-worker-parented process writing an .aspx file into a LAYOUTS path via WriteAllBytes. FP: low — legitimate SharePoint solution (.wsp) deployment through stsadm/Install-SPSolution does not use ad-hoc WriteAllBytes PowerShell against the layouts path.

// HUNT: SharePoint LAYOUTS webshell write via WriteAllBytes
// MITRE: T1190, T1505.003, T1059.001
// CONF: high  FP: low  COST: low
// REQUIRES: Falcon sensor on SharePoint front-end/app servers (ProcessRollup2)
// FALSE POSITIVES: legitimate .wsp solution deployment via stsadm/Install-SPSolution does not use ad-hoc WriteAllBytes PowerShell against the layouts path
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName = /^w3wp\.exe$/i or FileName = /^powershell\.exe$/i
| CommandLine = /WriteAllBytes/i
| CommandLine = /layouts/i
| CommandLine = /\.aspx/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
Q2 · ViewState deserialization gadget load
CONF HIGHFP LOWCOST LOW

Looks for: the SharePoint worker process spawning PowerShell that loads the System.Workflow.ComponentModel assembly, the deserialization gadget used to turn a forged machine-key-signed __VIEWSTATE payload into code execution. FP: low — this assembly load pattern has no routine administrative use.

// HUNT: SharePoint worker process loads deserialization gadget assembly
// MITRE: T1190, T1059.001
// CONF: high  FP: low  COST: low
// REQUIRES: Falcon sensor on SharePoint front-end/app servers (ProcessRollup2)
// FALSE POSITIVES: none routinely observed; this assembly load has no legitimate SharePoint administrative use
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName = /^w3wp\.exe$/i
| FileName = /^powershell\.exe$/i
| CommandLine = /System\.Workflow\.ComponentModel/i
| table([@timestamp, aid, ComputerName, ParentBaseFileName, FileName, CommandLine])
Q3 · Follow-on MSI payload from public object storage
CONF HIGHFP MEDIUMCOST LOW

Looks for: msiexec pulling a package from catbox.moe or wasabisys.com. FP: medium — Wasabi is a legitimate S3-compatible storage provider some orgs use for software packaging.

// HUNT: msiexec retrieving a payload from catbox.moe or wasabisys.com
// MITRE: T1105
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on SharePoint front-end/app servers (ProcessRollup2)
// FALSE POSITIVES: Wasabi is a legitimate S3-compatible cloud storage provider that some organizations use for software packaging
// TUNING: exclude known-approved software packaging pipelines that legitimately pull MSI packages from Wasabi/S3-compatible buckets; verify the destination bucket/object path against your approved deployment inventory before escalating
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| FileName = /^msiexec(\.exe)?$/i
| CommandLine = /catbox\.moe|wasabisys\.com/i
| table([@timestamp, aid, ComputerName, UserName, CommandLine])
Q4 · DLL side-load pair outside standard directories
CONF MEDIUMFP MEDIUMCOST LOW

Looks for: the observed side-load pairs: ssvagent.exe/doexe.exe/logger.exe with doexeloc.dll/gsdll64.dll. FP: medium — gsdll64.dll is also a legitimate Ghostscript library filename.

// HUNT: Observed DLL side-load pair written outside standard directories
// MITRE: T1574.002
// CONF: medium  FP: medium  COST: low
// REQUIRES: Falcon sensor, PE-write telemetry (PeFileWritten/NewExecutableWritten)
// FALSE POSITIVES: gsdll64.dll is also a legitimate Ghostscript library filename
// TUNING: exclude writes under a verified, signed Ghostscript install path (e.g. "Program Files\gs\"); require the write to correlate with a SharePoint worker process lineage before treating as malicious
#event_simpleName = /PeFileWritten|NewExecutableWritten/
| FileName = /^(ssvagent|doexe|logger)\.exe$/i or FileName = /^(doexeloc|gsdll64)\.dll$/i
| table([@timestamp, aid, ComputerName, FileName, FilePath])
Q5 · Recon commands spawned from SharePoint worker process
CONF HIGHFP MEDIUMCOST LOW

Looks for: net/whoami/nltest spawned by w3wp.exe. FP: medium — some SharePoint health-analyzer/maintenance jobs legitimately run similar diagnostics.

// HUNT: LOTL recon commands spawned from the SharePoint worker process
// MITRE: T1087.002, T1482
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on SharePoint front-end/app servers (ProcessRollup2)
// FALSE POSITIVES: documented SharePoint health-analyzer or farm-maintenance timer jobs occasionally invoke diagnostic commands
// TUNING: exclude any approved SharePoint timer-job service account documented to invoke net/whoami/nltest as part of scheduled diagnostics; baseline 14 days before enabling as high-severity
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName = /^w3wp\.exe$/i
| FileName = /^(net|net1|whoami|nltest)\.exe$/i
| table([@timestamp, aid, ComputerName, UserName, FileName, CommandLine])
Q6 · Burp-Collaborator-style OOB canary beacon
CONF MEDIUMFP MEDIUMCOST LOW

Looks for: DNS queries to a *.oastify.com subdomain. FP: medium — oastify.com is legitimate Burp Suite Collaborator infrastructure used by authorized penetration testers too.

// HUNT: DNS beacon to oastify.com (Burp Collaborator OOB canary pattern)
// MITRE: T1071.004
// CONF: medium  FP: medium  COST: low
// REQUIRES: Falcon sensor, DnsRequest telemetry
// FALSE POSITIVES: oastify.com is legitimate, widely-used Burp Suite Collaborator infrastructure; authorized pentest traffic will also hit it
// TUNING: exclude DNS sourced from your organization's approved penetration-testing or vulnerability-scanning hosts; correlate remaining hits against SharePoint/IIS process lineage before escalating
#event_simpleName = /DnsRequest/
| DomainName = /\.oastify\.com$/i
| table([@timestamp, aid, ComputerName, DomainName])
Q7 · Masquerading setup account added to local Administrators
CONF MEDIUMFP MEDIUMCOST LOW

Looks for: net localgroup administrators adding an SPS/SP-prefixed setup-style account name (observed: SPSEPRDSetup). FP: medium — legitimate SharePoint provisioning can run similar commands during farm setup/patching.

// HUNT: SPS/SP-prefixed setup-style account added to local Administrators
// MITRE: T1098.007
// CONF: medium  FP: medium  COST: low
// REQUIRES: Falcon sensor on all domain-joined hosts (ProcessRollup2)
// FALSE POSITIVES: legitimate SharePoint farm provisioning scripts run similar commands during setup/patching
// TUNING: exclude documented SharePoint farm provisioning windows where a real setup/service account is legitimately added; verify the account against your approved service-account naming convention
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| FileName = /^net1?\.exe$/i
| CommandLine = /localgroup/i
| CommandLine = /administrators/i
| CommandLine = /SPS\w*Setup|SP\w*PRDSetup/i
| table([@timestamp, aid, ComputerName, UserName, CommandLine])
Q8 · VS Code Insiders tunnel service install (process)
CONF HIGHFP MEDIUMCOST LOW

Looks for: code-insiders.exe tunnel service install. This is the single most distinctive persistence/C2 signal in this campaign. FP: medium — VS Code remote tunnels are a legitimate dev workflow in some organizations.

// HUNT: Visual Studio Code Insiders tunnel installed as a service
// MITRE: T1219, T1543.003
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on all hosts (ProcessRollup2) — prioritize SharePoint farm members and domain controllers
// FALSE POSITIVES: VS Code Remote Tunnels are a legitimate, sanctioned remote-dev workflow in some organizations
// TUNING: exclude hosts on your approved developer-workstation / sanctioned remote-dev-tunnel allowlist; the anomaly is this running on a server role (SharePoint, domain controller, file server), not the tool's mere presence on a developer endpoint
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| FileName = /^code-insiders\.exe$/i
| CommandLine = /tunnel/i
| CommandLine = /service/i
| CommandLine = /install/i
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine])
Q9 · VS Code Insiders running from a non-standard path
CONF HIGHFP LOWCOST LOW

Looks for: code-insiders.exe executing from outside its standard install locations (observed: \Windows\debug\). FP: low — legitimate installs are consistently under AppData\Local\Programs or Program Files.

// HUNT: code-insiders.exe executing from a non-standard install path
// MITRE: T1036, T1219
// CONF: high  FP: low  COST: low
// REQUIRES: Falcon sensor on all hosts (ProcessRollup2)
// FALSE POSITIVES: none routinely observed; legitimate installs are consistently under AppData\Local\Programs or Program Files
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| FileName = /^code-insiders\.exe$/i
| !ImageFileName = /AppData.Local.Programs|Program Files/i
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine])
Q10 · VS Code Insiders tunnel service creation (CreateService)
CONF HIGHFP MEDIUMCOST LOW

Looks for: the actual Windows service-creation event for the tunnel, independent of the install command line. FP: medium — same dual-use caveat as Q8.

// HUNT: Windows service created with a code-insiders.exe image path
// MITRE: T1543.003, T1219
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on all hosts (CreateService)
// FALSE POSITIVES: same dual-use caveat as Q8 — sanctioned dev-tunnel workflows on approved hosts
// TUNING: exclude hosts on the same approved developer-tunnel allowlist used for Q8; a service-level hit on a server role still warrants immediate escalation regardless of allowlist status
#event_simpleName = /CreateService/
| ServiceImagePath = /code-insiders/i
| table([@timestamp, aid, ComputerName, ServiceName, ServiceImagePath])
Q11 · NetExec execution for AD enumeration / credential spraying
CONF HIGHFP MEDIUMCOST LOW

Looks for: execution of nxc.exe (NetExec). FP: medium — some internal red/purple teams legitimately run this open-source tool.

// HUNT: NetExec (nxc.exe) execution
// MITRE: T1087.002, T1110.003, T1021.002
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on all hosts (ProcessRollup2)
// FALSE POSITIVES: internal red-team/purple-team exercises legitimately run NetExec
// TUNING: exclude your organization's authorized red-team/purple-team source hosts and scheduled assessment windows; NetExec/nxc.exe has no mainstream legitimate production use otherwise
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| FileName = /^nxc(\.exe)?$/i
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine])
Q12 · AV/EDR-killer staging and launch pattern
CONF MEDIUMFP HIGHCOST LOW

Looks for: the documented net use + copy + a.exe launch chain under cmd.exe. FP: high — a.exe is an extremely generic filename on its own.

// HUNT: net use + copy + a.exe launch chain (observed AV/EDR-killer staging)
// MITRE: T1562.001
// CONF: medium  FP: high  COST: low
// REQUIRES: Falcon sensor on all hosts (ProcessRollup2)
// FALSE POSITIVES: a.exe is an extremely generic filename; internal tooling may coincidentally share it
// TUNING: require the combined net use + copy + a.exe pattern (all three) before alerting, and cross-check the source UNC path against known internal software-distribution shares before escalating as the AV/EDR-killer stage
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName = /^cmd\.exe$/i
| CommandLine = /net use/i
| CommandLine = /copy/i
| CommandLine = /a\.exe/i
| table([@timestamp, aid, ComputerName, UserName, CommandLine])
Q13 · Vulnerable driver load matched by known-bad hash (BYOVD)
CONF HIGHFP LOWCOST LOW

Looks for: a kernel driver load matching the vulnerable-driver hash from the Symantec IOC list. FP: low — exact hash match. Detect only; never action as Prevent, this is a legitimate signed driver file.

// HUNT: Kernel driver load matching the vulnerable-driver hash (BYOVD)
// MITRE: T1068, T1562.001
// CONF: high  FP: low  COST: low
// REQUIRES: Falcon sensor on all hosts (DriverLoad)
// FALSE POSITIVES: none expected for an exact hash match
#event_simpleName = /DriverLoad/
| SHA256HashData = /^ae9f7fce57c7b928e659dccf0e00fa79cd9cd61a106f18d4e03f92dc3a03c295$/i
| table([@timestamp, aid, ComputerName, FileName, SHA256HashData])
Q14 · Vulnerable driver load matched by K7RKScan filename (BYOVD)
CONF MEDIUMFP MEDIUMCOST LOW

Looks for: any driver load named k7rkscan.sys (CVE-2025-1055), regardless of hash. FP: medium — hosts with a legitimately licensed K7 Computing security product will load this driver benignly. Detect only; this is a legitimate signed driver — never action as Prevent.

// HUNT: K7RKScan driver load by filename, any hash (BYOVD, CVE-2025-1055)
// MITRE: T1068, T1562.001
// CONF: medium  FP: medium  COST: low
// REQUIRES: Falcon sensor on all hosts (DriverLoad)
// FALSE POSITIVES: hosts with a legitimately licensed K7 Computing security product load this driver benignly
// TUNING: exclude hosts where K7 Computing's security product is legitimately licensed and deployed; correlate with the absence of a legitimate K7 installation before escalating
#event_simpleName = /DriverLoad/
| FileName = /^k7rkscan\.sys$/i
| table([@timestamp, aid, ComputerName, FileName, SHA256HashData])
Q15 · Warlock ransomware executed from SYSVOL staging path
CONF HIGHFP MEDIUMCOST LOW

Looks for: run.exe/rune.exe parented by dfsrs.exe (SYSVOL replication) or cmd.exe (local copy-and-launch). FP: medium — the filenames alone are generic.

// HUNT: run.exe/rune.exe executed via SYSVOL replication or copy-and-launch
// MITRE: T1072, T1486
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on all domain-joined hosts and domain controllers (ProcessRollup2)
// FALSE POSITIVES: run.exe/rune.exe are generic enough that unrelated internal software could share the name
// TUNING: require ImageFileName to contain a SYSVOL or public-profile staging path before treating as confirmed ransomware execution; treat any hit parented by dfsrs.exe as maximum priority regardless
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| FileName = /^(run|rune)\.exe$/i
| ParentBaseFileName = /^(dfsrs|cmd)\.exe$/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, CommandLine])
Q16 · Mass file-touch pattern consistent with ransomware encryption
CONF HIGHFP LOWCOST MEDIUM

Looks for: a host-level spike in Falcon's native ransomware-behavior file-open telemetry. FP: low — the native detector is already tuned for encryption-pattern access.

// HUNT: Mass file-open pattern via Falcon's native ransomware behavior event
// MITRE: T1486
// CONF: high  FP: low  COST: medium
// REQUIRES: Falcon sensor on all hosts (RansomwareOpenFile)
// FALSE POSITIVES: none routinely observed; this is Falcon's purpose-built ransomware-behavior event
#event_simpleName = /RansomwareOpenFile/
| groupBy([aid, ComputerName], function=count(as=FilesTouched), limit=1000)
| FilesTouched > 100
| table([aid, ComputerName, FilesTouched])
Q17 · Broad LOLBin spawn from SharePoint worker process (canary)
CONF HIGHFP MEDIUMCOST LOW

Looks for: any command interpreter or scripting LOLBin spawned by w3wp.exe, independent of the specific commands observed in this intrusion. FP: medium — SharePoint timer jobs occasionally spawn PowerShell/cmd for maintenance.

// HUNT: Command interpreter / scripting LOLBin spawned by w3wp.exe
// MITRE: T1190, T1059.001, T1218
// CONF: high  FP: medium  COST: low
// REQUIRES: Falcon sensor on SharePoint front-end/app servers (ProcessRollup2)
// FALSE POSITIVES: SharePoint timer-job/OWSTIMER maintenance scripts (farm backup, PSConfig, Update-SPSolution) can legitimately spawn from the worker process
// TUNING: exclude known SharePoint timer-job/OWSTIMER service-account command lines and scheduled maintenance scripts; baseline 7 days before promoting to a high-severity IOA
#event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName = /^w3wp\.exe$/i
| FileName = /^(cmd|powershell|powershell_ise|cscript|wscript|mshta)\.exe$/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
09

CrowdStrike Custom IOA Recommendations

All IOA candidates below are recommended at Detect only. None of this pack's behavioral patterns or pure-malware hashes clear the two-independent-source bar this pack requires for Prevent/Critical, and the driver/VS Code/NetExec binaries are legitimate or dual-use and are never actioned as Prevent regardless of sourcing.

IOA-1 · SharePoint LAYOUTS Webshell Write

Pattern: Q1 (PowerShell/w3wp.exe WriteAllBytes to a layouts path + .aspx). Exclusions: legitimate .wsp solution deployment via stsadm/Install-SPSolution. Deployment: enable in Detect across all SharePoint farm members; route to the highest-priority queue given this is the initial-access artifact.

IOA-2 · VS Code Insiders Tunnel Service (process + CreateService)

Pattern: Q8/Q9/Q10. Exclusions: approved developer-workstation allowlist. Deployment: Detect, fleet-wide, excluding the allowlist; tag campaign:Warlock-Longlegs. This is the most distinctive signal in the campaign and should route to a dedicated high-priority alert, not a general queue.

IOA-3 · K7RKScan-class Vulnerable Driver Load

Pattern: Q13 (hash) and Q14 (filename). Exclusions: hosts with a legitimately licensed K7 Computing product. Deployment: Detect, fleet-wide; route to P1 given BYOVD preceded mass ransomware deployment by roughly two hours in the documented intrusion.

IOA-4 · SYSVOL-Staged Ransomware Execution

Pattern: Q15. Exclusions: none known — SYSVOL is not a normal execution path for arbitrary binaries. Deployment: Detect-first for 7 days, then evaluate promoting toward Prevent for the specific confirmed Warlock SHA256 hashes only (never the generic filename pattern), noting the hash list remains single-sourced per Section 4.

IOA-5 · Broad SharePoint-Worker LOLBin Canary

Pattern: Q17. Exclusions: documented SharePoint timer-job/maintenance scripts. Deployment: Audit/Detect after a 7-day baseline; this is a volume canary, not a precision alert, and should feed a hunting queue rather than paging on its own.

10

Machine-Readable IOC Appendix

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
sha256,116ca4e88a1bcebb6c0da7fb431c8eca7b8ef3f9767194820c56091972ccac2c,detect,high,2027-04-03,Warlock ransomware payload,campaign:Warlock-Longlegs
sha256,155fb1cbdaea12c83ba92d18c88cf38bbc42bb684f913ca0bc26fcf115426a55,detect,high,2027-04-03,Warlock ransomware payload,campaign:Warlock-Longlegs
sha256,6d07f1232dc59b84038fd0b2e75fdd3d5b825882bb0dba9e6724b7b0823fa3ad,detect,high,2027-04-03,Warlock ransomware payload,campaign:Warlock-Longlegs
sha256,8b58f7811a2a2f2a5024220490473774f02759dd2dd904b5b9fabfbaae37125f,detect,high,2027-04-03,Warlock ransomware payload,campaign:Warlock-Longlegs
sha256,8ce8d8270ee9de02644530b8dd7fa78973b4a3b80f121e2c5f45ae68cce196f9,detect,high,2027-04-03,Warlock ransomware payload,campaign:Warlock-Longlegs
sha256,1edb2c0b537cd95bbd5fc16321b4c38a6adf325ccc7b588ad6acc980b0463b60,detect,high,2027-04-03,Malicious side-loaded DLL,campaign:Warlock-Longlegs
sha256,206f27ae820783b7755bca89f83a0fe096dbb510018dd65b63fc80bd20c03261,detect,high,2027-04-03,Malicious side-loaded DLL,campaign:Warlock-Longlegs
sha256,27b7591cf9e1283010ca98fa5dbe970a73fee0d8cde277639924c144718db7c0,detect,high,2027-04-03,Malicious side-loaded DLL,campaign:Warlock-Longlegs
sha256,c46825fcc0d1bf7a8b192facb176d6bf916c9dccfd6fa994be691e3b0e585f4e,detect,high,2027-04-03,Malicious side-loaded DLL,campaign:Warlock-Longlegs
sha256,e14240bac8277b0f6dd4d29ab5da20d246bcccae647e5fe8d19cdae7fe471b20,detect,high,2027-04-03,Malicious side-loaded DLL,campaign:Warlock-Longlegs
sha256,fb3846c9ac53d1b841ada3a6b1091153fea41a169cb44fe0084097d1f4d45984,detect,high,2027-04-03,Malicious side-loaded DLL,campaign:Warlock-Longlegs
sha256,73c5268256c9da5488cd9e2b79013060ac321c7e54129344dc7b51e268af36ea,detect,high,2027-04-03,AV/EDR-killer tool,campaign:Warlock-Longlegs
sha256,ae9f7fce57c7b928e659dccf0e00fa79cd9cd61a106f18d4e03f92dc3a03c295,detect,high,2027-04-03,Vulnerable signed driver abused for BYOVD; detect only never prevent,campaign:Warlock-Longlegs
domain,litter.catbox.moe,detect,high,2027-04-03,Payload staging host,campaign:Warlock-Longlegs
domain,xn8xyt-drop.s3.wasabisys.com,detect,high,2027-04-03,Payload staging host,campaign:Warlock-Longlegs
Behavioral Signaturespivot patterns
PowerShell WriteAllBytes writing *.aspx under a "...\layouts\" path (any SharePoint version segment)
CommandLine containing "System.Workflow.ComponentModel" loaded by a SharePoint-worker-process child
msiexec.exe pulling a package from catbox.moe or wasabisys.com
Side-load pairs: ssvagent.exe / doexe.exe / logger.exe with doexeloc.dll / gsdll64.dll
net localgroup administrators <SPS-prefixed setup account> /add
code-insiders.exe "tunnel service install --accept-server-license-terms"
nxc.exe (NetExec) execution outside an authorized red-team host
net use + copy from an internal \av\ share, followed by launch of a.exe
run.exe / rune.exe staged under \SYSVOL\<domain>\scripts\run\, ransom note "how to restore your files.txt"
DNS queries to a per-target *.oastify.com subdomain (target-domain-plus-random-token pattern)
Named Malware / Toolingcontext
Warlock (ransomware payload)
Longlegs / Storm-2603 (operator; older clusters: CL-CRI-1040, CamoFei, ChamelGang)
K7RKScan vulnerable signed driver, CVE-2025-1055 (BYOVD; legitimate product, detect only)
code-insiders.exe (Visual Studio Code Insiders, tunnel-as-service abuse; legitimate Microsoft binary, detect only)
NetExec / nxc.exe (open-source AD enumeration / credential-spraying tool; dual-use)
SPSEPRDSetup (observed masquerading local-admin account name; rename pattern, not a fixed IOC)
oastify.com (Burp Suite Collaborator OOB infrastructure; legitimate, dual-use)
Patch / Driver-Blocklist / Admin-Group Auditverification one-liners
# SharePoint farm build/patch level
Get-SPFarm | Select-Object BuildVersion

# HVCI / Vulnerable Driver Blocklist enforcement status
Get-CimInstance -ClassName Win32_DeviceGuard | Select-Object VirtualizationBasedSecurityStatus, CodeIntegrityPolicyEnforcementStatus

# Local Administrators membership drift
Get-LocalGroupMember -Group "Administrators"

# Rogue VS Code Insiders tunnel service present
Get-Service | Where-Object { $_.BinaryPathName -match "code-insiders" }
11

Detection Validation Gates

  • Telemetry ready: confirm Falcon sensor coverage and ingestion of ProcessRollup2, PeFileWritten/NewExecutableWritten, DriverLoad, CreateService, DnsRequest, and RansomwareOpenFile for every SharePoint farm member and domain controller before enabling any query as an alerting IOA.
  • Benign baseline: run every query over the last 30–90 days before enabling. Expect zero or near-zero hits for Q1, Q2, Q8, Q9, Q10, Q13, Q15, Q16; expect some low-volume noise for Q3, Q5, Q6, Q7, Q11, Q12, Q14, Q17 that the stated // TUNING: line must resolve.
  • Positive tests: validate detection logic against a lab replay of the documented command lines (e.g. a test PowerShell WriteAllBytes to a non-production LAYOUTS path, a test code-insiders.exe tunnel-service install on an isolated host) before trusting any query in production.
  • Promotion criteria: 14 days of clean baseline and zero unresolved false-positive tickets before any IOA moves from Investigate-only to Custom IOA Detect. No query in this pack is promoted to Prevent per Section 9 and Section 4's sourcing policy.
12

Hardening — Tiered & Deployable

Immediate (this week)

1. Patch on-prem SharePoint Server against the ToolShell CVEs (CVE-2025-49704, CVE-2025-49706, CVE-2025-53770, CVE-2025-53771) and the July 2026 CISA-flagged SharePoint flaws. MITRE: M1051 (Update Software). Authority: Microsoft Security Update Guide + CISA KEV remediation guidance. Verify: Get-SPFarm | Select-Object BuildVersion against the vendor-fixed baseline.

2. Rotate the SharePoint farm's ASP.NET machine keys (validationKey/decryptionKey) across every web.config, after patching (rotating before patching lets a still-open hole harvest the new key again). MITRE: M1041 (Encrypt Sensitive Information). Authority: Microsoft's official SharePoint Server machine-key rotation guidance. Verify: confirm the key-change timestamp post-patch and re-run Q2 to confirm no further deserialization-gadget loads.

3. Confirm the Microsoft Vulnerable Driver Blocklist / HVCI is enforced fleet-wide and add K7RKScan (CVE-2025-1055) to an explicit WDAC deny policy where HVCI cannot be enabled. MITRE: M1045 (Code Signing). Authority: Microsoft Learn "Microsoft recommended driver block rules" / "Manage the Microsoft Vulnerable Driver Blocklist". Verify: Get-CimInstance Win32_DeviceGuard.

4. Verify EDR/Falcon sensor tamper protection is enabled so the AV/EDR-killer stage cannot succeed even if BYOVD executes. MITRE: M1040 (Behavior Prevention on Endpoint). Authority: CrowdStrike Falcon sensor tamper-protection documentation + CIS Microsoft Windows Benchmark (protect security agents). Verify: sensor policy audit confirming tamper protection is on for all SharePoint/DC hosts.

Near Term (1–4 weeks, pilot first)

5. File-integrity-monitor the SharePoint LAYOUTS (and other web-application) directories so an unsigned .aspx dropped via deserialization is flagged immediately. MITRE: M1038 (Execution Prevention). Authority: DISA Microsoft SharePoint Server STIG (web-application directory integrity) + CIS Microsoft IIS/Windows Server Benchmark. Verify: FIM alert fires on a test write to the LAYOUTS path.

6. Lock down local Administrators group membership via LAPS + Restricted Groups to close the SPSEPRDSetup-style masquerade path. MITRE: M1026 (Privileged Account Management). Authority: Microsoft Security Baseline for Windows Server + CIS Benchmark (Restricted Groups). Verify: Get-LocalGroupMember Administrators drift report against the approved baseline.

7. Restrict VS Code remote tunneling to an explicit allowlist of developer hosts, denying it on server roles (SharePoint, domain controllers, file servers). MITRE: M1042 (Disable or Remove Feature or Program). Authority: CIS Microsoft Windows Server Benchmark (attack surface reduction) + Microsoft Security Baseline application-control guidance. Verify: WDAC/AppLocker audit-mode log review for code-insiders.exe on server-role hosts.

8. Deploy ASR rules / WDAC policy to flag unauthorized pentest-class tooling such as NetExec on non-authorized hosts. MITRE: M1038 (Execution Prevention). Authority: Microsoft ASR rule reference + CIS Benchmark. Verify: ASR audit-mode event review (Event ID 1121/1122).

Strategic (1–3 months)

9. Reduce SharePoint's internet-facing exposure: migrate to SharePoint Online where feasible, or front remaining on-prem farms with a hardened WAF/reverse-proxy profile tuned for deserialization/ToolShell-class payloads, and formalize a recurring machine-key rotation cadence. MITRE: M1051 + M1030 (Network Segmentation). Authority: Microsoft SharePoint Server hardening/architecture guidance + DISA Enclave/Network STIG. Verify: periodic external attack-surface scan confirming SharePoint is not directly internet-exposed without a WAF.

10. Implement tiered administration (Tier 0/1/2) and Credential Guard/LSA protection so a single compromised farm member cannot cascade into a domain-wide SYSVOL-staged ransomware event. MITRE: M1026 + M1043 (Credential Access Protection). Authority: Microsoft Enterprise Access Model + CIS Benchmark Credential Guard/LSA protection controls. Verify: Get-ComputerInfo DeviceGuard status plus a tier-boundary access review.

13

Deployable Playbooks

Playbook A · SharePoint ASP.NET Machine Key Rotation

1. Inventory current machineKey values across every web.config in the farm.
   Prerequisites: farm admin rights; maintenance window scheduled.
   Reboot required: no.
   Rollback: keep a secured backup of the pre-rotation web.config files; restore them to revert.

2. Patch SharePoint to the vendor-fixed build for the ToolShell CVEs and the July 2026 flaws
   BEFORE rotating keys, so a freshly-rotated key cannot be re-harvested through the same hole.
   Prerequisites: patch validated in a staging farm; full farm backup taken.
   Reboot required: yes (CU install restarts IIS/SharePoint services; some CUs require a server reboot).
   Rollback: restore from the pre-patch farm backup/snapshot if the CU breaks farm functionality.

3. Generate new validationKey/decryptionKey values with a cryptographically random generator
   and apply via Central Administration > Manage Web Applications > Authentication (or web.config directly).
   Prerequisites: step 2 complete; change-control approval obtained.
   Reboot required: no, but an IIS reset / app-pool recycle is required on every WFE immediately after.
   Rollback: reapply the backed-up web.config from step 1 and recycle app pools again.

4. Recycle every application pool farm-wide to force re-authentication and invalidate any
   outstanding __VIEWSTATE tied to the old key.
   Prerequisites: steps 1-3 complete; user communication sent (active sessions will drop).
   Reboot required: no.
   Rollback: none required; an app-pool recycle is non-destructive and is the expected end state.

5. Verify: re-run Q2 to confirm no further System.Workflow.ComponentModel loads, and confirm
   Get-SPFarm BuildVersion matches the patched baseline.

Playbook B · Vulnerable Driver Blocklist / HVCI Enforcement

1. Audit current HVCI and Microsoft Vulnerable Driver Blocklist state fleet-wide.
   Prerequisites: read access to the Device Guard WMI class; pilot ring identified.
   Reboot required: no (read-only audit).
   Rollback: none required; read-only step.

2. Enable the Vulnerable Driver Blocklist / HVCI, or merge K7RKScan (CVE-2025-1055) into an
   explicit WDAC deny policy for builds where HVCI cannot be enabled.
   Prerequisites: pilot ring validated 1-2 weeks; signed WDAC policy infrastructure in place.
   Reboot required: yes, enabling HVCI requires a reboot to take effect.
   Rollback: disable HVCI via the same policy setting and reboot again; keep the prior
   WDAC policy file archived for rapid rollback.

3. Deploy to the pilot ring; monitor for driver-load failures on legitimate signed drivers
   for 7-14 days.
   Prerequisites: step 2 piloted; alerting on driver-load failures in place.
   Reboot required: yes, per device as it receives the policy.
   Rollback: revert to the previous HVCI/WDAC policy version and reboot affected devices.

4. Roll out fleet-wide in waves, prioritizing SharePoint farm members and domain controllers.
   Prerequisites: pilot clean for 14 days.
   Reboot required: yes, per wave.
   Rollback: same as step 3, per-wave policy rollback and reboot.

Playbook C · Block Unauthorized code-insiders.exe Tunnel-as-a-Service

1. Inventory hosts where VS Code Insiders tunneling is an approved, documented remote-dev
   workflow; everything else is out of policy.
   Prerequisites: application-owner sign-off on the allowlist.
   Reboot required: no.
   Rollback: none required; documentation/inventory step.

2. Create a WDAC or AppLocker deny rule blocking code-insiders.exe execution and service
   creation outside the allowlisted host group.
   Prerequisites: step 1 allowlist finalized; AppLocker/WDAC already in audit mode fleet-wide.
   Reboot required: no (gpupdate/policy refresh is sufficient).
   Rollback: remove or disable the deny rule and run gpupdate /force to restore prior behavior.

3. Deploy in Audit mode fleet-wide for 7 days, review the audit log for unexpected
   legitimate hits, then flip to Enforce.
   Prerequisites: step 2 rule authored; SIEM/Falcon ingesting AppLocker/WDAC audit events.
   Reboot required: no.
   Rollback: flip the policy back to Audit mode (or disabled) and run gpupdate /force;
   no device-state change to undo.

Playbook D · Restricted Groups Lockdown for Local Administrators

1. Baseline current local Administrators membership fleet-wide; flag any account matching
   the SPS*/SP*Setup masquerade naming pattern or not on the documented approved list.
   Prerequisites: read access to local group membership (Falcon RTR, GPO reporting, or LAPS).
   Reboot required: no.
   Rollback: none required; read-only baseline.

2. Configure a Restricted Groups GPO enforcing the approved membership list, scoped first
   to the SharePoint farm and Tier 0/1 OU.
   Prerequisites: step 1 baseline reviewed and approved; GPO tested in a lab OU.
   Reboot required: no, a policy refresh (gpupdate /force) applies it.
   Rollback: unlink or disable the GPO and run gpupdate /force. Note: already-removed
   accounts are not automatically restored; re-add manually if a removal was a false positive.

3. Expand the GPO scope fleet-wide once validated on the pilot OU for 7-14 days with no
   unexpected removals.
   Prerequisites: step 2 clean on pilot.
   Reboot required: no.
   Rollback: scope the GPO link back down or disable it, same as step 2.
14

Containment Runbook

PhaseActionsOwnerEvidence
1. Detect & TriageConfirm scope via Q1/Q2/Q13/Q15/Q16 hits; identify every host with webshell, driver-load, or ransomware-execution indicators; stand up an incident bridgeSOC / IR leadDetection timeline export, affected-host list
2. IsolateNetwork-contain every host with a confirmed Warlock/DLL/AV-EDR-killer hash hit or a code-insiders tunnel service; disable the SPSEPRDSetup-pattern account(s) and any account touched by NetExec; disable the farm's external-facing endpoint at the firewall/WAF if exploitation is still activeIR + network/firewall teamContainment action log, firewall change ticket
3. EradicateRemove the LAYOUTS webshell(s) from every SharePoint version directory farm-wide; rotate ASP.NET machine keys (Playbook A); remove/quarantine the vulnerable driver file and any out-of-policy code-insiders tunnel service; reset credentials for accounts observed in NetExec-driven activity; remove Warlock/DLL/AV-EDR-killer binaries from diskIR + SharePoint/AD adminsRemoval/rotation change tickets, pre/post BuildVersion and key-rotation timestamp
4. RecoverPatch SharePoint to the vendor-fixed build; restore encrypted hosts from backups verified to predate the webshell-drop timestamp; bring hosts back from containment in stages, re-running Q1/Q2/Q13/Q15/Q16 against each before full restoration of accessIR + backup/recovery teamRestore validation report, clean re-scan results
5. Post-IncidentHunt retrospectively across the full environment for every IOC/TTP in this pack over maximum available telemetry retention; confirm all 17 queries produce zero further hits for 14 days; update the detection baseline and close the incidentThreat hunting teamRetrospective hunt report, 14-day clean-baseline confirmation
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1190SharePoint ToolShell + 2026 CVE exploitationQ1, Q2, Q17IOA-1Good
T1505.003LAYOUTS .aspx webshell dropQ1IOA-1Good
T1552.001ASP.NET machine-key theft——Gap — no Falcon process telemetry for web.config secret reads; covered only by IIS/ULS review (Section 7)
T1059.001 / forged VIEWSTATEDeserialization RCE using a forged signed payloadQ2 (indirect)—Partial — detects the gadget load, not the forgery itself
T1105MSI payloads from catbox.moe/wasabisys.comQ3—Good
T1574.002DLL side-loading pairsQ4—Good
T1087.002 / T1482Domain account/trust discoveryQ5—Good
T1071.004oastify.com OOB canaryQ6—Partial — dual-use infrastructure caps confidence
T1098.007Masquerading setup account to local AdministratorsQ7—Good
T1219 / T1543.003VS Code Insiders tunnel install + serviceQ8, Q9, Q10IOA-2Good
T1087.002 / T1110.003 / T1021.002NetExec enumeration/cred-spray/remote execQ11—Good
T1562.001AV/EDR-killer launch patternQ12—Partial — generic filename caps confidence
T1068 / T1562.001 (BYOVD)K7RKScan-class vulnerable driver loadQ13, Q14IOA-3Good
T1072SYSVOL/DFSR-based domain-wide payload pushQ15IOA-4Good
T1486Warlock execution + ransom noteQ15, Q16IOA-4Good
T1070.004Staging-artifact cleanup (e.g. doexeloc.dll deletion)——Gap — generic file-delete telemetry is too noisy for a dedicated query at this time

Validation gates for every query above are detailed in Section 11; no query ships without a stated benign-baseline and promotion path.

16

Hunt Summary Ticket

TITLE:      Warlock Ransomware / Longlegs (Storm-2603) SharePoint-to-SYSVOL Campaign
SEVERITY:   Critical (Active RaaS, exploited in the wild)
SCOPE:      On-prem SharePoint Server farms; Active Directory (SYSVOL/DFSR); domain-joined
            endpoint fleet. No specific victim organization in scope for this pack.
HYPOTHESIS: Longlegs exploits on-prem SharePoint (ToolShell + 2026 CVEs) to drop a LAYOUTS
            webshell, steals ASP.NET machine keys to forge a signed __VIEWSTATE RCE, pivots
            via LOTL recon, DLL side-loading, a masquerading admin account, NetExec, and a
            VS Code Insiders tunnel, then uses a vulnerable signed driver (BYOVD) to disable
            security tooling immediately before staging Warlock ransomware through SYSVOL.
QUERIES:    17 CQL hunt queries (Q1-Q17); 5 Custom IOA candidates (IOA-1..IOA-5), all Detect.
DO FIRST:   Run Q8/Q9/Q10 (VS Code Insiders tunnel) and Q13/Q14 (vulnerable driver load)
            fleet-wide; both precede mass ransomware deployment by roughly two hours in the
            documented intrusion.
FINDINGS:   Pending tenant run. Pack ships as a proactive hunt/detection baseline, not a
            confirmed-incident report.
GAPS:       T1552.001 (machine-key theft) and T1070.004 (staging-artifact cleanup) have no
            dedicated Falcon-native query; both require IIS/ULS log review or FIM (Section 7).
ACTIONS:    Patch SharePoint (ToolShell + July 2026 CVEs); rotate machine keys post-patch;
            enforce the Vulnerable Driver Blocklist/HVCI; restrict VS Code tunneling to an
            allowlist; lock down local Administrators membership.
OWNER:      HuntPack
VERSION:    v0.1 (Draft) - 2026-10-03
17

Changelog

v0.12026-10-03Initial release. Built from Symantec/Carbon Black Threat Hunter Team reporting (security.com, 1–2 Oct 2026), corroborated by BleepingComputer and The Record. 17 CQL queries, 5 Custom IOA candidates, 16-row ATT&CK mapping, tiered hardening with 4 deployable playbooks, and a 5-phase containment runbook.
18

References

TierSourceUsed ForAccess Date
1Symantec / Carbon Black Threat Hunter Team — "Warlock Ransomware Attackers Hit Water and Telecom Operators"Primary attack chain, timeline, actor attribution, CVE list, BYOVD driver detail, full IOC list2026-10-03
2BleepingComputer — "Warlock ransomware breach SharePoint in water, telecom operator attacks"Corroboration; Microsoft's prior Storm-2603/Linen Typhoon/Violet Typhoon attribution context2026-10-03
2The Record / Recorded Future News — "'Warlock' ransomware used in attacks on critical infrastructure in Portuguese, Spanish-speaking countries"Corroboration; CISA July 2026 SharePoint advisory context; historical Microsoft attribution2026-10-03
3Rankiteo blog (secondary aggregation, citing cyberpress.org)Corroborates hash list and timeline already present in the primary source; not used as an independent fact source2026-10-03
—Industrial Cyber — industrialcyber.coNot cited. Returned a Cloudflare bot-detection interstitial (HTTP 403); no article content was accessedAttempted 2026-10-03
—cyberpress.org — cyberpress.orgNot cited. Returned a Cloudflare bot-detection interstitial (HTTP 403); no article content was accessedAttempted 2026-10-03