Interlock Ransomware — CORNFLAKE / FLUTECLICK Web-Compromise Chain

ClickFix → in-memory CORNFLAKE (Node.js persistence) → RHYSIDA-linked hands-on-keyboard → offline ntds.dit theft → Interlock ransomware & extortion. GTI campaign CAMP.26.095.
Threat
Interlock / Nefarious Mantis
Severity
ACTIVE RaaS
Type
Ransomware / Extortion
Initial Access
ClickFix / Drive-by
Version
v0.2 · 2026-07-23
Author
HuntPack
Confidence
High (multi-vendor)
01

Executive Summary

Interlock (a.k.a. Nefarious Mantis; earlier RAT iteration tracked by Mandiant as WINDYTWIST.SEA) is a double-extortion ransomware operation that has industrialized the ClickFix initial-access technique. In GTI campaign CAMP.26.095, a financially motivated reconnaissance cluster (Mandiant UNC5518) compromises legitimate websites and serves fake CAPTCHA / “fix-it” pages that trick a visitor into pasting a PowerShell one-liner into the Windows Run dialog. That one-liner pulls down a portable Node.js v22.11.0 runtime and runs the CORNFLAKE.V3 backdoor in-memory (node.exe -e), establishing persistence through an HKCU\\...\\Run\\ChromeUpdater value and masquerading scheduled tasks.

CORNFLAKE performs Active Directory reconnaissance (SPN sweeps, nltest domain-trust enumeration, Kerberoasting) and hands the intrusion to a RHYSIDA-linked operator (UNC5774). The operator abuses legitimate Cloudflare Tunnel (*.trycloudflare.com) to mask C2 with hard-coded fallback IPs, steals Active Directory ntds.dit offline by cloning a virtual disk / snapshotting the domain controller (evading EDR that only watches live ntdsutil/vssadmin on the DC), exfiltrates 100s of GB via AzCopy to Azure blobs, and finally pushes the Interlock encryptor across the estate with PsExec running a remote .ps1 from an \\out\\ share. Windows (.interlock / .!nt3rlock) and Linux/ESXi/Nutanix encryptors have both been observed.

Defender priority: The two chokepoints that no other stage can hide are (1) node.exe executing an inline script out of %APPDATA%\\Roaming\\node-v22.11.0-win-x64\\ and (2) offline ntds.dit acquisition via disk-snapshot / VHD-clone tooling on or around a domain controller. Hunt both first — they sit before encryption and before the operator has your credentials.

02

Source Review & Web Hunter Notes

TierSourceKey finding carried forwardCarry
1Mandiant / GTIG — CORNFLAKE.V3 analysisUNC5518 ClickFix downloader → UNC5774 CORNFLAKE.V3 backdoor; Node.js persistence (ChromeUpdater Run key), /init1234 C2, node.exe -e, Kerberoasting, WINDYTWIST.SEAyes
1CISA #StopRansomware: Interlock (AA25-203A)ClickFix fake-CAPTCHA IA, drive-by fake updaters, .interlock/.1nt3rlock, !__README__!.txt, AzCopy/Azure exfil, Rhysida overlap, full MITRE mappingyes
1FortiGuard Labs — “New Techniques, Same Old Tricks”NodeSnake/CORNFLAKE & Interlock RAT C2 IPs and trycloudflare domains, crypter byte pattern 488b041f483345f04889041e, PsExec mass-deploy command, BYOVD Hotta Killer, masquerading scheduled tasksyes
1Sekoia.io TDR — “evolving under the radar”Large IOC set (C2 IPs, trycloudflare C2, ransomware SHA256, RAT SHA256), four RAT variants, Cloudflare Tunnel fallback IPs, /init1234, port 443 raw TCPyes
2Forescout Vedere Labs — “A Year Later”ntds.dit theft via VHD/virtual-disk snapshot clone to evade EDR; four RAT variants; vssadmin shadow deletion; ESXi/Nutanix targetingpartial
2SOC Prime — detection guidancecht.exe stealer, klg.dll keylogger, PHP RAT, “Chrome Updater” Run key, Base64 PowerShell via fake CAPTCHApartial

