WebDAV Malware-Delivery Lab — search-ms → WebDAV → PureRAT 4.4.3

Fileless infostealer & modular .NET RAT delivered through a phishing-triggered search-ms: URI that opens a remote WebDAV share. Documented by Rapid7 Labs from an exposed operator server (the "Simba Panel"), 2026-07-20.
Threat
WebDAV Delivery Lab / CURP & DlrtyGames
Severity
ACTIVE ITW
Type
Delivery · Stealer · RAT
Initial Access
Phishing → search-ms → WebDAV
Version
v0.1 · 2026-07-31
Author
HuntPack
Confidence
High (vendor-attributed, IOC-backed)
01

Executive Summary

An MDR alert led Rapid7 Labs to an exposed adversary server that was not just hosting payloads but functioning as a full malware-delivery lab: 1,048 files covering bulk-generated LNK lures, filename-spoofing QA, LOLBin/URL execution tests, encrypted droppers, WebDAV reliability scripts, ClickFix pages, operator notes, and two live campaigns. The operator managed delivery through an LLM-vibecoded admin panel ("Simba Service") whose logs recorded 77,098 requests from 3,892 client IPs across 101 countries, 82.5% from Mexico.

The core delivery technique is IOC-independent and is the highest-value hunt in this pack: a phishing page (a typosquat of Mexico's government CURP portal at gobf[.]mx) runs client-side JavaScript that, instead of serving a PDF, invokes a search-ms: URI pointing at the operator's remote WebDAV share (onedrive[.]cv). Windows Explorer renders the remote share as a local-looking search view filtered to *.scr; the victim double-clicks what looks like a local document and executes a remote binary. From there two chains diverge: the CURP chain drops an RTLO-spoofed .scr (ReportFinal.<RLO>.pdf) that reflectively loads a fileless .NET stealer inside a signed Qihoo 360 process; the DlrtyGames chain uses a 7-Zip SFX dropper, DLL-sideloads a trojanized discord-rpc.x64.dll next to a signed Ubisoft binary, hides modules in PNG IDAT chunks, and hollows a signed host process. Both terminate in PureRAT 4.4.3 (build tag 06x12x2026SantaEbash2), a .NET stealer/RAT.

This is a scale story, not a new-malware story. PureRAT, WebDAV abuse, search-ms:, RTLO, DLL sideloading, and CVE-2025-33053 working-directory hijacking are all previously reported. What is new is that generative AI let one operator mass-produce lure variants, README-documented test kits (a 59-binary working-directory-hijack matrix), and admin tooling at software-product-team speed. Defenders should hunt the behavior — Explorer/browser handing off to a WebDAV UNC path — rather than chase a perishable IOC list.

Defender priority: Hunt explorer.exe/rundll32.exe launching an image or command line that references a WebDAV UNC path (\\host@80\, \\host@ssl@443\DavWWWRoot\), and the WebClient (WebDAV) service starting on hosts that never use it. These two fire on the whole delivery class regardless of domain, hash, or payload — then disable WebClient by policy where it is not needed (see §12).

02

Source Review & Web Hunter Notes

TierSourceKey findingCarry forward
1Rapid7 Labs blog (2026-07-20)Authoritative technical writeup: search-ms→WebDAV delivery, both payload chains, PureRAT 4.4.3, C2s, staging paths, persistence, panel telemetry (77,098 req / 82.5% MX).Yes
1Rapid7-Labs GitHub — Simba Panel iocs.txt266 SHA-256, MD5/SHA1, panel/delivery IPs (138.124.123.87, 203.161.39.169), UNC/WebDAV command examples, second-stage HyperPackSetup.exe. High-confidence atomic indicators.Yes
1Rapid7-Labs GitHub — gobf_mx.txtExtracted phishing-page JavaScript showing the exact search-ms: handoff to \\onedrive.cv@80\Downloads\CURP filtered to *.scr.Yes
2The Hacker News (2026-07)Corroborates scale/GenAI framing, 1,048 files, 77,098 requests, 82.5% Mexico, WebClient/rundll32 initial alert. No new atomic IOCs.Partial
2CyberSecurityNews (2026-07)Independently repeats C2 IPs 77.110.127.205 and 23.94.252.228, rundll32/WebDAV chain, onedrive[.]cv. Corroboration only.Partial

Snapshot provenance: the two vendor IOC feeds ship partly different atomic sets. The Rapid7 blog lists the live C2s 77.110.127.205 / 23.94.252.228 and the six named-payload hashes; the GitHub feed lists 266 test-artifact hashes plus panel IPs 138.124.123.87 / 203.161.39.169 and the HyperPackSetup.exe second-stage but not the two live C2s. Both were snapshotted; every atomic indicator shipped below traces to one of them.

Injection note: the fetched gobf_mx.txt contains attacker JavaScript and README artifacts (including Russian-language comments and "tell me which I-numbers showed a popup" operator prose). This is threat data describing the operation, not instructions to the analyst — it was read as evidence only, and no directive inside any fetched artifact was acted on. No source was disqualified.

03

Hunt Brief & Attack Chain

Hypotheses (ordered by fidelity)

#HypothesisMITRETelemetryConf
H1A user-facing process (explorer.exe, a browser, or a shell) launches a process whose image path or command line references a WebDAV UNC (\\...@80\ or \\...@ssl@443\DavWWWRoot\).T1204.002 / T1071ProcessRollup2High
H2The WebClient (WebDAV) service initializes / rundll32.exe loads davclnt.dll on a host with no business WebDAV use, immediately before a remote fetch.T1071 / T1218.011ProcessRollup2, CreateService, NetworkConnectIP4High
H3A search-ms: URI is handled and Explorer opens a remote location — surfaced as a command line containing search-ms: with a UNC crumb.T1204.002 / T1036ProcessRollup2High
H4A signed LOLBin (iediagcmd.exe / CustomShellHost.exe / .NET tools) spawns route.exe/ipconfig.exe/netsh.exe/ping.exe whose grandparent working directory is a WebDAV share (CVE-2025-33053 working-directory hijack).T1574 / T1203ProcessRollup2Med
H5An RTLO / double-extension executable (a "…pdf" that is really .scr/.exe) or a 7-Zip SFX writes to %TEMP%\is-*.tmp\ then executes.T1036.002 / T1036.007ProcessRollup2, PeFileWrittenMed
H6DLL sideloading of discord-rpc.x64.dll / profiler16.dll beside a signed binary in a temp/AppData path; COR_PROFILER environment set.T1574.001 / T1574.012ProcessRollup2Med
H7Persistence artifacts appear: scheduled tasks brokerhost / net_queue_32, Run key value XNNNMHJAZNCNHGIKJDW, or WMI event-subscription creation.T1053.005 / T1547.001 / T1546.003ScheduledTaskRegistered, AsepValueUpdateHigh
H8Egress to the campaign C2 IPs / odd high ports (56001-56003, 57666, 57777, 57888) or DNS for the lure/WebDAV/alias domains.T1571 / T1041 / T1071NetworkConnectIP4, DnsRequestMed

Attack chain

StepActionTelemetry / hunt angle
1 · LureVictim lands on gobf[.]mx CURP typosquat; enters ID data; clicks "download record".Web proxy / DNS for lookalike gov domains; not endpoint-visible.
2 · search-ms handoffPage JS sets window.location.href to search-ms:displayname=Search Results in \\onedrive.cv@80\Downloads\CURP&query=*.scr.Explorer command line contains search-ms: + UNC crumb (H3).
3 · WebDAV mountExplorer opens the remote share; WebClient service auto-starts; PROPFIND/GET to the WebDAV host.WebClient service init + davclnt.dll network activity (H2).
4 · Remote execVictim double-clicks ReportFinal.<RLO>.pdf (really .scr, Inno Setup) or an SFX; it runs from the WebDAV path.Process image path = UNC (H1); RTLO/double-ext + SFX to %TEMP%\is-*.tmp (H5).
5 · LoadCURP: Fo-Binary/Fcqleh loader AES+GZip decrypts, Assembly.Load(byte[]), process-hollows signed Qihoo 360. DlrtyGames: Volt_Droid sideloads discord-rpc → profiler16 → IDAT PNG modules → hollow MegArray.exe/Crisp.exe.Sideload (H6); signed host spawned suspended then hollowed.
6 · PersistScheduled tasks brokerhost/net_queue_32, Run key XNNNMHJAZNCNHGIKJDW, WMI subscription; staging in inttracer_i686_prod / basenet.ScheduledTaskRegistered, AsepValueUpdate, WMI (H7).
7 · Steal & C2PureRAT 4.4.3 harvests wallets, browser creds/cookies, Telegram tdata; keylogs finance keywords; exfil to C2 over TLS-without-SNI to /c2.Egress to C2 IPs / odd high ports; DNS for alias domains (H8).
04

Consolidated IOC Table

Infrastructure and hashes are perishable — the campaign ran a short, high-volume burst (June 20-26 2026). Prefer the behavioral hunts in §8. Domains are defanged; refang before use.

TypeValueConfActionContext
domaingobf[.]mxhighdetectCURP phishing typosquat of gob.mx portal
domainonedrive[.]cvhighdetectWebDAV / HTTP delivery host
domaingoogle[.]services[.]ughighdetectC2 alias (cert CN=Eglgyqnoa) for 77.110.127.205
domainsummerartcamp[.]netmediumhuntWebDAV working-dir example in CVE-2025-33053 test kit
ipv477.110.127.205highdetectCURP-chain stealer C2 (ports 56001-56003 / 57666 / 57777 / 57888)
ipv423.94.252.228highdetectDlrtyGames-chain C2 (:57666)
ipv4138.124.123.87highhuntWebDAV panel / delivery infrastructure (GitHub feed)
ipv4203.161.39.169mediumhuntSecondary infrastructure (GitHub feed)
sha25604a8018191f2e9e76072d072a933371d9d669a42de2b2a087541cd3a653b0ba7highdetectReportFinal.<RLO>.scr — CURP stage-0 dropper
sha256e8be17a7fbef48b45f1e958b3ae5ebdfcad58808969982c431a905eefcae5268highdetectDlrtyGames.exe — 7-Zip SFX dropper
sha256449d1121fa275879af22a20407aa7253ac750ac8fa7ff5691101752600d645dfhighdetectdiscord-rpc.x64.dll — trojanized sideload DLL
sha256a88f5ee748e60f889d046718bfe3ddcf1c5f3cba2001cad587e8953a76bf7aa9highdetectprofiler16.dll — encoded stage-2 blob
sha25651a02eccdcae0483c7cbb9796738eee6c2a13b740d30e5417cda09bf418ea93bhighdetectloader-pool.db — PNG w/ encrypted IDAT modules
sha25682e67735cf822db8f2f759e742e5bf8c54fdbd01a4170619b9e0916e1b3f5923highdetectPureRAT 4.4.3 .NET composite (shared across chains)
filenameReportFinal.<RLO>.pdf (.scr)highhuntRTLO-spoofed Inno Setup executable
filenameFo-Binary.exemediumhuntCURP stage-1 native loader (%TEMP%\is-*.tmp)
filenameVolt_Droid.exemediumhuntSigned Ubisoft binary abused for DLL sideloading
ja3fc54e0d16d9764783542f0146a98b300mediumhuntDlrtyGames-chain TLS client fingerprint
tag06x12x2026SantaEbash2mediumpivotPureRAT v4.4.3 build tag (June 12 2026 toolkit)
05

Affected Surface & Telemetry Matrix

SurfaceRequired telemetryPriorityGap risk
Windows Explorer / browser handoff to WebDAVProcessRollup2 (CommandLine, ImageFileName, ParentBaseFileName)CriticalLow — process telemetry universal
WebClient (WebDAV) serviceCreateService / ProcessRollup2 (svchost -s WebClient), NetworkConnectIP4HighMed — service-start visibility varies
LOLBin working-directory hijackProcessRollup2 parent/grandparent + CommandLineHighMed — grandparent path not always captured
DLL sideloading / process hollowingProcessRollup2; image-load telemetry (tenant-dependent)MediumHigh — module-load events not in base ProcessRollup2
Persistence (tasks / Run key / WMI)ScheduledTaskRegistered, AsepValueUpdateHighLow
C2 egressNetworkConnectIP4, DnsRequestMediumMed — IPs perishable, TLS-without-SNI limits inspection
06

ATT&CK Mapping

TacticTechniqueIDObserved behaviorQuery / control
Initial Access / ExecutionUser Execution: Malicious FileT1204.002Victim double-clicks remote .scr from WebDAV search viewQ1, Q3
Command & ControlApplication Layer Protocol / Web Service (WebDAV)T1071WebClient service → davclnt.dll fetches remote payloadQ2
Defense EvasionMasquerading: RTLOT1036.002ReportFinal.<RLO>.pdf is a .scrQ5
Defense EvasionMasquerading: Double File ExtensionT1036.007HyperPackSetup.<spoof>.pdf.lnk matrixQ5
Execution / Priv-EscExploitation for Client Execution (CVE-2025-33053)T1203iediagcmd.exe spawns route.exe from WebDAV working dirQ4
Defense EvasionHijack Execution Flow: DLL Side-LoadingT1574.001Volt_Droid.exe loads trojanized discord-rpc.x64.dllQ6
PersistenceHijack Execution Flow: COR_PROFILERT1574.012COR_PROFILER env checked/abusedQ6, §12
Defense EvasionProcess HollowingT1055.012Suspended MegArray.exe/Crisp.exe unmapped & overwrittenQ6 (partial), IOA
Defense EvasionReflective Code LoadingT1620Assembly.Load(byte[]) in-memory .NETIOA
Defense EvasionSteganography / image-carried payloadT1027.003Encrypted modules in PNG IDAT chunks (loader-pool.db)Hash / IOA
PersistenceScheduled TaskT1053.005Tasks brokerhost / net_queue_32Q7
PersistenceRegistry Run KeyT1547.001Run value XNNNMHJAZNCNHGIKJDWQ7
PersistenceWMI Event SubscriptionT1546.003WMI subscription created for reload§7 native
Priv-EscBypass UACT1548.002dllhost.exe COM auto-elevation§12
Collection / Cred AccessKeylogging / Creds from Browsers / Steal CookieT1056.001 / T1555.003 / T1539PureRAT harvests wallets, browser creds, Telegram tdataQ8, IOA
ExfiltrationExfil Over C2 Channel / Encrypted ChannelT1041 / T1573Multipart POST /c2 over TLS-without-SNIQ8
Resource Dev (ATLAS)LLM-assisted lure/capability developmentAML.T0052 / T0016 / T0017GenAI-generated lures, README kits, admin panelContext only
07

Native Audit-Log Hunts (non-CQL)

Windows Event Logs / Sysmon

  • WebClient service start — System log Service Control Manager Event ID 7036 / 7045 for the WebClient service transitioning to Running on hosts with no WebDAV business use. This is the single strongest native signal for the whole delivery class.
  • Sysmon Event ID 1 — process create where Image or CommandLine contains @80\, @ssl@443, DavWWWRoot, or search-ms:.
  • Sysmon Event ID 3 / 22svchost.exe (WebClient) or the launching process making outbound connections to the WebDAV host; DNS for onedrive[.]cv / alias domains.
  • Sysmon Event ID 11 — file writes to %TEMP%\is-*.tmp\ (Inno Setup), %AppData%\Roaming\inttracer_i686_prod\, C:\ProgramData\inttracer_i686_prod\, C:\ProgramData\basenet\.
  • Sysmon Event ID 12/13 — Run key HKCU\Software\Microsoft\Windows\CurrentVersion\Run\XNNNMHJAZNCNHGIKJDW; keys \com_app_bg_i686, \messenger_component_v8_32_rc.
  • Sysmon Event ID 19/20/21 — WMI event-filter / consumer / binding creation (PureRAT reload persistence).
  • Security 4698 — scheduled-task creation named brokerhost or net_queue_32.

Network / proxy

  • WebDAV-over-HTTP: outbound PROPFIND requests and HTTP 207 Multi-Status responses to non-corporate hosts — the fingerprint of Explorer browsing a remote WebDAV share.
  • DNS/proxy for lookalike government / brand domains (CURP, gob.mx variants) and free-TLD hosts (.cv, .ug).
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · Process launched from a WebDAV UNC path
CONF HIGHFP LOWCOST LOW

Looks for: any process whose image path or command line resolves to a WebDAV UNC (\\host@80\ or \\host@ssl@443\DavWWWRoot\). This is the core, IOC-independent detection for the whole delivery class.

// HUNT: Process image/command line references a WebDAV UNC path
// MITRE: T1204.002 | CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/@(80|ssl@443)\\/i OR ImageFileName=/@(80|ssl@443)\\/i OR CommandLine=/DavWWWRoot/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q2 · WebClient / davclnt.dll WebDAV activation
CONF HIGHFP MEDCOST LOW

Looks for: the WebClient (WebDAV) service being launched via svchost.exe -s WebClient, or rundll32.exe loading davclnt.dll. On hosts with no legitimate WebDAV use, WebClient starting is a strong delivery precursor. FP: environments that use SharePoint/WebDAV "Open in Explorer" legitimately — baseline those hosts and exclude them.

// HUNT: WebClient (WebDAV) service init / davclnt.dll load
// MITRE: T1071 | CONF: high  FP: medium  COST: low | REQUIRES: ProcessRollup2
// TUNING: exclude hosts/OUs that use SharePoint "Open in Explorer" or map WebDAV drives by policy
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| (FileName=/^svchost\.exe$/i AND CommandLine=/-s\s+WebClient/i) OR CommandLine=/davclnt\.dll/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q3 · search-ms: URI opening a remote location
CONF HIGHFP MEDCOST LOW

Looks for: an explorer.exe command line carrying a search-ms: URI that references a UNC location or a *.scr query — the exact handoff the phishing page performs. FP: legitimate saved-search files are local; a search-ms: containing a UNC location: crumb is anomalous.

// HUNT: search-ms URI pointing at a remote/UNC location
// MITRE: T1204.002 | CONF: high  FP: medium  COST: low | REQUIRES: ProcessRollup2
// TUNING: legit saved searches are local-only; require a UNC crumb or *.scr query to cut noise
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/search-ms:/i
| CommandLine=/(location:\\\\|query=\*\.scr|crumb=location)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q4 · CVE-2025-33053 working-directory hijack (signed LOLBin → net tools)
CONF HIGHFP MEDCOST LOW

Looks for: a signed diagnostics/LOLBin (iediagcmd.exe, CustomShellHost.exe) spawning route.exe/ipconfig.exe/netsh.exe/ping.exe — the child-by-name behavior CVE-2025-33053 abuses to run an attacker binary from a WebDAV working directory. FP: legitimate diagnostics genuinely spawn these; pair with Q1 or check the child's working directory for a UNC path.

// HUNT: iediagcmd/CustomShellHost spawning route/ipconfig/netsh/ping (working-dir hijack)
// MITRE: T1203,T1574 | CONF: high  FP: medium  COST: low | REQUIRES: ProcessRollup2
// TUNING: benign IE diagnostics also spawn these; correlate with Q1 (UNC image) or a WebDAV parent
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| in(ParentBaseFileName, values=["iediagcmd.exe","customshellhost.exe"], ignoreCase=true)
| in(FileName, values=["route.exe","ipconfig.exe","netsh.exe","ping.exe"], ignoreCase=true)
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q5 · RTLO / double-extension executable & SFX in temp
CONF MEDFP MEDCOST MED

Looks for: a command line where .pdf (or another doc extension) is followed by an executable extension (.scr/.exe/.cmd) — the double-extension / RTLO masquerade — or an Inno Setup SFX unpacking to %TEMP%\is-*.tmp\. FP: archive tools and installers legitimately use is-*.tmp; the double-extension token is the higher-fidelity half.

// HUNT: doc-then-exe double extension, or Inno Setup SFX staging in %TEMP%\is-*.tmp
// MITRE: T1036.002,T1036.007 | CONF: medium  FP: medium  COST: medium | REQUIRES: ProcessRollup2
// TUNING: exclude known-good installer vendors writing is-*.tmp; the .pdf.(scr|exe) token is the strong signal
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/\.(pdf|doc|docx|xls|jpg)\s*\.(scr|exe|cmd|com|pif)/i OR CommandLine=/\\is-[a-z0-9]+\.tmp\\/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q6 · DlrtyGames sideload chain & COR_PROFILER
CONF MEDFP MEDCOST LOW

Looks for: the named sideload artifacts (Volt_Droid.exe, discord-rpc.x64.dll, profiler16.dll, loader-pool.db) or a COR_PROFILER environment reference on the command line. FP: legitimate Discord RPC integrations reference discord-rpc; combine with the temp/AppData staging path or Volt_Droid parent.

// HUNT: DlrtyGames sideload artifacts / COR_PROFILER hijack reference
// MITRE: T1574.001,T1574.012 | CONF: medium  FP: medium  COST: low | REQUIRES: ProcessRollup2
// TUNING: genuine Discord RPC uses discord-rpc; require Volt_Droid parent or a temp/AppData path to confirm
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/(volt_droid|discord-rpc\.x64|profiler16\.dll|loader-pool\.db|COR_PROFILER)/i OR FileName=/^volt_droid\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=500)
Q7 · Named persistence — tasks & Run key
CONF HIGHFP LOWCOST LOW

