MovieReaper — Torrent-Delivered Loader with Solana Blockchain C2 Resolution

Previously unknown modular, multi-stage Windows crimeware framework — distributed via a compromised torrent-file repository (itorrents[.]org) — first publicly disclosed 17 Sep 2026
Threat
MovieReaper (modular multi-stage loader / file-manager implant)
Severity
ACTIVE CAMPAIGN
Type
Crimeware — Torrent Supply-Chain Compromise / Blockchain C2
Access
User Execution of Trojanized Torrent Download (T1204.002)
Version
v1.0 · 2026-09-21
Author
ai@hutzley.com
Confidence
High (core chain, hashes, infrastructure — 2 sources agree)
Sources
2 saved snapshots
Queries
10 CQL hunt queries
01

Executive Summary

MovieReaper is a previously unknown, modular, multi-stage Windows malware framework disclosed by Kaspersky's GReAT team on 17 September 2026. It is distributed by way of a supply-chain-style compromise of itorrents[.]org, a public torrent-file repository that many independent tracker sites rely on to serve .torrent files. Rather than compromising trackers one at a time, the attackers compromised the shared repository itself: when a victim follows a legitimate magnet link, the repository silently returns a malicious torrent file instead of the requested one. The lure observed most often is a fake release of the film "The Odyssey" (filename pattern: the odyssey (2026) [1080p] [webrip] [5.1].exe), though the same loader hash has shipped under many different movie-themed filenames.

The infection chain runs four stages: (1) a loader with anti-sandbox evasion that downloads shellcode over plain HTTP from deadhub[.]org (IP fallback 193.23.118[.]155) at URI paths disguised as image assets; (2) shellcode that queries the Solana blockchain's getAccountInfo RPC endpoint for a specific account to retrieve a base64-encoded, XOR-encrypted second-stage C2 address — using a public blockchain as takedown-resistant dead-drop storage; (3) a module that performs a UAC bypass and persists by masquerading as %ProgramData%\Microsoft\Windows\Telemetry\msedge.exe; and (4) a final "file manager" implant exposing 21 commands for filesystem read/write/enumerate plus thumbnail/preview generation so operators can triage valuable files before exfiltration. Kaspersky reports several hundred victims — individuals and organizations — across Europe, Asia, and Africa, spanning enterprise, government, IT, consulting, retail, transportation, and agriculture sectors, with activity from the same actor traced back to October 2025.

Novel durable signal: the Solana blockchain dead-drop resolution step is the most distinctive and hardest-to-evade behavioral signature in this pack — legitimate business processes essentially never call public Solana RPC endpoints (getAccountInfo and similar) from a non-browser, non-wallet, non-dev-tooling process. That behavioral pattern survives IP/domain rotation and is the centerpiece hunt in §8 (Q9).

02

Source Review & Web Hunter Notes

Both sources below were fetched directly during this pipeline run (raw HTML retrieved, tags stripped, article text extracted verbatim) and saved to MovieReaper-Torrent-Solana-Hunt-sources/ for provenance tracing. Neither snapshot contained any text directed at the researching agent (no embedded instructions, no claimed authorization, no request to fetch a different "real" IOC source) — both were reviewed specifically for prompt-injection content and found clean.

#TierSourceKey FindingCarry Forward
01Tier 1 — vendor primary (GReAT)Kaspersky Securelist, "MovieReaper: Trojan attack via movie torrents, including The Odyssey" (Konstantin Isakov, Pavel Cheremushkin, 17 Sep 2026)Full four-stage chain, complete IOC appendix (hashes, mutexes, file path, domains/IPs, Solana account + program address), victim geography/sectorsYes — primary technical & IOC source
02Tier 2 — reputable tech pressIT-Connect, "iTorrents.org Compromised to Spread a Windows Malware Loader Instead of Movies" (Florian Burnel, 17 Sep 2026)Independently confirms the itorrents.org compromise mechanism, the four-stage chain, deadhub[.]org/193.23.118[.]155, the Telemetry-folder msedge.exe masquerade, the 21-command file manager, and victim country/sector breakdownYes — independent corroboration
Both sources agree on: the itorrents.org compromise mechanism, the four-stage chain shape, the first-stage domain/IP, the Telemetry-folder masquerade path, the 21-command capability count, and the double-digit-country victim spread. IT-Connect does not republish the literal hash/mutex/Solana-address values, so those atomic indicators are single-sourced to Securelist (01) — this pack ships them at Detect severity rather than Prevent for that reason (see §4 and §12 note).
Excluded source: a third candidate corroborating article (gbhackers.com, "MovieReaper Malware Spreads Through Pirated Movie Torrents...") could not be fetched as raw verbatim text — direct retrieval returned HTTP 403, and a summarized/model-processed fetch of it is not verbatim source text per this pack's sourcing standard. Rather than save a paraphrase and label it a "snapshot," it was dropped entirely. Two verbatim, independently-fetched sources (01, 02) satisfy the corroboration requirement without it.
Correction from raw extraction: Securelist's own published hash list contains one token, 4334BBAEA8DE33BF9D45E9B4E4E3BC2, that is only 31 hex characters — not a valid 32-character MD5 (confirmed by direct count against the saved snapshot, not just the initial fetch). It is excluded from every IOC table, the CQL hash query, and the machine-readable appendix in this pack. The remaining seven hashes are full-length 32-hex MD5s and are shipped normally.
03

Hunt Brief & Attack Chain

StepBehaviorTelemetryHunt Angle
0. Resource DevelopmentCompromise of the shared itorrents[.]org torrent-file repository, allowing malicious .torrent files to be served in place of legitimate ones across multiple independent tracker sitesOutside endpoint telemetry — third-party infrastructureNot endpoint-detectable; user-awareness/policy control only (see §13)
1. Initial Access / ExecutionVictim follows a magnet link, receives a malicious torrent, and manually executes a long-filenamed, movie-themed .exe (e.g. the odyssey (2026) [1080p] [webrip] [5.1].exe, MD5 A0B13781EDD7CFDAB13D79AFFF3C83C1) from a torrent client's download folderProcessRollup2, NewExecutableWritten/PeFileWrittenTorrent-client process writing/spawning an executable; hash match on the confirmed loader set
2. Stage 1 — LoaderAnti-sandbox checks (PEB/Ldr traversal instead of LoadLibrary/GetProcAddress) then an HTTP download of shellcode from deadhub[.]org (IP fallback 193.23.118[.]155) at randomized URI paths disguised as image assets (e.g. /cloud/v192.4/ui/sync-status-icons.png); shellcode is mapped RWX and executed via a vectored-exception-handler trick calling the undocumented EtwpCreateEtwThreadDnsRequest, NetworkConnectIP4, ProcessRollup2DNS/network to the confirmed domain/IP; process establishing the named mutex (no native Falcon telemetry — see §7 gap)
3. Stage 2 — Shellcode / Blockchain C2 ResolutionHTTPS request to the Solana blockchain getAccountInfo RPC endpoint for account 6pnDGAiHgyPdmckM5Qt1YbanGzrX43WLEU159nRaNLDm (data written via program CSiY8bQLBYPdfPWkwipBzH6sijTVQVVsA279JQdvwHtL); response's base64 data field is XOR-decrypted to yield the second-stage C2 address; further C2 traffic uses TLS-pinned HTTPS with nanopb protobuf framingDnsRequest (RPC hostname), NetworkConnectIP4Novel signal — non-browser/non-wallet process resolving a public Solana RPC hostname (§8 Q9)
4. Stage 3 — UAC Bypass & PersistenceUAC bypass via "public techniques" (specific technique not detailed in either source); binary copies/masquerades itself as C:\ProgramData\Microsoft\Windows\Telemetry\msedge.exe and restartsProcessRollup2, PeFileWritten/NewExecutableWrittenExact-path IOC match on the masquerade location; msedge.exe running outside Program Files generally (§8 Q4-Q6)
5. Stage 4 — Final Implant"File manager" module exposing 21 commands: read/upload/download/list/enumerate/create/copy/rename/move/delete/chmod/symlink, plus preview/thumbnail generation to triage files before exfiltrationProcessRollup2 (module load via same process), NetworkConnectIP4Sustained C2 beaconing from the masquerade process; large/unusual file-enumeration volume from the Telemetry-folder binary
6. Impact / ScopeSeveral hundred victims (individuals and organizations) across Europe, Asia, and Africa; sectors include enterprise, government, IT, consulting, retail, transportation, and agriculture; actor activity traced back to October 2025N/A (context)Prioritize this hunt organization-wide, not just for users with an obvious torrent-client footprint — victims include organizations, implying corporate assets were also affected
04

