Medusa Ransomware — ABYSSWORKER BYOVD EDR-Killer

The Medusa RaaS operation (Spearwing / FROZEN SPIDER / Storm-1175) deploys ABYSSWORKER, a malicious kernel driver (smuol.sys and rotating names) that mimics CrowdStrike's CSAgent.sys and disables EDR via BYOVD before encryption. Delivered by a HEARTCRYPT-packed loader and signed with revoked, stolen certificates (POORTRY lineage). Defensive hunt & harden pack — no offensive code.
Threat
Medusa RaaS · Spearwing / FROZEN SPIDER / Storm-1175
Severity
CRITICAL · EDR-DISABLING RANSOMWARE
Type
Ransomware · BYOVD kernel EDR-killer
Driver
ABYSSWORKER (smuol.sys + rotating; mimics CSAgent.sys)
Loader
HEARTCRYPT-packed · revoked stolen certs (POORTRY lineage)
Version
v0.3 · 2026-06-12
Author
HuntPack
01

Executive Summary

Medusa is a long-running ransomware-as-a-service operation (tracked as Spearwing / FROZEN SPIDER / Microsoft Storm-1175) that, before encrypting, blinds defenders with a bring-your-own-vulnerable-driver (BYOVD) EDR-killer named ABYSSWORKER. The driver is most associated with the filename smuol.sys (and rotating names), and deliberately imitates CrowdStrike Falcon's CSAgent.sys — same description metadata — to hide among legitimate security drivers. It is signed with revoked, stolen certificates (largely Chinese-issued), part of the same signed-malicious-driver ecosystem as POORTRY/STONESTOP.

ABYSSWORKER is delivered by a HEARTCRYPT-packed loader, then loaded via a service/driver install. Its IOCTL handlers let the operator terminate or disable EDR/AV processes from the kernel, remove callbacks, and clear handles — after which the Medusa encryptor runs unobstructed (shadow-copy deletion, service stop, file encryption with a ransom note). Because the kernel-level kill defeats user-mode protections, detection must catch the driver load and the loader behavior before encryption.

Defender priority: Enable the Microsoft vulnerable-driver blocklist (HVCI/WDAC) — that blocks ABYSSWORKER and POORTRY by design. Then hunt Q1 (suspicious kernel driver load — smuol.sys, or a driver claiming to be CSAgent.sys from the wrong path/publisher), Q2 (service/driver install), Q3 (EDR/AV process termination), and Q5 (shadow-copy deletion). A driver-load hit on a non-DC server is a likely pre-encryption window — respond immediately.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry
1 · Vendor researchElastic Security Labs — ABYSSWORKERsmuol.sys mimics CSAgent.sys; IOCTL handlers disable EDR; revoked certs; Medusa pairingyes
1 · Gov advisoryCISA / FBI #StopRansomware: Medusa (AA25-...)Medusa TTPs, BYOVD EDR-kill, shadow-copy deletion, double extortionyes
1 · VendorSymantec / Microsoft (Spearwing / Storm-1175)Medusa attribution, HEARTCRYPT loader, initial-access vectorsyes
2 · VendorSophos / Mandiant — POORTRY/STONESTOP ecosystemSigned-malicious-driver lineage; revoked-cert abusepartial

Decisions: blocklist-first (HVCI vulnerable-driver blocklist neutralizes the BYOVD core); behavior-anchored on the driver load + service install + EDR-kill + shadow-copy deletion; the CSAgent.sys-impersonation gives a strong, specific hunt (a driver claiming to be Falcon from the wrong path/publisher); encryptor IOCs rotate, so the BYOVD chain is the durable surface.

03

Hunt Brief & Attack Chain

Working hypothesis: An operator gains access (exploited edge service / valid accounts), drops a HEARTCRYPT-packed loader that installs ABYSSWORKER (smuol.sys) as a service, kills EDR/AV from the kernel, deletes shadow copies, and runs the Medusa encryptor.

StepBehaviorTelemetryHunt Angle
1 · AccessExploited edge service / valid accounts / phishingauth; edge logsN1
2 · LoaderHEARTCRYPT-packed loader drops the driverProcessRollup2; fileQ4
3 · Driver installABYSSWORKER (smuol.sys) registered as a service/driverservice/driver reg; fileQ1 / Q2
4 · EDR killKernel IOCTLs terminate/disable EDR/AVProcessRollup2 (EndOfProcess); sensor healthQ3; N3
5 · Inhibit recoveryShadow-copy deletion; service/backup stopProcessRollup2Q5
6 · EncryptMedusa encryptor + ransom note (.medusa / readme)file; ProcessRollup2Q6; N4

