DeadLock Ransomware — Rust-Based Encryptor with Decentralized Recovery Infrastructure
Executive Summary
DeadLock is a financially motivated Rust-based ransomware encryptor first observed in July 2025 and tracked by Microsoft Threat Intelligence as deployed by multiple operators, including an affiliate of the Lynx and INC ransomware ecosystems. As of mid-2026 it has claimed more than 80 victims — over half in Europe — spanning IT, mining, transportation/logistics, manufacturing, hospitality, and consumer goods. The attacker's objective is classic double extortion: encrypt with a cryptographically sound hybrid scheme (Curve25519 ECDH + XSalsa20-Poly1305 key wrap, XChaCha20 file content), then pressure payment through a self-contained HTML recovery chat that negotiates over the Session messenger network and hosts stolen data on Wasabi S3-compatible storage.
The distinguishing engineering choice is decentralized recovery infrastructure: two Polygon blockchain smart contracts store the current proxy-server address and the group's leak-site blog content, so operators can rotate infrastructure by writing a new value to the chain rather than re-touching the victim-facing binary or re-registering domains. This materially weakens the traditional defender playbook of domain/IP takedown — the malware author explicitly designed around it.
Before encryption, DeadLock runs a substantial pre-encryption evasion chain: language/locale geofencing self-delete, a UAC-bypass attempt via a randomly-named 8-character uppercase .cmd file, token-privilege escalation, mass disablement of Defender/VSS/backup/AD services via the registry, and a three-method Windows Event Log wipe. Encryption itself is resource-aware (throttles new file dispatch above 29% memory / 70% CPU) and uses tiered partial encryption for large files (as low as 10% of bytes touched above ~500MB), which matters directly for databases, VM images, and backup stores.
Defender priority: because the C2/negotiation/leak infrastructure is designed to survive takedown, domain and IP blocking buys little durable protection here. The highest-leverage defensive lever is pre-encryption host behavior — the registry-based mass service-disablement pattern (Section 8, Q5) and the UAC-bypass artifact (Q4) both fire before a single file is touched, and are the best chance to stop this family before impact.
Source Review & Web Hunter Notes
| # | Source | Tier | Type | Contribution |
|---|---|---|---|---|
| 1 | Microsoft Security Blog (2026-08-10) | T1 | Vendor primary | Full technical breakdown, complete confirmed IOC table, Defender detection names, execution flow (config → evasion → encryption → post-encryption), mitigation guidance |
| 2 | The Hacker News (2026-08) | T2 | Press | Corroboration; wallet/contract addresses, targeted-country list, current claimed-victim count |
| 3 | BleepingComputer (2026-08) | T2 | Press | Corroboration on the blockchain-resilience angle and sector/geography spread |
| 4 | Group-IB Blog (2026-08) | T2 | Vendor blog | Independent technical corroboration of Polygon smart-contract proxy-rotation mechanism |
Confidence assessment
High — the primary Microsoft technical writeup (T1) is independently corroborated by three additional outlets (T2) on every atomic indicator and on the core architectural claim (blockchain-stored proxy/blog contracts). No indicator disagreements were found across the four saved sources.
Contradictions & gaps
- Claimed-victim count differs slightly by source and date (Microsoft: >80 as of July 2026; The Hacker News: 96 as of August 2026). Treated as campaign growth / recency drift between publication dates, not a factual contradiction.
- No public PoC or decryptor exists as of this writing; the cryptographic design (per-file ephemeral Curve25519 keypair, zero crypto_box nonce) is assessed by Microsoft as sound with no practical decryption path absent the operator's private key.
- Initial-access vector is not documented in any of the four saved sources — none describe the phishing/exploit/RDP vector used to land the encryptor. Flagged as a genuine intelligence gap, not an oversight.
Hunt Brief & Attack Chain
Hunt hypotheses
- H1: If DeadLock's pre-encryption phase is active on a host, the registry will show Start-type changes (to disabled) across three or more of a specific service set (WinDefend, vss, swprv, wbengine, mssearch, vmcompute, vmms, ADWS, NTDS, kdc) within a short window on that host.
- H2: If DeadLock attempted self-elevation from a non-admin context, a randomly-named 8-character all-uppercase
.cmdfile executed via a RunAs-style launch will appear in process telemetry shortly before any service/registry tampering. - H3: If encryption has begun, a burst of file-rename events ending in
.dlockwill appear per host, followed byHOW_RECOVER.<UID>.txtandRECOVERY_CHAT.<UID>.htmlbeing written to encrypted directories, drive roots, and Desktop folders.
Attack chain
| # | Stage | Behavior | MITRE |
|---|---|---|---|
| 1 | Pre-execution | Embedded config blob decoded via 8-byte XOR key | T1027 |
| 2 | Defense evasion | System/UI LANGID checked against CIS/select Middle-East locale list; self-deletes on match, no encryption performed | T1614.001 |
| 3 | Priv-esc / defense evasion | Random 8-char uppercase .cmd generated, launched via ShellExecuteW with RunAs; retries up to 10x on UAC denial | T1548.002 |
| 4 | Privilege escalation | Enables SeDebug/SeRestore/SeBackup/SeTakeOwnership/SeAudit/SeSecurity privileges when elevated | T1134 |
| 5 | Anti-forensics | Silently empties recycle bin on all drives | T1070 (adjacent) |
| 6 | Impact prep | Registers custom icon for .dlock extension via HKLM\SOFTWARE\Classes\.dlock\DefaultIcon | T1112 |
| 7 | Defense evasion / impact prep | Mass service stop+disable: Defender, VSS/backup (swprv, wbengine), search, Hyper-V, AD services (ADWS, NTDS, kdc) | T1489 / T1562.001 / T1490 |
| 8 | Defense evasion | Mass termination of security, backup/cloud-sync, remote-access, and shell/system processes | T1562.001 / T1489 |
| 9 | Anti-forensics | Triple-method event log wipe: classic API clear, registry Enabled=0 under WINEVT\Channels + restrictive SDDL, wevtapi.dll enumeration for custom channels | T1070.001 / T1562.002 |
| 10 | Impact | Tiered, resource-aware, per-file-ephemeral-key encryption (Curve25519 ECDH + XSalsa20-Poly1305 wrap, XChaCha20 content); file renamed <name>.<UID>.dlock | T1486 |
| 11 | Impact | Wallpaper replaced via HKLM\...\Policies\System\Wallpaper; ransom notes dropped (HOW_RECOVER.<UID>.txt, RECOVERY_CHAT.<UID>.html) | T1491.001 / T1486 |
| 12 | C2 / extortion | Recovery chat resolves proxy via Polygon smart contract, negotiates over Session messenger, serves leak data via Wasabi S3 | T1102.002 (inferred) |
| 13 | Cleanup | Self-deleting batch loop removes the encryptor binary, then itself | T1070.004 |
Consolidated IOC Table
| Type | Value | Confidence | Action | Context |
|---|---|---|---|---|
| SHA-256 | a1fdf65020ce4a0f0940c793c6425baf8a0b994ec48b9baaf72788661a9d29f4 | High | detect | DeadLock encryptor binary [1] |
| Domain | deadlock.liveblog365.com | High | detect | Leak-site domain [1] — see Section 10 CSV for the importable form |
| Domain | dlock.liveblog365.com | High | detect | Leak-site domain [1] — see Section 10 CSV for the importable form |
| Domain | deadlockblog.great-site.net | High | detect | Leak-site mirror domain [1] — see Section 10 CSV for the importable form |
| Domain | deadlockblog.medianewsonline.com | High | detect | Leak-site mirror domain [1] — see Section 10 CSV for the importable form |
| Onion (v3) | deadblogdbdu5wprek7wa2o4ce7rnt6u6ntqeud3hzjjcveosgpsqqqd[.]onion | High | pivot | Tor mirror of leak site [1] — not resolvable via standard corporate DNS telemetry |
| Pubkey | 03bf50bbf97c4e951e66ff12b689a37a3ce675b4921e254eae76da77573843e4a9 | High | enrich | Operator Curve25519 pubkey embedded in config [1] — useful for sample/config matching, not a network-observable IOC |
| File extension | .dlock | High | hunt | Encrypted-file extension [1,2,3,4] |
| Filename pattern | HOW_RECOVER.<UID>.txt | High | hunt | Text ransom note [1] |
| Filename pattern | RECOVERY_CHAT.<UID>.html | High | hunt | HTML recovery-chat note [1,2,4] |
| Registry | HKLM\SOFTWARE\Classes\.dlock\DefaultIcon | Medium | hunt | Custom icon registration artifact [1] |
| Registry | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Wallpaper | Medium | hunt | Ransom wallpaper artifact [1] |
| Smart contract | 0x8EF7c3e531d871D3B9D559722DE77EB1dEc19dAe | Medium | pivot | Polygon contract storing proxy server URL, selector 0x933a9ce8 [1] |
| Smart contract | 0x757984507c82c8dA1d3969c535dB5706eEE6426C | Medium | pivot | Polygon contract storing leak-site blog data, selector 0xd4070542 [1] |
| Infra (dual-use) | polygon-bor-rpc.publicnode.com, polygon.drpc.org, polygon-pokt.nodies.app, polygon-rpc.com, 1rpc.io, polygon.meowrpc.com | Low | enrich | Legitimate public Polygon RPC endpoints queried for decentralized C2 rendezvous [1,3] — do not block, high FP with legitimate crypto/dApp traffic; deliberately shown un-defanged since these are not indicators to detect/block |
Affected Surface & Telemetry Matrix
| Surface | Telemetry | Priority | Gap |
|---|---|---|---|
| Windows workstations/servers (primary target) | Falcon process, registry, ransomware-protection telemetry | Critical | None — well-covered by Q1–Q4, Q7–Q8 |
| Domain controllers (ntds/kdc/adws targeted) | Falcon registry telemetry (service Start-value proxy) | Critical | Partial — no direct SCM stop-event telemetry in the standard Falcon field model; registry proxy is the best available surface |
| Backup infrastructure (VSS, wbengine, third-party backup agents) | Falcon registry telemetry + backup-vendor console alerts | Critical | Partial — third-party backup agent service names not in the hardcoded hunt list; extend Q5's service list per environment |
| Cloud sync / collaboration endpoints (OneDrive, Dropbox, Google Drive, ownCloud) | Falcon process telemetry (start only) | Medium | Gap — process termination is not captured by ProcessRollup2; rely on the process itself failing to reappear plus tamper-protection alerts as compensating signal |
| Network egress to Polygon RPC / Session swarm nodes | Falcon DNS/network telemetry | Low (context only) | High baseline false-positive rate — legitimate crypto/dApp traffic uses the same public endpoints |
ATT&CK Mapping
| Tactic | Technique | Behavior | Query / Control |
|---|---|---|---|
| Defense Evasion | T1614.001 | Geofencing self-delete on excluded locales | No reliable CQL surface — pre-encryption, no persistence artifact |
| Privilege Escalation / Defense Evasion | T1548.002 | Random-name uppercase .cmd + ShellExecuteW RunAs | Q4 |
| Privilege Escalation | T1134 | SeDebug/SeRestore/SeBackup/SeTakeOwnership/SeAudit/SeSecurity enablement | Coverage gap — see Section 15 |
| Defense Evasion / Impact | T1489, T1562.001, T1490 | Mass service stop+disable (Defender, VSS, backup, AD, Hyper-V) | Q5 |
| Defense Evasion | T1562.001 | Termination of security/backup/remote-access/shell processes | Coverage gap — see Section 15 |
| Defense Evasion | T1070.001, T1562.002 | Triple-method Windows Event Log wipe | Q6 |
| Impact | T1486 | Curve25519/XChaCha20 tiered encryption; .dlock rename | Q1, Q2 |
| Impact | T1486 (artifact) | Ransom-note drop | Q3 |
| Persistence artifact | T1112 | Custom icon registration for .dlock | Q7 |
| Impact | T1491.001 | Desktop wallpaper defacement | Q8 |
| Command and Control | T1102.002 (inferred) | Polygon smart-contract proxy/blog lookup for decentralized rendezvous | Q9 (context-only, high FP by design) |
| Command and Control | T1573 (inferred) | Session messenger onion-routed E2E negotiation chat | Coverage gap — browser-side JS app, no EDR visibility |
| Exfiltration | T1567.002 (inferred) | Wasabi S3-compatible leak-data hosting | Coverage gap — attacker-side infrastructure, not victim-observable |
Techniques marked "(inferred)" are analyst inference for behaviors that do not map cleanly to an existing ATT&CK sub-technique (blockchain-as-config-store has no dedicated ID as of this writing) — not an explicit claim from the cited sources.
Native Audit-Log Hunts
- Windows Security Event ID 1102 (audit log cleared) and System log Event ID 104 (log cleared) — correlate any burst of these across multiple channels within seconds with the Falcon event-log-tamper query (Q6). Caveat: DeadLock's registry-based channel disable partially suppresses the very logs that would generate 1102/104, so absence of these events does not rule out tampering — forward logs to an out-of-band, tamper-resistant collector (WEF/central SIEM) so local clearing cannot destroy the only copy.
- Sysmon Event ID 13 (registry value set), if Sysmon runs alongside Falcon, on
HKLM\SYSTEM\CurrentControlSet\Services\*\Start— a second independent data source for the Q5 pattern. - Backup software admin console alerts (Veeam, Commvault, or equivalent) for VSS-writer failures or unexpected service-stop events, correlated in time with Q5 hits on the same host.
- Initial-access vector is undocumented in current reporting (Section 2 gap) — no email-gateway or perimeter-specific native hunt is included pending that intelligence.
CrowdStrike LogScale CQL Hunt Queries
Looks for: exact-hash execution of the confirmed DeadLock encryptor sample. FP: none expected — exact hash match on a confirmed malicious sample.
// HUNT: DeadLock Ransomware - Known Encryptor Hash Execution // HYPOTHESIS: If the published DeadLock encryptor sample has executed, ProcessRollup2/SyntheticProcessRollup2 will show this exact SHA256. // MITRE: T1486 (Data Encrypted for Impact) // CONF: high FP: low COST: low | REQUIRES: Falcon sensor process visibility // FP NOTES: None expected - exact hash match on a confirmed malicious sample. // LOOKBACK: 30d (extend to 1y for retrospective hunt) #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | SHA256HashData = "a1fdf65020ce4a0f0940c793c6425baf8a0b994ec48b9baaf72788661a9d29f4" | table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName]) | sort(@timestamp, order=desc)
Looks for: a burst of files renamed to the .dlock extension on one host. FP: legitimate backup/archival tools that bulk-append a custom extension (rare); AV/EDR test harnesses.
// HUNT: DeadLock Ransomware - Mass .dlock File Encryption Sweep // HYPOTHESIS: If DeadLock is actively encrypting a host, RansomwareOpenFile events will show a burst of files renamed with the .dlock extension in a short window. // MITRE: T1486 (Data Encrypted for Impact) // CONF: high FP: medium COST: medium | REQUIRES: Falcon Ransomware Protection telemetry (RansomwareOpenFile) // FP NOTES: Legitimate backup/archival tools that append a custom extension in bulk (rare); AV/EDR test harnesses. // TUNING: Exclude known backup-agent process names once the FileName field is confirmed against a sample event in your tenant - field availability on RansomwareOpenFile varies by sensor version. // LOOKBACK: 24h - this is a live-encryption detector, keep the window tight #event_simpleName=RansomwareOpenFile | FileName = /\.dlock$/ | groupBy([aid, ComputerName, UserName], function=[count(as=FilesTouched), collect(FileName, limit=5)], limit=1000) | FilesTouched > 20 | sort(FilesTouched, order=desc)
Looks for: HOW_RECOVER.<UID>.txt or RECOVERY_CHAT.<UID>.html being written. FP: none expected — filename prefixes are specific to this family.
// HUNT: DeadLock Ransomware - Ransom Note Artifact Drop // HYPOTHESIS: If DeadLock completed a directory sweep, HOW_RECOVER.<UID>.txt and/or RECOVERY_CHAT.<UID>.html will have been written to encrypted directories, drive roots, and Desktop folders. // MITRE: T1486 (Data Encrypted for Impact) // CONF: high FP: low COST: low | REQUIRES: Falcon Ransomware Protection telemetry (RansomwareOpenFile) - validate FileName is populated for non-PE writes in your tenant // FP NOTES: None expected - the HOW_RECOVER / RECOVERY_CHAT filename pattern is specific to this family. // LOOKBACK: 30d #event_simpleName=RansomwareOpenFile | FileName = /^(HOW_RECOVER\..+\.txt|RECOVERY_CHAT\..+\.html)$/i | table([@timestamp, aid, ComputerName, UserName, FileName]) | sort(@timestamp, order=desc)
Looks for: an 8-character all-uppercase .cmd file execution (e.g. ESYEKQSY.cmd). FP: some installer frameworks (NSIS, InstallShield, Squirrel) and RMM tools generate randomly-named temp .cmd/.bat files.
// HUNT: DeadLock Ransomware - UAC Bypass via Randomly-Named .cmd Elevation // HYPOTHESIS: If DeadLock attempted privilege elevation from a non-elevated context, it generated and executed an 8-uppercase-letter .cmd file via ShellExecuteW with the RunAs verb. // MITRE: T1548.002 (Abuse Elevation Control Mechanism: Bypass User Account Control) // CONF: medium FP: medium COST: low | REQUIRES: Falcon sensor process visibility // FP NOTES: Some installer frameworks (NSIS, InstallShield, Squirrel) and RMM tools generate randomly-named temp .cmd/.bat files; the strict 8-char ALL-UPPERCASE pattern narrows this but should still be validated per tenant. // TUNING: Cross-reference hits against known installer/RMM parent processes (ParentBaseFileName) before treating as high confidence; add an exclusion for your packaging/RMM tool's temp-file naming convention if it collides. // LOOKBACK: 30d #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName = /^[A-Z]{8}\.cmd$/ | table([@timestamp, aid, ComputerName, UserName, ImageFileName, ParentBaseFileName, CommandLine]) | sort(@timestamp, order=desc)
Looks for: 3+ of a specific service set disabled via registry on one host in a short window (WinDefend, vss, swprv, wbengine, mssearch, vmcompute, vmms, ADWS, NTDS, kdc). FP: patch/imaging tools and GPO service-hardening scripts can touch multiple Start values during a maintenance window.
// HUNT: DeadLock Ransomware - Mass Service Disablement via Service Start-Type Registry Change // HYPOTHESIS: If DeadLock is in its pre-encryption phase, it will set the Start registry value to disabled for Defender, VSS/backup, Hyper-V, and AD services in quick succession on one host before stopping them via the Service Control Manager. // MITRE: T1489 (Service Stop), T1562.001 (Impair Defenses), T1490 (Inhibit System Recovery) // CONF: high FP: medium COST: medium | REQUIRES: Falcon registry telemetry (RegGenericValueUpdate/AsepValueUpdate) // FP NOTES: Patch/imaging tools, GPO service-hardening scripts, and legitimate service-decommission projects can touch multiple Start values in a maintenance window. // TUNING: Raise the ServicesTouched threshold or add a maintenance-window/process exclusion if your environment runs bulk service reconfiguration scripts; investigate any hit where WinDefend is one of the matched services regardless of count. // LOOKBACK: 7d #event_simpleName=/RegGenericValueUpdate|AsepValueUpdate/ | RegObjectName = /CurrentControlSet\\Services\\(WinDefend|vss|swprv|wbengine|mssearch|vmcompute|vmms|ADWS|NTDS|kdc)\\Start$/i | RegValueName = "Start" | groupBy([aid, ComputerName, UserName], function=[count(as=ServicesTouched), collect(RegObjectName, limit=10)], limit=1000) | ServicesTouched >= 3 | sort(ServicesTouched, order=desc)
Looks for: 3+ WINEVT log channels disabled via registry on one host in a short window. FP: rare — a security team deliberately disabling a noisy custom diagnostic channel.
// HUNT: DeadLock Ransomware - Windows Event Log Channel Tampering (Anti-Forensics) // HYPOTHESIS: If DeadLock is suppressing forensic evidence, it will write Enabled=0 under the WINEVT\Channels registry tree across many channels in a short window. // MITRE: T1070.001 (Clear Windows Event Logs), T1562.002 (Disable Windows Event Logging) // CONF: high FP: low COST: medium | REQUIRES: Falcon registry telemetry (RegGenericValueUpdate) // FP NOTES: Rare legitimate case - a security team intentionally disabling a noisy/custom diagnostic channel. Investigate any hit; very low legitimate baseline. // LOOKBACK: 7d #event_simpleName=RegGenericValueUpdate | RegObjectName = /WINEVT\\Channels\\.*\\Enabled$/i | RegStringValue = "0" | groupBy([aid, ComputerName, UserName], function=[count(as=ChannelsDisabled), collect(RegObjectName, limit=10)], limit=1000) | ChannelsDisabled >= 3 | sort(ChannelsDisabled, order=desc)
Looks for: registration of a custom DefaultIcon for the .dlock extension. FP: none expected — no legitimate software uses this extension.
// HUNT: DeadLock Ransomware - Custom Icon Association for .dlock Extension // HYPOTHESIS: If DeadLock branded encrypted files, it registered a custom .ico as the DefaultIcon for the .dlock extension under HKLM\SOFTWARE\Classes. // MITRE: T1486 (Data Encrypted for Impact) [artifact], T1112 (Modify Registry) // CONF: high FP: low COST: low | REQUIRES: Falcon registry telemetry (RegGenericValueUpdate/AsepValueUpdate) // FP NOTES: None expected - the .dlock extension is not used by any known legitimate software. // LOOKBACK: 30d #event_simpleName=/RegGenericValueUpdate|AsepValueUpdate/ | RegObjectName = /SOFTWARE\\Classes\\\.dlock\\DefaultIcon/i | table([@timestamp, aid, ComputerName, UserName, RegObjectName, RegValueName, RegStringValue]) | sort(@timestamp, order=desc)
Looks for: the desktop wallpaper key being set to a C:\ProgramData\<UID>.bmp path. FP: legitimate GPO-enforced corporate wallpaper deployment writes the same key.
// HUNT: DeadLock Ransomware - Ransom Wallpaper Registry Change // HYPOTHESIS: If DeadLock completed encryption, it wrote a custom BMP under C:\ProgramData\<UID>.bmp and set it as the desktop wallpaper via the Policies\System registry key. // MITRE: T1491.001 (Defacement: Internal Defacement) // CONF: medium FP: medium COST: low | REQUIRES: Falcon registry telemetry (RegGenericValueUpdate) // FP NOTES: Legitimate GPO-enforced corporate wallpaper deployment writes the same key; DeadLock's value is distinguished by pointing at a ProgramData path rather than a managed image share. // TUNING: Add an exclusion for your organization's approved wallpaper deployment path (e.g. a managed branding file share) so only ProgramData-sourced values alert. // LOOKBACK: 30d #event_simpleName=RegGenericValueUpdate | RegObjectName = /CurrentVersion\\Policies\\System\\Wallpaper$/i | RegStringValue = /^C:\\ProgramData\\[^\\]+\.bmp$/i | table([@timestamp, aid, ComputerName, UserName, RegObjectName, RegStringValue]) | sort(@timestamp, order=desc)
Looks for: DNS requests to the six public Polygon RPC endpoints the recovery-chat HTML cycles through. FP: these are legitimate, widely-used public RPC providers (MetaMask, dApps, crypto wallets, developers). Context only — never alert on this alone.
// HUNT: DeadLock Ransomware - DNS to Polygon Public RPC Endpoints (Decentralized C2 Rendezvous) // HYPOTHESIS: If a victim's browser opened the DeadLock RECOVERY_CHAT.<UID>.html file, it will query one of the six public Polygon RPC endpoints the recovery chat cycles through to resolve the current proxy address. // MITRE: T1102.002 (Web Service: Bidirectional Communication) - analyst inference; blockchain-as-config-store has no dedicated ATT&CK sub-technique as of this writing // CONF: low FP: high COST: low | REQUIRES: Falcon DNS telemetry (DnsRequest) // FP NOTES: These are legitimate, widely-used public Polygon RPC providers (MetaMask, dApps, crypto wallets, and developers all query them routinely). This query is CONTEXT ONLY - a hit is not evidence of compromise by itself. // TUNING: Do not alert on this query alone. Suppress hosts with a documented business reason for blockchain/crypto RPC traffic and only escalate when it co-occurs with Q2/Q3/Q5 on the same host within the same 24h window. // LOOKBACK: 24h #event_simpleName=DnsRequest | DomainName = /^(polygon-bor-rpc\.publicnode\.com|polygon\.drpc\.org|polygon-pokt\.nodies\.app|polygon-rpc\.com|1rpc\.io|polygon\.meowrpc\.com)$/i | table([@timestamp, aid, ComputerName, UserName, DomainName]) | sort(@timestamp, order=desc)
Custom IOA Recommendations
Custom IOA 1: Randomly-Named Uppercase .cmd Elevation
| Rule Group | Ransomware Defense |
| Rule Type | Process Creation |
| Action | Detect |
| Severity | High |
| MITRE | T1548.002 - Bypass User Account Control |
| Image Filename | .*\\[A-Z]{8}\.cmd$ |
| Description | Catches execution of an 8-character all-uppercase randomly-named .cmd file, the DeadLock UAC-bypass elevation artifact. |
| FP Tuning | Exclude known installer/RMM parent processes if this collides with your packaging tooling's temp-file convention. |
| Validation | On an isolated test endpoint, generate and run a benign 8-uppercase-letter .cmd file via runas; confirm the IOA fires before promoting past Detect. |
Custom IOA 2: Critical Service Disablement (Registry)
| Rule Group | Ransomware Defense |
| Rule Type | Registry Operation |
| Action | Detect |
| Severity | Critical |
| MITRE | T1489, T1562.001, T1490 |
| Registry Path | .*CurrentControlSet\\Services\\(WinDefend|vss|swprv|wbengine)\\Start |
| Description | Catches the Start-type value being set to disabled for Defender/VSS/backup services — the strongest pre-encryption signal in the chain. |
| FP Tuning | Exclude known patch-management / imaging maintenance windows; do not exclude WinDefend regardless of window. |
| Validation | On an isolated test endpoint, set a non-critical test service's Start value to 4 via sc config; confirm the IOA fires; restore the original value afterward. |
Custom IOA 3: .dlock Extension File Creation
| Rule Group | Ransomware Defense |
| Rule Type | File Creation |
| Action | Detect (pilot Block only after canary validation) |
| Severity | Critical |
| MITRE | T1486 - Data Encrypted for Impact |
| File Name | .*\.dlock$ |
| Description | Catches the file-rename step of encryption directly — the extension is unique to this family. |
| FP Tuning | None expected; monitor for 14 days in Detect mode before considering Block given the destructive cost of a false Block on a legitimate file operation. |
| Validation | On an isolated test endpoint, rename a benign test file to end in .dlock; confirm the IOA fires. |
Machine-Readable IOC Appendix
type,value,action,severity,expiration,description,tags sha256,a1fdf65020ce4a0f0940c793c6425baf8a0b994ec48b9baaf72788661a9d29f4,prevent,critical,2027-08-13,DeadLock ransomware encryptor binary,campaign:DeadLock domain,deadlock.liveblog365.com,detect,high,2026-11-11,DeadLock data leak site domain,campaign:DeadLock domain,dlock.liveblog365.com,detect,high,2026-11-11,DeadLock data leak site domain,campaign:DeadLock domain,deadlockblog.great-site.net,detect,high,2026-11-11,DeadLock data leak site domain,campaign:DeadLock domain,deadlockblog.medianewsonline.com,detect,high,2026-11-11,DeadLock data leak site domain,campaign:DeadLock
Encrypted file extension: .dlock Text ransom note: HOW_RECOVER.<UID>.txt HTML recovery-chat note: RECOVERY_CHAT.<UID>.html Custom icon drop path: C:\ProgramData\<UID>.ico Wallpaper drop path: C:\ProgramData\<UID>.bmp UAC-bypass elevation script: C:\Users\Public\<8 uppercase letters>.cmd (or %TEMP%) Registry - icon association: HKLM\SOFTWARE\Classes\.dlock\DefaultIcon Registry - wallpaper: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Wallpaper Registry - log tamper: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\*\Enabled = 0
Family: DeadLock Ransomware (Rust-based encryptor) First observed: July 2025 Deployed by: Multiple operators, incl. an affiliate of Lynx and INC ransomware ecosystems MS Defender detection: Ransom:Win32/Deadlock.* Operator pubkey (Curve25519, SEC1-prefixed, 33 bytes): 03bf50bbf97c4e951e66ff12b689a37a3ce675b4921e254eae76da77573843e4a9 Onion mirror (pivot only, not DNS-observable): deadblogdbdu5wprek7wa2o4ce7rnt6u6ntqeud3hzjjcveosgpsqqqd.onion
Polygon smart contract - chat proxy: 0x8EF7c3e531d871D3B9D559722DE77EB1dEc19dAe (selector 0x933a9ce8) Polygon smart contract - blog/leak data: 0x757984507c82c8dA1d3969c535dB5706eEE6426C (selector 0xd4070542) Public Polygon RPC endpoints cycled by the recovery chat (legitimate infra - correlate, do not block): polygon-bor-rpc.publicnode.com polygon.drpc.org polygon-pokt.nodies.app polygon-rpc.com 1rpc.io polygon.meowrpc.com Negotiation channel: Session messenger (onion-routed swarm protocol) Leak-data hosting: Wasabi S3-compatible storage (AWS4-HMAC-SHA256 pre-signed URLs)
The onion address and operator pubkey are intentionally excluded from the Falcon IOC-Management CSV above: onion addresses are not resolvable via standard corporate DNS telemetry, and a raw public key is not a queryable EDR field type. Both are retained here for analyst reference and sample/config correlation.
Detection Validation Gates
- Telemetry ready: confirm the Falcon sensor has Ransomware Protection module telemetry (
RansomwareOpenFile) enabled, plus standard registry (RegGenericValueUpdate/AsepValueUpdate) and DNS telemetry. - Benign baseline: run Q4, Q5, Q8, and Q9 in Detect mode for 14 days against production before tuning exclusions; confirm the
FilesTouched/ServicesTouched/ChannelsDisabledthresholds against your environment's legitimate maintenance patterns. - Positive tests: validate that
FileNameis populated onRansomwareOpenFilefor non-PE writes in your tenant (schema can vary by sensor version) before relying on Q2/Q3 operationally. - Promotion: Q1, Q3, Q6, and Q7 (low FP) are candidates for automated-response escalation after 14 days of clean Detect-mode history. Q9 must never be promoted past context-only correlation — it is high-FP by design.
Hardening & Prevention — Tiered
- Enable ASR rule Block executable files from running unless they meet a prevalence, age, or trusted list criterion — MITRE M1040. Named directly by Microsoft as effective against this threat in observed attacks.
- Enable ASR rule Block process creations originating from PSExec and WMI commands — MITRE M1040. Also named directly by Microsoft as mitigating initial-stage activity.
- Enable Tamper Protection on all endpoints to block DeadLock's service-stop routine from disabling AV/EDR — MITRE M1040.
- Run Falcon EDR in Block mode so malicious artifacts are remediated even if a non-Microsoft AV product misses them — MITRE M1040.
- Configure Controlled Folder Access (CFA) in audit mode first, then as strict as the environment tolerates — MITRE M1022. Directly named in Microsoft's guidance for this threat.
- Enable fully automated investigation and remediation plus Automatic Attack Disruption in Defender XDR (or the equivalent orchestration in your EDR) — MITRE M1040.
- Forward Windows Event Logs to an out-of-band, tamper-resistant collector (WEF or central SIEM/LogScale) so local log-clearing cannot destroy the only copy — MITRE M1029/M1022, CIS Windows Benchmark §17.x (audit policy).
- Restrict which accounts/service contexts can modify
HKLM\SYSTEM\CurrentControlSet\Services\*Start values to least privilege — MITRE M1026, CIS Windows Benchmark §5.x.
- Immutable/air-gapped backups (3-2-1-1-0) with tested restoration — DeadLock explicitly targets VSS and local backup services for disablement, so on-box backup alone is not sufficient — MITRE M1053.
- Network egress monitoring/allowlisting to flag anomalous public-RPC baselines for correlation, not blocking — MITRE M1037. The decentralized infrastructure model means domain/IP blocking has limited durable effect against this family (the proxy address is stored on-chain and can be rotated without touching victim-facing infrastructure).
- Update the ransomware IR runbook and run a tabletop exercise that includes a "decentralized negotiation/leak infrastructure" scenario — traditional leak-site takedown and legal process do not cleanly apply here.
What to verify after deployment
Get-MpPreference | Select -ExpandProperty AttackSurfaceReductionRules_Ids— confirm both ASR rule GUIDs are present and set to Enabled.Get-MpComputerStatus | Select IsTamperProtected— should returnTrue.- Spot-check Q5 and Q6 against the last 30 days for any hits that predate this deployment, to confirm the queries actually fire against real registry telemetry in your tenant.
Deployable Playbooks
Step 1 — Enable Attack Surface Reduction Rules
What it does: blocks unsigned/low-prevalence executable launches and PSExec/WMI-spawned processes. Why it works: both rules are cited by Microsoft as having stopped observed DeadLock intrusions in their initial stages.
# Block executable files from running unless they meet a prevalence, age, or trusted list criterion Add-MpPreference -AttackSurfaceReductionRules_Ids 01443614-cd74-433a-b99e-2ecdc07bfc25 -AttackSurfaceReductionRules_Actions Enabled # Block process creations originating from PSExec and WMI commands Add-MpPreference -AttackSurfaceReductionRules_Ids d1e49aac-8f56-4280-b9ba-993a6d77406c -AttackSurfaceReductionRules_Actions Enabled
Verify:
Get-MpPreference | Select -ExpandProperty AttackSurfaceReductionRules_Ids
Step 2 — Confirm Tamper Protection
What it does: prevents the encryptor's service-stop routine from disabling AV/EDR protections. Why it works: Tamper Protection blocks unauthorized changes to security settings and service state, directly countering the mass service-disablement step in the attack chain.
Get-MpComputerStatus | Select IsTamperProtected
Tamper Protection is primarily managed via Intune/Defender portal toggle rather than local registry; use your MDM console to confirm it is enabled fleet-wide.
Step 3 — Controlled Folder Access (Audit First)
What it does: blocks unauthorized write access to protected folders. Why it works: directly interferes with the file-rename/encryption step even if earlier controls are bypassed.
Set-MpPreference -EnableControlledFolderAccess AuditMode
Verify:
Get-MpPreference | Select EnableControlledFolderAccess
Review audit-mode telemetry for 1–2 weeks before switching to Enabled to gauge business impact.
Step 4 — Registry ACL Hardening for Service Start Values
What it does: restricts who can flip a critical service's Start value to disabled. Why it works: the mass service-disablement step (Section 8, Q5) depends on write access to these keys.
$path = "HKLM:\SYSTEM\CurrentControlSet\Services\WinDefend" icacls "$path" # Confirm write access is limited to SYSTEM and local Administrators; remove any broader grants found.
Deploying via your RMM: the scripts above are raw PowerShell. To wrap them for fleet deployment (admin check, error handling, custom-field writeback for compliance tracking), hand them to your RMM deployment tooling and ask for a deployable package.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Detect | Confirm .dlock rename burst, ransom-note drop, or mass service-disable hit; correlate host + timestamp across Q1–Q8 | SOC L1 | LogScale query results, alert ticket |
| Contain | Network-isolate affected host(s) via Falcon RTR; do not power off — preserve memory for later triage | SOC L2 / IR | Isolation confirmation, affected-host (aid) list |
| Eradicate | Identify patient zero via process tree + parent process; remove the UAC-bypass .cmd artifact; review AD/service state for lingering tampering; rotate credentials used on the host | IR Lead | Process tree export, credential rotation log |
| Recover | Restore from offline/immutable backup — VSS-based restore has likely been intentionally disabled or deleted; do not assume it exists | IR Lead / Backup Admin | Restore validation report |
| Post-incident | Confirm no residual persistence; cross-check central log shipping for gaps from event-log tampering; update detection thresholds from observed FP/TP rate | IR Lead | Lessons-learned doc, hunt-pack version bump |
Detection Coverage Map
| Technique | Behavior | CQL | Custom IOA | Coverage |
|---|---|---|---|---|
| T1548.002 | UAC bypass via random .cmd | ✓ Q4 | ✓ IOA-1 | Partial |
| T1134 | Token privilege escalation | — | — | GAP |
| T1489 / T1562.001 / T1490 | Mass service disable via registry | ✓ Q5 | ✓ IOA-2 | Good |
| T1562.001 | Mass process termination | — | — | GAP |
| T1070.001 / T1562.002 | Event log channel tampering | ✓ Q6 | — | Good |
| T1486 | Encryption / .dlock rename | ✓ Q1, Q2 | ✓ IOA-3 | Good |
| T1486 (artifact) | Ransom note drop | ✓ Q3 | — | Good |
| T1112 | Custom icon registration | ✓ Q7 | — | Partial |
| T1491.001 | Wallpaper defacement | ✓ Q8 | — | Partial |
| T1102.002 (inferred) | Blockchain C2 rendezvous | ✓ Q9 | — | Partial (context-only) |
| T1573 (inferred) | Session messenger negotiation | — | — | GAP |
| T1567.002 (inferred) | Wasabi leak-data hosting | — | — | GAP |
Coverage summary: 9 of 12 identified techniques have at least partial detection coverage; 3 gaps remain.
Priority gaps: T1134 (token privilege enablement) and T1562.001 process-termination have no dedicated Falcon telemetry surface — CrowdStrike does not expose process-termination events, and privilege enablement via AdjustTokenPrivileges is not directly logged; Tamper Protection and ASR rules are the primary compensating controls. T1573/T1567.002 (Session negotiation, Wasabi leak hosting) occur entirely inside the victim's browser or on attacker-side infrastructure and are not observable via endpoint telemetry by design.
See Section 11 for the full validation-gate checklist that governs promotion of these queries to automated response.
Hunt Summary Ticket
TITLE: DeadLock Ransomware - Detection & Hardening Hunt Pack
SEVERITY: Critical (active double-extortion ransomware, 80+ confirmed victims)
SCOPE: All Windows endpoints, domain controllers, backup infrastructure
HYPOTHESIS: DeadLock's pre-encryption evasion chain (UAC bypass, mass service
disablement, event-log wipe) is observable BEFORE file impact via
registry and process telemetry; encryption and ransom-note drop
are observable via RansomwareOpenFile telemetry.
QUERIES: Q1 Known-hash execution | Q2 Mass .dlock sweep | Q3 Ransom-note drop
Q4 UAC-bypass .cmd | Q5 Mass service disable (registry) | Q6 Event-log
channel tamper | Q7 Custom icon registration | Q8 Wallpaper change
Q9 Polygon RPC DNS (context only)
DO FIRST: Deploy Q5 (mass service disablement) and Q4 (UAC bypass) in Detect
mode - both fire pre-encryption and are the best chance to stop
this family before impact. Enable the two named ASR rules and
Tamper Protection this week (Section 12).
FINDINGS: Queries must be run manually in CrowdStrike LogScale; this pack
describes what a positive result looks like (Section 8) so the
analyst knows what to look for when reviewing results.
GAPS: Token privilege escalation (T1134) and process termination
(T1562.001) have no dedicated Falcon telemetry surface (Section 15).
Initial-access vector is undocumented in current public reporting
(Section 2).
ACTIONS: Immediate: ASR rules, Tamper Protection, Falcon Block mode.
Near-term: CFA audit mode, automated remediation, log forwarding,
registry ACL hardening. Strategic: immutable backups, IR runbook
update for decentralized negotiation infrastructure.
OWNER: SOC / Detection Engineering
VERSION: v0.1 - 2026-08-13
Changelog
References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| T1 | Microsoft Security Blog | Primary technical analysis, IOC table, execution flow, Defender detections | 2026-08-13 |
| T2 | The Hacker News | Corroboration, wallet/contract addresses, victim count, targeted countries | 2026-08-13 |
| T2 | BleepingComputer | Corroboration on blockchain-resilience angle | 2026-08-13 |
| T2 | Group-IB Blog | Independent corroboration of smart-contract proxy mechanism | 2026-08-13 |