Back to Intelligence

Psychedelic Stealer ClickFix Campaign: Fake CAPTCHA MSI Installer Targets Ukrainian Enterprises — OTX Detection Pack

SA
Security Arsenal Team
November 1, 2026
10 min read

AlienVault OTX pulse data reveals an active social engineering campaign attributed to an unattributed Russian-speaking operator that compromised at least six legitimate Ukrainian small-business websites between September 9 and September 14, 2026. The campaign delivers a fake Cloudflare verification page that leverages the ClickFix technique — convincing victims to manually execute msiexec.exe commands via the Windows Run dialog. The campaign achieved a 14 percent completion rate (79 infections from 426 clicks), indicating the landing page and lure design are highly effective against Ukrainian users in Healthcare, Manufacturing, Media, and Retail sectors.

The delivered payload is Psychedelic Stealer, observed as psychedeliclove.exe, distributed both as an MSI package (elita.msi) hosted on attacker-controlled domains (uasputnik.com, fsputnik.com) and as a raw executable retrieved from a direct-IP C2 endpoint (http://107.175.82.242:9000/wilow/psychedeliclove.exe). The campaign's objectives include cryptocurrency theft, credential harvesting, and data exfiltration via a browser extension that abuses the native-messaging bridge. The TLP:WHITE designation and OTX publication indicate this is actively circulating intelligence that should be operationalized immediately by enterprise SOC teams with Ukrainian user populations or third-party exposure to the affected verticals.

Threat Actor / Malware Profile

Actor: Unattributed, Russian-speaking operator. The targeting of Ukrainian small businesses, language indicators, and infrastructure choices are consistent with financially motivated threat actors operating out of Russian-speaking regions, though no formal APT attribution has been established.

Malware Family: Psychedelic Stealer (psychedeliclove.exe)

Distribution Method: ClickFix social engineering via compromised legitimate Ukrainian websites. Victims are presented with a fake Cloudflare verification page that instructs them to open the Windows Run dialog (Win+R) and paste a command that invokes msiexec.exe to download and execute a malicious MSI package (elita.msi). This technique bypasses traditional email gateway and web filtering controls because the user manually initiates the download and execution.

Payload Behavior: Psychedelic Stealer is an information-stealing malware that harvests browser credentials, cookies, autofill data, cryptocurrency wallet data, and system information. It installs a malicious browser extension that communicates with the native host process via the browser's native-messaging API, allowing it to intercept browser traffic, inject content, and exfiltrate session tokens even after the initial stealer process terminates.

C2 Communication: The malware communicates with a direct-IP C2 server at 107.175.82.242:9000 over HTTP. The URI pattern /wilow/psychedeliclove.exe indicates a staging path for payload delivery and likely a C2 endpoint for data exfiltration. The use of a non-standard port (9000) and raw IP communication suggests the operator is using low-cost bulletproof hosting or a VPS without domain fronting.

Persistence Mechanism: The browser extension component provides persistent access to browser sessions and credentials independent of the main executable. The MSI installer may also create registry run keys or scheduled tasks to ensure the stealer executes at startup.

Anti-Analysis Techniques: The ClickFix technique itself is an anti-analysis control — by requiring manual user execution, the malware avoids sandbox detonation and automated web crawling. The use of MSI packages and legitimate msiexec.exe living-off-the-land binaries further reduces the likelihood of signature-based detection.

IOC Analysis

The pulse contains 11 indicators across four types:

TypeCountIndicatorsOperationalization
Domain2uasputnik.com, fsputnik.comBlock at DNS, web proxy, and email gateway. Add to threat intel platform for alerting on historical DNS resolutions.
FileHash-SHA256206f434695f93d7fd11eeff71358ff69fed79d310a66d993bbcc4ff979c117c90, 38e90affe37342ee36917cdc535fe9bf04589afa8430eb8d1ba1016adcfc1878Block in EDR and application control. Hunt for file creation events matching these hashes.
URL2https://uasputnik.com/elita.msi, http://107.175.82.242:9000/wilow/psychedeliclove.exeBlock at web proxy and firewall. Hunt for network connections to these URLs.
FileHash-MD521f250eb486571d99bc1e4d760e37a554, ae5450f32bcb533c5b592c77a7861553Use for legacy AV/EDR integration. Note: MD5 is cryptographically weak; prioritize SHA256 where available.
IPv41107.175.82.242Block at perimeter firewall and EDR network isolation policies. Flag for threat hunting on port 9000.

SOC teams should ingest these indicators into their SIEM and EDR platforms, prioritizing the SHA256 hashes and URLs for immediate blocking. The IP address and domains should be added to DNS sinkhole and proxy block lists. Historical hunting should focus on the last 30 days given the campaign's September activity window and potential for delayed payload execution.

Detection Engineering

YAML
---
title: Psychedelic Stealer ClickFix MSI Execution via Windows Run Dialog
id: 7a3f9c2d-4b8e-4f1a-9d2c-5e6f8a9b0c1d
status: experimental
description: Detects msiexec.exe execution initiated from the Windows Run dialog, consistent with ClickFix social engineering delivering Psychedelic Stealer MSI payloads
author: Security Arsenal
references:
  - https://connect.securonix.com/threat-research-intelligence-62/the-psychedelic-stealer-when-the-captcha-is-the-installer-582
date: 2026/11/01
modified: 2026/11/01
tags:
  - attack.execution
  - attack.t1204.002
  - attack.t1059
logsource:
  category: process_creation
  product: windows
  service: sysmon
detection:
  selection_img:
    - Image|endswith: '\msiexec.exe'
    - OriginalFileName: 'msiexec.exe'
  selection_cli:
    CommandLine|contains:
      - '/i http'
      - '/i https'
      - '/quiet'
      - '/qn'
  selection_parent:
    ParentImage|endswith:
      - '\explorer.exe'
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\mshta.exe'
  condition: selection_img and selection_cli and selection_parent
falsepositives:
  - Legitimate software deployment via MSI by system administrators
  - User-initiated installation of trusted software from vendor websites
level: high
---
title: Psychedelic Stealer Network Communication to Known C2 Infrastructure
id: 8b4f0d3e-5c9f-4e2b-8e3d-6f7a9b0c1d2e
status: experimental
description: Detects network connections to Psychedelic Stealer C2 infrastructure including direct IP communication on non-standard port 9000
author: Security Arsenal
references:
  - https://connect.securonix.com/threat-research-intelligence-62/the-psychedelic-stealer-when-the-captcha-is-the-installer-582
date: 2026/11/01
modified: 2026/11/01
tags:
  - attack.command_and_control
  - attack.t1071.001
  - attack.t1573
logsource:
  category: network_connection
  product: windows
  service: sysmon
detection:
  selection_dest_ip:
    DestinationIp: '107.175.82.242'
  selection_dest_port:
    DestinationPort: 9000
  selection_dest_domain:
    DestinationHostname|contains:
      - 'uasputnik.com'
      - 'fsputnik.com'
  condition: selection_dest_ip or selection_dest_port or selection_dest_domain
falsepositives:
  - None expected for these specific IOCs in enterprise environments
level: critical
---
title: Psychedelic Stealer Browser Extension Native Messaging Persistence
id: 9c5e1f4a-6d0a-4f3c-9f4e-7a8b0c1d2e3f
status: experimental
description: Detects creation of browser native messaging host manifest files or registry keys associated with Psychedelic Stealer browser extension persistence
author: Security Arsenal
references:
  - https://connect.securonix.com/threat-research-intelligence-62/the-psychedelic-stealer-when-the-captcha-is-the-installer-582
date: 2026/11/01
modified: 2026/11/01
tags:
  - attack.persistence
  - attack.t1546
  - attack.t1176
logsource:
  category: registry_event
  product: windows
  service: sysmon
detection:
  selection_registry:
    TargetObject|contains:
      - '\Software\Google\Chrome\NativeMessagingHosts\'
      - '\Software\Mozilla\NativeMessagingHosts\'
      - '\Software\Microsoft\Edge\NativeMessagingHosts\'
  selection_details:
    Details|contains:
      - 'psychedelic'
      - 'psychedeliclove'
      - 'elita'
  condition: selection_registry and selection_details
falsepositives:
  - Legitimate browser extensions with native messaging components
level: high
KQL — Microsoft Sentinel / Defender
// Hunt for Psychedelic Stealer execution and C2 communication
let PsychedelicHashes = dynamic([
    "06f434695f93d7fd11eeff71358ff69fed79d310a66d993bbcc4ff979c117c90",
    "38e90affe37342ee36917cdc535fe9bf04589afa8430eb8d1ba1016adcfc1878",
    "1f250eb486571d99bc1e4d760e37a554",
    "ae5450f32bcb533c5b592c77a7861553"
]);
let PsychedelicDomains = dynamic(["uasputnik.com", "fsputnik.com"]);
let PsychedelicIPs = dynamic(["107.175.82.242"]);
let PsychedelicURLs = dynamic([
    "https://uasputnik.com/elita.msi",
    "http://107.175.82.242:9000/wilow/psychedeliclove.exe"
]);
union isfuzzy=true
(DeviceProcessEvents
| where TimeGenerated > ago(30d)
| where FileName =~ "msiexec.exe"
| where ProcessCommandLine has_any ("/i http", "/i https", "elita.msi")
| extend IndicatorType = "MSI Execution", Indicator = ProcessCommandLine
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, IndicatorType, Indicator
),
(DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where RemoteIP in (PsychedelicIPs) or RemoteUrl has_any (PsychedelicDomains) or RemoteUrl in (PsychedelicURLs)
| extend IndicatorType = "Network C2", Indicator = strcat(RemoteIP, " | ", RemoteUrl)
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, RemoteIP, RemotePort, RemoteUrl, IndicatorType, Indicator
),
(DeviceFileEvents
| where TimeGenerated > ago(30d)
| where SHA256 in (PsychedelicHashes) or MD5 in (PsychedelicHashes)
| extend IndicatorType = "File Hash", Indicator = SHA256
| project TimeGenerated, DeviceName, AccountName, FileName, FolderPath, SHA256, IndicatorType, Indicator
),
(DeviceRegistryEvents
| where TimeGenerated > ago(30d)
| where RegistryKey has_any ("NativeMessagingHosts")
| where RegistryValueData has_any ("psychedelic", "psychedeliclove", "elita")
| extend IndicatorType = "Browser Extension Persistence", Indicator = RegistryKey
| project TimeGenerated, DeviceName, AccountName, RegistryKey, RegistryValueData, IndicatorType, Indicator
)
| order by TimeGenerated desc
PowerShell
# Psychedelic Stealer IOC Hunt Script
# Checks for execution artifacts, browser extension persistence, and network indicators

$ErrorActionPreference = 'SilentlyContinue'

Write-Host "=== Psychedelic Stealer IOC Hunt ===" -ForegroundColor Cyan
Write-Host "Checking for indicators on $env:COMPUTERNAME`n" -ForegroundColor Cyan

# Check for Psychedelic Stealer file hashes
$MaliciousHashes = @(
    "06f434695f93d7fd11eeff71358ff69fed79d310a66d993bbcc4ff979c117c90",
    "38e90affe37342ee36917cdc535fe9bf04589afa8430eb8d1ba1016adcfc1878",
    "1f250eb486571d99bc1e4d760e37a554",
    "ae5450f32bcb533c5b592c77a7861553"
)

Write-Host "[+] Checking for Psychedelic Stealer file hashes..." -ForegroundColor Yellow
$SuspiciousPaths = @(
    "$env:TEMP",
    "$env:APPDATA",
    "$env:LOCALAPPDATA",
    "$env:USERPROFILE\Downloads",
    "$env:ProgramData"
)

foreach ($Path in $SuspiciousPaths) {
    if (Test-Path $Path) {
        Get-ChildItem -Path $Path -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
            $SHA256 = (Get-FileHash -Path $_.FullName -Algorithm SHA256).Hash
            $MD5 = (Get-FileHash -Path $_.FullName -Algorithm MD5).Hash
            if ($MaliciousHashes -contains $SHA256 -or $MaliciousHashes -contains $MD5) {
                Write-Host "[!] MALICIOUS FILE FOUND: $($_.FullName)" -ForegroundColor Red
                Write-Host "    SHA256: $SHA256" -ForegroundColor Red
                Write-Host "    MD5: $MD5" -ForegroundColor Red
            }
        }
    }
}