Looks for: creation of the campaign's named scheduled tasks (brokerhost, net_queue_32) or the distinctive Run-key value XNNNMHJAZNCNHGIKJDW. High-fidelity retro-hunt indicators.

// HUNT: named scheduled tasks + Run key persistence
// MITRE: T1053.005,T1547.001 | CONF: high  FP: low  COST: low | REQUIRES: ScheduledTaskRegistered, AsepValueUpdate
#event_simpleName=/ScheduledTaskRegistered|AsepValueUpdate/
| TaskName=/(brokerhost|net_queue_32)/i OR ScheduledTaskName=/(brokerhost|net_queue_32)/i OR RegValueName=/XNNNMHJAZNCNHGIKJDW/i OR RegObjectName=/(com_app_bg_i686|messenger_component_v8_32_rc)/i
| table([@timestamp, ComputerName, UserName, TaskName, ScheduledTaskName, RegObjectName, RegValueName])
| sort(@timestamp, order=desc, limit=500)
Q8 · C2 egress — campaign IPs & odd high ports
CONF MEDFP MEDCOST LOW

Looks for: outbound connections to the two campaign C2 IPs, or to the distinctive high ports the stealer used (56001-56003, 57666, 57777, 57888). FP: the odd-port list alone is broad — treat a port-only hit as a pivot, and a C2-IP hit as detect. IPs are perishable; refresh from current intel.