Consolidated IOC Table

TypeValueConfidenceNatureActionSource(s)
MD5A0B13781EDD7CFDAB13D79AFFF3C83C1HighAtomic — Stage 1 loader (confirmed identical across many filenames)Detect (single-sourced — see §2)01
MD54843F9FAFCAE492F11E2D4D33DBB4CDDHighAtomic — loader/implant sampleDetect (single-sourced)01
MD55310CABAE3FBE6DB8742849B588093F9HighAtomic — loader/implant sampleDetect (single-sourced)01
MD570060341CAF3338697A7DDFE0FB62875HighAtomic — loader/implant sampleDetect (single-sourced)01
MD5AD4643EEA15AC286FA47D1131F9EF756HighAtomic — loader/implant sampleDetect (single-sourced)01
MD5D0B967571AC8A3863C7F324BF5BDE99CHighAtomic — loader/implant sampleDetect (single-sourced)01
MD5D88D550D0FB8E60CFFFF3EA61FF7A067HighAtomic — loader/implant sampleDetect (single-sourced)01
MD5 (excluded)4334BBAEA8DE33BF9D45E9B4E4E3BC2N/AMalformed in source (31 hex chars, not a valid MD5)Not shipped — do not fabricate the missing character01 (as-published defect)
File path (masquerade)%ProgramData%\Microsoft\Windows\Telemetry\msedge.exeHighAtomic — Stage 3 persistence location, confirmed by both sourcesDetect/Hunt — exact-path CQL (§8 Q4) + custom IOA candidate01, 02
MutexGlobal\E4AyDKzvEhe2hgArHighAtomic — no native Falcon CQL telemetry for mutex creation (see §7 gap)Context/hunt via non-CQL tooling only01
MutexGlobal\fnulSktzSqvVLXHUHighAtomic — no native Falcon CQL telemetry for mutex creation (see §7 gap)Context/hunt via non-CQL tooling only01
Domaindeadhub[.]orgHighAtomic — Stage 1 C2 (shellcode delivery)Detect — DNS hunt (§8 Q7); network/DNS block recommended (§13)01, 02
IPv4193.23.118[.]155HighAtomic — Stage 1 C2 IP fallbackDetect (§8 Q8)01, 02
IPv4208.64.33[.]90HighAtomic — Stage 2 C2Detect (§8 Q8)01
IPv4208.94.246[.]53HighAtomic — Stage 2 C2Detect (§8 Q8)01
URI path (sample)/cloud/v192.4/ui/sync-status-icons.pngMediumAtomic — one observed masquerade path; malware randomizes segmentsContext — supports Stage 1 network hunt, not independently queryable in Falcon EDR telemetry (needs proxy/NGFW logs, see §7)01
Solana account6pnDGAiHgyPdmckM5Qt1YbanGzrX43WLEU159nRaNLDmHighAtomic — encrypted C2 dead-drop, novel infrastructure typeContext/monitoring — not a Falcon-blockable IOC type; supports the behavioral RPC hunt (§8 Q9)01
Solana programCSiY8bQLBYPdfPWkwipBzH6sijTVQVVsA279JQdvwHtLHighAtomic — custom on-chain program used to write the encrypted C2 dataContext/monitoring only01
Provenance note: every atomic value above traces to at least one saved snapshot in MovieReaper-Torrent-Solana-Hunt-sources/. The malformed 31-character hash is intentionally excluded rather than padded or guessed. All hash/mutex/Solana-address values are single-sourced to Securelist (01) — this pack ships them at Detect, not Prevent, consistent with the two-independent-source bar for Prevent-tier action.
05

Affected Surfaces & Telemetry Matrix

Platform / SurfaceRequired TelemetryPriorityGap Risk
Windows endpoints & servers (any host where torrent clients or personal downloads are possible)Falcon EDR: ProcessRollup2/SyntheticProcessRollup2, PeFileWritten, NewExecutableWritten, DnsRequest, NetworkConnectIP4HighLow — core Falcon sensor coverage
Torrent-client software / P2P usage on managed endpointsProcess execution telemetry; no dedicated "torrent" event type — inferred from known client process namesHighMedium — depends on whether torrent clients are already blocked/allowlisted
Outbound blockchain RPC egress (Solana and similar public chains)DnsRequest / NetworkConnectIP4 correlated to the originating process — most orgs do not currently baseline this traffic classHighGap — novel telemetry category; few environments have an existing baseline of "normal" blockchain RPC callers to compare against
Named-object (mutex) creationNot exposed as a first-class Falcon CQL field/event in the current data modelMediumGap — flagged explicitly rather than shipping a hallucinated field; see §7
Web proxy / NGFW logs (for URI-path-level detection of image-extension URLs serving executable content)Proxy/NGFW HTTP log fields (url, http.uri) — outside native Falcon EDR telemetryMediumMedium — only relevant if a web-proxy log source is ingested into the same LogScale/NG-SIEM instance
Third-party dependency (itorrents.org repository compromise)N/A — outside the org's telemetry entirelyLow (org cannot instrument it)Gap by design — mitigated only through policy/user-awareness controls (§13)
06

ATT&CK Mapping

TacticTechnique IDTechniqueObserved BehaviorConfidence
Resource DevelopmentT1584Compromise InfrastructureCompromise of the shared itorrents[.]org torrent-file repository to distribute malicious .torrent files across many independent trackersHigh
Initial Access / ExecutionT1204.002User Execution: Malicious FileVictim manually runs a movie-themed, long-filenamed .exe delivered via a poisoned torrentHigh
Defense EvasionT1497Virtualization/Sandbox EvasionLoader performs multiple anti-sandbox / anti-AV checks before proceeding to network activityHigh
Defense EvasionT1027Obfuscated Files or InformationStrings encrypted with a custom stream cipher; second-stage C2 address is XOR-encrypted in the Solana account dataHigh
Defense EvasionT1106Native APIAvoids LoadLibrary/GetProcAddress; walks the PEB Ldr double-linked list and manually parses loaded DLLs to resolve function addressesHigh
Defense Evasion / ExecutionT1620Reflective Code LoadingShellcode mapped into RWX memory and executed via a vectored exception handler abusing a manually-located syscall instruction and the undocumented EtwpCreateEtwThreadHigh
Command and ControlT1102.001Web Service: Dead Drop ResolverStage 2 queries the Solana blockchain getAccountInfo RPC endpoint to retrieve an encrypted second-stage C2 address — a public blockchain used as takedown-resistant dead-drop storageHigh
Command and ControlT1071.001Application Layer Protocol: Web ProtocolsStage 1 shellcode retrieval over plain HTTP; Stage 2+ C2 over TLS-pinned HTTPS with nanopb protobuf framingHigh
Privilege Escalation / Defense EvasionT1548.002Abuse Elevation Control Mechanism: Bypass User Account ControlStage 3 module performs a UAC bypass using "public techniques" — the specific method is not named in either sourceMedium (technique confirmed, exact method undocumented — gap)
Defense EvasionT1036.005Masquerading: Match Legitimate Name or LocationPersistence binary renamed msedge.exe and placed in %ProgramData%\Microsoft\Windows\Telemetry, outside the legitimate Edge install pathHigh
PersistenceT1547 (sub-technique unconfirmed)Boot or Logon Autostart Execution (inferred)Both sources describe "achieves persistence" via the respawned Telemetry-folder binary without naming the specific autostart mechanism (Run key, scheduled task, service)Low — explicit gap, flagged rather than guessed (see §16 coverage map)
Discovery / CollectionT1083File and Directory DiscoveryFinal "file manager" implant lists and enumerates directories on the victim hostHigh
CollectionT1005Data from Local SystemFile manager reads, copies, and generates previews/thumbnails of files prior to operator-directed exfiltration (analyst inference for the preview/thumbnail step — no exact ATT&CK sub-technique names this specifically)Medium
ExfiltrationT1041Exfiltration Over C2 ChannelFile manager's upload/download commands operate over the already-established, TLS-pinned C2 channelMedium (inferred from the command set; exact exfil volume/pattern undocumented)
07