Affected surface & telemetry

SurfaceRequired TelemetryPriorityGap Risk
Windows servers / endpointsDriver-load + service-install eventsCriticalLow — DriverLoad telemetry
EDR sensor healthProcess-termination + sensor-tamper signalsCriticalMedium — needs tamper alerts
Backups / shadow copiesProcess lineage (vssadmin/wmic/bcdedit)HighLow
Code-integrity policyHVCI / WDAC blocklist stateHighMedium — adoption gap
04

Consolidated IOC Table

Driver names and encryptor hashes rotate; the impersonation of CSAgent.sys, the BYOVD-driver-load behavior, and the EDR-kill→shadow-delete→encrypt sequence are durable. Copy-ready blocks in §9.
TypeValueConfActionContext
Driversmuol.sys (ABYSSWORKER) — and rotating nameshighblockBYOVD EDR-killer
BehaviorDriver claiming to be CSAgent.sys from wrong path/publisherhighdetectFalcon impersonation — flagship
SigningRevoked/stolen code-signing certs (POORTRY lineage)mediumdetectSigned-malicious-driver ecosystem
LoaderHEARTCRYPT-packed loader (drops the driver)mediumhuntPre-driver stage
BehaviorEDR/AV process termination + shadow-copy deletionhighdetectPre-encryption sequence
EncryptorMedusa encryptor; .medusa extension / ransom notemediumhuntImpact stage
05

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Initial AccessT1190 / T1078 — Exploit edge / valid accountsExploited service or stolen credsN1
Defense EvasionT1014 / T1562.001 — Rootkit / disable security toolsABYSSWORKER kernel EDR-killQ1, Q3
Privilege Esc / ExecutionT1543.003 / T1068 — Service install / BYOVDsmuol.sys registered as a driver serviceQ2
Defense EvasionT1553.002 — Subverted trust (stolen certs)Revoked certs (POORTRY lineage)Q1; blocklist
ImpactT1490 — Inhibit system recoveryShadow-copy deletionQ5
ImpactT1486 — Data encrypted for impactMedusa encryptor + ransom noteQ6, N4
06

Native Audit-Log Hunts

HuntSourceLogicResponse
N1 · Initial accessEdge/VPN + auth logsExploited edge service or anomalous valid-account logins preceding the host activityReset creds; patch edge
N2 · Code-integrity stateConfig inventoryHosts without HVCI / the vulnerable-driver blocklist enabledEnable blocklist (the fix)
N3 · EDR sensor healthEDR consoleSensors going silent / uninstalled / tampered on a host clusterTreat as active intrusion
N4 · Encryption canaryFile server / EDRMass file-rename / .medusa extension / ransom-note file creationIsolate; invoke IR
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Driver-load hunts use DriverLoad / kernel-module events; verify the field names in your sensor schema. The CSAgent.sys-impersonation hunt is high-fidelity — a Falcon-named driver should only ever load from the CrowdStrike path with the CrowdStrike signer.
Q1 · ABYSSWORKER / CSAgent.sys-impersonating driver load
CONF HIGHFP LOWCOST LOW

Looks for: a kernel driver named smuol.sys, or one claiming to be CSAgent.sys from outside the genuine CrowdStrike path. Accomplishes: catches ABYSSWORKER's Falcon-impersonation. FP: very low — legitimate CSAgent.sys loads only from the CrowdStrike directory.

// HUNT: ABYSSWORKER BYOVD driver load (smuol.sys / fake CSAgent.sys)
// MITRE: T1014, T1562.001, T1553.002 | CONF: high  FP: low  COST: low
// FP NOTES: genuine CSAgent.sys loads only from \CrowdStrike\ path with CS signer
#event_simpleName=/DriverLoad|KernelModuleLoad|ModuleLoadFromMemory/
| (FileName=/^smuol\.sys$/i
   or (FileName=/^csagent\.sys$/i and ImageFileName!=/\\CrowdStrike\\/i))
| table([@timestamp, ComputerName, FileName, ImageFileName, SHA256HashData], limit=200)
Q2 · Suspicious kernel-driver service install
CONF MED-HIGHFP LOW-MEDCOST LOW

Looks for: a kernel-mode service registered pointing at a driver in a user/temp path (the BYOVD install). FP: some legit driver installs — flag user-writable paths + correlate to Q1.