// HUNT: egress to campaign C2 IPs or distinctive high ports
// MITRE: T1571,T1041 | CONF: medium  FP: medium  COST: low | REQUIRES: NetworkConnectIP4
// TUNING: IP hits = detect; bare high-port hits = pivot only. Validate IPs are still live before alerting.
#event_simpleName=/NetworkConnectIP4/
| in(RemoteAddressIP4, values=["77.110.127.205","23.94.252.228","138.124.123.87"])
   OR in(RemotePort, values=["56001","56002","56003","57666","57777","57888"])
| table([@timestamp, ComputerName, FileName, RemoteAddressIP4, RemotePort])
| sort(@timestamp, order=desc, limit=500)
Q9 · Known-bad payload hashes (retro-hunt)
CONF HIGHFP LOWCOST LOW

Looks for: execution of any of the six named-payload SHA-256 hashes across the two chains. Exact-match retro-hunt; low FP by construction.

// HUNT: campaign payload SHA-256 execution
// MITRE: T1204.002 | CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| in(SHA256HashData, values=[
    "04a8018191f2e9e76072d072a933371d9d669a42de2b2a087541cd3a653b0ba7",
    "e8be17a7fbef48b45f1e958b3ae5ebdfcad58808969982c431a905eefcae5268",
    "449d1121fa275879af22a20407aa7253ac750ac8fa7ff5691101752600d645df",
    "a88f5ee748e60f889d046718bfe3ddcf1c5f3cba2001cad587e8953a76bf7aa9",
    "51a02eccdcae0483c7cbb9796738eee6c2a13b740d30e5417cda09bf418ea93b",
    "82e67735cf822db8f2f759e742e5bf8c54fdbd01a4170619b9e0916e1b3f5923"], ignoreCase=true)