Native Audit-Log & Non-CQL Hunts

Checks that rely on tooling or telemetry outside native Falcon CQL — either because the signal isn't a first-class Falcon data-model field, or because it needs a different log source entirely.

CheckHowWhy
Mutex presence (Global\E4AyDKzvEhe2hgAr, Global\fnulSktzSqvVLXHU)Sysinternals Handle.exe / Process Explorer named-object search on a suspect host, or a Falcon Real Time Response (RTR) script enumerating open handles — not expressible as a Falcon CQL field/event in the documented v3 data modelNamed mutexes are a strong, low-noise IOC, but this pack deliberately does not ship a CQL query claiming to detect mutex creation — no such event exists in the reference model, and inventing one would fail the field-name linter for good reason
Direct file-listing check for the masquerade pathRTR / endpoint script: Get-ChildItem "$env:ProgramData\Microsoft\Windows\Telemetry\msedge.exe" -ErrorAction SilentlyContinueConfirms Stage 3 drop even if the process has already exited and left no live ProcessRollup2 event in the retained window
AV/EDR detection-name sweepSearch AV/EDR console for detections named HEUR:Trojan.Win64.Agent.gen (Kaspersky's generic name for this family) if a secondary AV product is deployed alongside FalconCorroborating signal if another engine independently flagged the same binaries
Torrent-client / browser download-history reviewReview torrent-client download history and browser download logs for filenames containing "odyssey" or other current movie titles paired with a long, extension-obscuring filenameDirectly targets the observed lure pattern; useful for retrospective triage of hosts without live telemetry retention
Image-extension URI paths serving executable contentQuery web-proxy/NGFW logs (Zscaler, Bluecoat, Squid, etc. — if ingested into LogScale/NG-SIEM) for GET requests to deadhub[.]org paths ending in .png/.jpg that returned an executable/binary content-typeThis is genuinely observable, but requires a web-proxy log source — it is not native Falcon EDR telemetry, so no field name for it is claimed in §8
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · IOC: Confirmed MovieReaper Loader/Implant Hash Execution
CONF HIGHFP LOWCOST LOWIOA CANDIDATE

Looks for: execution of any of the seven confirmed 32-hex MD5 hashes for the MovieReaper loader/implant family. The eighth published hash is excluded as malformed (see §2/§4).

// HUNT: MovieReaper — Confirmed Loader/Implant Hash Execution
// MITRE: T1204.002 (User Execution: Malicious File)
// CONF: high
// FP: low
// COST: low
// REQUIRES: ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: none expected — these are specific malware sample hashes, not a behavioral pattern.
// LOOKBACK: 30d (set via the Falcon time picker, not an in-query filter)

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| in(field=MD5HashData, values=["A0B13781EDD7CFDAB13D79AFFF3C83C1","4843F9FAFCAE492F11E2D4D33DBB4CDD","5310CABAE3FBE6DB8742849B588093F9","70060341CAF3338697A7DDFE0FB62875","AD4643EEA15AC286FA47D1131F9EF756","D0B967571AC8A3863C7F324BF5BDE99C","D88D550D0FB8E60CFFFF3EA61FF7A067"])
| table([@timestamp, aid, ComputerName, UserName, FileName, ImageFileName, ParentBaseFileName, CommandLine, MD5HashData])
| sort(@timestamp, order=desc)
Q2 · Initial Access: Torrent Client Spawns or Writes a New Executable
CONF MEDIUMFP MEDIUMCOST LOW

Looks for: a known torrent-client process spawning a child executable that is not itself another instance of a torrent-client/updater binary — the generic Stage 1 execution pattern regardless of the specific lure filename. FP: torrent clients legitimately launch the OS default handler (browser, media player, archive tool) to open a completed download.

// HUNT: MovieReaper — Torrent Client Spawns/Writes New Executable
// MITRE: T1204.002 (User Execution: Malicious File)
// CONF: medium
// FP: medium
// COST: low
// REQUIRES: ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: torrent client opening a completed download with its associated default application (browser, media player, archive utility) — legitimate "open on complete" behavior.
// TUNING: exclude known media-player and archive-utility ParentBaseFileName targets (vlc.exe, wmplayer.exe, 7zAdvancement, winrar.exe) launched as children; escalate only on unsigned or newly-first-seen child binaries.
// LOOKBACK: 30d

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| in(field=ParentBaseFileName, values=["qbittorrent.exe","utorrent.exe","bittorrent.exe","transmission-qt.exe","transmission-daemon.exe","transmission-gtk.exe","deluge.exe","deluged.exe"], ignoreCase=true)
| FileName!=/^(qbittorrent|utorrent|bittorrent|transmission.*|deluge.*)(\.exe)?$/i
| table([@timestamp, aid, ComputerName, UserName, FileName, ImageFileName, CommandLine, ParentBaseFileName])
| sort(@timestamp, order=desc)
Q3 · Stage 3 Drop: Executable Written to ProgramData\Microsoft\Windows\Telemetry
CONF HIGHFP LOWCOST LOWIOA CANDIDATE

Looks for: any PE/executable file written into the Telemetry subfolder — catches the Stage 3 persistence drop at write time, before the masquerading process even runs. Legitimate Windows Telemetry components do not write executables to this path.

// HUNT: MovieReaper — Executable Written to ProgramData\Microsoft\Windows\Telemetry
// MITRE: T1036.005 (Masquerading: Match Legitimate Name or Location)
// CONF: high
// FP: low
// COST: low
// REQUIRES: PeFileWritten, NewExecutableWritten
// FALSE POSITIVES: none expected in a standard build — this path is not a legitimate drop location for any Microsoft Telemetry component.
// LOOKBACK: 30d

#event_simpleName=/^(PeFileWritten|NewExecutableWritten)$/i
| TargetFileName=/^C:\\ProgramData\\Microsoft\\Windows\\Telemetry\\/i
| table([@timestamp, aid, ComputerName, UserName, TargetFileName, SHA256HashData, MD5HashData])
| sort(@timestamp, order=desc)
Q4 · Stage 3 Execution: Exact Masquerade Path (Telemetry\msedge.exe)
CONF HIGHFP LOWCOST LOWIOA CANDIDATE

Looks for: execution of the exact confirmed masquerade path — the single most distinctive, highest-confidence host indicator in this pack, corroborated by both saved sources.

// HUNT: MovieReaper — Exact-Path Execution: %ProgramData%\Microsoft\Windows\Telemetry\msedge.exe
// MITRE: T1036.005 (Masquerading: Match Legitimate Name or Location)
// CONF: high
// FP: low
// COST: low
// REQUIRES: ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: none expected — this is not a legitimate Microsoft Edge install or update-helper location.
// LOOKBACK: 30d

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| FileName=/^msedge(\.exe)?$/i
| ImageFileName=/^C:\\ProgramData\\Microsoft\\Windows\\Telemetry\\msedge\.exe$/i
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName])
| sort(@timestamp, order=desc)
Q5 · Behavioral: msedge.exe Running Outside Program Files
CONF MEDIUMFP MEDIUMCOST LOW

Looks for: the broader masquerade pattern — a process named msedge.exe running from any location other than a legitimate Program Files install, catching path variants beyond the one confirmed Telemetry-folder drop. FP: Edge WebView2 runtime and Edge Update helper processes occasionally run from per-user AppData paths.

// HUNT: MovieReaper — msedge.exe Outside Program Files (Masquerade Variant Catch)
// MITRE: T1036.005 (Masquerading: Match Legitimate Name or Location)
// CONF: medium
// FP: medium
// COST: low
// REQUIRES: ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: Microsoft Edge WebView2 runtime and Edge Update helper processes can legitimately run from per-user AppData\Local\Microsoft\EdgeWebView or EdgeUpdate paths — exclude those specific subpaths before escalating.
// TUNING: exclude ImageFileName paths containing "\AppData\Local\Microsoft\EdgeWebView\" or "\AppData\Local\Microsoft\EdgeUpdate\"; prioritize hits from ProgramData, Temp, and user Downloads paths.
// LOOKBACK: 30d

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| FileName=/^msedge(\.exe)?$/i
| ImageFileName!=/^C:\\Program Files\\/i
| ImageFileName!=/^C:\\Program Files \(x86\)\\/i
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName])
| sort(@timestamp, order=desc)
Q6 · Behavioral: Any Execution from ProgramData\Microsoft\Windows\Telemetry
CONF MEDIUMFP LOWCOST LOW

