MediumCVE-2025-53770CVE-2025-53771CVE-2025-6264 4 Hunt LeadsIOCsRemote AttackerStorm-2603WarlockKaspersky Securelist

Storm-2603 Hid a SharePoint Webshell in Memory, Then Reached for Warlock

Kaspersky details a December ToolShell intrusion it ties to Storm-2603: a webshell living only inside w3wp.exe, Velociraptor and four tunnels for backup access, a BYOVD EDR killer and a blocked Warlock ransomware launch.

A ransomware crew got into a SharePoint server on Christmas Eve and ran its control layer entirely from memory, with no webshell file anywhere on disk. Kaspersky says the December intrusion matches Storm-2603, the group Microsoft tied to Warlock and LockBit ransomware after last year’s ToolShell SharePoint attacks. The attackers probed the server on Dec. 20, waited three days, then went in, installed backup remote-access tools, tried to kill security software and finally launched Warlock, which was blocked.

For defenders

Way in: ToolShell, CVE-2025-53770 and CVE-2025-53771 in on-premises SharePoint, abused through the ToolPane endpoint (T1190 (Exploit Public-Facing Application)). The Dec. 20 probe matched the ONYPHE scanning service’s ToolShell check; about 12 minutes later an address at bulletproof host Pfcloud UG connected. The Dec. 24 exploit came from a Safing Privacy Network (SPN) relay, an anonymity network that often slips past Tor blocklists.

The implant: a modular C# webshell loaded straight into the IIS worker process, w3wp.exe (T1620 (Reflective Code Loading), T1505.003 (Server Software Component: Web Shell)). It registers a hidden ASP.NET VirtualPathProvider, wakes only for one User-Agent, and tunnels attacker traffic into the internal network with the suo5 proxy (T1572 (Protocol Tunneling)). It escalates to SYSTEM with an EfsPotato-style named-pipe trick (T1134.001 (Access Token Manipulation: Token Impersonation/Theft)). Recycling the app pool wipes it.

After that: w3wp.exe ran msiexec to install Velociraptor 0.73.4.0 (vulnerable to CVE-2025-6264) from Supabase storage (T1218.007 (System Binary Proxy Execution: Msiexec)), then used it to add Zoho Assist, VS Code tunnels, Cloudflare Tunnel and a reverse proxy (T1219 (Remote Access Tools)). It dropped the vulnerable driver C:\programdata\rsndispot.sys plus Warlock’s sideloaded AV-killer DLL (T1687 (Exploitation for Defense Impairment)). Kaspersky attributes it to Storm-2603 with moderate confidence and has published two detection helpers: CLRDeserializationExploitFinder and a VirtualPathProvider lab.

Network
hxxps://vdfccjpnedujhrzscjtq[.]supabase[.]co/storage/v1/object/public/image/v4[.]msi (Velociraptor MSI)
hxxps://auth[.]qgtxtebl[.]workers[.]dev/ (Velociraptor server)
hxxps://files[.]catbox[.]moe/8f7vex[.]msi (Zoho Assist agent)
91.224.92[.]121 (C2, bulletproof hosting)
204.76.203[.]219 (C2, bulletproof hosting)

Host
C:\programdata\rsndispot.sys MD5 054a32d6033b1744dca7f49b2e466ea2 (vulnerable driver)
Warlock AV-killer DLL MD5 2d9ebf9c042f596f435865b40edad928
vskp2 webshell implant MD5 fd91321bf7ff7245dda9b7b5d791ace8
C:\ProgramFiles\Velociraptor\Velociraptor.exe MD5 3a55d8f8f29716c694671834d8c6cb29
C:\ProgramFiles(x86)\ZohoMeeting\UnAttended\ZohoMeeting.7z MD5 a930f81e3fb0a226ec5904d9043a17b8

Left out of the box: Kaspersky’s two SPN relay addresses (shared anonymity-network nodes) and 199.232.210[.]172, listed as a “C2 traffic relay” but in a shared CDN range; both are covered as context in the Hunt Lead report.

What it means for you