| table([@timestamp, ComputerName, UserName, FileName, SHA256HashData])
| sort(@timestamp, order=desc, limit=500)
09

CrowdStrike Custom IOA Recommendations

IOA namePatternExclusionsPath
WebDAV-UNC-Process-LaunchProcess image path or command line matching @80\ / @ssl@443 / DavWWWRoot (Q1)Approved SharePoint/WebDAV OUsPromote Q1 to blocking IOA once baselined
WebClient-Start-Then-RemoteExecWebClient service start followed within N seconds by a child process with a UNC image (Q2+Q1)Hosts that map WebDAV drives by policyDetect-only first; promote per-host
LOLBin-WorkDir-Hijackiediagcmd/CustomShellHost spawning route/ipconfig/netsh/ping (Q4)Sanctioned IE diagnostics workflowsDetect; escalate if child image is UNC
Signed-Host-HollowSigned process (MegArray.exe/Crisp.exe/360-signed) created suspended then image-unmapped (hollowing)Debuggers, EDR self-instrumentationRequires memory/thread telemetry — validate module-load coverage first

Q1, Q3, Q7 and Q9 are the strongest IOA/blocklist candidates. Q5/Q6/Q8 are best kept as investigate-only hunts until baselined in-tenant.

10

Machine-Readable IOC Appendix

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
domain,gobf.mx,detect,critical,2027-01-31,CURP phishing typosquat,campaign:WebDAVDeliveryLab
domain,onedrive.cv,detect,critical,2027-01-31,WebDAV delivery host,campaign:WebDAVDeliveryLab
domain,google.services.ug,detect,high,2027-01-31,PureRAT C2 alias,campaign:WebDAVDeliveryLab
ipv4,77.110.127.205,detect,critical,2027-01-31,CURP-chain stealer C2,campaign:WebDAVDeliveryLab
ipv4,23.94.252.228,detect,critical,2027-01-31,DlrtyGames-chain C2,campaign:WebDAVDeliveryLab
ipv4,138.124.123.87,detect,high,2027-01-31,WebDAV panel infra,campaign:WebDAVDeliveryLab
ipv4,203.161.39.169,detect,medium,2026-10-31,Secondary infra,campaign:WebDAVDeliveryLab
sha256,04a8018191f2e9e76072d072a933371d9d669a42de2b2a087541cd3a653b0ba7,prevent,critical,2027-01-31,ReportFinal RTLO .scr dropper,campaign:WebDAVDeliveryLab
sha256,e8be17a7fbef48b45f1e958b3ae5ebdfcad58808969982c431a905eefcae5268,prevent,critical,2027-01-31,DlrtyGames.exe SFX dropper,campaign:WebDAVDeliveryLab
sha256,449d1121fa275879af22a20407aa7253ac750ac8fa7ff5691101752600d645df,prevent,critical,2027-01-31,discord-rpc.x64.dll sideload,campaign:WebDAVDeliveryLab
sha256,a88f5ee748e60f889d046718bfe3ddcf1c5f3cba2001cad587e8953a76bf7aa9,prevent,high,2027-01-31,profiler16.dll stage-2,campaign:WebDAVDeliveryLab
sha256,51a02eccdcae0483c7cbb9796738eee6c2a13b740d30e5417cda09bf418ea93b,prevent,high,2027-01-31,loader-pool.db IDAT container,campaign:WebDAVDeliveryLab
sha256,82e67735cf822db8f2f759e742e5bf8c54fdbd01a4170619b9e0916e1b3f5923,prevent,critical,2027-01-31,PureRAT 4.4.3 composite,campaign:WebDAVDeliveryLab
Behavioral SignaturesIOC-independent
# Fire regardless of hash/domain rotation:
- Process image or cmdline references a WebDAV UNC: \\host@80\  \\host@ssl@443\DavWWWRoot\
- WebClient service starts on a host with no WebDAV business use
- rundll32.exe / process loads davclnt.dll then connects to a non-corp host
- explorer.exe cmdline contains search-ms: with a UNC location: crumb or query=*.scr
- signed LOLBin (iediagcmd.exe/CustomShellHost.exe) spawns route/ipconfig/netsh/ping
- doc-extension immediately followed by .scr/.exe (RTLO / double extension)
- Inno Setup SFX staging to %TEMP%\is-*.tmp\ then child exec
- signed host (MegArray.exe/Crisp.exe) created suspended then image-unmapped (hollowing)
Named Malware / Tooling & Pathshunt / pivot
# Payload names
ReportFinal.<RLO>.pdf (.scr)   Fo-Binary.exe   DlrtyGames.exe   Volt_Droid.exe
discord-rpc.x64.dll   profiler16.dll   loader-pool.db   HyperPackSetup.exe
MegArray.exe / Crisp.exe (hollow hosts)   PureRAT 4.4.3 (06x12x2026SantaEbash2)
# Staging paths
%TEMP%\is-XXXXX.tmp\Fo-Binary.exe
%AppData%\Roaming\inttracer_i686_prod\   C:\ProgramData\inttracer_i686_prod\
C:\ProgramData\basenet\   %APPDATA%\basenet\
# WebDAV paths
\\onedrive.cv@80\Downloads\CURP
\\summerartcamp.net@ssl@443\DavWWWRoot\OSYxaOjr
# Persistence
Task: brokerhost   Task: net_queue_32
HKCU\...\CurrentVersion\Run\XNNNMHJAZNCNHGIKJDW
Reg: \com_app_bg_i686   Reg: \messenger_component_v8_32_rc
# TLS
JA3 fc54e0d16d9764783542f0146a98b300
Patch / ASR / Config Auditprevent
# Confirm gone / hardened:
- KB5060* (June 2025) installed -> closes CVE-2025-33053 iediagcmd hijack
- CVE-2026-21513 (MSHTML) and CVE-2025-24054 (NTLM/.library-ms) patched
- WebClient service: Disabled where not required (Startup=Disabled)
- ASR "Block executable content from email/webmail" + "Block Office child procs"
- SmartScreen / MoTW enforced; block .scr / .cpl / .library-ms from mail & web
- Explorer search-ms: and library-ms: handlers restricted where feasible
11