Looks for: execution of any binary — not just msedge.exe — from the Telemetry subfolder, in case future MovieReaper variants rename the persistence binary. FP: none commonly expected; this is a narrow, non-standard execution path.

// HUNT: MovieReaper — Execution from ProgramData\Microsoft\Windows\Telemetry (Any Binary)
// MITRE: T1036.005 (Masquerading), T1547 (Boot or Logon Autostart Execution — inferred, mechanism undocumented)
// CONF: medium
// FP: low
// COST: low
// REQUIRES: ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: none commonly expected — this is not a standard execution path for any Microsoft Telemetry component.
// LOOKBACK: 30d

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| ImageFileName=/^C:\\ProgramData\\Microsoft\\Windows\\Telemetry\\/i
| table([@timestamp, aid, ComputerName, UserName, FileName, ImageFileName, CommandLine, ParentBaseFileName])
| sort(@timestamp, order=desc)
Q7 · Stage 1 C2: DNS Request to deadhub[.]org
CONF HIGHFP LOWCOST LOWIOA CANDIDATE

Looks for: DNS resolution of the confirmed Stage 1 C2 domain (and any subdomain) — the report itself notes this single domain/IP pair is the campaign's clearest takedown/detection opportunity.

// HUNT: MovieReaper — DNS Request to deadhub[.]org (Stage 1 C2)
// MITRE: T1071.001 (Application Layer Protocol: Web Protocols)
// CONF: high
// FP: low
// COST: low
// REQUIRES: DnsRequest
// FALSE POSITIVES: none expected — this is a dedicated malicious domain, not shared/CDN infrastructure.
// LOOKBACK: 30d

#event_simpleName=/^DnsRequest$/i
| DomainName=/^(deadhub\.org|.+\.deadhub\.org)$/i
| table([@timestamp, aid, ComputerName, UserName, DomainName, ContextProcessId_decimal])
| sort(@timestamp, order=desc)
Q8 · Network Connection to Confirmed MovieReaper C2 IPs
CONF HIGHFP LOWCOST MEDIUM

Looks for: outbound connections to the Stage 1 IP fallback and both confirmed Stage 2 C2 IPs, correlated back to the initiating process for triage.

// HUNT: MovieReaper — Network Connection to Confirmed C2 IPs (Stage 1 fallback + Stage 2)
// MITRE: T1071.001 (Application Layer Protocol: Web Protocols)
// CONF: high
// FP: low
// COST: medium
// REQUIRES: NetworkConnectIP4, ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: none expected — these IPs are not shared/CDN hosting as far as either source documents.
// LOOKBACK: 30d

#event_simpleName=NetworkConnectIP4
| in(field=RemoteAddressIP4, values=["193.23.118.155","208.64.33.90","208.94.246.53"])
| rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal)
| join(query={#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i}, field=TargetProcessId_decimal)
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, RemoteAddressIP4, RemotePort])
| sort(@timestamp, order=desc)
Q9 · Novel Signal: Non-Browser Process Querying a Public Solana RPC Endpoint
CONF MEDIUMFP MEDIUMCOST MEDIUMHIGH VALUE — DURABLE

Looks for: the durable, IP/domain-rotation-resistant signal at the heart of this campaign — a non-browser, non-crypto-wallet process resolving a public Solana RPC hostname. Securelist's own text cites api.mainnet.solana.com specifically; this query also covers the well-known public mainnet-beta endpoint and several third-party public RPC providers, since the technique (querying any public Solana RPC for getAccountInfo) is what's durable, not any one hostname. FP: legitimate Solana developer tooling (Solana CLI, Anchor), crypto trading/monitoring bots, and browser-based wallet extensions (which resolve DNS from inside the browser process, not a standalone exe) can also generate this traffic.

// HUNT: MovieReaper — Non-Browser Process Querying Public Solana RPC (Blockchain Dead-Drop C2 Resolution)
// MITRE: T1102.001 (Web Service: Dead Drop Resolver)
// CONF: medium
// FP: medium
// COST: medium
// REQUIRES: DnsRequest, ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: legitimate Solana developer tooling (solana-cli, anchor, test validators) on developer workstations; crypto trading/monitoring bots; any approved internal blockchain-integration service.
// TUNING: baseline and exclude your organization's approved developer/finance workstations and any known crypto-integration service account before treating this as high-priority; the value of this query is catching a NEW/unexpected process on a host with no prior blockchain-dev baseline.
// LOOKBACK: 30d

#event_simpleName=/^DnsRequest$/i
| DomainName=/^(api\.mainnet\.solana\.com|api\.mainnet-beta\.solana\.com|.+\.helius-rpc\.com|.+\.quiknode\.pro|rpc\.ankr\.com|solana-mainnet\.g\.alchemy\.com)$/i
| rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal)
| join(query={#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i}, field=TargetProcessId_decimal)
| FileName!=/^(chrome|firefox|msedge|brave|opera|vivaldi|iexplore|solana|anchor|test-validator)(\.exe)?$/i
| table([@timestamp, aid, ComputerName, UserName, FileName, ImageFileName, CommandLine, DomainName])
| groupBy([ComputerName, FileName], function=[count(as=Hits), collect(CommandLine)], limit=500)
| sort(Hits, order=desc)
Q10 · UAC-Bypass Parent/Child Anomaly (LOLBin Proxy Hunt)
CONF LOW-MEDIUMFP HIGHCOST LOW

Looks for: the family of well-known UAC-bypass LOLBins (fodhelper, computerdefaults, eventvwr, sdclt, slui, wsreset) spawning a child process outside C:\Windows\. Neither source names the exact UAC-bypass method MovieReaper uses ("public techniques" only), so this is a generic proxy hunt for the technique class rather than a MovieReaper-specific signature — flagged as lower confidence accordingly. FP: very high in environments with unusual but legitimate auto-elevation configurations or third-party admin tooling that hooks these binaries.

// HUNT: MovieReaper — UAC-Bypass LOLBin Parent/Child Anomaly (Generic Proxy Hunt)
// MITRE: T1548.002 (Abuse Elevation Control Mechanism: Bypass User Account Control)
// CONF: low-medium — exact MovieReaper UAC-bypass method is undocumented; this proxies the general technique class
// FP: high
// COST: low
// REQUIRES: ProcessRollup2, SyntheticProcessRollup2
// FALSE POSITIVES: legitimate auto-elevation via these binaries is rare but not impossible; some third-party admin/deployment tooling hooks fodhelper.exe-style bypasses for its own (non-malicious) elevation.
// TUNING: correlate with Q3/Q4/Q6 firing on the same host within a short window before escalating — this query alone is not MovieReaper-specific and will be noisy standalone.
// LOOKBACK: 30d

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| in(field=ParentBaseFileName, values=["fodhelper.exe","computerdefaults.exe","eventvwr.exe","sdclt.exe","slui.exe","wsreset.exe"], ignoreCase=true)
| ImageFileName!=/^C:\\Windows\\/i
| table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName])
| sort(@timestamp, order=desc)
09

CrowdStrike Custom IOA Recommendations

Queries promoted to Custom IOA candidates are high-confidence, low-FP, and stable enough for always-on detection. All are recommended in Detect mode first, per the standard 14-day FP-measurement rollout before any promotion to Prevent.

QueryRationaleSuggested Severity
Q1 — Confirmed hash executionExact sample match, zero ambiguityHigh
Q3 — PE write to Telemetry folderCatches the drop before execution; narrow path with no legitimate useHigh
Q4 — Exact msedge.exe masquerade pathSingle-purpose exact-path match, corroborated by two independent sourcesHigh
Q7 — DNS to deadhub[.]orgDedicated malicious domain; the report itself calls this the campaign's single clearest disruption pointHigh