Snapshots of every cited source are saved verbatim under Interlock-CORNFLAKE-Hunt-sources/ and drive the atomic-IOC provenance gate. Concrete C2 IPs / domains / hashes below appear in at least one snapshot; the operator’s Let’s Encrypt fallback domains were reported as a behavior but not disclosed as specific values, so they ship as REPLACE_WITH_ placeholders.

03

Hunt Brief & Attack Chain

Hunt hypotheses (fidelity-ordered)

#HypothesisMITREConf
H1node.exe runs an inline -e script from %APPDATA%\\Roaming\\node-v22.11.0-win-x64\\ — CORNFLAKE.V3 in-memory backdoorT1059.007HIGH
H2PowerShell one-liner spawned by explorer/browser using irm|iex to a :8080 host — ClickFix paste-executionT1204.004HIGH
H3Offline ntds.dit acquisition via diskshadow / Mount-VHD / ntdsutil ifm near a DC — EDR-evading credential theftT1003.003HIGH
H4HKCU Run value ChromeUpdater (or TimeSync*) pointing at AppData — CORNFLAKE persistenceT1547.001MED
H5Node/rundll32 out of AppData resolving *.trycloudflare.com — Cloudflare-Tunnel-masked C2T1572MED
H6SPN sweep + domain-trust enumeration (setspn -T, nltest /domain_trusts, whoami /all) shortly after a node.exe parent — recon payloadT1558.003MED
H7PsExec launching powershell -ExecutionPolicy Bypass -file \\HOST\\out\\1.ps1 — estate-wide ransomware pushT1021.002HIGH
H8Mass file writes with .interlock / .!nt3rlock extension — encryption impactT1486HIGH

Attack chain

StepBehaviorTelemetryHunt angle
1 · Initial accessCompromised site serves fake CAPTCHA; victim pastes PowerShell into RunProcessRollup2explorer → powershell w/ irm/iex + :8080
2 · ExecutionPortable Node.js pulled; CORNFLAKE.V3 run in-memoryProcessRollup2, NetworkConnectIP4node.exe -e from AppData; nodejs.org zip fetch
3 · PersistenceRun key ChromeUpdater; masquerading scheduled tasksAsepValueUpdate, ScheduledTaskRegisteredRun value / task action pointing at AppData
4 · C2HTTP XOR to Cloudflare Tunnel with hard-coded fallback IPs; /init1234DnsRequest, NetworkConnectIP4node.exe → *.trycloudflare.com; fallback IPs
5 · DiscoveryAD recon, SPN sweep, KerberoastingProcessRollup2setspn/nltest/whoami with node parent
6 · Cred accessOffline ntds.dit via VHD snapshot / disk cloneProcessRollup2, FileCreateInfodiskshadow / Mount-VHD / ntdsutil ifm
7 · ExfilAzCopy to Azure blob (100s of GB)ProcessRollup2, NetworkConnectIP4azcopy/win64.exe egress to *.blob.core.windows.net
8 · ImpactPsExec pushes encryptor; .interlock/.!nt3rlock; shadow deletionProcessRollup2, FileCreateInfoPsExec remote .ps1; extension writes; vssadmin delete
04

Consolidated IOC Table

Cloudflare Tunnel subdomains and C2 IPs are highly perishable (free, disposable). Hunt on them retrospectively; rely on the behavioral queries in §8 for durable detection. Only indicators present in a saved source snapshot are listed as atomic values.

TypeValueConfActionContext
ipv4216.245.184.181medhuntNodeSnake/CORNFLAKE C2
ipv4168.119.96.41medhuntNodeSnake/CORNFLAKE C2
ipv4128.140.120.188medhuntInterlock RAT C2 (Fortinet + Mandiant)
ipv4138.199.161.141medhuntClickFix PowerShell loader host (:8080)
domainspeak-head-somebody-stays.trycloudflare.commedhuntCloudflare Tunnel C2
domainsuffering-arnold-satisfaction-prior.trycloudflare.commedhuntCloudflare Tunnel C2
sha256fa3cdb0656522db7409fda54e9a9780cefbd4458c4ad77fdbbb06367207eaf56highdetectNodeSnake / CORNFLAKE sample
sha256000b24076cae8dbb00b46bb59188a0da5a940e325eaac7d86854006ec071ac5bhighdetectCORNFLAKE.V3 (Node.js) persistence copy
sha2564a97599ff5823166112d9221d0e824af7896f6ca40cd3948ec129533787a3ea9highdetectInterlock Windows encryptor
sha25628c3c50d115d2b8ffc7ba0a8de9572fbe307907aaae3a486aabd8c0266e9426fhighdetectInterlock Linux/ESXi encryptor
byte-pattern488b041f483345f04889041ehighhuntCrypter decryption-loop signature (memory/YARA)
reg-valueHKCU\\...\\CurrentVersion\\Run\\ChromeUpdaterhighhuntCORNFLAKE persistence
filepath%APPDATA%\\Roaming\\node-v22.11.0-win-x64\\highhuntPortable Node.js staging dir
c2-uri/init1234highhuntCORNFLAKE.V3 initial POST
extension.interlock / .!nt3rlock / .1nt3r10ckhighhuntEncrypted-file marker
filename!__README__!.txthighhuntRansom note
05