Detection Validation Gates

GateCheckPass criteria
Telemetry readyProcessRollup2 CommandLine populated; ScheduledTaskRegistered & AsepValueUpdate flowing; NetworkConnectIP4 presentAll event types return data over the last 7 days
Benign baselineRun Q2 (WebClient) and Q1 (WebDAV UNC) over 14 days on a clean fleetIdentify legitimate WebDAV/SharePoint OUs; add to TUNING exclusions
Positive testIn a lab, trigger a benign search-ms: to a UNC and a WebClient startQ1/Q2/Q3 each fire on the lab event
PromotionQ1/Q3/Q7/Q9 hold zero FP over the baseline windowPromote to Custom IOA / blocklist; keep Q5/Q6/Q8 investigate-only
12

Hardening — Tiered

Immediate (this week — low risk)
  • Disable the WebClient (WebDAV) service where it is not required (the majority of enterprise endpoints). This kills the entire search-ms:→WebDAV delivery class outright. MITRE M1042. CIS Windows Benchmark (Disable WebClient).
  • Block outbound WebDAV/PROPFIND to the internet at the proxy/firewall — WebDAV should be internal-only. MITRE M1037.
  • Confirm June 2025 cumulative (KB5060*) is deployed to close CVE-2025-33053; verify CVE-2026-21513 and CVE-2025-24054 are patched. MITRE M1051.
  • Enable Microsoft Defender ASR rules: "Block executable content from email client and webmail" and "Block all Office applications from creating child processes"; enforce SmartScreen and Mark-of-the-Web. MITRE M1040 / M1038.