Q2, Q5, Q6, Q8, Q9, and Q10 remain investigate-only hunt queries pending environment-specific tuning (medium/high FP as noted in their comment blocks). Q9 in particular deserves early operational attention despite its FP-medium rating: it is the only query in this pack built on a signal the actor cannot rotate away from without abandoning the blockchain-C2 technique entirely.

10

Alert Package — Scheduled Search & Analyst Alert

Packaged alert content for the two highest-value scheduled searches in this pack: the exact-path Stage 3 masquerade (Q4) and the novel Solana-RPC behavioral signal (Q9).

Scheduled Search 1 — Exact-Path Masquerade (Q4)

NAME:
HUNT: MovieReaper Masquerade - Telemetry Folder msedge.exe Execution

DESCRIPTION:
Detects execution of a binary at the exact path %ProgramData%\Microsoft\Windows\
Telemetry\msedge.exe, the confirmed Stage 3 persistence masquerade used by the
MovieReaper torrent-delivered loader framework. This is not a legitimate Edge
install or update-helper location under any documented Microsoft deployment
pattern. Used to catch the respawned, UAC-bypassed persistence stage after
initial infection from a poisoned torrent download.

MITRE: T1036.005 (Masquerading: Match Legitimate Name or Location), T1548.002 (Bypass User Account Control)
Tactics: Defense Evasion, Privilege Escalation
Priority: HIGH (escalate immediately - no legitimate explanation for this exact path)
FP Sources: none expected; if triggered, treat as a true positive pending investigation

═══════════════════════════════════════════════════════════
ALERT PACKAGE
═══════════════════════════════════════════════════════════

SUBJECT:
🚨 HUNT ALERT 🚨 — MovieReaper Masquerade Detected (Possible Persistence)

BODY:
A process named msedge.exe was observed executing from
%ProgramData%\Microsoft\Windows\Telemetry — a path with no legitimate Microsoft
Edge installation or update purpose. This is the confirmed Stage 3 persistence
mechanism for the MovieReaper torrent-delivered loader framework: a UAC-bypassed
respawn of the original loader, masquerading under a trusted-sounding filename.
This alert fires on execution (ProcessRollup2/SyntheticProcessRollup2), not on a
blocked attempt, so if you see this the process very likely ran. Check the parent
process, the original loader's arrival vector (torrent client / browser download
history), and pivot immediately to network telemetry for Stage 1/Stage 2 C2
contact (deadhub[.]org, 193.23.118[.]155, 208.64.33[.]90, 208.94.246[.]53) and to
DNS telemetry for Solana RPC lookups from the same host.

INVESTIGATION CHECKLIST:
1. Confirm execution vs. write-only: check #event_simpleName — ProcessRollup2/
   SyntheticProcessRollup2 means it ran; a PeFileWritten-only hit with no matching
   process event means the drop occurred but may not have executed yet.
2. Inspect ParentBaseFileName — a UAC-bypass LOLBin (fodhelper.exe, eventvwr.exe,
   computerdefaults.exe, sdclt.exe) or the original long-filename loader as parent
   is a strong confirmation.
3. Check CommandLine for any special respawn argument — Securelist notes the
   respawned process carries a flag that lets it skip anti-sandbox checks.
4. Pivot to DnsRequest/NetworkConnectIP4 on the same aid for deadhub[.]org,
   193.23.118[.]155, 208.64.33[.]90, 208.94.246[.]53, and any Solana RPC hostname
   (api.mainnet.solana.com or similar) in the surrounding time window.
5. Check UserName and browser/torrent-client download history for a recent
   movie-themed .exe download (e.g., referencing "the odyssey" or another
   current release).
6. Isolate the host if: execution confirmed AND any C2 contact (network or
   Solana RPC) is also present in the same window.

PIVOT QUERIES:

--- Pivot 1: All process activity from the confirmed masquerade path, this host ---
>> YOU NEED:  ComputerName         (hostname from the alert)
              Alert timestamp      (from the alert — set LogScale window to +/-30 min)
>> FILL IN:   ComputerName="REPLACE_WITH_HOSTNAME"

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| ComputerName="REPLACE_WITH_HOSTNAME"
| ImageFileName=/^C:\\ProgramData\\Microsoft\\Windows\\Telemetry\\/i
| table([@timestamp, UserName, ImageFileName, CommandLine, ParentBaseFileName])
| sort(@timestamp, order=desc)

--- Pivot 2: Environment-wide frequency (single host = targeted; many = wider incident) ---
(no variables to fill in — runs as-is)

#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/i
| ImageFileName=/^C:\\ProgramData\\Microsoft\\Windows\\Telemetry\\msedge\.exe$/i
| groupBy([ComputerName], function=count(as=TotalHits), limit=500)
| sort(TotalHits, order=desc)

Scheduled Search 2 — Non-Browser Solana RPC Query (Q9)

NAME:
HUNT: MovieReaper C2 Resolution - Non-Browser Solana RPC Query

DESCRIPTION:
Detects a non-browser, non-wallet process resolving a public Solana blockchain
RPC hostname (api.mainnet.solana.com and equivalents). MovieReaper's Stage 2
shellcode uses the Solana getAccountInfo RPC call as a takedown-resistant dead
drop for its encrypted second-stage C2 address. Legitimate business processes
essentially never make this call outside approved developer/blockchain tooling,
which makes this one of the most durable behavioral signals in the pack — it
survives full C2 domain/IP rotation.

MITRE: T1102.001 (Web Service: Dead Drop Resolver)
Tactics: Command and Control
Priority: MEDIUM (escalate to HIGH if the host has no prior blockchain-dev baseline)
FP Sources: Solana CLI / Anchor developer tooling, crypto trading or monitoring bots, approved blockchain-integration services

═══════════════════════════════════════════════════════════
ALERT PACKAGE
═══════════════════════════════════════════════════════════

SUBJECT:
⚠️ HUNT ALERT ⚠️ — Non-Browser Solana RPC Query Detected (Possible Blockchain C2 Resolution)

BODY:
A process that is not a recognized browser or Solana developer tool resolved a
public Solana RPC hostname. This is the signature behavior of MovieReaper's
Stage 2 shellcode retrieving its encrypted second-stage C2 address from the
Solana blockchain. This alert fires on the DNS lookup, which may precede actual
C2 contact by only seconds — treat it with urgency comparable to a live C2 beacon
until proven otherwise. The two most important things to check are (1) whether
this host has any legitimate reason to touch Solana infrastructure, and (2)
whether the same process shows any of the other MovieReaper indicators (Q1, Q4,
Q7, Q8) in the same window.

INVESTIGATION CHECKLIST:
1. Check FileName/ImageFileName of the resolving process — a browser or a known
   Solana CLI/Anchor binary lowers priority sharply; anything else is a red flag.
2. Check whether this host or user has ANY documented blockchain-development or
   trading responsibility — if not, this is very likely malicious.
3. Pivot to NetworkConnectIP4 for the same process immediately after the DNS
   lookup — an actual TLS connection following the RPC query is the C2 handoff.
4. Cross-check the same aid for Q1 (hash), Q4 (masquerade path), and Q7/Q8
   (Stage 1/2 C2) in the preceding hours — MovieReaper's chain means these often
   cluster together.
5. Isolate if: no legitimate blockchain-dev justification AND any correlated
   MovieReaper indicator is also present.

PIVOT QUERIES:

--- Pivot 1: Full DNS + correlated process detail for this host ---
>> YOU NEED:  ComputerName         (hostname from the alert)
              Alert timestamp      (from the alert — set LogScale window to +/-30 min)
>> FILL IN:   ComputerName="REPLACE_WITH_HOSTNAME"

#event_simpleName=/^DnsRequest$/i
| ComputerName="REPLACE_WITH_HOSTNAME"
| DomainName=/^(api\.mainnet\.solana\.com|api\.mainnet-beta\.solana\.com|.+\.helius-rpc\.com|.+\.quiknode\.pro|rpc\.ankr\.com|solana-mainnet\.g\.alchemy\.com)$/i
| table([@timestamp, UserName, DomainName, ContextProcessId_decimal])
| sort(@timestamp, order=desc)