Affected Surface & Telemetry Matrix

SurfaceTelemetry requiredPriorityGap risk
Windows endpoints (user)ProcessRollup2, CommandLine, AsepValueUpdateP1Low — core Falcon coverage
Domain controllersProcessRollup2, FileCreateInfo, Directory Services auditP1Med — offline VHD clone bypasses live DC watch
DNS / egressDnsRequest, NetworkConnectIP4P2Med — Cloudflare Tunnel blends with legit CDN
Virtualization (ESXi / Nutanix)SSH auth logs, ELF exec on hypervisorP2High — Falcon rarely on hypervisor
Cloud storage (Azure)Azure Storage / NSG egress logsP2High — AzCopy egress often unmonitored
Linux serversProcessRollup2 (Falcon for Linux)P2Med
06

ATT&CK Mapping

TacticTechniqueObserved behaviorQuery / Control
Initial AccessT1189 Drive-by; T1204.004 Malicious Copy&PasteFake CAPTCHA on compromised sites; PowerShell pasteQ1
ExecutionT1059.001 PowerShell; T1059.007 JavaScriptirm/iex loader; node.exe -e CORNFLAKEQ1, Q2
PersistenceT1547.001 Run Keys; T1053.005 Scheduled TaskChromeUpdater; TimeSync/Defrag tasksQ3, Q4
Command & ControlT1071.001 Web; T1572 TunnelingCloudflare Tunnel + fallback IPs; /init1234Q5
DiscoveryT1482 Domain Trust; T1087.002 Domain Accountnltest, setspn, whoami /allQ6
Credential AccessT1558.003 Kerberoasting; T1003.003 NTDSSPN sweep; offline ntds.dit via VHD cloneQ6, Q7
Lateral MovementT1021.002 SMB/Admin Shares; T1570PsExec remote .ps1 pushQ8
ExfiltrationT1567.002 Cloud; T1048 Alt ProtocolAzCopy to Azure blobNative §7
ImpactT1486 Encrypt; T1490 Inhibit Recovery.interlock writes; vssadmin shadow deleteQ9
Defense EvasionT1070 Indicator Removal; T1006 Direct Volume AccessSelf-delete; BYOVD Hotta Killer; disk-level ntds readQ7, native
07