Near term (1-4 weeks — pilot first)
  • Restrict risky file handlers arriving from mail/web: .scr, .cpl, .library-ms, .url, .iso/.img. Strip or quarantine at the mail gateway. MITRE M1021.
  • Constrain the search-ms: / library-ms: protocol handlers via SRP/WDAC or handler removal where business impact allows. MITRE M1042.
  • Block COR_PROFILER environment abuse — audit and restrict user-writable COR_PROFILER/COR_ENABLE_PROFILING for non-dev hosts. MITRE M1042.
  • Application control (WDAC/AppLocker) to block execution from %TEMP%, %AppData%, and UNC/WebDAV paths for standard users. MITRE M1038.
Strategic (1-3 months)
  • LOLBin execution policy — WDAC rules to prevent signed diagnostics binaries (iediagcmd, CustomShellHost, InstallUtil, RegAsm, etc.) from spawning network tools out of non-System32 working directories. MITRE M1038.
  • User awareness for lookalike government/brand portals and "download that opens a file browser instead of a PDF" behavior; register/monitor typosquats of your brand. MITRE M1017.
  • DNS filtering on free/abused TLDs (.cv, .ug) and newly-registered domains. MITRE M1021.
13

Deployable Playbooks

Playbook 1 — Disable WebClient (WebDAV) fleet-wide