This matters if your organization still runs its own SharePoint server rather than Microsoft’s cloud version. The patch for these bugs has been out since July 2025, and the attackers here needed only one unpatched, internet-facing server. Because nothing was written to disk at first, a basic file scan would have found nothing; the alarm came from security software that blocked the final ransomware step.

Do this now

  1. Make sure on-premises SharePoint has Microsoft’s ToolShell fixes, and keep it off the open internet if you can.
  2. If it was exposed and unpatched at any point, rotate the SharePoint ASP.NET machine keys and treat the server as compromised until checked.
  3. Look for remote-access tools nobody approved on your servers (Velociraptor, Zoho Assist, VS Code tunnels, Cloudflare Tunnel) and remove them.
  4. Turn on Microsoft’s vulnerable driver blocklist and tamper protection in your endpoint security.

Source article: The SOC Files 5: Ghost in the pipeline, or a fileless SharePoint breach by Storm-2603 (published as “How to detect fileless attacks exploiting ToolShell: analyzing the Storm-2603 incident”)
Publisher: Kaspersky Securelist (Alexander Rodchenko, Rodrigo Wanderson)
Published: Nov. 5, 2026
URL: https://securelist.com/storm-2603-fileless-toolshell-attack/121467/

Executive Summary

Kaspersky attributes, with moderate confidence, a December intrusion into an on-premises Microsoft SharePoint server to Storm-2603, the Microsoft-designated actor that deployed Warlock and LockBit ransomware after exploiting the ToolShell vulnerabilities (CVE-2025-53770 and CVE-2025-53771) in 2025 and that other reporting places behind perimeter mail-gateway exploitation followed by Velociraptor staging; Microsoft tracks it as a standalone actor with no known links to other groups. On Dec. 20 a single request matching the ONYPHE scanning service’s ToolShell check hit the ToolPane endpoint, followed about 12 minutes later by a connection from bulletproof host Pfcloud UG; after three quiet days, on Dec. 24 a crafted request from a Safing Privacy Network relay (45.91.94[.]204) ran the full deserialization chain inside w3wp.exe and loaded a modular C# webshell (vskp2) entirely into memory. The implant registers a custom VirtualPathProvider through non-public ASP.NET methods, subverts BuildManager state so it works in precompiled applications, wakes only for a specific User-Agent, tunnels TCP into the internal network with the suo5 proxy over XOR-obfuscated HTTP, downloads files to ProgramData, enumerates users, processes and network data, creates accounts through samlib.dll, and elevates to SYSTEM via an EfsPotato-derived EFSRPC named-pipe impersonation. Post-exploitation, w3wp.exe launched msiexec to install Velociraptor 0.73.4.0 (vulnerable to CVE-2025-6264) from Supabase storage, which then deployed Zoho Assist unattended access, VS Code CLI tunnels, Cloudflare Tunnel and a reverse proxy; the actor uploaded the vulnerable driver rsndispot.sys and a sideloaded Warlock AV-killer DLL, then tried to run Warlock ransomware, which endpoint protection blocked. The objective was ransomware deployment and extortion, with durable multi-channel access as the means. Hunt leads, false positive expectations and indicators are detailed below; the article links a Russian-language detection paper with YARA examples, but publishes no rule text itself, so none is reproduced.

ATT&CK chain: Reconnaissance → Initial Access → Execution → Persistence → Privilege Escalation → Defense Evasion → Command and Control → Impact

Hunt Lead Grid