Native Audit-Log Hunts (non-CQL)

  • Windows Security 4688 — new-process with node.exe command line containing -e and an AppData path; parent powershell.exe/cmd.exe.
  • Sysmon 1 / 11 / 13 — process create for node.exe from AppData; file create of *.log/*.jar under AppData\\Roaming\\node-v22.11.0-win-x64; RegSetValue on ...\\Run\\ChromeUpdater.
  • Directory Services / DC audit — correlate diskshadow.exe, vssadmin create shadow, or Mount-VHD on or adjacent to a domain controller with any subsequent copy of ntds.dit. Offline clone means the read may happen on a non-DC host after the VHD is mounted — watch member servers that suddenly mount a DC’s virtual disk.
  • Azure Storage analytics / NSG flow logs — large PUT volume to *.blob.core.windows.net from a workstation running azcopy or win64.exe.
  • ESXi / Nutanix — unexpected SSH logins (PuTTY / Posh-SSH) followed by ELF execution named script from /usr/tmp or /usr/bin.
  • Scheduled Tasks 4698 — task registration named TimeSync, TimeSyncro, TempDefrag, or a rogue ScheduledDefrags whose action is node.exe/rundll32 out of AppData.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · ClickFix PowerShell one-liner from Run dialog / browser
CONF HIGHFP LOWCOST LOW

Looks for: a hidden-window PowerShell child of explorer/a browser that pulls and executes remote code from a :8080 host — the ClickFix paste-execution pattern.

// HUNT: ClickFix PowerShell one-liner spawned from Run dialog / browser
// MITRE: T1204.004, T1059.001
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: rare admin one-liners using irm/iex interactively
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/\\powershell(\.exe)?$/i
| ParentBaseFileName=/^(explorer|mshta|msedge|chrome|firefox|brave)\.exe$/i
| CommandLine=/(irm|Invoke-RestMethod|iex|Invoke-Expression)/i
| CommandLine=/:8080|TotalSeconds|-band|-w\s+h|windowstyle\s+hidden/i
| table([ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, aid], limit=200)
Q2 · Node.js runtime executing inline script from AppData (CORNFLAKE.V3)
CONF HIGHFP LOWCOST LOW

Looks for: the portable node.exe dropped under AppData\Roaming\node-v22.11.0-win-x64 running an inline -e script or the init1234 beacon path — the CORNFLAKE in-memory backdoor. This is the single highest-value hunt in the pack.

// HUNT: Node.js runtime executing inline script from AppData (CORNFLAKE.V3)
// MITRE: T1059.007, T1105
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: legitimate node.exe normally runs from Program Files, not AppData\Roaming
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/\\node\.exe$/i
| ImageFileName=/\\AppData\\Roaming\\node-v22\.11\.0-win-x64\\/i
| CommandLine=/\s-e\s|init1234/i
| table([ComputerName, UserName, ImageFileName, CommandLine, SHA256HashData, aid], limit=200)
Q3 · HKCU Run-key persistence (ChromeUpdater / TimeSync)
CONF HIGHFP MEDCOST LOW

Looks for: a CurrentVersion\Run value named ChromeUpdater or TimeSync. FP: genuine Google updates use GoogleUpdate/GoogleChromeAutoLaunch, not ChromeUpdater; still baseline before alerting.

// HUNT: CORNFLAKE persistence via HKCU Run key (ChromeUpdater / TimeSync)
// MITRE: T1547.001
// CONF: high  FP: medium  COST: low | REQUIRES: AsepValueUpdate
// FALSE POSITIVES: legitimate updater Run values on some OEM images
// TUNING: alert only when RegStringValue points at AppData\Roaming and ends in .log/.js or node.exe; exclude signed GoogleUpdate paths under Program Files
#event_simpleName=/AsepValueUpdate|RegGenericValueUpdate/
| RegObjectName=/\\CurrentVersion\\Run$/i
| RegValueName=/ChromeUpdater|TimeSync/i
| table([ComputerName, UserName, RegObjectName, RegValueName, RegStringValue, aid], limit=200)
Q4 · Masquerading scheduled task (TimeSync / Defrag)
CONF MEDFP MEDCOST LOW

Looks for: scheduled tasks named to blend with time-sync / defrag maintenance. FP: the built-in ScheduledDefrags task exists on many builds — discriminate on the task action.

// HUNT: Masquerading scheduled task (TimeSync / Defrag) for RAT persistence
// MITRE: T1053.005
// CONF: medium  FP: medium  COST: low | REQUIRES: ScheduledTaskRegistered
// FALSE POSITIVES: genuine Windows ScheduledDefrags maintenance task
// TUNING: exclude TaskExecutable=%SystemRoot%\System32\defrag.exe and w32tm.exe; alert when the action runs node.exe/rundll32/powershell from AppData
#event_simpleName=ScheduledTaskRegistered
| TaskName=/TimeSync|TimeSyncro|TimeSyncDrive|TempDefrag|ScheduledDefrags/i
| table([ComputerName, UserName, TaskName, TaskExecutable, aid], limit=200)
Q5 · Cloudflare-Tunnel-masked C2 from node/rundll32
CONF MEDFP MEDCOST MED

Looks for: a *.trycloudflare.com lookup made by node/rundll32/conhost — free Quick-Tunnel C2. FP: developers legitimately use Cloudflare Quick Tunnels.

// HUNT: node.exe/rundll32 resolving a trycloudflare.com tunnel (masked C2)
// MITRE: T1071.001, T1572
// CONF: medium  FP: medium  COST: medium | REQUIRES: DnsRequest
// FALSE POSITIVES: developer / IT use of Cloudflare Quick Tunnels
// TUNING: restrict to requestors under AppData and exclude known developer hosts/allowlisted tunnel names
#event_simpleName=DnsRequest
| DomainName=/\.trycloudflare\.com$/i
| ContextBaseFileName=/^(node|rundll32|conhost|cloudflared)\.exe$/i
| table([ComputerName, DomainName, ContextBaseFileName, aid], limit=200)
Q6 · SPN sweep + domain-trust enumeration (recon payload)
CONF MEDFP MEDCOST LOW

Looks for: the CORNFLAKE recon combo — SPN sweep, domain-trust listing, privilege check. FP: admins run these interactively; the discriminator is a node.exe/powershell-from-AppData parent.

// HUNT: SPN sweep + domain-trust enumeration (CORNFLAKE recon)
// MITRE: T1558.003, T1482, T1087.002
// CONF: medium  FP: medium  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: administrators running setspn/nltest interactively
// TUNING: exclude tier-0 admin jump hosts; prioritize when ParentBaseFileName is node.exe or powershell launched from AppData
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/setspn\s+-t|nltest\s+\/(dclist|domain_trusts)|whoami\s+\/all/i
| table([ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, aid], limit=200)
Q7 · Offline NTDS.dit via disk snapshot / VHD clone
CONF HIGHFP LOWCOST LOW

Looks for: disk-snapshot / virtual-disk-clone tooling used to read ntds.dit at the volume level, evading EDR that only watches live ntdsutil on the DC. Rare and high-signal.

// HUNT: Offline NTDS.dit extraction via disk snapshot / VHD clone (EDR evasion)
// MITRE: T1003.003, T1006
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: backup/imaging software using VSS on schedule (baseline your backup account)
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/diskshadow|Mount-VHD|Mount-DiskImage|ntdsutil.*ifm|ntdsutil.*create\s+full|vssadmin\s+create\s+shadow/i
| table([ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, aid], limit=200)
Q8 · Ransomware push via PsExec running remote .ps1
CONF HIGHFP LOWCOST LOW

Looks for: PsExec launching a bypass PowerShell that runs a remote .ps1 off a UNC \out\ share — the estate-wide encryptor deployment.

// HUNT: Ransomware push via PsExec running a remote .ps1 from an \out\ share
// MITRE: T1021.002, T1570, T1486
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: legit software deployment via PsExec (baseline your deployment accounts)
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/\\PsExec(64)?\.exe$/i
| CommandLine=/-accepteula/i
| CommandLine=/powershell.*-ExecutionPolicy\s+Bypass.*-file\s+\\\\/i
| table([ComputerName, UserName, ImageFileName, CommandLine, aid], limit=200)
Q9 · Mass file writes with Interlock encryption extension
CONF HIGHFP LOWCOST MED

Looks for: files renamed with the Interlock extension family — encryption in progress. Pair with a per-host count threshold in a scheduled search.

// HUNT: Mass file writes with Interlock encryption extension
// MITRE: T1486
// CONF: high  FP: low  COST: medium | REQUIRES: FileCreateInfo
// FALSE POSITIVES: none expected; extension is attacker-specific
#event_simpleName=/FileCreateInfo|FileRename|RansomwareOpenFile/
| TargetFileName=/\.(interlock|1nt3r10ck|1nt3rlock)$/i
| table([ComputerName, UserName, TargetFileName, aid], limit=200)
09

CrowdStrike Custom IOA Recommendations

IOA namePatternActionExclusions
CORNFLAKE Node-from-AppDataProcess: node.exe with ImageFileName under AppData\Roaming\node-v22.11.0-win-x64 and CommandLine containing -eBlockNone — legit node runs from Program Files
ClickFix paste loaderProcess: powershell.exe child of explorer/browser, CommandLine matches irm|iex + :8080Detect (high)Allowlisted admin automation hosts
Offline NTDS via VHD cloneProcess CommandLine matches diskshadow|Mount-VHD|ntdsutil.*ifm on member server or DCDetect (high)Backup service account + imaging window
Interlock extension writerFile write with extension .interlock / .!nt3rlockBlockNone

Promotion path: Q2 and Q9 are strong Block-tier IOA candidates (attacker-specific, near-zero FP). Q1/Q7 promote to high-severity Detect IOAs after one baseline pass. Q3–Q6 stay Investigate-only hunts until tuned in-tenant.

10

Machine-Readable IOC Appendix

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
sha256,fa3cdb0656522db7409fda54e9a9780cefbd4458c4ad77fdbbb06367207eaf56,detect,critical,2027-01-23,NodeSnake CORNFLAKE sample,campaign:Interlock
sha256,000b24076cae8dbb00b46bb59188a0da5a940e325eaac7d86854006ec071ac5b,detect,critical,2027-01-23,CORNFLAKE.V3 Node persistence copy,campaign:Interlock
sha256,4a97599ff5823166112d9221d0e824af7896f6ca40cd3948ec129533787a3ea9,prevent,critical,2027-01-23,Interlock Windows encryptor,campaign:Interlock
sha256,28c3c50d115d2b8ffc7ba0a8de9572fbe307907aaae3a486aabd8c0266e9426f,prevent,critical,2027-01-23,Interlock Linux/ESXi encryptor,campaign:Interlock
ipv4,216.245.184.181,detect,high,2026-10-23,NodeSnake CORNFLAKE C2,campaign:Interlock
ipv4,168.119.96.41,detect,high,2026-10-23,NodeSnake CORNFLAKE C2,campaign:Interlock
ipv4,128.140.120.188,detect,high,2026-10-23,Interlock RAT C2,campaign:Interlock
ipv4,138.199.161.141,detect,high,2026-10-23,ClickFix PowerShell loader host,campaign:Interlock
domain,speak-head-somebody-stays.trycloudflare.com,detect,high,2026-10-23,Cloudflare Tunnel C2,campaign:Interlock
domain,suffering-arnold-satisfaction-prior.trycloudflare.com,detect,high,2026-10-23,Cloudflare Tunnel C2,campaign:Interlock
domain,REPLACE_WITH_LETSENCRYPT_FALLBACK_1,detect,high,2026-10-23,operator Lets Encrypt fallback domain,campaign:Interlock
ipv4,REPLACE_WITH_HARDCODED_FALLBACK_IP,detect,high,2026-10-23,hardcoded Cloudflare Tunnel fallback IP,campaign:Interlock
Additional SHA256 hunt listretro-scan
# Interlock RAT / ransomware SHA256 (hunt, evaluate hits manually)
1105a3050e6c842fb9411d4f21fd6fdb119861c15f7743e244180a4e64b19b83
33dc991e61ba714812aa536821b073e4274951a1e4a9bc68f71a802d034f4fb9
Behavioral signaturesdurable
# Node.js CORNFLAKE staging dir
%APPDATA%\Roaming\node-v22.11.0-win-x64\
# In-memory exec
node.exe -e "<base64_script>"
# CORNFLAKE.V3 initial C2 POST
/init1234   (C2 replies: ooff=exit, atst=persist)
# Persistence
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ChromeUpdater
# Crypter decryption-loop byte pattern (YARA / memory)
488b041f483345f04889041e
# Ransomware markers
ext: .interlock  .!nt3rlock  .1nt3r10ck
note: !__README__!.txt  FIRST_READ_ME.txt
# Offline cred theft
diskshadow | Mount-VHD | ntdsutil ifm  ->  ntds.dit
Patch / ASR / hardening auditprevention
# ASR rules to enforce (audit -> block)
Block JavaScript/VBScript launching downloaded executable content
Block process creations from PSExec and WMI commands
Block credential stealing from lsass.exe
# Disable Run-dialog paste-execution surface
Remove Windows+R for standard users via GPO where feasible
# DC hardening
Restrict VSS / disk-snapshot rights to backup service accounts only
Audit Directory Service access + ntds.dit reads
# Egress
Block/inspect *.trycloudflare.com and unsanctioned AzCopy egress
11

Detection Validation Gates

GateCheckPass criteria
Telemetry readyProcessRollup2, AsepValueUpdate, DnsRequest, FileCreateInfo flowing from workstations + DCsEvents present in last 24h across sample hosts
Benign baselineRun Q3/Q4/Q5/Q6 over 7 days; catalogue legitimate node/updater/tunnel usageKnown-good documented and excluded before alerting
Positive testIn a lab: node.exe -e from AppData; register a ChromeUpdater Run value; write a .interlock test fileQ2, Q3, Q9 each fire
PromotionQ2 & Q9 to Block IOA; Q1/Q7 to high Detect IOAZero FP over baseline window, then promote
12

Hardening — Tiered

Immediate (this week)
  • Kill the ClickFix surface: deploy ASR rule Block JavaScript or VBScript from launching downloaded executable content and Block process creations originating from PsExec and WMI commands in Block mode (MITRE M1042; MS Security Baseline / Defender ASR).
  • Constrained Language Mode + logging: enable PowerShell Script Block Logging (4104) and Module Logging estate-wide; set CLM for standard users (MITRE M1038/M1042; CIS Windows 2.3).
  • Block disposable tunnels & unsanctioned egress: DNS/proxy block *.trycloudflare.com and alert on azcopy to *.blob.core.windows.net from workstations (MITRE M1037).
Near term (1–4 weeks)
  • Lock down offline DC-disk theft: restrict the Back up files and directories / VSS and virtual-disk-snapshot rights to a dedicated backup account; alert on any diskshadow/Mount-VHD outside the backup window (MITRE M1015; MS AD hardening).
  • Tier-0 isolation: block workstation-to-workstation and workstation-to-DC SMB/RDP; enforce the authentication-silo / PAW model for DA accounts (MITRE M1030/M1026; CIS AD Benchmarks).
  • App control: WDAC/AppLocker policy denying node.exe, rundll32.exe, and PsExec execution from user-writable paths (MITRE M1038).
Strategic (1–3 months)
  • Kerberoasting resistance: migrate service accounts to gMSA / 25+ char passwords; audit SPNs on privileged accounts (MITRE M1027; MS baseline).
  • Immutable, offline-verified backups for DCs, ESXi/Nutanix datastores, and file servers; rehearse restore (MITRE M1053).
  • Hypervisor EDR / logging on ESXi and Nutanix; SSH allow-list and MFA on management planes (vendor hardening guides — best-practice).
13

Deployable Playbooks

1 · Enforce the two highest-leverage ASR rules (PowerShell)

# Block JS/VBScript launching downloaded content, and PsExec/WMI-spawned processes
Add-MpPreference -AttackSurfaceReductionRules_Ids D3E037E1-3EB8-44C8-A917-57927947596D -AttackSurfaceReductionRules_Actions Enabled
Add-MpPreference -AttackSurfaceReductionRules_Ids d1e49aac-8f56-4280-b9ba-993a6d77406c -AttackSurfaceReductionRules_Actions Enabled
# Verify
(Get-MpPreference).AttackSurfaceReductionRules_Ids

2 · Enable PowerShell script-block + module logging (GPO / registry)

$k = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging'
New-Item $k -Force | Out-Null
Set-ItemProperty $k EnableScriptBlockLogging -Value 1 -Type DWord
$m = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging'
New-Item $m -Force | Out-Null
Set-ItemProperty $m EnableModuleLogging -Value 1 -Type DWord

3 · Detect rogue node.exe persistence (spot-check)

# Flag any Run value that launches node/rundll32 out of AppData
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run' |
  Select-Object * |
  Where-Object { $_ -match 'AppData' -and $_ -match 'node|rundll32|\.log' }
# Look for the portable node staging dir
Test-Path "$env:APPDATA\node-v22.11.0-win-x64"

4 · Restrict VSS / disk-snapshot rights on DCs (audit)

# Who holds SeBackupPrivilege / can run diskshadow? Review and prune.
whoami /priv | findstr /i "SeBackupPrivilege SeRestorePrivilege"
# Alert source: 4688 for diskshadow.exe or powershell Mount-VHD outside backup window
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain hosts running node.exe-from-AppData or with the ChromeUpdater Run value; suspend suspected compromised accounts; block C2 IPs/domains and *.trycloudflare.comSOC / IRQ2/Q3/Q5 hits, aid list
EradicateRemove Run value + scheduled tasks + node staging dir; kill node/rundll32 chains; rotate ALL credentials (assume ntds.dit stolen); revoke Kerberos tickets (krbtgt 2x)IR / IAMPersistence artifacts, ntds access logs
RecoverRestore from offline-verified backups; rebuild DCs if ntds.dit confirmed cloned; re-image encrypted hosts; validate ESXi/Nutanix integrityIT / IRBackup restore logs
Post-incidentEnforce Immediate + Near-term hardening; promote Q2/Q9 to Block IOAs; hunt for BYOVD Hotta Killer and AzCopy egress you missedDetection EngThis pack §12–13
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1204.004ClickFix paste-execQ1DetectGood
T1059.007CORNFLAKE node -eQ2BlockGood
T1547.001Run key persistenceQ3Good
T1053.005Masquerade taskQ4Partial
T1572Cloudflare Tunnel C2Q5Partial
T1558.003 / T1482Kerberoast / AD reconQ6Partial
T1003.003 / T1006Offline ntds.ditQ7DetectGood
T1021.002 / T1570PsExec ransomware pushQ8Good
T1486EncryptionQ9BlockGood
T1567.002 / T1048AzCopy exfil— (native §7)GAP
T1490Shadow-copy deletion— (native §7)Partial

Known gaps: Azure exfil (T1567.002) and hypervisor-side ESXi/Nutanix activity have no CQL coverage — Falcon rarely sits on cloud storage or hypervisors. Cover these with Azure Storage analytics / NSG flow logs and hypervisor logging per §7. Validation gates (§11) must be green before Q2/Q9 promote to Block IOAs.

16

Hunt Summary Ticket

TITLE:      Interlock ransomware - CORNFLAKE/FLUTECLICK ClickFix chain (CAMP.26.095)
SEVERITY:   Critical (active RaaS, double extortion)
SCOPE:      Windows workstations + domain controllers + ESXi/Nutanix + Azure egress
HYPOTHESIS: ClickFix -> node.exe CORNFLAKE from AppData -> AD recon/Kerberoast ->
            offline ntds.dit via VHD clone -> PsExec Interlock encryptor + AzCopy exfil
QUERIES:    Q1 ClickFix PS | Q2 node-from-AppData | Q3 Run key | Q4 sched task |
            Q5 trycloudflare C2 | Q6 SPN/nltest | Q7 offline NTDS | Q8 PsExec push | Q9 .interlock
DO FIRST:   Run Q2 and Q7 - both sit before encryption and before creds are stolen
FINDINGS:   <fill in per environment>
GAPS:       Azure exfil + hypervisor activity have no CQL (see Coverage Map)
ACTIONS:    Enforce ASR + PS logging (S12/13); promote Q2/Q9 to Block IOA after baseline
OWNER:      HuntPack
VERSION:    v0.2 - 2026-07-23
17

Changelog

v0.22026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.12026-07-23Initial pack — 9 CQL hunts, 4 IOA recs, tiered hardening + playbooks, containment runbook. Built from Mandiant GTIG CORNFLAKE.V3, CISA AA25-203A, FortiGuard, Sekoia, Forescout, SOC Prime. Atomic IOCs traced to saved source snapshots; operator Let’s Encrypt fallback domains shipped as placeholders pending disclosure.
18

References

TierSourceUsed forAccessed
1Mandiant / GTIG — Analyzing the CORNFLAKE.V3 BackdoorCORNFLAKE variants, Node.js persistence, C2, Kerberoasting, WINDYTWIST.SEA, UNC5518/UNC57742026-07-23
1CISA — #StopRansomware: Interlock (AA25-203A)ClickFix IA, TTPs, extensions, ransom note, MITRE mapping, Rhysida overlap2026-07-23
1FortiGuard Labs — New Techniques, Same Old TricksC2 IPs/domains, crypter byte pattern, PsExec deploy, scheduled tasks, BYOVD2026-07-23
1Sekoia.io TDR — Interlock evolving under the radarFull IOC set (C2, ransomware/RAT SHA256), four RAT variants, /init12342026-07-23
2Forescout Vedere Labs — A Year LaterOffline ntds.dit via VHD snapshot clone; ESXi/Nutanix; four RATs2026-07-23
2SOC Prime — Detect Interlock Ransomware Attackscht.exe, klg.dll, PHP RAT, Chrome Updater Run key2026-07-23