Uncovering CRPx0 ClickFix campaign and Python-based Ransomware

Executive Summary

In August 2026, our team identified a new CRPx0 ransomware campaign that uses ClickFix-style social engineering to deliver a Python-based ransomware payload. The campaign begins with malicious HTML files that conceal the ClickFix content and eventually display a fake CAPTCHA verification page, instructing victims to open a terminal and paste a command copied from the webpage. Following execution, the campaign deploys the CRPx0 Loader, which prepares a Python environment and launches the ransomware payload on both Windows and macOS systems. The Loader also provides persistence, defense impairment, data collection, and system encryption capabilities.

The campaign demonstrates a multi-stage architecture that combines several techniques to move from initial user interaction to ransomware deployment. CRPx0 uses encoded HTML content to conceal the initial delivery page, OS-specific commands to deploy the Loader, and a Python-based payload that is itself encoded and compressed. On Windows, the malware attempts to bypass UAC and terminate processes and services associated with a broad range of AV and EDR products, while persistence is established through Scheduled Tasks on Windows and Launch Agents on macOS. The malware also collects selected documents and high-value files, archives them, and sends them to attacker-controlled infrastructure before encryption.

CRPx0 has also established a Ransomware-as-a-Service (RaaS) ecosystem to support the operation and scale victim acquisition through affiliates. Its affiliate offering advertises multiple capabilities, including “ClickFix Social-Engineering Delivery,” and provides affiliates with a dedicated panel for generating builds, managing operations, and reviewing payouts. This indicates that ClickFix is integrated into the group's broader ransomware service rather than being limited to a single intrusion.

CRPx0 Threat Actor

CRPx0 is a relatively new ransomware operation that emerged in spring 2026 and has rapidly expanded its activity, becoming one of the most active ransomware groups observed in recent months. Prior to its ransomware operations, actors associated with CRPx0 were reportedly involved in cryptocurrency-related fraud, including crypto flash-token schemes. The group has since transitioned to a RaaS model, enabling affiliates to conduct attacks and contributing to the rapid expansion of its operations.