--- Pivot 2: Environment-wide frequency, grouped by resolving process ---
(no variables to fill in — runs as-is)

#event_simpleName=/^DnsRequest$/i
| DomainName=/^(api\.mainnet\.solana\.com|api\.mainnet-beta\.solana\.com|.+\.helius-rpc\.com|.+\.quiknode\.pro|rpc\.ankr\.com|solana-mainnet\.g\.alchemy\.com)$/i
| groupBy([ComputerName], function=count(as=TotalHits), limit=500)
| sort(TotalHits, order=desc)
11

Machine-Readable IOC Appendix

Confirmed Loader/Implant Hashes (MD5)detect
A0B13781EDD7CFDAB13D79AFFF3C83C1  (Stage 1 loader - confirmed identical across many movie-themed filenames)
4843F9FAFCAE492F11E2D4D33DBB4CDD
5310CABAE3FBE6DB8742849B588093F9
70060341CAF3338697A7DDFE0FB62875
AD4643EEA15AC286FA47D1131F9EF756
D0B967571AC8A3863C7F324BF5BDE99C
D88D550D0FB8E60CFFFF3EA61FF7A067
# Excluded: 4334BBAEA8DE33BF9D45E9B4E4E3BC2 is only 31 hex chars in the source (malformed) - not shipped
Network Infrastructuredetect
deadhub[.]org  (Stage 1 C2 - shellcode delivery)
193.23.118[.]155  (Stage 1 C2 IP fallback)
208.64.33[.]90  (Stage 2 C2)
208.94.246[.]53  (Stage 2 C2)
/cloud/v192.4/ui/sync-status-icons.png  (one observed masquerade URI path on deadhub[.]org - malware randomizes path segments)
Host / Persistence Indicatorshunt only
%ProgramData%\Microsoft\Windows\Telemetry\msedge.exe  (Stage 3 persistence masquerade path - detect/block via Q3/Q4/Q6)
Global\E4AyDKzvEhe2hgAr  (mutex - no native Falcon CQL telemetry, see Sec.7)
Global\fnulSktzSqvVLXHU  (mutex - no native Falcon CQL telemetry, see Sec.7)
Solana Blockchain Indicatorscontext / monitoring only
6pnDGAiHgyPdmckM5Qt1YbanGzrX43WLEU159nRaNLDm  (Solana account holding the encrypted stage-2 C2 address)
CSiY8bQLBYPdfPWkwipBzH6sijTVQVVsA279JQdvwHtL  (custom Solana program used to write the encrypted C2 data)
api.mainnet.solana.com  (public Solana RPC endpoint used for getAccountInfo resolution - not a blockable IOC, supports the behavioral hunt in Q9)
Hardening Verification Checklistquick audit
[ ] deadhub[.]org and the three confirmed C2 IPs blocked/sinkholed at DNS or firewall - verified
[ ] WDAC/AppLocker denies unsigned executable launch from %ProgramData% and torrent-client download folders - verified
[ ] UAC set to highest notification level; auto-elevation of fodhelper/eventvwr/computerdefaults/sdclt not silently permitted - verified
[ ] Falcon Custom IOA deployed (Detect mode) for the confirmed hash set and the exact msedge.exe masquerade path - verified
[ ] Torrent/P2P client installation blocked or allowlisted on managed endpoints - verified
[ ] Outbound egress policy reviewed for direct process-level HTTPS to public blockchain RPC endpoints from non-approved hosts - verified

Falcon IOC Management Import (CSV)

type,value,action,severity,expiration,description,tags
md5,A0B13781EDD7CFDAB13D79AFFF3C83C1,detect,critical,2027-09-21,MovieReaper Stage 1 loader,campaign:MovieReaper
md5,4843F9FAFCAE492F11E2D4D33DBB4CDD,detect,critical,2027-09-21,MovieReaper loader/implant,campaign:MovieReaper
md5,5310CABAE3FBE6DB8742849B588093F9,detect,critical,2027-09-21,MovieReaper loader/implant,campaign:MovieReaper
md5,70060341CAF3338697A7DDFE0FB62875,detect,critical,2027-09-21,MovieReaper loader/implant,campaign:MovieReaper
md5,AD4643EEA15AC286FA47D1131F9EF756,detect,critical,2027-09-21,MovieReaper loader/implant,campaign:MovieReaper
md5,D0B967571AC8A3863C7F324BF5BDE99C,detect,critical,2027-09-21,MovieReaper loader/implant,campaign:MovieReaper
md5,D88D550D0FB8E60CFFFF3EA61FF7A067,detect,critical,2027-09-21,MovieReaper loader/implant,campaign:MovieReaper
domain,deadhub.org,detect,high,2026-12-20,MovieReaper Stage 1 C2 - shellcode delivery,campaign:MovieReaper
ipv4,193.23.118.155,detect,high,2026-10-21,MovieReaper Stage 1 C2 IP fallback,campaign:MovieReaper
ipv4,208.64.33.90,detect,high,2026-10-21,MovieReaper Stage 2 C2,campaign:MovieReaper
ipv4,208.94.246.53,detect,high,2026-10-21,MovieReaper Stage 2 C2,campaign:MovieReaper
All rows above ship as detect, not prevent — every hash/domain/IP indicator in this pack is single-sourced to Securelist (see §2), and this pack's own bar for a prevent-tier action is two independent saved sources. Domains and IPs would additionally follow detect-first governance regardless (IP infrastructure is volatile; see §13).

JSON (machine-readable)

{
  "threat": "MovieReaper",
  "pack_version": "2026-09-21",
  "generated": "2026-09-21",
  "hashes": [
    { "algo": "md5", "value": "A0B13781EDD7CFDAB13D79AFFF3C83C1", "role": "stage1_loader", "confidence": "high", "sources": ["01"] },
    { "algo": "md5", "value": "4843F9FAFCAE492F11E2D4D33DBB4CDD", "confidence": "high", "sources": ["01"] },
    { "algo": "md5", "value": "5310CABAE3FBE6DB8742849B588093F9", "confidence": "high", "sources": ["01"] },
    { "algo": "md5", "value": "70060341CAF3338697A7DDFE0FB62875", "confidence": "high", "sources": ["01"] },
    { "algo": "md5", "value": "AD4643EEA15AC286FA47D1131F9EF756", "confidence": "high", "sources": ["01"] },
    { "algo": "md5", "value": "D0B967571AC8A3863C7F324BF5BDE99C", "confidence": "high", "sources": ["01"] },
    { "algo": "md5", "value": "D88D550D0FB8E60CFFFF3EA61FF7A067", "confidence": "high", "sources": ["01"] }
  ],
  "c2_infrastructure": [
    { "type": "domain", "value": "deadhub.org", "role": "stage1_c2", "sources": ["01", "02"] },
    { "type": "ipv4", "value": "193.23.118.155", "role": "stage1_c2_fallback", "sources": ["01", "02"] },
    { "type": "ipv4", "value": "208.64.33.90", "role": "stage2_c2", "sources": ["01"] },
    { "type": "ipv4", "value": "208.94.246.53", "role": "stage2_c2", "sources": ["01"] }
  ],
  "host_indicators": [
    { "type": "file_path", "value": "%ProgramData%\\Microsoft\\Windows\\Telemetry\\msedge.exe", "role": "stage3_persistence_masquerade", "sources": ["01", "02"] },
    { "type": "mutex", "value": "Global\\E4AyDKzvEhe2hgAr", "sources": ["01"] },
    { "type": "mutex", "value": "Global\\fnulSktzSqvVLXHU", "sources": ["01"] }
  ],
  "blockchain_indicators": [
    { "type": "solana_account", "value": "6pnDGAiHgyPdmckM5Qt1YbanGzrX43WLEU159nRaNLDm", "role": "encrypted_c2_dead_drop", "sources": ["01"] },
    { "type": "solana_program", "value": "CSiY8bQLBYPdfPWkwipBzH6sijTVQVVsA279JQdvwHtL", "role": "custom_write_program", "sources": ["01"] }
  ],
  "excluded": [
    { "type": "md5", "value": "4334BBAEA8DE33BF9D45E9B4E4E3BC2", "reason": "malformed in source - 31 hex characters, not shipped" }
  ]
}
12

Detection Validation Gates

