Medusa Ransomware — ABYSSWORKER BYOVD EDR-Killer
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.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.
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.
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry |
|---|---|---|---|
| 1 · Vendor research | Elastic Security Labs — ABYSSWORKER | smuol.sys mimics CSAgent.sys; IOCTL handlers disable EDR; revoked certs; Medusa pairing | yes |
| 1 · Gov advisory | CISA / FBI #StopRansomware: Medusa (AA25-...) | Medusa TTPs, BYOVD EDR-kill, shadow-copy deletion, double extortion | yes |
| 1 · Vendor | Symantec / Microsoft (Spearwing / Storm-1175) | Medusa attribution, HEARTCRYPT loader, initial-access vectors | yes |
| 2 · Vendor | Sophos / Mandiant — POORTRY/STONESTOP ecosystem | Signed-malicious-driver lineage; revoked-cert abuse | partial |
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.
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.
| Step | Behavior | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 · Access | Exploited edge service / valid accounts / phishing | auth; edge logs | N1 |
| 2 · Loader | HEARTCRYPT-packed loader drops the driver | ProcessRollup2; file | Q4 |
| 3 · Driver install | ABYSSWORKER (smuol.sys) registered as a service/driver | service/driver reg; file | Q1 / Q2 |
| 4 · EDR kill | Kernel IOCTLs terminate/disable EDR/AV | ProcessRollup2 (EndOfProcess); sensor health | Q3; N3 |
| 5 · Inhibit recovery | Shadow-copy deletion; service/backup stop | ProcessRollup2 | Q5 |
| 6 · Encrypt | Medusa encryptor + ransom note (.medusa / readme) | file; ProcessRollup2 | Q6; N4 |
Affected surface & telemetry
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Windows servers / endpoints | Driver-load + service-install events | Critical | Low — DriverLoad telemetry |
| EDR sensor health | Process-termination + sensor-tamper signals | Critical | Medium — needs tamper alerts |
| Backups / shadow copies | Process lineage (vssadmin/wmic/bcdedit) | High | Low |
| Code-integrity policy | HVCI / WDAC blocklist state | High | Medium — adoption gap |
Consolidated IOC Table
CSAgent.sys, the BYOVD-driver-load behavior, and the EDR-kill→shadow-delete→encrypt sequence are durable. Copy-ready blocks in §9.| Type | Value | Conf | Action | Context |
|---|---|---|---|---|
| Driver | smuol.sys (ABYSSWORKER) — and rotating names | high | block | BYOVD EDR-killer |
| Behavior | Driver claiming to be CSAgent.sys from wrong path/publisher | high | detect | Falcon impersonation — flagship |
| Signing | Revoked/stolen code-signing certs (POORTRY lineage) | medium | detect | Signed-malicious-driver ecosystem |
| Loader | HEARTCRYPT-packed loader (drops the driver) | medium | hunt | Pre-driver stage |
| Behavior | EDR/AV process termination + shadow-copy deletion | high | detect | Pre-encryption sequence |
| Encryptor | Medusa encryptor; .medusa extension / ransom note | medium | hunt | Impact stage |
ATT&CK Mapping
| Tactic | Technique | Observed Behavior | Query / Control |
|---|---|---|---|
| Initial Access | T1190 / T1078 — Exploit edge / valid accounts | Exploited service or stolen creds | N1 |
| Defense Evasion | T1014 / T1562.001 — Rootkit / disable security tools | ABYSSWORKER kernel EDR-kill | Q1, Q3 |
| Privilege Esc / Execution | T1543.003 / T1068 — Service install / BYOVD | smuol.sys registered as a driver service | Q2 |
| Defense Evasion | T1553.002 — Subverted trust (stolen certs) | Revoked certs (POORTRY lineage) | Q1; blocklist |
| Impact | T1490 — Inhibit system recovery | Shadow-copy deletion | Q5 |
| Impact | T1486 — Data encrypted for impact | Medusa encryptor + ransom note | Q6, N4 |
Native Audit-Log Hunts
| Hunt | Source | Logic | Response |
|---|---|---|---|
| N1 · Initial access | Edge/VPN + auth logs | Exploited edge service or anomalous valid-account logins preceding the host activity | Reset creds; patch edge |
| N2 · Code-integrity state | Config inventory | Hosts without HVCI / the vulnerable-driver blocklist enabled | Enable blocklist (the fix) |
| N3 · EDR sensor health | EDR console | Sensors going silent / uninstalled / tampered on a host cluster | Treat as active intrusion |
| N4 · Encryption canary | File server / EDR | Mass file-rename / .medusa extension / ransom-note file creation | Isolate; invoke IR |
CrowdStrike LogScale CQL Hunt Queries
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.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)
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)
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)
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)
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)
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)
CrowdStrike Custom IOA Recommendations
| IOA Name | Field Patterns | Benign Exclusions | Deployment Path |
|---|---|---|---|
| Medusa — CSAgent.sys impersonation | Driver csagent.sys from a non-CrowdStrike path, or smuol.sys | Genuine CrowdStrike path (allow) | Endpoint Security → Custom IOA → Driver Load, Detect+Block |
| Medusa — shadow-copy deletion | vssadmin/wmic delete shadows; bcdedit recoveryenabled no | Sanctioned backup maintenance windows | Custom IOA → Process Creation, Detect+Block |
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.
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
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
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
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
Hardening — Tiered & Deployable
Block the vulnerable driver at the kernel, protect the sensor, and protect recovery.
- Enable HVCI + the Microsoft vulnerable-driver blocklist — M1050 / M1038. Blocks ABYSSWORKER and POORTRY by design — the single highest-leverage control.
- Turn on EDR tamper protection; alert on sensor uninstall/silence — M1040. Treat sensor death as an active intrusion (N3).
- Promote Q1 (CSAgent.sys impersonation) + Q5 (shadow-copy deletion) to Detect+Block — M1040.
- Restrict vssadmin/bcdedit/wbadmin to admins; protect/immutable backups — M1018 / M1053.
- WDAC driver allowlist; Memory Integrity fleet-wide — M1038. Default-deny unknown kernel drivers.
- Patch/harden external-facing services; phishing-resistant MFA on remote access — M1032 / M1051. Cuts initial access (N1).
- Offline/immutable backups with tested restore — M1053. Beats T1490.
- Network segmentation; constrain lateral movement (SMB/RDP) — M1030.
- Privileged-access workstations; tiered admin model — M1026.
- Ransomware tabletop incl. an EDR-blinded scenario — M1047.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain affected hosts immediately (EDR may be blinded — use network controls); preserve the driver + loader | SOC L2 | Containment timestamp; Q1 driver-load event |
| Triage | Map loader → driver install → EDR kill → shadow-delete → encrypt; scope the cluster; check backups | IR | Driver/service timeline; sensor-health log |
| Eradicate | Remove the driver/service + loader; rebuild EDR-blinded hosts; block C2/staging; reset creds | IR | Removal log; rebuild ticket |
| Recover | Restore from offline/immutable backups; verify integrity; do not trust EDR-tampered hosts until reimaged | IR + IT | Restore validation |
| Harden | Enable HVCI blocklist; tamper protection; promote Q1/Q5; restrict vssadmin/bcdedit | Detection Eng | Blocklist state; IOA enabled |
Detection Coverage Map & Validation
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1014 / T1553.002 | ABYSSWORKER driver load (CSAgent impersonation) | Q1 | IOA-1 | Good + blocklist |
| T1543.003 / T1068 | Kernel-driver service install | Q2 | — | Partial correlate to Q1 |
| T1562.001 | EDR/AV kernel kill | Q3 | — | Partial + sensor health (N3) |
| T1105 / T1027 | HEARTCRYPT loader drop | Q4 | — | Partial |
| T1490 | Shadow-copy deletion | Q5 | IOA-2 | Good |
| T1486 | Medusa encryption | Q6 | — | Partial + canary (N4) |
| T1190 / T1078 | Initial access | — | — | GAP 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.
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
Changelog
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.References
| Tier | Source | Used For |
|---|---|---|
| 1 | Elastic Security Labs — ABYSSWORKER | smuol.sys / CSAgent.sys impersonation, IOCTL EDR-kill, certs, Medusa pairing |
| 1 | CISA/FBI #StopRansomware: Medusa (AA25-071A) | Medusa TTPs, BYOVD EDR-kill, shadow-copy deletion, extortion |
| 1 | Symantec — Spearwing / Medusa · Microsoft (Storm-1175) | Attribution, HEARTCRYPT loader, initial access |
| 2 | Sophos — 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.