Hunt Lead Level Hunt Lead Name ATT&CK Risk of False Positives
1 (Junior) Storm-2603 Infrastructure and Tooling Sweep T1105 (Ingress Tool Transfer), T1219 (Remote Access Tools) Low. The Supabase and workers.dev subdomains, the catbox file path, the two bulletproof-hosted IPs and the driver and implant hashes are campaign-specific; the VS Code and cloudflared hashes are legitimate software, so those count only on a server where nobody installed them.
2 (Pro) ToolPane Request Followed by Generated Serializer Assembly T1190 (Exploit Public-Facing Application) Medium. App_Web_* and Microsoft.GeneratedCode assemblies load during normal ASP.NET compilation and XmlSerializer use; the rule anchors on a ToolPane request followed within seconds by Microsoft.GeneratedCode loading in the same application domain.
2 (Pro) IIS Worker Launches msiexec or a SYSTEM Child T1218.007 (System Binary Proxy Execution: Msiexec), T1134.001 (Access Token Manipulation: Token Impersonation/Theft) Low. A SharePoint worker process has no business installing MSI packages from the internet or spawning SYSTEM processes; the rare legitimate case is a scripted farm update, which runs from an admin session, not w3wp.exe.
3 (Elite) Virtual Path With No File Behind It T1505.003 (Server Software Component: Web Shell), T1620 (Reflective Code Loading) Medium. Some products register VirtualPathProviders legitimately; the lead needs an inventory of known providers and anchors on IIS configuration events for a path with no matching file and no file-change monitoring chain.

Storm-2603 Infrastructure and Tooling Sweep

After the in-memory webshell was running, the IIS worker process installed Velociraptor from hxxps://vdfccjpnedujhrzscjtq[.]supabase[.]co/storage/v1/object/public/image/v4[.]msi to C:\ProgramFiles\Velociraptor\Velociraptor.exe and pointed it at the server URL hxxps://auth[.]qgtxtebl[.]workers[.]dev/. Velociraptor then pulled a Zoho Assist unattended agent from hxxps://files[.]catbox[.]moe/8f7vex[.]msi (staged as C:\ProgramFiles(x86)\ZohoMeeting\UnAttended\ZohoMeeting.7z and unpacked with a renamed 7z.exe used for sideloading), VS Code and VS Code Insiders for CLI tunnels, and cloudflared for a Cloudflare Tunnel. Kaspersky lists 91.224.92[.]121 and 204.76.203[.]219 as bulletproof-hosted C2 servers, and C:\programdata\rsndispot.sys as the vulnerable driver dropped for EDR killing. The detection logic is a retrospective sweep of proxy, DNS and firewall logs for the three attacker URLs (match the full subdomain or path, not supabase.co, workers.dev or catbox.moe as a whole) and the two C2 IPs, plus a file and process sweep for the MD5s in the Hash Appendix and for Velociraptor, Zoho Assist, code tunnel and cloudflared on SharePoint and other IIS servers.

Use web proxy and DNS resolver logs, firewall logs and EDR file and process inventory. Sweep back at least to December 2025, since the intrusion began on Dec. 20 and the Velociraptor and tunnel channels were built to outlive the webshell. Scope to SharePoint servers first, then every server reachable from them. Kaspersky also lists two Safing Privacy Network relays (45.91.94[.]204, which delivered the exploit, and 49.51.132[.]100) and 199.232.210[.]172 as a C2 traffic relay; the SPN addresses are shared anonymity nodes and 199.232.210[.]172 sits in a shared CDN range, so treat hits as context to correlate with other evidence, never as standalone blocks. Do not hash-block the VS Code, VS Code Insiders or cloudflared binaries, which are legitimate and needed by developers; detect them on servers where they were never deployed instead. Any match on the attacker URLs, C2 IPs, implant or driver hash is a confirmed intrusion and goes straight to incident response.

Hunt Lead Level: 1 (Junior Analyst)

ATT&CK: Command and Control → T1105 (Ingress Tool Transfer); Command and Control → T1219 (Remote Access Tools) (our mapping; the source gives no ATT&CK IDs for these steps)

Sources: “How to detect fileless attacks exploiting ToolShell: analyzing the Storm-2603 incident”, Kaspersky Securelist, Nov. 5, 2026, https://securelist.com/storm-2603-fileless-toolshell-attack/121467/ (source article)

ToolPane Request Followed by Generated Serializer Assembly