GateCheckStatus
Source provenanceBoth cited sources (2/2) were fetched this run as raw HTML, extracted verbatim, and saved to MovieReaper-Torrent-Solana-Hunt-sources/.PASS
IOC traceabilityEvery atomic indicator shipped in §4/§11 traces to at least one saved snapshot; none were invented.PASS
No fabricated/padded hashThe malformed 31-character hash from the source is explicitly excluded rather than padded or guessed to 32 characters.PASS
Prompt-injection screeningBoth fetched sources reviewed for embedded instructions directed at the researching agent; none found. One candidate third source (gbhackers.com) was dropped rather than cited from a non-verbatim summary.PASS
Prevent-tier two-source ruleNo CSV row is marked prevent — every atomic indicator is single-sourced to Securelist, so all rows ship at detect per this pack's own bar.PASS
Field-name sanity passCQL queries use standard Falcon event types (ProcessRollup2/SyntheticProcessRollup2, PeFileWritten, NewExecutableWritten, DnsRequest, NetworkConnectIP4) and documented fields. Validate against your tenant's schema before production deployment.PASS
No hallucinated mutex fieldNo CQL query claims a mutex-creation event/field; the mutex IOCs are explicitly routed to non-CQL tooling in §7 instead.PASS
Regex hygieneEvery CQL regex matches basenames via FileName/ImageFileName with escaped backslashes; no unescaped path slash appears inside any /.../ regex delimiter.PASS
HTML escapingNo bare angle-bracket characters appear unescaped inside any <pre> block in a way that forms an unintended tag; placeholder tokens use <pre>-safe >> markers, not angle brackets.PASS
No in-query time expressionsNo query uses now() - N on the right of a comparison; all queries carry a // LOOKBACK: comment instead and rely on the Falcon time picker.PASS
Tuning coverageEvery FP-medium-or-higher query (Q2, Q5, Q9, Q10) carries an in-card // TUNING: line with a specific exclusion, not just prose above the card.PASS
13

Hardening — Tiered & Deployable

Controls are scoped to the platforms MovieReaper actually touches: Windows endpoints (execution, persistence, UAC), network egress (C2 domain/IP and blockchain RPC), and user/policy controls around torrent usage. Each control cites a MITRE mitigation plus a platform benchmark or vendor guidance.

Immediate — deploy this week
ControlMITRE MitigationAuthorityVerify
Block/sinkhole deadhub.org and the three confirmed C2 IPs at DNS resolver and perimeter firewallM1037 Filter Network TrafficCIS Controls v8 §9.2 (DNS Filtering); standard perimeter-firewall blocklist practiceAttempt DNS resolution / outbound connection to the blocked indicators from a test host inside the network — expect failure/sinkhole response
WDAC or AppLocker: deny execution of unsigned binaries from %ProgramData% and common torrent-client download foldersM1038 Execution PreventionCIS Microsoft Windows Benchmark §18.9.x (Device Guard/Application Control); Microsoft WDAC design guideGet-AppLockerPolicy -Effective or Get-CIPolicy — confirm the rule is enforced (not audit-only) on a pilot host
Raise UAC to "Always notify" and disable silent auto-elevation for the common UAC-bypass LOLBins (fodhelper, eventvwr, computerdefaults, sdclt)M1052 User Account ControlCIS Microsoft Windows Benchmark §2.3.17.x (User Account Control settings); MS Security Baseline "User Account Control" sectionreg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin — expect value 2
Near-Term — 1 to 4 weeks (pilot ring first)
ControlMITRE MitigationAuthorityVerify
Deploy Falcon Custom IOA rules (Detect mode) for the confirmed hash set and the exact msedge.exe masquerade pathM1040 Behavior Prevention on EndpointCrowdStrike Falcon Custom IOA documentationReview Falcon detection console after 14 days for TP/FP rate before considering promotion to Prevent
Egress-filtering policy flagging or blocking direct process-level HTTPS to public blockchain RPC endpoints from hosts with no approved blockchain-development roleM1037 Filter Network Traffic⚠ best-practice, no formal benchmark — this is a novel egress-control category; no CIS/DISA item yet covers "public blockchain RPC as C2 dead-drop"Confirm the proxy/firewall rule logs or blocks a test getAccountInfo call from a non-approved host
Block or tightly allowlist torrent/P2P client installation on managed endpoints via application controlM1042 Disable or Remove Feature or ProgramCIS Controls v8 §2.3 (Address Unauthorized Software)Attempt to install a common torrent client on a pilot-ring managed endpoint — expect denial or SOC alert
Strategic — 1 to 3 months
ControlMITRE MitigationAuthorityVerify
Fleet-wide enforced (not audit-only) application control (WDAC) as the default execution posture, not just a targeted ProgramData/Telemetry ruleM1038 Execution PreventionCIS Microsoft Windows Benchmark full application-control section; NIST SP 800-53 CM-7Sample audit of managed endpoints confirming WDAC is in enforced mode fleet-wide, not just the pilot ring
User-awareness training specifically covering torrent/piracy-based malware delivery, including the "install guides tell you to disable AV" social-engineering pattern Kaspersky notes as a repeat tacticM1017 User TrainingNIST SP 800-50 (Security Awareness Program); CIS Controls v8 §14Post-training phishing/social-engineering simulation measuring click-through on a torrent-themed lure
Baseline "normal" blockchain-RPC-calling processes/hosts organization-wide so future anomalies (like Q9) are cheap to triage rather than a cold start each timeM1047 Audit (indirectly, via a maintained baseline)⚠ best-practice, no formal benchmark — novel telemetry category; document the baseline internallyConfirm a documented, reviewed list of approved blockchain-RPC-calling hosts/services exists and is used to scope Q9's tuning
14

Deployable Playbooks

Playbook A — Block Confirmed MovieReaper Network Indicators

Prerequisites: Admin access to internal DNS resolver / DNS filtering service and
  perimeter firewall change rights.
Reboot required: No.

# Step 1 - Add the confirmed domain to your DNS sinkhole/filtering policy
# (example shown for a generic RPZ-style DNS firewall zone file entry)
deadhub.org CNAME sinkhole.internal.

# Step 2 - Add the confirmed IPs to your perimeter firewall deny list
# (example shown as generic iptables syntax - adapt to your platform)
iptables -A OUTPUT -d 193.23.118.155 -j DROP
iptables -A OUTPUT -d 208.64.33.90 -j DROP
iptables -A OUTPUT -d 208.94.246.53 -j DROP

# Step 3 - Verify
nslookup deadhub.org        # expect sinkhole/NXDOMAIN response
# attempt an outbound connection test to each blocked IP - expect timeout/refusal

Rollback: Remove the RPZ/sinkhole entry and the three iptables DROP rules; no
  other state change to undo.

Playbook B — WDAC Deny Rule for ProgramData\Microsoft\Windows\Telemetry Execution

Prerequisites: Windows 10 1903+/Windows 11, WDAC policy authoring rights, a pilot
  ring identified for compatibility testing.
Reboot required: Yes - policy refresh/enforcement typically requires a restart
  or a policy-refresh cycle depending on deployment method.

# Step 1 - Confirm current WDAC policy mode (audit vs enforced)
Get-CIPolicy -All | Select-Object PolicyID, PolicyOptions

# Step 2 - Add an explicit deny rule for any executable in the Telemetry subfolder
New-CIPolicyRule -FilePathRule "C:\ProgramData\Microsoft\Windows\Telemetry\*" -Deny

# Step 3 - Merge into your baseline policy, sign, and deploy to the pilot ring first
Merge-CIPolicy -PolicyPaths @("Base.xml","TelemetryDeny.xml") -OutputFilePath "Merged.xml"

# Step 4 - Verify
# Attempt to run a benign renamed .exe from the Telemetry folder on a pilot host -
# expect a WDAC block event (CodeIntegrity Event ID 3077 in Enforced mode, 3076 in Audit)

Rollback: Remove the TelemetryDeny rule from the merged policy, re-sign, and
  redeploy the prior policy version (keep the pre-change signed policy backed up
  before deployment).

Playbook C — Harden UAC Against Silent Bypass

Prerequisites: GPO or Intune deployment rights; pilot ring for testing impact on
  any legacy software that relies on silent elevation.