# Check for browser native messaging host persistence
Write-Host "`n[+] Checking browser native messaging host registry keys..." -ForegroundColor Yellow
$BrowserPaths = @(
    "HKCU:\Software\Google\Chrome\NativeMessagingHosts",
    "HKLM:\Software\Google\Chrome\NativeMessagingHosts",
    "HKCU:\Software\Mozilla\NativeMessagingHosts",
    "HKLM:\Software\Mozilla\NativeMessagingHosts",
    "HKCU:\Software\Microsoft\Edge\NativeMessagingHosts",
    "HKLM:\Software\Microsoft\Edge\NativeMessagingHosts"
)

foreach ($RegPath in $BrowserPaths) {
    if (Test-Path $RegPath) {
        Get-ChildItem -Path $RegPath | ForEach-Object {
            $KeyName = $_.PSChildName
            $ManifestPath = (Get-ItemProperty -Path $_.PSPath).'(default)'
            if ($KeyName -match "psychedelic|elita" -or $ManifestPath -match "psychedelic|elita") {
                Write-Host "[!] SUSPICIOUS NATIVE MESSAGING HOST: $KeyName" -ForegroundColor Red
                Write-Host "    Registry Path: $($_.PSPath)" -ForegroundColor Red
                Write-Host "    Manifest Path: $ManifestPath" -ForegroundColor Red
            }
        }
    }
}