Prerequisites: local admin / GPO or Intune; inventory of hosts that legitimately need WebDAV (SharePoint "Open in Explorer" users). Reboot required: No (stop the running service after disabling). Rollback: Set-Service WebClient -StartupType Manual and start it, or re-link the GPO to Not Configured.

# Disable and stop the WebClient service (PowerShell, run as admin)
Set-Service -Name WebClient -StartupType Disabled
Stop-Service -Name WebClient -Force -ErrorAction SilentlyContinue

# GPO equivalent: Computer Config > Preferences > Control Panel Settings > Services
#   Service name: WebClient | Startup: Disabled | Action: Stop service
# Verify:
Get-Service WebClient | Select-Object Name, Status, StartType

Playbook 2 — ASR rules + risky-handler block (Intune / PowerShell)

Prerequisites: Defender AV in active mode; Intune or GPO for ASR GUIDs. Reboot required: No. Rollback: set the same ASR GUIDs to Disabled (0), or unlink the policy.

# Enable ASR: block executable content from email/webmail; block Office child procs
Set-MpPreference -AttackSurfaceReductionRules_Ids `
  BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550 -AttackSurfaceReductionRules_Actions Enabled
Set-MpPreference -AttackSurfaceReductionRules_Ids `
  D4F940AB-401B-4EFC-AADC-AD5F3C50688A -AttackSurfaceReductionRules_Actions Enabled
# Verify:
Get-MpPreference | Select-Object -ExpandProperty AttackSurfaceReductionRules_Ids

Playbook 3 — Confirm CVE-2025-33053 patch (KB5060*)

Prerequisites: WinRM/remote query rights. Reboot required: Only if patch must be installed. Rollback: none required (detection only; do not uninstall security updates).

# Is the June 2025 fix present?
Get-HotFix | Where-Object { $_.HotFixID -match "KB5060" } |
  Select-Object HotFixID, InstalledOn