Reboot required: No (policy refresh/gpupdate is sufficient).

# Step 1 - Set UAC to "Always notify" and require the secure desktop
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 2 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 1 /f

# Step 2 - Ensure the built-in Administrator account also requires UAC prompts
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v FilterAdministratorToken /t REG_DWORD /d 1 /f

# Step 3 - Verify
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin
# expect value 2

# Step 4 - Spot-check with Q10 in this pack post-deployment - expect no successful
# silent elevation via fodhelper.exe/eventvwr.exe/computerdefaults.exe/sdclt.exe

Rollback: reg add the same keys back to their prior values (commonly
  ConsentPromptBehaviorAdmin=5, PromptOnSecureDesktop=1, FilterAdministratorToken=1
  is the Windows default - confirm your pre-change baseline before rolling back).

Playbook D — Falcon Custom IOA for Confirmed Hashes and Masquerade Path (Detect Mode)

Prerequisites: Falcon Custom IOA rule authoring rights.
Reboot required: No.

# Falcon Console -> Endpoint Security -> Custom IOA Rules -> New Rule Group
# "MovieReaper Defense" (Detect severity: High)

# Rule 1 - Confirmed hash execution
#   Rule Type: Process Creation
#   Field: MD5 Hash   Operator: matches any of the 7 confirmed hashes (see Sec.11)
#   Action: Detect (do not enable Block until 14-day FP review is clean)

# Rule 2 - Exact masquerade path
#   Rule Type: Process Creation
#   Field: Image Filename   Operator: matches (regex)
#   Pattern: .*\\ProgramData\\Microsoft\\Windows\\Telemetry\\msedge\.exe$
#   Action: Detect

Rollback: Disable or remove the rule group in the Falcon console; no endpoint
  state change to undo.
15

Containment Runbook

Phase 1 — Isolate

  • Network-isolate (Falcon Network Containment) any host firing Q1 (confirmed hash), Q3/Q4 (Telemetry-folder drop/execution), or Q7/Q8 (confirmed C2 contact).
  • Treat any Q9 (Solana RPC) hit on a host with no documented blockchain-development role as presumptively malicious pending investigation.
  • Preserve current process/network/DNS Falcon telemetry for affected hosts before further remediation.

Phase 2 — Eradicate

  • Remove the persistence binary at %ProgramData%\Microsoft\Windows\Telemetry\msedge.exe and confirm no autostart entry (Run key/scheduled task/service) still references it — the exact autostart mechanism is undocumented by either source, so check all three categories.
  • Terminate any remaining loader/implant processes matching the confirmed hash set.
  • Because the final-stage implant is a 21-command file manager with file read/copy/preview capability, treat any host that reached Stage 4 as a potential data-exposure incident, not just a malware infection — inventory what files were accessible to the compromised user account.
  • Rotate credentials for any account active on an affected host during the suspected dwell window, prioritizing accounts with access to sensitive file shares (the file-manager implant's core capability is file access and exfiltration staging).

Phase 3 — Recover

  • Validate backup integrity from a copy predating the earliest suspected compromise indicator on the host.
  • Re-image affected endpoints where the persistence/UAC-bypass chain fully completed, rather than relying on in-place remediation of an undocumented autostart mechanism.
  • Re-verify Playbooks B and C (WDAC Telemetry-folder deny, UAC hardening) are in effect on rebuilt hosts before returning them to production.
  • Monitor for renewed activity from the same actor — Kaspersky traces this group's activity back to October 2025 with an evolving toolset, so recurrence with a modified loader/path is plausible.
16

Detection Coverage Map

Attack Chain StepCovering Query / ControlStatus
Resource Development (itorrents.org compromise)None — outside org telemetry; policy/awareness only (§13)Gap — not endpoint-detectable by design
Initial Access / Execution (torrent download + run)Q1 (hash), Q2 (torrent-client child process)Covered
Stage 1 Loader / C2Q7 (DNS), Q8 (network) — both IOA candidatesCovered
Stage 2 Shellcode / Solana C2 ResolutionQ9 (behavioral — durable, medium FP)Partial — behavioral only, requires org-specific baseline tuning
Stage 3 UAC BypassQ10 (generic LOLBin proxy hunt — exact method undocumented)Partial — low-medium confidence, high FP without correlation
Stage 3 Persistence (Telemetry masquerade)Q3 (write-time), Q4 (exact path, IOA), Q5/Q6 (variant catch)Covered
Persistence autostart mechanismNone — mechanism not named in either sourceGap — flagged rather than guessed; re-check sources for future disclosure
Named mutexesNon-CQL only (§7) — no native Falcon fieldGap — mechanically cannot be a CQL field; routed to RTR/Handle.exe instead
Stage 4 File Manager / CollectionNo dedicated query — covered indirectly by sustained C2 beaconing from the masquerade process (Q4 correlated with ongoing network activity)Partial — command-level telemetry for the 21-command protocol is not documented
ExfiltrationNone dedicated — implant uses the established C2 channel; no distinct exfil-protocol signature publishedGap — monitor Q7/Q8 network volume as the best available proxy
17

Hunt Summary Ticket

TICKET: HUNT-MOVIEREAPER-2026-09-21
THREAT: MovieReaper (torrent-delivered, modular, multi-stage loader with
        Solana-blockchain C2 resolution)
VERSION: 2026-09-21
STATUS: Ready for tenant validation
PRIORITY: High
OWNER: ai@hutzley.com

SUMMARY:
  MovieReaper is a previously unknown crimeware framework disclosed by
  Kaspersky on Securelist on 2026-09-17 (pack built 2026-09-21), distributed
  via a compromise of the shared itorrents.org torrent-file repository. The
  four-stage chain (loader -> shellcode -> UAC-bypass persistence -> file
  manager) is notable for using the Solana blockchain's getAccountInfo RPC
  as takedown-resistant storage for its second-stage C2 address - a novel,
  durable behavioral signal independent of any single domain/IP. Several
  hundred victims (individuals and organizations) identified across
  Europe, Asia, and Africa.

SCOPE:
  10 CQL hunt queries (4 IOA candidates: Q1, Q3, Q4, Q7), 5 native/non-CQL
  checks (including an explicit mutex-telemetry gap), packaged alert
  content for 2 scheduled searches, tiered hardening (3 immediate / 3
  near-term / 3 strategic controls), 4 deployable playbooks, 3-phase
  containment runbook.

NEXT ACTIONS:
  1. Validate all field names against your Falcon tenant's schema before
     enabling any Custom IOA in Prevent mode.
  2. Deploy Playbook A (network block) and Playbook B (WDAC Telemetry-folder
     deny) immediately - lowest friction, highest leverage.
  3. Stand up or confirm a baseline of approved blockchain-RPC-calling
     hosts so Q9 is actionable rather than noisy from day one.
  4. Re-check Securelist and IT-Connect for hash/C2 updates or the missing
     31st-hash correction - none exists as of 2026-09-21.
  5. Treat any host that reached Stage 4 (file manager) as a potential
     data-exposure incident, not just a malware infection - see Sec.15.
18

Changelog

v1.02026-09-21Initial HuntPack release — full pipeline run (web-hunter-v2 → threat-hunter-v2 → crowdstrike-logscale-v3 → alert-builder-v2 → threat-hardening-v2 → review-v2). 2 sources fetched and saved verbatim; 10 CQL queries; 4 IOA candidates; 2 packaged alert/scheduled-search sets; tiered hardening + 4 playbooks + containment runbook.
19

References

TierSourceUsed ForAccess Date
T1Kaspersky Securelist — MovieReaper: Trojan attack via movie torrents, including The OdysseyPrimary technical and IOC source: full attack chain, hashes, mutexes, file path, domains/IPs, Solana account/program address2026-09-21
T2IT-Connect — iTorrents.org Compromised to Spread a Windows Malware Loader Instead of MoviesIndependent corroboration: compromise mechanism, chain shape, domain/IP, masquerade path, 21-command capability, victim geography2026-09-21
Both source snapshots (verbatim fetched text) are saved under MovieReaper-Torrent-Solana-Hunt-sources/ alongside this file for provenance validation. A third candidate source (gbhackers.com) was deliberately excluded — see §2.