// HUNT: kernel-driver service install from a user/temp path (BYOVD)
// MITRE: T1543.003, T1068 | CONF: med-high  FP: low-med  COST: low
// TUNING: flag ImagePath -> .sys in %TEMP%/%AppData%/ProgramData; correlate to Q1
#event_simpleName=/ServiceStarted|ServiceImagePath|RegSystemConfigValueUpdate/
| RegStringValue=/\\(Temp|AppData|ProgramData|Users)\\.+\.sys$/i
| table([@timestamp, ComputerName, ServiceName, RegStringValue], limit=200)
Q3 · EDR / AV process termination (kernel kill)
CONF MEDFP MEDCOST LOW

Looks for: security-product processes ending unexpectedly (ABYSSWORKER kernel kill). FP: normal updates/restarts — correlate to Q1/Q2 on the same host and watch for clusters.

// HUNT: EDR/AV process termination around a driver load
// MITRE: T1562.001 | CONF: medium  FP: medium  COST: low
// TUNING: correlate to Q1/Q2 on the same host; alert on clusters of sensor death
#event_simpleName=EndOfProcess
| FileName=/^(MsMpEng|SenseIR|MsSense|CSFalconService|elastic-endpoint|ekrn|avp|SentinelAgent|xagt|cb)\.exe$/i
| table([@timestamp, ComputerName, FileName, ImageFileName], limit=200)
Q4 · HEARTCRYPT-packed loader execution
CONF MEDFP MEDCOST LOW

Looks for: an unsigned/odd binary in a user/temp path writing a .sys file (the loader dropping the driver). FP: correlate with Q1/Q2; flag user-path PE writing a driver.

// HUNT: loader dropping a kernel driver (HEARTCRYPT stage)
// MITRE: T1105, T1027 | CONF: medium  FP: medium  COST: low
// TUNING: flag a user/temp-path process writing a .sys; correlate to Q1/Q2
#event_simpleName=/PeFileWritten|NewExecutableWritten/
| TargetFileName=/\\(Temp|AppData|ProgramData|Users)\\.+\.sys$/i
| table([@timestamp, ComputerName, ContextBaseFileName, TargetFileName, SHA256HashData], limit=200)
Q5 · Shadow-copy deletion / recovery inhibition
CONF HIGHFP LOWCOST LOW

Looks for: shadow-copy deletion / boot-recovery disable (pre-encryption). Accomplishes: a high-fidelity late-stage ransomware signal. FP: low — rare outside admin maintenance.

// HUNT: shadow-copy deletion / recovery inhibition (pre-encryption)
// MITRE: T1490 | CONF: high  FP: low  COST: low
// FP NOTES: rare outside admin maintenance; treat as critical with Q1-Q3
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ((FileName=/^(vssadmin|wmic|diskshadow)\.exe$/i and CommandLine=/(delete|shadowcopy|shadows)/i)
   or (FileName=/^bcdedit\.exe$/i and CommandLine=/(recoveryenabled|bootstatuspolicy)/i)
   or (FileName=/^wbadmin\.exe$/i and CommandLine=/delete/i))
| table([@timestamp, ComputerName, UserName, FileName, CommandLine], limit=200)
Q6 · Medusa encryptor / ransom-note canary
CONF MEDFP MEDCOST MED

Looks for: ransom-note files / .medusa extension writes. Accomplishes: confirms detonation. FP: medium — tune note filenames to current Medusa intel.

// HUNT: Medusa encryptor / ransom-note canary
// MITRE: T1486 | CONF: medium  FP: medium  COST: med
// TUNING: tune note filename + extension to current Medusa intel
#event_simpleName=/PeFileWritten|NewExecutableWritten/
| TargetFileName=/(\.medusa$|!READ_ME_MEDUSA!|MEDUSA.+README.+\.html?$)/i
| table([@timestamp, ComputerName, TargetFileName], limit=200)
08

CrowdStrike Custom IOA Recommendations

IOA NameField PatternsBenign ExclusionsDeployment Path
Medusa — CSAgent.sys impersonationDriver csagent.sys from a non-CrowdStrike path, or smuol.sysGenuine CrowdStrike path (allow)Endpoint Security → Custom IOA → Driver Load, Detect+Block
Medusa — shadow-copy deletionvssadmin/wmic delete shadows; bcdedit recoveryenabled noSanctioned backup maintenance windowsCustom IOA → Process Creation, Detect+Block
Q1 and Q5 are strong promotions. The single most effective control is the HVCI vulnerable-driver blocklist, which blocks the BYOVD load outright — pair the IOAs with it.
09

Machine-Readable IOC Appendix

Grouped IOC Quick-Copy