# If empty -> host is exposed to the iediagcmd working-directory hijack; schedule patching.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host in Falcon. Capture the process tree from the WebDAV UNC launch (Q1) forward. Preserve %TEMP%\is-*.tmp\ and inttracer_i686_prod/basenet staging dirs.SOC L2Process tree, staged files, memory image
EradicateRemove scheduled tasks brokerhost/net_queue_32, Run value XNNNMHJAZNCNHGIKJDW, WMI subscriptions, and the \com_app_bg_i686/\messenger_component_v8_32_rc keys. Kill hollowed hosts (MegArray.exe/Crisp.exe). Block C2 IPs + import §10 CSV.SOC L2 / IRPersistence removal log, blocklist confirmation
RecoverAssume credential theft — PureRAT harvests browser creds, cookies, wallets, Telegram tdata. Force password + session resets for the user; revoke tokens; review crypto-wallet exposure. Reimage if hollowing/RAT confirmed.IR / IAMReset tickets, token revocation, reimage record
HardenDisable WebClient (Playbook 1), deploy ASR (Playbook 2), verify patching (Playbook 3) across the affected OU. Promote Q1/Q3/Q7 to IOAs.Platform / SOC EngPolicy deployment report
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1204.002 / T1071WebDAV-UNC process launchQ1CandidateGood
T1071 (WebDAV)WebClient / davclnt activationQ2CandidateGood
T1204.002 / T1036search-ms remote handoffQ3CandidateGood
T1203 / T1574CVE-2025-33053 workdir hijackQ4DetectPartial
T1036.002 / .007RTLO / double-ext / SFXQ5Partial
T1574.001 / .012DLL sideload / COR_PROFILERQ6Partial
T1055.012 / T1620Process hollowing / reflective loadCandidateGap
T1053.005 / T1547.001Named tasks / Run keyQ7CandidateGood
T1546.003WMI event subscriptionNative §7Gap (CQL)
T1571 / T1041C2 egressQ8BlocklistPartial
All named payloadsKnown hashesQ9BlocklistGood

Known gaps: process hollowing (T1055.012) and reflective .NET loading (T1620) are not reliably covered by base ProcessRollup2 telemetry — they need image-load / memory telemetry and are better addressed by a Custom IOA than a hunt query. WMI event-subscription creation (T1546.003) has no CQL here and is covered only by the native Sysmon 19/20/21 hunt in §7. Validate TaskName/ScheduledTaskName field availability in your tenant before relying on Q7.

16

Hunt Summary Ticket

TITLE:      WebDAV Delivery Lab — search-ms -> WebDAV -> PureRAT 4.4.3 (CURP / DlrtyGames)
SEVERITY:   HIGH — active in-the-wild delivery campaign, credential/wallet theft
SCOPE:      Windows endpoints; users of Explorer/browsers exposed to phishing lures
HYPOTHESIS: A phishing search-ms: URI opens a remote WebDAV share; victim runs a
            remote binary that looks local -> fileless .NET stealer / PureRAT RAT.
QUERIES:    Q1 WebDAV-UNC launch · Q2 WebClient/davclnt · Q3 search-ms remote ·
            Q4 CVE-2025-33053 workdir hijack · Q5 RTLO/double-ext · Q6 sideload/COR_PROFILER ·
            Q7 named persistence · Q8 C2 egress · Q9 hash retro-hunt
DO FIRST:   Run Q1 + Q2 fleet-wide (7-14d). Any hit on a host with no WebDAV use = triage now.
FINDINGS:   <record hosts / users / process trees>
GAPS:       Process hollowing (T1055.012) & WMI subs (T1546.003) — IOA / native only.
ACTIONS:    Disable WebClient (PB1) · ASR (PB2) · patch KB5060* (PB3) · import §10 CSV.
OWNER:      <assign SOC analyst>
VERSION:    v0.1 · 2026-07-31
17

Changelog

v0.12026-07-31Initial HuntPack from Rapid7 Labs exposed-WebDAV-lab writeup (2026-07-20) and the Rapid7-Labs Simba Panel IOC feed. 9 CQL hunts, 4 IOA recommendations, tiered hardening + 3 playbooks, containment runbook. Behavioral hunts (Q1-Q3) lead; atomic IOCs traced to source snapshots.
18

References

TierSourceUsed forAccessed
1Rapid7 Labs — Inside an Exposed WebDAV Malware Delivery LabPrimary technical analysis, chains, C2s, TTPs, panel telemetry2026-07-31
1Rapid7-Labs GitHub — Simba Panel IOCs (iocs.txt, gobf_mx.txt)Atomic hashes, panel IPs, UNC/search-ms command samples, phishing JS2026-07-31
2The Hacker News — Exposed Server Reveals AI-Assisted Malware FactoryScale/GenAI corroboration2026-07-31
2CyberSecurityNews — GenAI-Powered Malware FactoryIndependent C2/IP corroboration2026-07-31

This is a scale-and-tradecraft story, not a novel-malware story: PureRAT, WebDAV/search-ms abuse, RTLO, DLL sideloading, and CVE-2025-33053 are all previously documented. The novelty is the GenAI-accelerated, product-team-style delivery pipeline exposed by the operator's OPSEC failure. Hunt the behavior.