# Check for network connections to C2 infrastructure
Write-Host "`n[+] Checking for active network connections to Psychedelic C2..." -ForegroundColor Yellow
$C2IPs = @("107.175.82.242")
$Connections = Get-NetTCPConnection | Where-Object { $C2IPs -contains $_.RemoteAddress }
if ($Connections) {
    $Connections | ForEach-Object {
        Write-Host "[!] ACTIVE C2 CONNECTION DETECTED" -ForegroundColor Red
        Write-Host "    Remote IP: $($_.RemoteAddress):$($_.RemotePort)" -ForegroundColor Red
        Write-Host "    State: $($_.State)" -ForegroundColor Red
        Write-Host "    Owning Process: $($_.OwningProcess)" -ForegroundColor Red
    }
} else {
    Write-Host "    No active connections to known C2 IPs detected." -ForegroundColor Green
}

# Check DNS cache for malicious domains
Write-Host "`n[+] Checking DNS cache for Psychedelic domains..." -ForegroundColor Yellow
$MaliciousDomains = @("uasputnik.com", "fsputnik.com")
$DNSCache = Get-DnsClientCache | Where-Object { $MaliciousDomains -contains $_.Entry }
if ($DNSCache) {
    $DNSCache | ForEach-Object {
        Write-Host "[!] MALICIOUS DOMAIN IN DNS CACHE: $($_.Entry)" -ForegroundColor Red
        Write-Host "    Data: $($_.Data)" -ForegroundColor Red
    }
} else {
    Write-Host "    No malicious domains found in DNS cache." -ForegroundColor Green
}