One-click blocks for blocklisting and detection. Driver names + encryptor hashes rotate — the impersonation behavior and BYOVD sequence are durable. Add per-incident atoms during triage.

Behavioral Signaturesdetection logic
Kernel driver smuol.sys loading (ABYSSWORKER)
Driver claiming to be CSAgent.sys loading from a non-CrowdStrike path / wrong signer
Kernel-driver service registered with ImagePath -> .sys in %TEMP%/%AppData%/ProgramData
EDR/AV processes (MsMpEng/SenseIR/CSFalconService/elastic-endpoint/SentinelAgent/xagt...) ending unexpectedly in a cluster
User/temp-path binary writing a .sys file (HEARTCRYPT loader dropping the driver)
Shadow-copy deletion: vssadmin/wmic delete shadows, bcdedit recoveryenabled no, wbadmin delete
.medusa extension writes / Medusa ransom-note files
Named Tooling / AttributionMedusa RaaS
ABYSSWORKER  # malicious kernel driver / EDR-killer (smuol.sys + rotating names)
smuol.sys    # most-reported ABYSSWORKER filename; mimics CrowdStrike CSAgent.sys metadata
HEARTCRYPT   # packer/loader used to deliver the driver
POORTRY / STONESTOP  # related signed-malicious-driver ecosystem (revoked-cert abuse)
# Operation: Medusa ransomware (RaaS, double extortion)
# Tracked as: Spearwing (Symantec) / FROZEN SPIDER / Storm-1175 (Microsoft)
# NOTE: not the same as MedusaLocker or the Medusa Android botnet
Code-Signing / Trusttrust subversion
Driver signed with revoked / stolen code-signing certificates (largely Chinese-issued)
Same signed-malicious-driver ecosystem as POORTRY/STONESTOP
Verify driver signer against expected publisher; alert on revoked-cert driver loads
A Falcon-named driver (CSAgent.sys) MUST be signed by CrowdStrike and load from the CS path
Hardening / Blockdefense-in-depth
Enable HVCI + Microsoft vulnerable-driver blocklist (blocks ABYSSWORKER/POORTRY) -- the fix
WDAC driver allowlist where feasible; Memory Integrity on
EDR tamper protection ON + alert on sensor uninstall/silence (treat as intrusion)
Patch + harden external-facing services; phishing-resistant MFA on remote access
Protected/immutable + offline backups; restrict vssadmin/bcdedit to admins
Promote Q1 (driver impersonation) + Q5 (shadow-copy deletion) to Detect+Block IOAs
10

Hardening — Tiered & Deployable

Block the vulnerable driver at the kernel, protect the sensor, and protect recovery.

Immediate — Block the BYOVD core
  • Enable HVCI + the Microsoft vulnerable-driver blocklistM1050 / M1038. Blocks ABYSSWORKER and POORTRY by design — the single highest-leverage control.
  • Turn on EDR tamper protection; alert on sensor uninstall/silenceM1040. Treat sensor death as an active intrusion (N3).
  • Promote Q1 (CSAgent.sys impersonation) + Q5 (shadow-copy deletion) to Detect+BlockM1040.
  • Restrict vssadmin/bcdedit/wbadmin to admins; protect/immutable backupsM1018 / M1053.
Near term — Constrain & observe (pilot first)
  • WDAC driver allowlist; Memory Integrity fleet-wideM1038. Default-deny unknown kernel drivers.
  • Patch/harden external-facing services; phishing-resistant MFA on remote accessM1032 / M1051. Cuts initial access (N1).
  • Offline/immutable backups with tested restoreM1053. Beats T1490.
Strategic — Reduce ransomware surface
  • Network segmentation; constrain lateral movement (SMB/RDP)M1030.
  • Privileged-access workstations; tiered admin modelM1026.
  • Ransomware tabletop incl. an EDR-blinded scenarioM1047.
11

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain affected hosts immediately (EDR may be blinded — use network controls); preserve the driver + loaderSOC L2Containment timestamp; Q1 driver-load event
TriageMap loader → driver install → EDR kill → shadow-delete → encrypt; scope the cluster; check backupsIRDriver/service timeline; sensor-health log
EradicateRemove the driver/service + loader; rebuild EDR-blinded hosts; block C2/staging; reset credsIRRemoval log; rebuild ticket
RecoverRestore from offline/immutable backups; verify integrity; do not trust EDR-tampered hosts until reimagedIR + ITRestore validation
HardenEnable HVCI blocklist; tamper protection; promote Q1/Q5; restrict vssadmin/bcdeditDetection EngBlocklist state; IOA enabled
12