Both the Dec. 20 probe and the Dec. 24 exploit targeted the SharePoint administrative ToolPane endpoint. When the exploit was processed, the dynamically compiled App_Web_toolpane.aspx assembly and the Microsoft.GeneratedCode helper assembly were loaded into the same application domain; Kaspersky explains that Microsoft.GeneratedCode is produced by XmlSerializer when the runtime must build code to reconstruct a serialized object graph, so its appearance immediately after a ToolPane request means the request carried serialized data. Memory and helper-assembly metadata also held the gadget-chain type names ObjectDataProvider, ExpandedWrapper and LosFormatter. The detection logic correlates IIS logs showing a request to the ToolPane endpoint with CLR loader ETW events (assembly and module load) in w3wp.exe that show Microsoft.GeneratedCode loading in the same application domain within seconds, and raises severity when a memory scan of w3wp.exe or the helper assembly finds those gadget type names.

Use IIS access logs, the Microsoft-Windows-DotNETRuntime loader ETW events (collected by EDR or a dedicated ETW consumer) and on-demand memory scanning of w3wp.exe; Kaspersky’s CLRDeserializationExploitFinder (https://github.com/gam4er/CLRDeserializationExploitFinder) automates the gadget search for ToolShell and other ysoserial.net chains. Sweep IIS logs for ToolPane requests back to July 2025, and remember that the probe and the exploit were four days apart: correlate a scanner-style probe with later activity rather than dismissing it as noise. Scope to every on-premises SharePoint farm, including test farms. Generated serializer assemblies are normal in isolation, so never alert on them alone; the anchor is the ToolPane request in the same window. Blocking the ONYPHE scanner is the wrong fix, since it only told the attacker what the internet already knew; patching and rotating machine keys is the right one. A confirmed sequence means code ran in w3wp.exe: preserve memory before recycling the application pool, because recycling destroys the implant. The pattern generalizes to any .NET deserialization exploit.

Hunt Lead Level: 2 (Pro)

ATT&CK: Initial Access → T1190 (Exploit Public-Facing Application) (our mapping)

Sources: “How to detect fileless attacks exploiting ToolShell: analyzing the Storm-2603 incident”, Kaspersky Securelist, Nov. 5, 2026, https://securelist.com/storm-2603-fileless-toolshell-attack/121467/ (source article)

IIS Worker Launches msiexec or a SYSTEM Child

Shortly after the webshell was injected, w3wp.exe spawned msiexec.exe to install a remote MSI hosted on Supabase storage, which turned out to be Velociraptor. Separately, the implant’s privilege-escalation module (uk/London with an EfsrTiny client derived from EfsPotato) creates a named pipe, calls EfsRpcEncryptFileSrv against the local LSASS RPC server with a crafted \\localhost path so LSASS connects back to that pipe, impersonates the LSASS token with ImpersonateNamedPipeClient and starts a new process as SYSTEM with CreateProcessAsUser, which works because w3wp.exe holds SeImpersonatePrivilege. The detection logic is a process-creation rule for msiexec.exe whose parent is w3wp.exe, or whose command line contains an http or https URL on a server, and a second rule for any process running as SYSTEM whose creator is w3wp.exe or whose parent chain leads back to w3wp.exe, ideally joined with a named-pipe creation by w3wp.exe and an EFSRPC call to LSASS in the same minute.

Use EDR process creation with parent and token details, Sysmon process (ID 1) and pipe events (IDs 17 and 18), and Windows Security 4688 with command lines. Sweep 180 days on SharePoint and other IIS servers. Legitimate SharePoint maintenance installs MSIs from an administrator’s session, not from the worker process, so allowlisting should be by parent session, not by msiexec itself. Blocking msiexec on servers is the wrong control because patching depends on it; restricting w3wp.exe’s child processes with application control is the stronger fix. Any hit should be handled as active compromise: isolate the server, preserve w3wp.exe memory and check for Velociraptor, Zoho Assist, code tunnel and cloudflared installs that followed. The EFSRPC impersonation half generalizes to every Potato-family escalation from a service account.

Hunt Lead Level: 2 (Pro)

ATT&CK: Defense Evasion → T1218.007 (System Binary Proxy Execution: Msiexec); Privilege Escalation → T1134.001 (Access Token Manipulation: Token Impersonation/Theft) (our mapping)

Sources: “How to detect fileless attacks exploiting ToolShell: analyzing the Storm-2603 incident”, Kaspersky Securelist, Nov. 5, 2026, https://securelist.com/storm-2603-fileless-toolshell-attack/121467/ (source article)

Virtual Path With No File Behind It

The webshell’s main module, G.cs, registers a custom VirtualPathProvider through the non-public RegisterVirtualPathProviderInternal method of ASP.NET’s HostingEnvironment, uses reflection to alter BuildManager state so registration also works in precompiled applications, and hooks GetCacheKey() to inspect every request, activating only when a specific User-Agent appears and otherwise staying dormant. Because ASP.NET can compile virtual pages that never exist on disk, file-based webshell hunting finds nothing. Kaspersky’s detection pattern uses the Microsoft-Windows-IIS-Configuration ETW provider: events 25 (ConfigPath to PhysicalPath mapping) and 47 (configuration path to directory mapping) show IIS resolving a path as if it were physical, while the FileChangeNotificationMonitor events 17, 18, 19 and 21 that accompany real files are missing for the same path. The detection logic is a per-path correlation that fires when events 25 or 47 appear for a resource with no file at the mapped physical path and no matching 17, 18, 19 or 21 events.

Collect the Microsoft-Windows-IIS-Configuration ETW provider on SharePoint and other ASP.NET servers, add a filesystem existence check for each mapped path, and back it with periodic memory inspection of w3wp.exe for unknown VirtualPathProvider types. Start by inventorying the legitimate providers your applications register and allowlist them by type and assembly, not by path. Kaspersky’s VirtualPathProvider lab (https://github.com/gam4er/WebApplication) shows what a malicious mapping looks like and is a safe way to test the rule. Hash-based scanning is the wrong control here because the implant has no file; ETW and memory are the only evidence, and both vanish when the application pool recycles, so capture memory first. Any unexplained virtual path is a potential runtime implant and should be escalated. This detection generalizes to every in-memory ASP.NET webshell that uses virtual paths, not just Storm-2603’s.

Hunt Lead Level: 3 (Elite)

ATT&CK: Persistence → T1505.003 (Server Software Component: Web Shell); Defense Evasion → T1620 (Reflective Code Loading) (our mapping; the source cites T1553 (Subvert Trust Controls) for the BuildManager tampering)

Sources: “How to detect fileless attacks exploiting ToolShell: analyzing the Storm-2603 incident”, Kaspersky Securelist, Nov. 5, 2026, https://securelist.com/storm-2603-fileless-toolshell-attack/121467/ (source article)

Hash Appendix

Storm-2603 implant, tooling and driver

MD5s from the source article; SHA-1s and SHA-256s were not published (OTX AlienVault and VirusTotal not checked). The VS Code, VS Code Insiders and cloudflared files are unmodified legitimate software abused for tunneling: blocking their hashes would break legitimate developer tools, so detect them by host role and parent process instead.

MD5s
fd91321bf7ff7245dda9b7b5d791ace8  # vskp2 -> in-memory webshell implant (w3wp.exe)
3a55d8f8f29716c694671834d8c6cb29  # Velociraptor.exe -> C:\ProgramFiles\Velociraptor\, v0.73.4.0 (CVE-2025-6264)
991ec6e04413f2d4d29341c17a8a54d5  # VS Code -> legitimate VS Code abused for tunneling
3d553b9061c03f891ce97d7d2e64ddee  # VS Code Insiders -> legitimate VS Code Insiders used for tunneling
2c32e44a013cbfc5a323efb7694701d2  # cloudflared tunneling executable -> legitimate tunneling tool abused
112a86eca3cb5a0b5e20ab744cc5af93  # 7z.exe -> renamed 7-Zip used for sideloading
a930f81e3fb0a226ec5904d9043a17b8  # ZohoMeeting.7z -> C:\ProgramFiles(x86)\ZohoMeeting\UnAttended\
054a32d6033b1744dca7f49b2e466ea2  # rsndispot.sys -> C:\programdata\, vulnerable driver for EDR killing
2d9ebf9c042f596f435865b40edad928  # Warlock AV-killer DLL -> sideloaded
SHA1s
(not available)  # vskp2 -> in-memory webshell implant (w3wp.exe)
(not available)  # Velociraptor.exe -> C:\ProgramFiles\Velociraptor\, v0.73.4.0 (CVE-2025-6264)
(not available)  # VS Code -> legitimate VS Code abused for tunneling
(not available)  # VS Code Insiders -> legitimate VS Code Insiders used for tunneling
(not available)  # cloudflared tunneling executable -> legitimate tunneling tool abused
(not available)  # 7z.exe -> renamed 7-Zip used for sideloading
(not available)  # ZohoMeeting.7z -> C:\ProgramFiles(x86)\ZohoMeeting\UnAttended\
(not available)  # rsndispot.sys -> C:\programdata\, vulnerable driver for EDR killing
(not available)  # Warlock AV-killer DLL -> sideloaded
SHA256s
(not available)  # vskp2 -> in-memory webshell implant (w3wp.exe)
(not available)  # Velociraptor.exe -> C:\ProgramFiles\Velociraptor\, v0.73.4.0 (CVE-2025-6264)
(not available)  # VS Code -> legitimate VS Code abused for tunneling
(not available)  # VS Code Insiders -> legitimate VS Code Insiders used for tunneling
(not available)  # cloudflared tunneling executable -> legitimate tunneling tool abused
(not available)  # 7z.exe -> renamed 7-Zip used for sideloading
(not available)  # ZohoMeeting.7z -> C:\ProgramFiles(x86)\ZohoMeeting\UnAttended\
(not available)  # rsndispot.sys -> C:\programdata\, vulnerable driver for EDR killing
(not available)  # Warlock AV-killer DLL -> sideloaded

References Appendix

  • “How to detect fileless attacks exploiting ToolShell: analyzing the Storm-2603 incident” (The SOC Files 5), Kaspersky Securelist, Nov. 5, 2026, https://securelist.com/storm-2603-fileless-toolshell-attack/121467/ (source article; timeline, implant analysis, detection guidance, attribution and indicators)
  • CLRDeserializationExploitFinder, Kaspersky researcher repository on GitHub, https://github.com/gam4er/CLRDeserializationExploitFinder (detection tool referenced by the source article)
  • VirtualPathProvider Lab, Kaspersky researcher repository on GitHub, https://github.com/gam4er/WebApplication (detection lab referenced by the source article)
  • MITRE ATT&CK Enterprise technique pages linked above, MITRE, https://attack.mitre.org/

CVE at a glance

CVE-2025-53770CriticalKEVPublic exploitMicrosoft SharePoint
CVSS
9.8 Critical (v3.1)
EPSS
100% chance of exploitation in the next 30 days (higher than 99.9% of CVEs)
Exploited in the wild
Yes, on CISA’s KEV list since Jul 20, 2025; used by ransomware
Public exploit
Yes, reported in a Metasploit module, Exploit-DB, a Nuclei template and 45 GitHub repositories

Full CVE details

CVE-2025-53771MediumPublic exploitMicrosoft SharePoint Enterprise Server 2016
CVSS
6.5 Medium (v3.1)
EPSS
99.9% chance of exploitation in the next 30 days (higher than 99.9% of CVEs)
Exploited in the wild
Not on CISA’s KEV list
Public exploit
Yes, reported in a Metasploit module and a Nuclei template

Full CVE details

CVE-2025-6264MediumPublic exploitRapid7 Velociraptor
CVSS
5.5 Medium (v3.1)
EPSS
1% chance of exploitation in the next 30 days (higher than 63.8% of CVEs)
Exploited in the wild
Not on CISA’s KEV list
Public exploit
Yes, reported in 1 GitHub repository

Full CVE details

Data from NVD, FIRST EPSS and CISA KEV, refreshed automatically. We report whether public exploit code exists but never link to it: fake proof-of-concepts that infect researchers are common.

More from the Roundup