# Check for scheduled tasks and run key persistence
Write-Host "`n[+] Checking for persistence mechanisms..." -ForegroundColor Yellow
$RunKeys = @(
    "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run",
    "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
)

foreach ($RunKey in $RunKeys) {
    if (Test-Path $RunKey) {
        Get-ItemProperty -Path $RunKey | ForEach-Object {
            $_.PSObject.Properties | Where-Object { $_.Name -notmatch "PS" } | ForEach-Object {
                if ($_.Value -match "psychedelic|elita|msiexec.*http") {
                    Write-Host "[!] SUSPICIOUS RUN KEY ENTRY: $($_.Name)" -ForegroundColor Red
                    Write-Host "    Value: $($_.Value)" -ForegroundColor Red
                }
            }
        }
    }
}

Write-Host "`n=== Hunt Complete ===" -ForegroundColor Cyan

Response Priorities

Immediate (0-4 hours):

  • Block all listed IOCs at DNS, web proxy, firewall, and EDR: uasputnik.com, fsputnik.com, 107.175.82.242, and associated URLs.
  • Hunt for msiexec.exe executions with HTTP/HTTPS URLs in the command line, particularly those initiated from explorer.exe or browser processes.
  • Isolate any endpoints that have executed files matching the provided SHA256/MD5 hashes.
  • Review DNS query logs for the last 30 days for the listed domains.

24 hours:

  • If Psychedelic Stealer execution is confirmed on any endpoint, initiate forced password resets for all users who authenticated from that device, prioritizing email, VPN, and administrative accounts.
  • Revoke all active sessions and OAuth tokens for affected users. The browser extension component can steal session cookies and tokens that persist after password changes.
  • Audit cryptocurrency wallet access and transactions for users in affected departments.
  • Review browser extension inventories on endpoints for unauthorized or unknown extensions, particularly those with native messaging host permissions.

1 week:

  • Deploy application control policies to block msiexec.exe from downloading and executing remote MSI packages from untrusted sources.
  • Implement browser extension allowlisting to prevent unauthorized extension installation, particularly extensions that request native messaging permissions.
  • Conduct targeted security awareness training for Ukrainian-speaking users and business units with operations in Ukraine, focusing on ClickFix-style social engineering and the risks of executing commands from web pages.
  • Review and harden web application firewall and CMS security for any Ukrainian-language or Ukrainian-hosted web properties to prevent initial compromise and ClickFix page injection.

Related Resources

Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub

Is your security operations ready?

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