Since July 2026, CRPx0 has published 47 organizations on its leak site (hxxps://crpx0[.]su). The majority of the claimed victims are based in the United States, followed by Turkey, with the remaining organizations distributed across several other countries. While the leak-site listings represent claims by the threat actor and are not necessarily independently verified, the volume and pace of publications indicate that CRPx0 is actively expanding its ransomware operations and victim base.

Figure 1: CRPx0 Ransomware data leak blog.
Figure 1: CRPx0 Ransomware data leak blog.

CRPx0 operates a structured Ransomware-as-a-Service (RaaS) affiliate program, offering affiliates a 70% share of ransom proceeds. Prospective affiliates are required to apply to the program and pay a one-time $333 registration fee. The operation also imposes restrictions on targeting organizations located in CIS countries (stated on their affiliate program website), indicating a deliberate exclusion of specific regional victims from its targeting scope.

To attract affiliates, CRPx0 advertises a range of attack capabilities, including “ClickFix Social-Engineering Delivery.” This capability is particularly relevant to the campaign analyzed in this report, where the threat actors leveraged ClickFix-based social engineering as an initial access and payload-delivery mechanism.

CRPx0 also provides affiliates with a dedicated management panel for conducting and monitoring their operations. Through the panel, affiliates can generate ransomware builds, administer campaigns, and monitor their activities and payouts.

Figure 2: CRPx0 Ransomware affiliate program.
Figure 2: CRPx0 Ransomware affiliate program.

ClickFix Campaign

In August 2026, CRPx0 launched a campaign employing a multi-stage infection chain designed to deliver its ransomware payload through ClickFix-based social engineering. The campaign begins with malicious HTML files and ultimately delivers the CRPx0 Loader, which prepares the Python runtime and executes the ransomware. Once deployed, the malware is capable of collecting data from compromised systems and encrypting files.

The initial HTML file uses Base64 encoding to conceal its content and hinder straightforward analysis by web crawlers and security scanners. When loaded, the page decodes the embedded content and replaces the current document stream with a second HTML page containing the ClickFix lure.

Figure 3: Encoded content of HTML file.
Figure 3: Encoded content of HTML file.

The page impersonates a CAPTCHA verification mechanism and instructs the victim to open a terminal and paste a command from the clipboard. By following these instructions, the victim unknowingly executes the malicious command on their system.

Figure 4: ClickFix CAPTCHA verification lure.
Figure 4: ClickFix CAPTCHA verification lure.

Following successful execution, the webpage sends a notification to the C2 server (207.180.29[.]236) containing execution statistics, including the victim's operating system, unique identifier, and affiliate ID.

Figure 5: Statistics sending function.
Figure 5: Statistics sending function.

The ClickFix page delivers OS-specific commands for Windows and macOS. On macOS, the command prepares a Python environment, downloads the CRPx0 Loader, and executes it as sys_service.py. On Windows, the command decodes and executes DLL, which is previously downloaded from the HTML web page. This DLL performs the equivalent setup by retrieving the required Python dependencies and launching the CRPx0 Loader as sys_service.py. This cross-platform delivery mechanism allows CRPx0 affiliates to use the same ClickFix infrastructure to deploy the ransomware operation against both Windows and macOS victims.

Figure 6: Commands concealed in HTML file.
Figure 6: Commands concealed in HTML file.

CRPx0 Loader

On Windows systems, the malicious DLL prepares a Python execution environment by downloading the Python runtime and required get-pip dependencies. It then executes the CRPx0 Loader, named sys-service.py, from the %TEMP%\Low_Graphics_Cache\ directory. This approach allows the malware to establish the required runtime environment on systems where Python is not otherwise installed.

Figure 7: Execution of payload on Windows system.
Figure 7: Execution of payload on Windows system.

Initially, the Loader is in an encoded and compressed form. During execution, it decodes and decompresses an embedded payload, which is subsequently loaded as the main malware component.

Figure 8: CRPx0 Loader encoded and compressed content.
Figure 8: CRPx0 Loader encoded and compressed content.

The resulting payload provides functionality for data collection and exfiltration to attacker-controlled C2 infrastructure, persistence, and EDR/AV evasion. It also contains functionality for encrypting compromised systems, including domain-wide encryption across the victim's network.

Defense Impairment

To evade detection and blocking by endpoint security solutions, the CRPx0 Loader implements several defense impairment techniques. The first stage attempts to bypass Windows User Account Control (UAC) and relaunch the current payload with elevated privileges. The malware creates a temporary registry entry under HKCU\Software\Classes\ms-settings\shell\open{random_suffix}\command, containing a command that launches the current Python interpreter and script. It then executes fodhelper.exe, a legitimate Windows executable that can be launched with elevated privileges without displaying a standard UAC prompt. The registry modification causes fodhelper.exe to execute the attacker-controlled command instead of its intended action, resulting in execution of the payload with elevated privileges. After a short delay, the malware removes the registry keys created during the process.

Figure 9: UAC bypass function.
Figure 9: UAC bypass function.

The Loader then attempts to disable endpoint security products by terminating associated processes and services. The presence of both process and service names indicates that the malware attempts to impair endpoint protection across a broad range of security vendors rather than targeting a single product.

Disabled Processes:

MsMpEng.exe, NisSrv.exe, SecurityHealthSystray.exe, Sense.exe, MsSense.exe, AvastSvc.exe, AvastUI.exe, AVGSvc.exe, AVGUI.exe, avp.exe, kavfs.exe, kes.exe, ekrn.exe, egui.exe, eamonm.exe, eProxy.exe, ccSvcHst.exe, NortonSecurity.exe, SymCorpUI.exe, rtvscan.exe, McAfeeAP.exe, mfevtps.exe, mcshield.exe, masvc.exe, mfeann.exe, bdagent.exe, bdsvc.exe, bdredline.exe, SophosUI.exe, SophosFS.exe, SavService.exe, swi_service.exe, sophos_av.exe, pccntmon.exe, TmProxy.exe, TMBMSRV.exe, TmPfw.exe, tmccsf.exe, mbam.exe, mbamtray.exe, mbamservice.exe, CSAgent.exe, CSFalconService.exe, S1Agent.exe, SentinelWorker.exe, SentinelService.exe, cb.exe, CbDefense.exe, RepMgr.exe, CylanceSvc.exe, CylanceUI.exe, WRSA.exe, WRSVC.exe, WRCoreService.exe, cmdagent.exe, comodo.exe, cfp.exe, fsav32.exe, fsma32.exe, fsm32.exe, fsgk32.exe, a2daemon.exe, a2guard.exe, a2service.exe, fortiedr.exe, fortiservice.exe, forticlient.exe, Traps.exe, cytool.exe, panw_edr.exe, vprd.exe, VipreSvc.exe, VipreEndpoint.exe.

Disabled Services:

WinDefend, Sense, WdNisSvc, SecurityHealthService, wscsvc, MpsSvc, avast! Antivirus, AVG Antivirus, avast! Firewall, AVP, KAVFS, KES, ekrn, eamon, eProxy, Symantec AntiVirus, Norton Security, ccEvtMgr, ccSetMgr, rtvscan, McAfee McShield, McAfeeFramework, McAfeeEngineService, McAfeeAP, bdagent, BitDefender_ScanServer, BitDefender_UpdateServer, Sophos Anti-Virus, SavService, SophosClean, SophosConsole, swi_service, TmCCSF, TmProxy, TMMyWeb, TmPfw, MBAMService, MBAMAgent, S1Management, SentinelService, CSAgent, CSFalcon, CylanceSvc, WRCoreService, WRSA, cmdagent, F-Secure Software, F-Secure Network, FSGK32, EmsisoftSecurityService, EmsisoftProtectionService, FortiEDR, FortiClient, Traps, PaloAltoEDR, VipreSvc, VipreEndpoint.

The Loader also implements self-deletion and cleanup functionality to remove artifacts from the compromised system. It creates a randomly named VBScript file in %TEMP%, which uses the Windows FileSystemObject to overwrite targeted files with a single space and recursively remove the targeted files or directories. Once the cleanup operation is completed, the VBScript deletes itself.

Collection

The CRPx0 Loader implements file collection functionality to identify and exfiltrate potentially valuable data from compromised systems. It searches the system for files matching predefined high-value keywords and file extensions, selecting up to five random documents and 10 high-value files.

Document Extensions:

.doc, .docx, .pdf, .csv, .xlsx, .pptx, .txt

High Value Keywords:

password, passwd, login, credential, secret, token, bank, wallet, crypto, bitcoin, ethereum, metamask, invoice, tax, financial, salary, payment, passport, license, ssn, social, identity, ssh, vpn, config, backup, database, db, private, confidential, key, seed, recovery, .kdbx, .keychain, .pem, .key, .env, .pfx, .p12

High Value Extensions:

.kdbx, .keychain, .pem, .pfx, .p12, .p12, .env, .key, .ovpn, .keystore

Skipped Directories:

node_modules, __pycache__, venv, .git, AppData, Program Files, Program Files (x86), Windows, .cache, .npm, .vscode, .docker

The selected files are collected into a ZIP archive named data_54b7e0_{OPERATION_ID}.zip, which is subsequently uploaded to the attacker-controlled C2 server. The use of both keyword- and extension-based filtering allows the malware to prioritize files that are more likely to contain sensitive or operationally valuable information.

Persistence

The CRPx0 Loader establishes persistence through platform-specific mechanisms on both macOS and Windows systems.

On macOS, the malware creates a Launch Agent at ~/Library/LaunchAgents/com.apple.sync.plist. The configuration instructs macOS to execute the Python interpreter with the malware's application path when the user logs in or the Launch Agent is loaded.

Figure 10: Persistence with Launch Agent function.
Figure 10: Persistence with Launch Agent function.

On Windows, the Loader creates a Scheduled Task named ‘OneDrive Sync Maintenance’. The task is configured to execute the Python interpreter together with the CRPx0 Loader, allowing the malware to automatically restart after system events such as user logon.

The names of persistence mechanisms on both platforms are designed to resemble legitimate system components and may help conceal the persistence mechanism.

Figure 11: Scheduled Task persistence.
Figure 11: Scheduled Task persistence.

Ransomware Functionality

The Python payload contains the core local encryption routine. It begins with environment preparation, verifying the existence of a pre-generated scan report containing target files. If the required cryptography library is missing, the malware dynamically attempts to install it via pip into a temporary directory, ensuring it can execute even on stripped-down or isolated environments.

For cryptographic setup, the function generates a unique, random symmetric Fernet key for the current infection session. Before encrypting any files, it aggressively attempts to send this key to the C2 server. Regardless of whether this "handshake" succeeds, it encrypts the symmetric key using a hardcoded RSA public key. This RSA-encrypted blob is later embedded into the header of every encrypted file, ensuring that only the attacker holding the corresponding private key can ever recover the symmetric key needed for decryption.

Figure 12: Packet with decryption key sent to C2 server.
Figure 12: Packet with decryption key sent to C2 server.

The core encryption loop is highly optimized for speed and stealth. It reads the target file paths from the scan report, shuffles them to avoid predictable disk access patterns, and processes them concurrently using a multi-threaded ThreadPoolExecutor. To maximize speed and evade early detection, it employs partial encryption: it reads and encrypts only the first 1MB of each file, leaving the rest of the file data intact but rendering the file corrupted and unusable. It also employs anti-forensic techniques by preserving the original file's access and modification timestamps before deleting the original.

Eventually, the function handles post-encryption actions and transitions to lateral movement. It alters the user's desktop wallpaper, drops ransom notes (HOW TO RECOVER.txt and HOW TO RECOVER.html) into the affected directories, and sends a final telemetry report to the C2 server detailing the encryption statistics (percentage complete, total size). The routine concludes by calling the network-wide propagation function, shifting the attack from local file encryption to active lateral movement.

Next, payload implements a highly aggressive, multi-stage ransomware and worm propagation module designed to compromise an entire Active Directory domain or local network. For reconnaissance, it identifies the current domain, enumerates Domain Controllers via nltest, and discovers other network hosts using net view, local /24 subnet scanning, and ARP cache parsing to build a comprehensive list of target IP addresses.

Once targets are identified, the malware attempts to encrypt files across network shares without initially needing to execute code on the remote machines. It connects to SMB port 445 on each target, enumerates accessible shared folders and recursively searches for user files. It encrypts files up to 5MB in size using the Fernet key, deliberately skipping critical system extensions (like .exe, .dll, or .sys) to prevent crashing the remote operating system. The encrypted data is written to a new file with a custom header containing the RSA-encrypted Fernet key, renamed with a specific extension, and the original files are deleted.

Finally, the code attempts to copy and execute the malware payload on the discovered hosts to establish persistence and ensure the encryption process runs locally on each machine. On Windows, it uses SMB to drop the payload into the remote C$\Windows\Temp directory and executes it via wmic or scheduled tasks. On Linux/macOS, it leverages SSH keys found in known_hosts to copy and execute the payload via scp and ssh. If direct execution fails across the domain, it falls back to a viral GPO (Group Policy Object) attack by writing a malicious startup.bat script to the domain's SYSVOL share, ensuring the payload runs automatically whenever any machine in the domain boots or refreshes its policies. Throughout the entire attack, it continuously sends telemetry and status updates back to the C2 server.

Figure 13: Ransom note HTML file.
Figure 13: Ransom note HTML file.

Outlook

Despite its recent emergence, CRPx0 has already demonstrated the ability to combine ClickFix-based social engineering, cross-platform malware delivery, defense impairment, data theft, and domain-wide encryption into a single attack chain. The inclusion of “ClickFix Social-Engineering Delivery” in its affiliate offering suggests that this technique is likely to remain an important part of the group's future campaigns.

At the time of our analysis, the CRPx0 Python Loader was hardly detectable by classical antivirus solutions. This increases the importance of behavioral and data-level detection, particularly for attacks that successfully bypass endpoint controls. Organizations should monitor for suspicious clipboard-based command execution, Python interpreters launched from temporary or user-writable directories, fodhelper.exe execution associated with registry modifications, attempts to terminate security products, and subsequent file collection or encryption activity.

The campaign also demonstrates that endpoint detection alone may not be sufficient to prevent the impact of a successful ransomware intrusion. CRPx0 combines defense evasion with data theft and domain-wide encryption, meaning that even when the initial malware is difficult to detect, changes to organizational data and recovery points can provide an additional opportunity to identify the attack and limit its impact. Solutions such as Elastio's Ransomware Recovery and Detection can complement existing endpoint and network controls by inspecting data for ransomware activity and continuously identifying verified clean recovery points. Elastio's approach is designed to detect threats within live data, replicated data, and backups and provide evidence that recovery can be performed from a clean point.

For organizations facing threats such as CRPx0, combining traditional prevention and detection controls with data-level ransomware detection and validated recovery can reduce the risk of prolonged disruption. In particular, continuously verifying the last known clean recovery point can help organizations avoid restoring compromised backups after a domain-wide encryption event. As CRPx0 continues to evolve its tooling and affiliate infrastructure, organizations should maintain layered detection capabilities while ensuring that recovery mechanisms are regularly validated and that clean recovery points remain available.

Indicators of Compromise

Type Value
IP Address 207.180.29.236
Onion Domains tlxoddx4odmc2qvsmtsbgwwsv5j45osb5sox7mz6izxliuju5mkulzad.onion
xburs4nr6cbuktokhqwefeh5hsjakz6usll5o7z5uhrfcnolakj4ptad.onion
kqi5yty6ipuhwz4anutty6hob6et7dvnnxg6kcnulwedjaz5oton2zyd.onion
Domains option.spark198.com
crpx0.su
crpxoxo.pw
TOX ID 17EB54B8455144E088C7E77F88A97221C319F0CFE4FE306853EEB113EE8DB5607BB6EE481C7C
Session ID 050546f6719172e04151c31acb37a242fa3eeff5766aa57331d26cc06e83e9e25b
File Hashes f187b1d7d1757a1115207f0ae93130946925acb3af39cf1bf242a2443da4ded0
7e6d5f6d00c8f2cfadf3fb0c9abbb19f5e291e80729db1c839c78fa4a5bad46c
376cb49c86098078df3e7cdb563bd4ca8afa81356c4fdb098f56b59066c8cdab
28685dff00aa1752b62a8580955b2530d63092bdcc0528b872a668cddad78c11
5856f684c90dba657f5cd77dd337d81fd7503b5225e1843341c1f483eebc9560
0dc6a5ce14838813e297a83e3c3c0868c7a211ee2da9c9705e5a282e65f089fe
ebb58e0cc4d8e081707f843508b13cc45c6f8c3dfff42f27c4fc4bc70493f0d7
bac340524549410f51b060f21abb7db30c0c5378edd2e3ac15b526e141417e89
8af1afc82c0d578a54cc34d09544a0695ec2b0d5f244bf1f1bb4993ee7614734
55a81d88fff3dc3de0e42724b0a992d4ef382b0e1a82187abf9d635ab89b2bae
290d41e7436238066a8aacbd63a805aeeefc00d8798116dc702eccf6df3eae37
6e59b6c75be99a538ab4c94a17698681695c7a6a2a6cf8161a5bf4bdee1299dc
ef431e36a8ac12051af588d800e1d8128d583a9d4c68187709263a13564081cd
006bca7fca78e4cb9a9629c007d629d08f0ef64a58cf045860e5668b774b4539
3e70629521334cd25bd97522f8fc52703bed32e6a915c19ed741d72c9cb3b77a

Can you prove your recovery points are clean?

Your board will ask if you can recover clean. This checklist lets you answer with evidence.

ET

Elastio Team