Security researchers have uncovered a large-scale cybercriminal operation that combines two techniques defenders have been tracking separately for over a year: the ClickFix social-engineering lure and EtherHiding — the practice of storing malicious payloads inside smart contracts on public blockchains. In this campaign, more than 5,400 compromised websites, predominantly small-business WordPress properties, are serving malicious JavaScript that ultimately walks victims through a fake CAPTCHA or browser-error page and tricks them into pasting attacker-controlled commands into the Windows Run dialog or a terminal.
What makes this operation strategically significant is not just the scale — it is the resilience of the payload infrastructure. By storing the malicious code in smart contracts on the BNB Smart Chain (BSC) and retrieving it via read-only blockchain RPC calls (eth_call), the operators gain a takedown-resistant, effectively free, and pseudonymous command-and-distribution layer. There is no malicious server to seize and no domain to sinkhole. Every defender responsible for web gateway policy, endpoint detection, or WordPress hosting hygiene needs to understand this attack chain now.
Technical Analysis
Attack Chain
From incident response work on ClickFix-adjacent intrusions, this campaign follows a well-defined sequence:
- Initial site compromise. The operators breach thousands of legitimate small-business websites — a profile consistent with mass exploitation of vulnerable WordPress plugins, weak admin credentials, and outdated themes. These are not typosquatted lookalikes; they are real, aged domains with clean reputations, which defeats many domain-reputation controls.
- Malicious script injection. Attackers inject JavaScript into the compromised sites (typically appended to legitimate theme files or injected via the database). The script conditionally loads the next stage only for selected visitors, reducing exposure to scanners and sandboxes.
- EtherHiding payload retrieval. The injected JavaScript issues read-only calls to public BNB Smart Chain RPC endpoints (e.g.,
bsc-dataseed.binance.organd similar public nodes), invokingeth_callagainst attacker-controlled smart contracts. The contract's returned data contains the obfuscated next-stage code. Becauseeth_callis a read operation, no transaction fees are incurred and nothing mutable is written — the blockchain is used purely as a censorship-resistant data store. - ClickFix lure. The victim is presented with a fake CAPTCHA ("Verify you are human") or a fake browser/error page that instructs them to press
Win+R, paste a command (already copied to their clipboard by the page), and hit Enter. On macOS variants, victims are instructed to paste into Terminal. - Execution. The pasted command typically launches
mshta.exeorpowershell.exewith a hidden window, retrieving and executing the final payload — in observed ClickFix campaigns this has included infostealers (e.g., Lumma/StealC-class) and remote access trojans, which frequently precede ransomware deployment.
Why the Blockchain Staging Matters Defensively
- No traditional C2 to block at first contact. The payload staging traffic is HTTPS to legitimate blockchain RPC infrastructure. Blocking
binance.orgoutright is not viable for many organizations, so domain-level allow/deny logic must be more surgical. - Persistence of the infrastructure. Smart contract data cannot be removed by abuse reports. Even if every compromised site is cleaned, the operator's payload store survives.
- Attribution difficulty. Wallet-funded contract deployment is pseudonymous and cheap.
Exploitation Status
This is confirmed active, in-the-wild exploitation at scale — over 5,400 compromised sites are currently serving the malicious code. There is no CVE associated with this campaign; it is a technique-level threat combining social engineering (MITRE ATT&CK T1204.002 – User Execution: Malicious File/Command), living-off-the-land binaries (T1218.005 – Mshta), and blockchain-based staging (T1102 – Web Service). Any organization with end users who browse the web is in scope.
Detection & Response
The strongest detection opportunities in this chain are at the endpoint execution layer (the Run-dialog child-process anomaly) and the network layer (browser traffic to blockchain RPC endpoints). The registry RunMRU artifact is also high-value for both hunting and post-incident forensics, since it records exactly what the victim pasted into the Run dialog.
Sigma Rules
---
title: ClickFix Execution - Mshta or PowerShell Spawned by Run Dialog
description: Detects mshta.exe, powershell.exe, or curl.exe launched as a direct child of explorer.exe, consistent with a user pasting a malicious command into the Windows Run dialog per ClickFix social-engineering lures delivered via compromised websites.
author: Security Arsenal
id: 3b9f2e71-6c4a-4d8e-b1f7-9a2c5e8d4f01
status: experimental
references:
- https://www.bleepingcomputer.com/news/security/over-5-400-hacked-sites-serve-clickfix-payloads-stored-on-the-blockchain/
- https://attack.mitre.org/techniques/T1204/002/
- https://attack.mitre.org/techniques/T1218/005/
date: 2026/02/10
tags:
- attack.execution
- attack.t1204.002
- attack.t1218.005
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\explorer.exe'
selection_child:
Image|endswith:
- '\mshta.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\curl.exe'
- '\wscript.exe'
selection_cmd:
CommandLine|contains:
- 'http'
- '-enc'
- '-e '
- 'hidden'
- 'iex'
- 'downloadstring'
condition: selection_parent and selection_child and selection_cmd
falsepositives:
- Rare legitimate administrative one-liners run via Win+R; review CommandLine content
level: high
---
title: EtherHiding Staging - Browser Process Connecting to BNB Smart Chain RPC Endpoints
description: Detects web browsers initiating network connections to public BNB Smart Chain RPC endpoints, consistent with EtherHiding payload retrieval where malicious JavaScript on compromised sites reads attacker-controlled smart contract data via eth_call.
author: Security Arsenal
id: 7d4a1c93-2f8b-4e6a-a3d5-5c1b9e7f3a22
status: experimental
references:
- https://www.bleepingcomputer.com/news/security/over-5-400-hacked-sites-serve-clickfix-payloads-stored-on-the-blockchain/
- https://attack.mitre.org/techniques/T1102/
date: 2026/02/10
tags:
- attack.command_and_control
- attack.t1102
logsource:
category: network_connection
product: windows
detection:
selection_image:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
- '\brave.exe'
- '\opera.exe'
selection_dst:
DestinationHostname|contains:
- 'bsc-dataseed'
- 'binance.org'
- 'bscrpc.com'
- 'rpc.ankr.com'
- 'bsc.publicnode.com'
- 'binance-smart-chain'
condition: selection_image and selection_dst
falsepositives:
- Cryptocurrency users and Web3 developers browsing legitimate BSC dApps; baseline per user role and investigate in context of preceding ClickFix process activity
level: medium
---
title: ClickFix RunMRU Artifact - Suspicious Command Entered in Run Dialog
description: Detects suspicious values written to the Windows RunMRU registry key, which records commands users type into the Win+R dialog. ClickFix victims paste attacker commands here, leaving a durable forensic artifact even if the process fails.
author: Security Arsenal
id: e1c8f5a4-9b3d-4a7c-8e2f-6d0a4b9c1e73
status: experimental
references:
- https://www.bleepingcomputer.com/news/security/over-5-400-hacked-sites-serve-clickfix-payloads-stored-on-the-blockchain/
- https://attack.mitre.org/techniques/T1204/002/
date: 2026/02/10
tags:
- attack.execution
- attack.t1204.002
logsource:
category: registry_set
product: windows
detection:
selection_key:
TargetObject|contains: 'Explorer\RunMRU'
selection_value:
Details|contains:
- 'mshta'
- 'powershell'
- 'curl '
- 'wscript'
- 'iex'
- 'http://'
- 'https://'
condition: selection_key and selection_value
falsepositives:
- IT staff running remote script URLs via Run dialog (uncommon and itself worth reviewing)
level: high
KQL (Microsoft Sentinel / Defender)
// Hunt 1: ClickFix execution pattern - LOLBins spawned by explorer.exe with web/download commands
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName =~ "explorer.exe"
| where FileName in~ ("mshta.exe", "powershell.exe", "pwsh.exe", "curl.exe", "wscript.exe")
| where ProcessCommandLine has_any ("http", "-enc", "hidden", "iex", "downloadstring", "invoke-")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, ReportId
| order by TimeGenerated desc;
// Hunt 2: EtherHiding staging - browser connections to BNB Smart Chain public RPC endpoints
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("chrome.exe", "msedge.exe", "firefox.exe", "brave.exe", "opera.exe")
| where RemoteUrl has_any ("bsc-dataseed", "bscrpc.com", "rpc.ankr.com", "bsc.publicnode.com")
or RemoteUrl endswith "binance.org"
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, RemoteUrl, RemoteIP
| order by TimeGenerated desc;
// Hunt 3: Correlate staging to execution - same device hits BSC RPC then spawns suspicious child of explorer
let RpcHits = DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("chrome.exe", "msedge.exe", "firefox.exe")
| where RemoteUrl has_any ("bsc-dataseed", "bscrpc.com", "rpc.ankr.com")
| summarize FirstRpc = min(TimeGenerated) by DeviceName;
RpcHits
| join kind=inner (
DeviceProcessEvents
| where InitiatingProcessFileName =~ "explorer.exe"
| where FileName in~ ("mshta.exe", "powershell.exe", "curl.exe")
| where ProcessCommandLine has_any ("http", "iex", "-enc", "hidden")
) on DeviceName
| where TimeGenerated between (FirstRpc .. FirstRpc + 30m)
| project DeviceName, FirstRpc, ExecutionTime = TimeGenerated, FileName, ProcessCommandLine, AccountName;
Velociraptor VQL
-- ClickFix hunt: RunMRU forensic artifact + explorer-spawned LOLBins + BSC RPC connections
-- RunMRU retains the exact pasted command even if execution was blocked by EDR
LET runmru = SELECT
Key.FullPath AS RunMRUKey,
Key.Name AS Entry,
Key.Data.value AS PastedCommand,
Key.Mtime AS Modified
FROM read_reg_key(
globs='HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU\*',
accessor='registry'
)
WHERE PastedCommand =~ 'mshta|powershell|curl|wscript|iex|http'
LET clickfix_procs = SELECT
Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)mshta|powershell|pwsh|curl|wscript'
AND CommandLine =~ '(?i)http|iex|-enc|hidden|downloadstring'
LET bsc_net = SELECT
Pid, Name, Raddr.IP AS RemoteIP, Raddr.Port AS RemotePort, Status
FROM netstat()
WHERE Name =~ '(?i)chrome|msedge|firefox'
AND Status =~ 'ESTAB'
SELECT * FROM runmru
UNION ALL
SELECT * FROM clickfix_procs
Remediation / Hardening Script
# ClickFix + EtherHiding Defense: audit RunMRU artifacts, restrict mshta, and alert on BSC RPC egress
# Run elevated. Review output before applying blocks in production.
# 1) Forensic sweep: export suspicious RunMRU entries for all loaded user hives
$runMruPath = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU'
if (Test-Path $runMruPath) {
$props = Get-ItemProperty -Path $runMruPath
$props.PSObject.Properties | Where-Object {
$_.Name -match '^[a-z]$' -and $_.Value -match 'mshta|powershell|curl|wscript|iex|http'
} | ForEach-Object {
Write-Warning "Suspicious RunMRU entry: $($_.Value)"
}
}
# 2) Block outbound HTTPS from browsers to known BSC public RPC endpoints (defense-in-depth; prefer proxy/SWG enforcement)
$bscRpcHosts = @('bsc-dataseed.binance.org','bsc-dataseed1.defibit.io','bscrpc.com','bsc.publicnode.com')
foreach ($h in $bscRpcHosts) {
$ips = (Resolve-DnsName $h -Type A -ErrorAction SilentlyContinue).IPAddress
foreach ($ip in $ips) {
New-NetFirewallRule -DisplayName "Block BSC RPC - $h" -Direction Outbound `
-RemoteAddress $ip -Protocol TCP -RemotePort 443 -Action Block -ErrorAction SilentlyContinue
}
}
# 3) Constrain mshta abuse via Windows Defender Application Control / AppLocker (example deny for standard users)
# Prefer AppLocker policy over deletion: create a DENY rule on %SystemRoot%\System32\mshta.exe for non-admin groups.
# 4) Audit current explorer-spawned LOLBin executions on this host (last 24h)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddDays(-1)} -ErrorAction SilentlyContinue |
Where-Object { $_.Message -match 'explorer.exe' -and $_.Message -match 'mshta|powershell|curl' -and $_.Message -match 'http' } |
Select-Object TimeCreated, Message | Format-List
Remediation
If a user executed a ClickFix command (confirmed via RunMRU or process telemetry):
- Isolate the host immediately and capture memory before remediation — infostealers in this class harvest browser credentials, session cookies, and crypto wallets within seconds.
- Reset all credentials used or stored on that endpoint, prioritizing domain accounts, email, VPN, and any SaaS sessions whose tokens may have been exfiltrated. Revoke active sessions, not just passwords.
- Pull the RunMRU registry key and EDR process tree to reconstruct exactly what was pasted and what it retrieved; pivot on any URLs or IPs.
- Reimage the endpoint. Do not rely on AV cleanup after an infostealer detonation.
For the 5,400+ compromised site operators and WordPress hosts generally:
- Audit all sites for injected JavaScript — diff theme/plugin files against clean copies, inspect the
wp_postsandwp_optionstables for injected scripts, and check for rogue admin users and modifiedfunctions.phpfiles. - Rotate all credentials: WordPress admin, database, hosting panel, SFTP/SSH keys.
- Patch every plugin, theme, and core to current versions; remove anything unmaintained. Deploy a WAF with virtual patching for WordPress.
- Enforce MFA on all administrative access and restrict file editing (
define('DISALLOW_FILE_EDIT', true);).
Preventive controls for all organizations:
- Block or alert on browser egress to public blockchain RPC endpoints (BNB Smart Chain, and apply the same logic to other chains' public nodes) at your secure web gateway. Most enterprises have zero legitimate business need for workstation browsers to call
bsc-dataseedinfrastructure. - Deploy the Sigma/KQL content above — the explorer.exe → mshta/powershell parent-child anomaly is one of the highest-fidelity ClickFix detections available and catches the technique regardless of which lure or payload is used.
- User awareness: publish a one-page internal advisory now. The single most effective control against ClickFix is a workforce that knows no legitimate website will ever ask them to press Win+R and paste a command.
- Restrict Run dialog and LOLBin abuse via AppLocker/WDAC policies where operationally feasible, and ensure PowerShell Script Block Logging and process creation auditing (Event ID 4688 with command line) are enabled everywhere.
- Search your web proxy logs for the RPC endpoint domains listed in the detections to determine whether staging traffic has already occurred in your environment — then correlate to process execution within 30 minutes on the same device.
Related Resources
Security Arsenal Managed SOC Services AlertMonitor Platform Book a SOC Assessment soc-mdr Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.