Detection Coverage Map & Validation

TechniqueBehaviorCQLIOACoverage
T1014 / T1553.002ABYSSWORKER driver load (CSAgent impersonation)Q1IOA-1Good + blocklist
T1543.003 / T1068Kernel-driver service installQ2Partial correlate to Q1
T1562.001EDR/AV kernel killQ3Partial + sensor health (N3)
T1105 / T1027HEARTCRYPT loader dropQ4Partial
T1490Shadow-copy deletionQ5IOA-2Good
T1486Medusa encryptionQ6Partial + canary (N4)
T1190 / T1078Initial accessGAP edge/auth (N1)

Validation gates: (1) confirm DriverLoad + service-install + sensor-health telemetry; (2) baseline genuine CrowdStrike driver paths/signer to anchor Q1; (3) lab-test a benign signed-driver load and a benign vssadmin list shadows (must NOT fire Q5 — it keys on delete); (4) enable the HVCI blocklist + promote Q1/Q5. Driver-load on a non-DC server = likely pre-encryption window — respond now.

13

Hunt Summary Ticket

TITLE:        Hunt — Medusa Ransomware / ABYSSWORKER BYOVD EDR-Killer (smuol.sys)
SEVERITY:     Critical (EDR-disabling ransomware; pre-encryption window)
SCOPE:        Windows servers/endpoints; code-integrity (HVCI) state; EDR sensor health
HYPOTHESIS:   Access -> HEARTCRYPT loader -> ABYSSWORKER (smuol.sys, fake CSAgent.sys) service
              install -> kernel EDR kill -> shadow-copy deletion -> Medusa encryptor.
QUERIES RUN:  Q1 driver load / CSAgent impersonation (IOA) | Q2 driver service install |
              Q3 EDR/AV termination | Q4 HEARTCRYPT loader drop | Q5 shadow-copy deletion (IOA) |
              Q6 Medusa encryptor canary + Native N1-N4 (access, HVCI state, sensor health, encryption)
DO FIRST:     Enable HVCI vulnerable-driver blocklist; then Q1, Q5 — escalate any driver-load hit
FINDINGS:     <pending analyst execution>
GAPS:         Initial access (edge/auth); encryptor hashes rotate
ACTIONS:      HVCI blocklist; EDR tamper protection; restrict vssadmin/bcdedit; immutable backups;
              promote Q1/Q5 IOAs; treat sensor death as active intrusion
OWNER:        HuntPack
VERSION:      v0.3 - 2026-06-12
14

Changelog

v0.52026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.42026-06-29CQL syntax review (crowdstrike-logscale-v3): removed invalid FileCreateInfo event (Q6).
v0.32026-06-12Re-hunt + reformatted to the review-v2 gold layout (fixed left-sidebar scrollspy TOC, collapsible, cloud selector inside the CQL section, per-card Copy/Open-in-Falcon, Grouped IOC Quick-Copy grid, coverage+validation, .ticket). Refreshed from Elastic/CISA/Symantec/Microsoft: ABYSSWORKER (smuol.sys) CSAgent.sys impersonation + IOCTL EDR-kill, HEARTCRYPT loader, revoked/stolen certs (POORTRY lineage), Medusa = Spearwing/FROZEN SPIDER/Storm-1175, HVCI vulnerable-driver blocklist as the primary control. 6 CQL + 4 native hunts, 2 IOA candidates.
v0.12026-05-20Initial pack: Medusa BYOVD overview + hunts. Pre-gold top-bar layout.
15

References

TierSourceUsed For
1Elastic Security Labs — ABYSSWORKERsmuol.sys / CSAgent.sys impersonation, IOCTL EDR-kill, certs, Medusa pairing
1CISA/FBI #StopRansomware: Medusa (AA25-071A)Medusa TTPs, BYOVD EDR-kill, shadow-copy deletion, extortion
1Symantec — Spearwing / Medusa · Microsoft (Storm-1175)Attribution, HEARTCRYPT loader, initial access
2Sophos — signed-driver malware (POORTRY/STONESTOP)Signed-malicious-driver ecosystem; revoked-cert abuse

HuntPack v0.3 · Medusa Ransomware / ABYSSWORKER BYOVD · Generated 2026-06-12 · Defensive use only — no offensive code. The HVCI vulnerable-driver blocklist blocks the BYOVD core; behavioral hunts cover the CSAgent.sys impersonation, EDR-kill, shadow-copy deletion, and encryption. Validate driver-load field names before promoting any query.