Infostealer malware is behind a large share of today's credential compromise — and it usually doesn't start with a breach at all. When a security team hears "data breach," the instinct is to look for the moment a database was exfiltrated or a network was penetrated. But more often, the real starting point is a single endpoint infection, often on a personal device, that has nothing to do with the organization's perimeter.
By the time stolen credentials show up in a breach notification or a da
Infostealer malware is behind a large share of today's credential compromise — and it usually doesn't start with a breach at all. When a security team hears "data breach," the instinct is to look for the moment a database was exfiltrated or a network was penetrated. But more often, the real starting point is a single endpoint infection, often on a personal device, that has nothing to do with the organization's perimeter.
By the time stolen credentials show up in a breach notification or a dark web alert, they've already passed through several distinct, mechanical stages. Understanding that pipeline — rather than waiting for the final alert — is what separates reactive security teams from ones that catch exposure early.
How Infostealer Malware Powers the Credential Theft Pipeline?
What follows is a stage-by-stage breakdown of that journey — from the moment infostealer malware first executes on a device, through the log assembly and enrichment steps that add value along the way, to the final point where credentials are packaged and sold on the open market. Each section builds directly on the one before it, showing exactly how a single infection turns into an inventoried, priced, and marketable product.
Execution and Harvesting
The pipeline begins with infostealer malware — a lightweight piece of software designed to do one thing efficiently: grab whatever credentials, cookies, and session tokens are sitting in a browser or application on the infected machine. This is the core mechanism behind modern credential harvesting, and these tools typically arrive through cracked software installers, fake game cheats, malicious browser extensions, or phishing lures disguised as invoices or shipping notices.
Once executed, the stealer doesn't loiter. It targets browser credential stores, autofill data, saved payment details, cryptocurrency wallet files, FTP client configurations, and any session cookies that could allow an attacker to bypass login screens entirely. Many stealers also grab system fingerprinting data — IP address, hardware ID, installed software — which becomes useful later for building convincing sessions or bypassing device-based fraud checks.
The output of this stage is a "log": a structured folder of text files, often just a few kilobytes, containing everything the malware could pull from that one machine. These stealer logs are the raw currency of the entire pipeline that follows.
Aggregation and Log Assembly
A single log is not particularly valuable on its own. Its worth comes from volume. Threat actors operating stealer campaigns typically run panels — command-and-control dashboards — that collect incoming logs from hundreds or thousands of infected machines simultaneously. These logs get bundled into larger archives, sometimes labeled by infection date, campaign, or targeted region.
This is the point where individual credential theft becomes an inventory problem for the attacker. Logs get sorted, deduplicated, and screened for anything obviously valuable — corporate VPN logins, SaaS admin panels, banking portals — versus low-value consumer accounts.
Parsing and Enrichment
Raw logs are messy, so a parsing step usually follows before anything is sold or shared. Automated tools and, in some cases, manual review are used to extract structured fields: username, password, URL, and associated cookies, organized into searchable formats. This is also where enrichment happens — cross-referencing a log against previously leaked datasets to add context like a person's employer, job title, or other accounts tied to the same email address.
Enrichment matters because it changes the value proposition. A raw password paired with a login URL is interesting. That same credential paired with confirmation that it belongs to an IT administrator at a mid-sized company is something else entirely — and priced accordingly.
It's also at this stage that enriched credentials become prime material for credential stuffing campaigns, where attackers automate login attempts across dozens of unrelated services in the hope that a password was reused.
Marketplace Listing
The final stage is distribution. Parsed and enriched logs are listed for sale on dark web marketplaces and forums, sometimes as full archives ("bulk logs") and sometimes broken apart and sold as individual access credentials to specific platforms — a corporate email account, a cloud console login, a remote desktop session. Listings often include partial samples as proof of authenticity, along with metadata like infection date, geography, and browser type, to help buyers judge freshness and relevance.
This is usually the first point where an outside observer — including a security team — has a realistic chance of spotting exposure, provided they're actually looking at this layer of the ecosystem rather than waiting for a breach disclosure further downstream.
Why the Earlier Stages Matter More Than the Alert?
Most detection strategies are built around the last step: someone notices a listing or a breach compilation and issues an alert. But by then, the credential may have already changed hands, been tested against multiple services, or been bundled into a larger fraud operation. The earlier stages — infection, log assembly, and enrichment — are where exposure actually originates, and where it can be caught closer to the source.
For SOC teams and identity security leads, the practical takeaway is that credential exposure isn't a single event to monitor for — it's a pipeline to monitor across. Visibility into stealer logs, marketplace chatter, and enrichment activity gives a much earlier warning than waiting for a finished, packaged breach.
Your Credentials Are Probably Already for Sale. You Just Don't Know It Yet.
Somewhere right now, an infostealer log sits in a marketplace listing with your company's name attached to it — and nobody on your team has seen it. That's not a scare tactic. It's the default state for most organizations, because credential exposure happens quietly, on devices you don't control, long before it ever becomes "your" incident.
The only real question is whether you find out from a threat feed, or from a breach headline.
See what's already exposed — before someone else finds it first.Run a free check with Cybleand get a real answer, not a guess.
Executive Summary
Cyble Research and Intelligence Labs identified an emerging Android malware family tracked as Glitch SPY, distributed through a fraudulent Polish apartment and house rental platform designed to lure users into downloading an Android APK.
Based on the Polish-language lure and rental-themed distribution website, the activity appears to be Poland-focused, targeting users in Poland or Polish expats.
The downloaded application functions as a dropper and installs the Glit
Cyble Research and Intelligence Labs identified an emerging Android malware family tracked as Glitch SPY, distributed through a fraudulent Polish apartment and house rental platform designed to lure users into downloading an Android APK.
Based on the Polish-language lure and rental-themed distribution website, the activity appears to be Poland-focused, targeting users in Poland or Polish expats.
The downloaded application functions as a dropper and installs the Glitch SPY payload after convincing the user to allow installation from unknown sources. Glitch SPY prompts the victim to enable Android Accessibility Service, which it abuses to automate permission grants, interact with the device UI, extract visible screen content, perform gestures, support remote input, and enable further post-infection activity.
Glitch SPY maintains a persistent WebSocket channel to its C&C server and supports over 70 commands spanning live screen streaming and remote control, screenshot and screen-reader capture, SMS, contact, call log, and location theft, camera and microphone surveillance, keylogging, file management, and shell execution.
Beyond standard surveillance, it includes a crypto-clipper that swaps copied wallet addresses across multiple blockchain formats, file encryption/decryption routines, device-unlock and credential-capture logic, and a hidden remote-browser capability that lets attackers conduct web-based account takeover from the victim's own device and IP.
The Builder module lets operators set a custom app name, package ID, icon, and decoy URL per payload, indicating the platform is designed for redistribution across multiple campaigns, not a single targeted operation.
Figure 1 – Glitch SPY Attack Chain
Key Takeaways
Glitch SPY is an emerging Android RAT/builder platform identified through branding observed on an exposed C&C admin panel.
The malware is distributed via a fake Polish rental app website that encourages users to download and install an APK outside official app stores.
The downloaded application is the Brokewell Android Loader, which acts as a dropper and deploys the Glitch SPY payload.
Glitch SPY heavily abuses the Android Accessibility Service to auto-grant permissions, extract on-screen content, perform taps and gestures, and operate the device with minimal user interaction.
Glitch SPY supports extensive surveillance and theft capabilities, including screen streaming, screenshots, keylogging, SMS theft, contact and call log collection, file access, audio and camera capture, clipboard monitoring, location tracking, and remote browser control.
The malware includes a crypto-clipper that swaps copied wallet addresses across multiple formats (ETH/EVM, TRON, Bitcoin legacy, and Bech32) with attacker-controlled addresses, directly targeting cryptocurrency users.
The exposed Glitch SPY panel confirms the presence of modules such as Agents, Viewer, Builder, Cryptor, Dropper, Settings, and Payloads.
The Builder module indicates that threat actors can generate customized Android payloads with configurable names, package IDs, icons, feature modules, decoy WebView URLs, and optional Telegram alerting.
Overview
Cyble Research and Intelligence Labs identified an emerging Android malware family tracked as Glitch SPY, based on branding observed on an exposed command-and-control (C&C) admin panel. The malware was distributed via the suspicious domain tutaj-dompl[.]com, which appears to be a Polish apartment and house rental platform.
The website advertises verified apartments, viewing reservations, direct contact with property owners, and a simplified rental process without broker commissions. Its primary objective is to encourage users to download an Android APK to reserve apartment viewings, check availability, save listings, and receive confirmation updates.
Figure 2 - Fake Tutaj Dom distribution website
The lure is socially plausible, as users searching for rental properties may install a dedicated application to secure viewing slots or communicate with property owners. Based on the Polish-language lure and rental-themed distribution website, the activity appears to be Poland-focused, particularly targeting users searching for rental properties in Poland.
Once installed, the application displays the rental-themed website as a decoy interface, while the Glitch SPY payload runs in the background and initiates malicious activity.
During analysis, the malware was observed communicating with the C&C domain sportypointsrewards[.]com. Accessing the C&C infrastructure revealed an admin login panel branded as Glitch SPY, which prompted for a username and password. We also identified an additional Glitch SPY admin panel URL gich[.]etherraffleexchange[.]us.
However, no communicating APK associated with that second panel has been recovered at the time of analysis.
Figure 3 - Glitch SPY admin login panel
Before authentication, the admin panel exposed a partial view of the Glitch SPY dashboard, revealing multiple modules, including:
Figure 4 – Glitch SPY dashboard
The Agents module appears to be designed to list infected devices and search for victims by name, agent ID, device details, or IP address.
The Viewer module provides live screen viewing and remote-control operations, including remote input, pattern unlock, screen streaming, screenshots, screen-reader extraction, Android navigation controls, camera access, audio capture, keylogging, clipper operations, file management, SMS access, contacts, call logs, location tracking, installed applications, device accounts, system information, remote browser interaction, shell access, permission prompting, Device Admin control, biometric prompt suppression, app hiding, and self-uninstall functionality.
The Builder module allows TA to configure and compile Android payloads using Gradle on the server. Configurable options include the application name, package name, launcher icon, version information, foreground notification text, decoy WebView URL, feature modules, Device Admin activation, and Telegram alert settings.
The Cryptor module is present but marked as “Coming soon,” suggesting planned support for APK repacking, fresh signing, payload noise under assets, and mirror obfuscation layers while preserving installability.
The Dropper module appears to allow TA to wrap a generated payload inside a separate dropper APK, supporting staged delivery.
The Payloads module appears to store APKs generated by the Builder and Dropper modules.
Once the user installs the downloaded application, it functions as a dropper and presents a fake update-style screen to guide the victim through the required installation and permission steps. The dropper first attempts to convince the user to allow installation from unknown sources. After this permission is granted, the Glitch SPY payload is installed on the device.
After installation, Glitch SPY prompts the user to enable the Android Accessibility Service. Once Accessibility access is enabled, the malware abuses this capability to automate permission grants and continue its post-installation activity with minimal user interaction.
This allows Glitch SPY to obtain the permissions required for remote control, screen capture, keylogging, SMS theft, file access, camera and microphone surveillance, clipboard monitoring, and other intrusive operations.
A detailed technical analysis of these capabilities is provided in the following section.
Technical Analysis
The application downloaded from the fraudulent website was identified as the Brokewell Android Loader, based on its package naming pattern and its use of techniques designed to circumvent Android permission restrictions. CRIL first documented the Brokewell Android Loader and the Brokewell Banking Trojan in April 2024.
After installation, the loader presents a fake update-themed screen and prompts the user to allow installation of applications from unknown sources. Once the user grants this permission, the loader installs the Glitch SPY payload on the device.
Figure 5 - Glitch SPY installation activity
Abuse of Android Accessibility Service
Following installation, Glitch SPY immediately attempts to obtain Android Accessibility Service access, which is required for several of its core capabilities. After the user enables the Accessibility Service, the malware abuses this permission to observe UI elements, interact with on-screen content, perform gestures, click buttons, extract visible text, and automate permission approval flows with limited user interaction.
The malware includes logic for remote tap and swipe actions, screen-reader text extraction, gesture dispatch, automated permission granting, keyguard interaction, PIN/password entry, pattern unlock assistance, biometric prompt handling, and force-stop or uninstall interruption. This makes Accessibility the primary mechanism Glitch SPY uses to support TA-driven control of the infected device and to continue post-installation activity.
Command and Control
After installation, Glitch SPY starts its core C&C service and establishes a persistent WebSocket-based communication channel with the command-and-control server. The malware Glitch SPY refers to the device as an agent, assigns an agent_id to the infected device, collects device metadata, and sends an initial hello message along with deviceInfo to register the infected device with the C&C panel. The server responds with a hello_ack, after which the implant maintains connectivity using heartbeat and ping logic.
The implant executes the requested action locally and returns the output through response messages such as command_result, screen_frame, sms_data, contacts_data, file_list, and browser_command_result.
The complete list of commands is provided below.
Command
Feature
request_screen_stream
Starts live screen streaming from the infected device to the C&C panel.
stop_screen_stream
Stops the active screen-streaming session.
request_screenshot
Captures a screenshot of the infected device screen and returns it to the C&C.
request_screen_reader_text
Uses Accessibility to extract visible on-screen text and send it to the C&C Server.
request_sms
Collects SMS messages from the infected device.
send_sms
Sends an SMS message from the infected device using TA provided content.
request_contacts
Extracts the victim’s contact list.
request_call_log
Collects call history from the infected device.
request_location
Retrieves the device location.
request_app_list
Enumerates installed applications on the device.
request_device_accounts
Collects account information configured on the Android device.
request_system_info
Collects device metadata
request_file_list
Lists files and folders from a specified path on the device.
request_file_download
Downloads a selected file from the infected device to the C&C.
request_folder_zip_download
Compresses a folder and prepares it for download
file_upload_start
Starts a file upload session.
file_upload_chunk
Transfers a chunk of a file being uploaded to the infected device.
file_upload_finish
Finalizes the file upload operation on the device.
file_upload_cancel
Cancels an active file upload session.
file_mkdir
Creates a new directory on the infected device.
file_rename
Renames a selected file or folder on the device.
file_run
Opens or executes a selected file on the infected device.
file_zip_here
Creates a ZIP archive next to the selected folder on the device.
file_crypto_lock
Encrypts a selected file, likely producing a .enc file and removing the original.
file_crypto_unlock
Decrypts a previously encrypted .enc file.
request_offline_keylog
Retrieves offline keylog data from the device.
start_keylogger
Starts keylogging
stop_keylogger
Stops the active keylogging module.
request_camera_stream
Starts camera streaming from the infected device.
stop_camera_stream
Stops the active camera stream.
start_audio
Starts audio capture from the infected device.
stop_audio
Stops audio capture.
start_clipboard_monitor
Starts monitoring the device clipboard.
stop_clipboard_monitor
Stops clipboard monitoring.
clipper_get_config
Retrieves the current crypto-clipper configuration from the device.
clipper_set_config
Pushes or updates clipper rules, likely including wallet replacement addresses.
clipper_inject_clipboard
Forces/injects clipboard content on the victim device.
execute_command
Executes a TA-provided shell command on the infected device.
remote_browser_start
Starts a remote browser session on the infected device.
remote_browser_stop
Stops the remote browser session.
remote_browser_navigate
Navigates the remote browser to a supplied URL.
remote_browser_click
Performs a click action inside the remote browser session.
remote_browser_text
Enter the TA-provided text into the remote browser.
remote_browser_swipe
Performs a swipe gesture inside the remote browser session.
remote_browser_key
Sends keyboard key actions to the remote browser, such as Enter, Backspace, Tab, or arrow keys.
remote_browser_js_fill
Fills fields in the remote browser using JavaScript-style automation.
remote_browser_clear_field
Clears a selected input field in the remote browser.
remote_browser_action
Performs a generic browser-side action, likely used for submit, back, reload, or similar UI actions.
remote_browser_set_mode
Switches the remote browser view mode, such as desktop/mobile mode.
remote_browser_fps
Adjusts the remote browser streaming or update frame rate.
tap_ui_submit
Attempts to tap a visible submit/OK/Done button or sends Enter to submit the current UI.
pattern_fetch
Retrieves a stored Android unlock pattern from the malware/device-side store.
pattern_store
Saves a TA-provided Android unlock pattern for later reuse.
pattern_clear_store
Clears the saved unlock pattern from storage.
pattern_auto_unlock
Uses a saved or provided pattern to attempt automatic device unlock.
credential_fetch
Retrieves a stored PIN/password credential value or credential state.
credential_manual_save
Saves a PIN/password credential provided by the TA on the device side.
credential_manual_save_unlock
Saves a supplied credential and immediately attempts to unlock the device with it.
credential_auto_unlock
Attempts to unlock the device automatically using a previously captured or saved credential.
credential_clear
Clears the stored PIN/password credentials from the malware’s storage.
prompt_permission_notifications
Opens or triggers the Android notification permission flow.
prompt_permission_storage
Opens or triggers the storage permission flow.
prompt_permission_location
Opens or triggers the location permission flow.
prompt_permission_battery
Opens the battery optimization exemption flow.
prompt_permission_all_files
Opens the “All files access” permission screen.
activate_device_admin
Launches or triggers Device Admin activation for the malware.
deactivate_device_admin
Attempts to remove Device Admin rights from the malware.
block_biometric
Enables/disables biometric prompt suppression to force PIN/password fallback.
wake_screen
Wake the victim's device screen.
lock_device
Locks the device screen
hide_screen
Hides the visible device screen from the victim's side
hide_app
Hides the malware application icon or disables its launcher component.
show_app
Restores the malware application launcher component.
self_uninstall
Attempts to uninstall the malware from the device.
uninstall_app
Attempts to uninstall a specified application from the device.
Screen Capture and Live Streaming
Glitch SPY can remotely view the victim’s screen and interact with the device in near real time.
When the TA issues the request_screen_stream command from the C&C panel, the malware initiates its screen capture module and begins sending screen frames back to the server as screen_frame messages.
The TA’s panel includes options to control stream quality, FPS, and scale, indicating that the stream can be adjusted based on device state and network conditions.
Figure 6 – Screen capture Activity
For a one-time capture, the TA can use request_screenshot, which instructs the malware to capture the device's screen and return the image to the C&C. When visual streaming is unavailable or insufficient, the user can use request_screen_reader_text, which abuses the Android Accessibility Service to extract visible text from the active screen.
This allows the malware to collect sensitive information displayed in banking applications, messaging apps, OTP prompts, browser pages, and authentication screens.
In addition to visual monitoring, this capability supports hands-on fraud activity. By combining live screen streaming with Accessibility-based remote input, the TA can observe the victim’s device, understand the active application context, and perform follow-up actions such as tapping buttons, entering text, navigating screens, or capturing credentials.
File Manager and File Encryption
Glitch SPY includes a remote file manager that allows the TA to browse, retrieve, modify, and manipulate files on the infected device. When the TA sends request_file_list, the malware lists files and folders from the requested directory and returns the results to the C&C as a file listing.
If the TA selects a file for exfiltration, the malware reads it and sends it back to the server. For folders, the malware compresses the selected directory before exfiltration, making it easier for the TA to retrieve multiple files.
Glitch SPY also includes file encryption and decryption functionality through the file_crypto_lock and file_crypto_unlock commands. When file_crypto_lock is issued, the malware encrypts the selected file using AES/GCM/NoPadding, creates an encrypted .enc version, and removes the original plaintext file.
The encrypted file uses the FMENC1 header followed by cryptographic metadata and ciphertext. If standard deletion of the plaintext file fails, the malware uses a secure-delete routine that overwrites the file with random data, truncates it, syncs the file descriptor, and then attempts to delete it.
Figure 7 – File encryption logic
Although file encryption could be abused for extortion, the analyzed sample does not confirm an automated mass-encryption routine, ransom note, payment workflow, or victim-facing ransom screen.
Crypto Clipper Functionality
The crypto-clipper module is designed to monitor clipboard activity on the infected device and replace copied cryptocurrency wallet addresses with TA-configured addresses.
The module supports multiple wallet formats, including ETH/EVM addresses beginning with 0x, TRON/TRX addresses beginning with T, Bitcoin legacy addresses beginning with 1 or 3, and Bitcoin Bech32 addresses beginning with bc1q or bc1p. The code also includes URI-style prefixes such as bitcoin:, ethereum:, erc20:, tron:, bsc:, matic:, polygon:, arbitrum:, optimism:, base:, and ton:, indicating that the malware can detect wallet addresses copied in both plain-text and URI-prefixed formats.
Figure 8 – Malware implemented crypto wallet address pattern match
When the TA issues the start_clipboard_monitor command, Glitch SPY begins tracking clipboard changes on the infected device. Before performing any replacement, the clipper module is enabled in the configuration.
If replacement is active, the malware reads the current clipboard content, extracts text from available clipboard items, removes null bytes and hidden formatting characters, normalizes whitespace, and attempts to identify a supported cryptocurrency wallet address.
If a valid wallet address is detected, Glitch SPY selects a configured replacement address from the same cryptocurrency family and ensures it is different from the victim-copied address. It then updates the clipboard using Android’s ClipboardManager.setPrimaryClip() API, replacing the victim’s original wallet address with the attacker-controlled value.
After the replacement, the malware reports the event to the C&C server, including the original address, replacement address, and detected cryptocurrency type, such as ETH/EVM, TRX, or BTC.
Glitch SPY’s remote browser capability allows the TA to open and control a browser session directly on the infected device. The malware receives a URL from the C&C server and loads it inside a WebView on the victim’s device. It also supports switching between mobile and desktop browsing modes, allowing the TA to control how websites render during the session.
The browser session runs in a hidden off-screen window, keeping it active without alerting the victim. After the browser session is initialized, the malware reports the session status, loaded URL, browsing mode, and window details back to the C&C server. This allows the TA to confirm that the browser session is active and ready for interaction.
Figure 10 - Remote browser activity
The TA can further control the session using commands to navigate to URLs, click page elements, enter text, swipe through pages, send keyboard actions, and fill or clear web form fields.
When combined with screen streaming, keylogging, screen-reader extraction, clipboard monitoring, and Accessibility-based input, the remote browser capability provides a complete workflow for web-based account takeover and transaction manipulation from the infected device itself.
Figure 11 – Commands to control WebView sessions
The feature can let attacker-controlled web activity originate from the victim’s own device rather than from external attacker infrastructure.
This means the attacker's web activity originates from the victim's IP, with the victim's cookies and any active authenticated sessions intact — making it harder for banks or crypto platforms to flag the login as suspicious.
In fraud scenarios, this may allow attackers to interact with login pages, financial portals, cryptocurrency services, email accounts, or other web applications from the victim’s environment.
Conclusion
Glitch SPY is a capable, actively developing Android threat combining surveillance, remote control, financial fraud, and account takeover within a single platform.
Its use of the established Brokewell loader for delivery, its abuse of the Accessibility Service to automate permission grants after a single user action, and its Builder, Dropper, and payload-management modules indicate a TA investing in a reusable framework rather than a one-off campaign.
The Builder's per-payload configuration options (custom name, icon, package ID, and decoy WebView URL) mean retargeting for a new region or lure requires no code changes.
While the current activity appears targeted at users searching for rental properties in Poland, one recovered APK and two identified C&C panel URLs suggest early-stage distribution. The "Coming soon" Cryptor module and active panel development indicate the platform is still expanding.
Users should avoid installing APKs from outside official app stores. The loader's first action is requesting permission to install from unknown sources; denying it stops the payload before it installs.
Any app that requests Accessibility Service or installs from unknown sources should be treated as suspicious. Keep Google Play Protect enabled.
Our Recommendations
We have listed some essential cybersecurity best practices that serve as the first line of defense against attackers. We recommend that our readers follow the best practices given below:
Install Apps Only from Trusted Sources: Download apps exclusively from official platforms, such as the Google Play Store. Avoid third-party app stores or links received via SMS, social media, or email.
Be Cautious with Permissions and Installs: Never grant permissions and install an application unless you're certain of an app's legitimacy.
Watch for Phishing Pages: Always verify the URL and avoid suspicious links and websites that ask for sensitive information.
Enable Multi-Factor Authentication (MFA): Use MFA for banking and financial apps to add an extra layer of protection, even if credentials are compromised.
Report Suspicious Activity: If you suspect you've been targeted or infected, report the incident to your bank and local authorities immediately. If necessary, reset your credentials and perform a factory reset.
Use Mobile Security Solutions: Install a mobile security application that includes real-time scanning.
Keep Your Device Updated: Ensure your Android OS and apps are updated regularly. Security patches often address vulnerabilities exploited by malware.
Executive Summary
Cyble Research and Intelligence Labs (CRIL) has uncovered a targeted cyberespionage campaign leveraging social engineering and trusted infrastructure to establish persistent, covert access to victim systems.
The attack is delivered via phishing emails containing a malicious LNK file disguised within a RAR archive, using a Russian humanitarian aid request form to exploit contextual trust. Evidence of a secondary survey-based lure indicates the threat actor is actively
Cyble Research and Intelligence Labs (CRIL) has uncovered a targeted cyberespionage campaign leveraging social engineering and trusted infrastructure to establish persistent, covert access to victim systems.
The attack is delivered via phishing emails containing a malicious LNK file disguised within a RAR archive, using a Russian humanitarian aid request form to exploit contextual trust. Evidence of a secondary survey-based lure indicates the threat actor is actively refining delivery techniques.
Execution triggers a stealthy, multi-stage infection chain in which a decoy document is presented to the user while a heavily obfuscated, fileless (PE-less) Python-based implant is silently deployed.
The payload is retrieved from GitHub Releases, enabling the attacker to blend malicious traffic with legitimate services and evade traditional detection mechanisms. Persistence is established through scheduled tasks, ensuring long-term, resilient access.
Once active, the implant operates as a full-spectrum surveillance platform, enabling credential harvesting, keystroke logging, clipboard and screenshot capture, sensitive data exfiltration, and covert remote access. The campaign prioritizes continuous intelligence collection while maintaining a low operational footprint and minimal user visibility.
While attribution remains inconclusive, the artifacts strongly suggest a deliberate intelligence-gathering operation likely targeting Russian-speaking individuals or entities.
Figure 1 - Infection chain
Key Takeaways
The LNK file contains self-obfuscated content that is extracted and executed by PowerShell, using a deliberate technique to evade automated sandbox analysis.
Multiple lure types themed around humanitarian aid, written in Russian, have been observed, suggesting the intended targets are Russian-speaking individuals, and the threat actor is actively adapting delivery approaches.
The payload is obfuscated using PyArmor and hosted on GitHub Releases, a deliberate combination to evade static detection and bypass network-level security controls.
During analysis, the implant was observed collecting browser credentials, session cookies, keystrokes, clipboard data, screenshots, Telegram session data, and sensitive files from the victim's machine.
Remote desktop access is established silently using RustDesk or AnyDesk, giving the attacker persistent interactive access to the victim's machine with no visible window.
Persistence is achieved through a Windows Scheduled Task that survives system reboots, ensuring the implant remains continuously active in the background.
The threat actor behind this campaign has not been conclusively attributed. The campaign uses a surveillance-first, PE-less Python architecture and custom C2 infrastructure, consistent with a targeted espionage operation.
Technical Analysis
This section provides a detailed walkthrough of the attack chain, from initial delivery to payload execution and data collection, based on static and dynamic analysis of the identified samples.
Stage 1: Malicious LNK File Delivery
The infection begins with a Windows shortcut file delivered to the target.
The LNK file is significantly larger than a typical Windows shortcut, as it contains self-obfuscated Unicode content embedded within its body. PowerShell reads this content from a specific offset, decodes it, and executes it in memory. This is a deliberate anti-sandbox technique, as the malware will not execute if the original file is absent from disk, making it appear clean to automated scanning tools.
Figure 2 - Obfuscated and de-obfuscated LNK file contents
Stage 2: Decoy Lure Delivery
Upon execution, the malware downloads a Russian-language humanitarian aid request form ("O predostavlenii gumanitarnoy pomoshchi") from the C2 server, saves it to %TEMP%\open_doc, and displays it to the victim. The lure of both the RAR archive and the LNK file reference humanitarian aid, reinforcing the lure's credibility.
While the victim reads the document, the real installation runs silently in the background. A second variant involving a survey link (hxxp[:]//159.198.41.140/test/index.php?r=survey/index&sid=936926&newtest=Y&lang=ru%22) has also been observed.
Stage 3: Python Environment Bootstrap
The malware creates a fully self-contained Python environment inside the user's %appdata% folder, requiring no administrator privileges.
Installation Path
%APPDATA%\WindowsHelper
`The installation directory is named WindowsHelper to mimic a legitimate Windows system component. The malware correctly handles a known technical requirement for Python's embedded distribution (patching the ._pth file to enable pip), a detail that reflects genuine developer skill. The following Python libraries are installed, each enabling a specific capability:
Figure 5 - Python environment setup
Stage 4: Payload Download and Persistence
The main payload is downloaded from a dedicated GitHub account. Storing it in GitHub Releases rather than the repository code is a deliberate evasion choice, as release artifacts receive less scrutiny from automated scanners and updates can be pushed silently with no commit history. The same account also hosts clean, legitimate files, including the Python embedded runtime and pip installer, making the entire download chain appear as normal GitHub traffic.
Figure 6 – GitHub pageFigure 7 – Releases
Beyond the malicious payload, the same GitHub account also hosts the Python embedded runtime (python-3.12.10-embed-amd64.zip) and the pip installer (get-pip.py) as separate release tags. These are clean, legitimate files. Hosting them on the same repository allows the attacker to download and bootstrap the entire Python environment from a single trusted source, making the full installation chain appear as normal GitHub traffic to network monitoring tools.
Figure 8 - Other clean files
The attacker's GitHub Release page shows frequent republishing of data.zip, with its sha256 hash changing across versions, confirming the threat actor remains active and is continuously updating the campaign payload.
Figure 9 - Release page is active and updated
Persistence
Two silent VBScript launchers, run.vbs and launch_module.vbs, invoke the payload through pythonw.exe with no visible window.
Figure 10 - Persistence through Windows Task Schedular
A Windows Scheduled Task named “WindowsHelper” is registered to run at a short recurring interval, ensuring the implant persists across reboots and remains continuously active in the background.
Stage 5: Active Payload Capabilities
The main payload, module.pyw, is protected with PyArmor v9.2 Pro, a commercial obfuscation tool that converts Python bytecode into a format that resists static analysis and decompilation. Analysis of the disassembled bytecode revealed the following active capabilities:
Figure 11 - Contents of module.pyw
Browser Credential and Cookie Collection
The implant collects stored passwords and session cookies from all major Chromium-based browsers, including Firefox. For Chromium browsers, it extracts the AES-GCM master key from the Local State file and uses it to decrypt stored credentials. It handles both legacy DPAPI-based decryption and newer Chrome encryption schemes (v10, v11, and v20).
Functions identified in bytecode: get_master_key, decrypt_chromium_data, extract_chromium_passwords, collect_and_send_cookies, extract_login_data, extract_firefox_passwords
Figure 12 - Browser data collection
Keylogging
Keystrokes are captured continuously via the keyboard library, stored in keystrokes_log.txt, and periodically uploaded to the C2 server.
Figure 13 - key_strokes.txt
Clipboard Monitoring
The malware monitors clipboard contents in real time using the pyperclip library. Any text copied by the victim, including passwords, tokens, and other sensitive content.
Figure 14 – Clipboard monitoring
Screenshot Capture
The mss library captures continuous desktop screenshots, which are archived as ZIP files and uploaded periodically. Old archives are automatically cleaned up to avoid excessive disk usage.
Figure 15 – PNG files screen capture
File Collection
The implant recursively scans user directories, skipping system folders and low-value file types, to collect documents, configuration files, and credential stores.
This selective filtering is designed to identify high-value files, including documents, configuration files, source code, and credential stores on the Desktop, in Documents, and similar user locations.
Figure 16 - Contents of inventory_state.db
A SQLite database inventory_state.db tracks scanned files to avoid re-uploading unchanged content. Files are also scanned for 64-character hexadecimal strings consistent with cryptocurrency private keys.
Telegram Session Collection
The tdata session folder is extracted and uploaded, giving the attacker full access to the victim's Telegram account without requiring a password.
Figure 17 - Telegram data exfiltration
Remote Access via RustDesk and AnyDesk
Static analysis of the payload reveals the capability to silently download and install RustDesk and AnyDesk. RustDesk, signed by Open Source Developer Huabing Zhou, is a legitimate remote desktop tool that is being abused here to blend in with normal software. The code is designed to hide the application window from the victim and to send the connection credentials back to the C2 server, potentially giving the attacker persistent remote desktop access.
All collected data is transmitted to a single attacker-controlled server. The server hosts a custom-built login panel (Login - Dashboard) that the attacker can use to access all collected data, monitor active implants, and initiate remote desktop sessions.
Figure 19 - Threat Actor Login panel to access stolen data
C2 Server
hxxp://159.198.41[.]140
Server Stack
nginx/1.24.0 on Ubuntu Linux, Flask 3.1.3 backend, Python 3.12.3
Hosting Provider
Namecheap, Inc. (web-hosting.com VPS) - ASN 22612, Atlanta, GA, USA
Upload Endpoint
/upload
Tunnel Endpoint
/tunnel (RustDesk proxy)
User-Agent Spoofed
Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... Chrome/143.0.0.0 ... Edg/143.0.0.0
The C2 server was confirmed live and serving the attacker's login panel as of May 2026. The use of a commercial VPS provider with low-friction provisioning reflects a common pattern among threat actors seeking to quickly deploy and replace infrastructure.
Figure 20 - Uploading files to C&CFigure 21 - Response from C&C
Attribution:
The intended targets of this campaign appear to be Russian-speaking individuals, as evidenced by the Russian-language lure content referencing humanitarian aid. The use of a humanitarian aid application form as a decoy suggests the targets may include individuals or organizations involved in aid distribution, civil administration, or related government functions.
Conclusion
This campaign represents a well-constructed, technically capable cyberespionage operation. The attacker combines a convincing Russian-language humanitarian aid lure with a multi-stage infection chain that silently deploys a full-featured surveillance platform on victim machines.
The Python implant goes beyond credential collection. It enables the attacker to monitor every action a victim takes, collect active browser sessions, capture communications, and maintain live remote desktop access.
The use of PyArmor v9.2 Pro for payload obfuscation, GitHub Releases for payload hosting, and a custom Flask C2 panel demonstrates a technically skilled and operationally disciplined threat actor.
The campaign is active and ongoing. The Russian-language lure content and humanitarian aid theme point to Russian-speaking individuals as the intended target audience.
The use of multiple lure types, particularly humanitarian ones, indicates active development and adaptation. Organizations and individuals should treat this as an active threat and apply the recommendations in this report.
Recommendations
Treat unsolicited files received through email or messaging platforms with caution, especially compressed archives and shortcut files. Verify the sender through a separate trusted channel before opening any attachment.
Enable file extension visibility in Windows to prevent files from being disguised using misleading names or double extensions.
Regularly audit the Windows Task Scheduler for unexpected or newly created tasks, particularly those scheduled to run at short, recurring intervals without a known business justification.
Monitor endpoint activity for the creation of self-contained scripting environments in user-writable directories, as this is a common technique for executing malicious code without administrative privileges.
Block outbound network traffic to known malicious infrastructure at the perimeter and alert on downloads from newly registered or low-reputation hosting accounts on code-sharing platforms.
Monitor for the silent installation of remote desktop tools by non-administrative processes, as legitimate software abused for remote access is a growing attacker technique that can be difficult to detect without process-level visibility.
Deploy endpoint detection rules targeting obfuscated or packed script files appearing in non-standard user directories, as commercially packed payloads are increasingly used to evade static analysis.
Ensure security teams have visibility into scheduled task creation, scripting interpreter activity, and outbound HTTP connections from user-space processes, as these are the primary indicators of this class of threat.
MITRE ATT&CK TTPs
Tactic (Tactic ID)
Technique (Technique ID)
Description
Initial Access (TA0001)
Phishing: Spearphishing Attachment (T1566.001)
Malicious LNK file inside a RAR archive, delivered as a Russian-language humanitarian aid
Execution (TA0002)
User Execution: Malicious File (T1204.002)
The victim must open the LNK file to trigger the infection chain
Execution (TA0002)
Command and Scripting Interpreter: PowerShell (T1059.001)
PowerShell reads content from a specific offset within the LNK file and executes the obfuscated payload
Execution (TA0002)
Command and Scripting Interpreter: VBScript (T1059.005)
run.vbs and launch_module.vbs silently invokes the Python payload with no visible window
Execution (TA0002)
Command and Scripting Interpreter: Python (T1059.006)
Core surveillance implant written in Python, executed via windowless pythonw.exe
Persistence (TA0003)
Scheduled Task/Job: Scheduled Task (T1053.005)
WindowsHelper scheduled task fires every 5 minutes indefinitely and survives system reboots.
Defense Evasion (TA0005)
Obfuscated Files or Information: Software Packing (T1027.002)
Python payload packed with PyArmor v9.2 Pro to resist static analysis and decompilation
Defense Evasion (TA0005)
Masquerading: Match Legitimate Name or Location (T1036.005)
WindowsHelper directory name mimics a legitimate Windows system component
Defense Evasion (TA0005)
Ingress Tool Transfer (T1105)
Payload (data.zip) downloaded at runtime from GitHub Releases, abusing trusted infrastructure.
Credential Access (TA0006)
Credentials from Password Stores: Credentials from Web Browsers (T1555.003)
Collects stored passwords and cookies from Chrome, Edge, Brave, Opera, Yandex Browser, and Firefox
Credential Access (TA0006)
Steal Web Session Cookie (T1539)
Session cookies collected
Credential Access (TA0006)
Unsecured Credentials: Credentials in Files (T1552.001)
Scans for files containing 64-character hex strings consistent with private keys
Collection (TA0009)
Input Capture: Keylogging (T1056.001)
The keyboard library captures all keystrokes continuously and stores them for upload.
Collection (TA0009)
Clipboard Data (T1115)
pyperclip monitors and collects clipboard contents in real time
Collection (TA0009)
Screen Capture (T1113)
mss library takes continuous desktop screenshots and archives
Collection (TA0009)
Data from Local System (T1005)
A selective recursive scan collects documents and configuration files from user directories.
Command and Control (TA0011)
Application Layer Protocol: Web Protocols (T1071.001)
HTTP used to upload all collected data to the C2 server at 159.198.41[.]140
Lateral Movement / Persistence (TA0008)
Remote Access Software (T1219)
RustDesk and AnyDesk are silently installed for persistent interactive remote desktop access.
Exfiltration (TA0010)
Exfiltration Over C2 Channel (T1041)
All collected data was uploaded to the attacker-controlled C2 server in batched archives.
Executive Summary
CRIL has been actively tracking a surge in PXA Stealer activity deployed in a sophisticated, financially motivated threat campaign attributed with high confidence to a Vietnam-based cybercriminal group. The primary targets in this campaign are job seekers across India, Bangladesh, the Netherlands, Sweden, and the United States.
Threat actors leverage LinkedIn as their primary initial access vector, distributing fraudulent recruitment messages via compromised accounts
CRIL has been actively tracking a surge in PXA Stealer activity deployed in a sophisticated, financially motivated threat campaign attributed with high confidence to a Vietnam-based cybercriminal group. The primary targets in this campaign are job seekers across India, Bangladesh, the Netherlands, Sweden, and the United States.
Threat actors leverage LinkedIn as their primary initial access vector, distributing fraudulent recruitment messages via compromised accounts that impersonate legitimate job opportunities.
What makes this threat particularly dangerous is the potential for propagation: compromising one’s LinkedIn account, especially with many connections (such as recruiters or HR personnel), can lead to an exponentially higher rate of further infection. This new trend requires users to be wary when using any social networking platform, even those for professional use.
The infection ultimately delivers a multi-stage information stealer designed to harvest sensitive data, including browser-stored credentials, cryptocurrency wallet information, two-factor authentication (2FA) tokens, hardware wallet artifacts, and email client credentials.
The attack chain demonstrates significant operational sophistication:
Adversaries abuse trusted cloud and professional platforms—including LinkedIn, Google Forms, and Dropbox—to evade reputation-based security controls and increase victim trust.
Execution relies on a legitimate Microsoft 365 binary leveraged for DLL sideloading, while the malicious DLL is artificially inflated to approximately 100 MB to bypass size-based inspection mechanisms.
The final payload executes entirely in memory, minimizing disk artifacts and complicating forensic detection.
This sophistication makes PXA Stealer a potent threat to job seekers in the targeted countries, and the list of victims may expand in the near future.
At the time of analysis, the campaign remained active and continued to propagate laterally through compromised LinkedIn accounts, leveraging victims’ professional networks to further distribute job-themed phishing lures.
The image below shows the Malware profile summary for PXA Stealer from Cyble’s Vision Threat Intelligence.
Figure 1 - PXA Stealer Malware profile
The real-world impact of this lateral spread is evidenced by multiple LinkedIn users publicly reporting that their accounts were compromised and used to distribute fraudulent Apex Logistics Group recruitment messages to their professional connections, as shown below.
Figure 2 - LinkedIn user disclosures confirming account compromises linked to the Apex Logistics Group recruitment lure
Key Takeaways
Attribution: The campaign is attributed with high confidence to PXA Stealer, tied to a Vietnam-based cybercriminal actor. This is further supported by Vietnamese-language strings embedded within malware samples and overlaps with previously documented activity clusters.
Initial Access Vector:Threat actors initiate compromise through LinkedIn direct messages, impersonating recruiters from a fabricated logistics entity, Apex Logistics Group, using job-themed social engineering lures.
Payload Delivery Chain: Victims are redirected through a staged delivery workflow that includes a Google Form, followed by a shortened URL pointing to a Dropbox-hosted ZIP archive. The payload exhibited zero antivirus detections on VirusTotal at the time of discovery.
Execution Mechanism:Malware executes via DLL sideloading using a legitimate, signed Microsoft Office binary (winword.exe), enabling trusted-process execution and reducing behavioral suspicion.
Defense Evasion: The malicious DLL is artificially inflated to approximately 100 MB to evade size-threshold scanning mechanisms. The final payload executes entirely in memory through Python exec() functionality, leaving minimal disk artifacts during runtime.
Command-and-Control (C2): The malware dynamically retrieves its C2 infrastructure from an encrypted Telegram channel. The final payload is hosted on an IP address configured to masquerade as Chinese government infrastructure, likely to hinder attribution and evade network reputation controls.
Objectives: The infostealer’s primary objective is data theft, targeting a broad range of sensitive assets, including:
Browser credentials and session data
Cryptocurrency wallets and Ledger Live artifacts
Two-factor authentication (2FA) and authenticator data
Desktop and email client credentials
Persistence Mechanism: Persistence is established via a scheduled task registered under a name mimicking a legitimate Microsoft Edge update process, blending malicious activity with normal system operations.
Overview
PXA stealer is tied to a Vietnam-linked threat actor who conducted a targeted campaign across multiple countries by impersonating recruiters on LinkedIn and distributing fabricated part-time job opportunities as social engineering lures.
Victims are guided through a staged delivery chain leveraging trusted platforms, including a Google Form, a shortened URL, and a Dropbox-hosted ZIP archive, allowing the malicious payload to evade reputation-based defenses and achieve zero detections on VirusTotal at the time of discovery.
Upon opening the archive, victims unknowingly executed a disguised Microsoft Word binary that initiated a DLL sideloading attack. The sideloaded DLL is artificially inflated to approximately 100 MB, a deliberate evasion technique designed to bypass automated file-scanning and size-threshold inspection mechanisms.
Figure 3 - Infection chain
A concealed batch script subsequently deployed the next-stage payload, established persistence via a scheduled task masquerading as a legitimate Microsoft Edge update process. It launched the final infostealer entirely in memory. Execution relied on multiple layers of encoding—including XOR, Base64, bzip2, and zlib—to obscure payload functionality and minimize forensic artifacts on disk.
PXA Stealer: History and Evolution
PXA Stealer is not a new threat. First publicly documented by Cisco Talos in November 2024, it has undergone continuous, rapid evolution. What began as a straightforward Python-based infostealer has matured into a sophisticated, multi-stage operation backed by an organized criminal ecosystem. Understanding this evolution is critical to anticipating the threat actor's next moves.
The name PXA is tied directly to its original developer, Phan Xuan Anh (PXA), a Vietnamese national who commissioned a high school programmer to develop the malware in late 2024. Vietnamese law enforcement subsequently indicted 12 suspects in early 2026, including the student developer, as part of a global operation that had infected over 94,000 computers worldwide.
Cisco Talos publishes first analysis. Targets: government & education sectors in Europe and Asia. Lure: phishing emails. Exfiltration via Telegram bot. Vietnamese-language strings confirmed.
Late 2024
Initial LinkedIn Campaign
Pivot to LinkedIn DMs impersonating recruiters. Delivery chain: LinkedIn → Google Form → shortened URL → Dropbox ZIP. Microsoft Office (winword.exe) DLL sideloading introduced. DLL inflated to ~100 MB.
Apr-25
Sideloading Expansion
Actors adopt Haihaisoft PDF Reader as an alternative sideloading vehicle alongside winword.exe. Persistence shifts to the Windows Registry. LummaC2 and Rhadamanthys were delivered alongside PXA in the same campaigns.
Mid 2025
Infrastructure Hardening
Dynamic C2 retrieval via Telegram encrypted channels. C2 IPs configured to masquerade as Chinese government infrastructure. In-memory Python exec() execution introduced; no disk artifacts at runtime.
Jul-25
Advanced Evasion (v2.0+)
Multi-layer encoding stack: XOR → Base64 → bzip2 → zlib. Cloudflare Workers are used as a C2 relay. Exfiltrated data format: [CC_IP] HOSTNAME.zip. 4,000+ unique victim IPs across 62 countries confirmed.
Aug-25
Scale Confirmed (SentinelOne / Beazley)
Joint report: 200,000+ unique passwords, 4M+ browser cookies, hundreds of credit card records harvested. Stolen data is sold on the Sherlock marketplace via a subscription model. 4,000+ victim IPs across 62 countries.
Late 2025
RAT Pivot (Huntress Research)
The same threat actor pivots from a custom Python stealer to PureRAT (a commercial .NET backdoor) in some campaigns. Adds: PureMiner, PureClipper, BlueLoader. C2 servers confirmed in Vietnam.
Oct–Dec 2025
Financial Sector Targeting
Microsoft Defender Experts investigate two campaigns targeting financial institutions. Persistence via registry Run keys and scheduled tasks. Python interpreter masqueraded as svchost.exe.
Q1 2026
Infostealer Vacuum Fill
Following the 2025 takedowns of Lumma, Rhadamanthys, and RedLine, PXA Stealer activity surged by 8–10%. New lures: tax forms, legal documents, and Photoshop installers. Financial institutions globally targeted (CyberProof).
Ongoing
Active Campaign (This Report)
LinkedIn job-lure campaign active across India, Bangladesh, the Netherlands, Sweden, USA. Lateral spread through the victim's LinkedIn connections. CRIL is actively tracking.
Comparative TTP Analysis: PXA Stealer Campaigns
The table below cross-references TTPs observed in this campaign against prior PXA Stealer analyses by Cisco Talos (November 2024) and SentinelOne (August 2025). The consistent overlap across delivery, obfuscation, persistence, and exfiltration techniques provides strong technical justification for attributing this activity to the PXA Stealer malware family.
TTP
MITRE Technique
Description
Python-Based Infostealer Payload
T1059.006 - Command and Scripting Interpreter: Python
Core PXA Stealer signature across all known campaigns
DLL Sideloading via Legitimate Signed Binary
T1574.002 - DLL Side-Loading
Consistent technique; signed binary name varies by campaign
Hidden Folder with Staged Payloads
T1564.001 - Hide Artifacts: Hidden Files and Directories
Hidden staging folder with an identical naming convention
WinRAR Renamed as an Image File
T1036.005 - Masquerading: Match Legitimate Name or Location
Same technique; only the filename differs
Password-Protected Archive as Payload Container
T1027 - Obfuscated Files or Information
Archive disguised as a common file type in all campaigns
Telegram Bot for C2 or Data Exfiltration
T1071.001 - Application Layer Protocol: Web Protocols
Hardcoded TOKEN_BOT and CHAT_ID across all variants
Vietnamese Language Strings in Payload
T1027 - Obfuscated Files or Information
Attribution marker present in all documented PXA campaigns
Renamed Python Interpreter
T1036.005 - Masquerading: Match Legitimate Name or Location
Python interpreter masqueraded as a system process
Scheduled Task or Registry Persistence
T1053.005 - Scheduled Task / T1547.001 - Registry Run Keys
Persistence method; mechanism varies slightly by variant
Multi-Layer Payload Obfuscation
T1027 - Obfuscated Files or Information
Layered encoding is a consistent anti-analysis signature
Dropbox Used for Payload Staging
T1102 - Web Service
Trusted cloud platform abused as a payload host across campaigns
Browser Credential and Cookie Theft
T1555.003 - Credentials from Password Stores: Credentials from Web Browsers
Core stealer capability is present in all PXA variants.
Cryptocurrency Wallet Targeting
T1414 - Steal Application Access Token
Crypto targeting is a defining objective of PXA Stealer
What Should Businesses Expect When Infected with PXA Stealer?
PXA Stealer's immediate impact is severe and rapid. Within minutes of execution, all browser-stored credentials, active session cookies, cryptocurrency wallets, and 2FA tokens are exfiltrated. Attackers can bypass MFA entirely using harvested session cookies, and email account access enables Business Email Compromise before the victim even notices the infection.
Shortly thereafter, the victims' credentials are stolen, and their own LinkedIn profile is turned into a distribution channel for further attacks.
Organizations face regulatory breaches of notification requirements under GDPR or DPDPA, long-term persistent access risks, and lasting reputational damage, particularly for fintech and crypto-facing businesses.
Technical Analysis:
Initial Access — LinkedIn Phishing
The threat actor established initial contact via direct messages on a compromised LinkedIn account, posing as a recruiter affiliated with a logistics sector firm. The lure offered a remote, part-time digital marketing role, a format deliberately calibrated to exploit the professional context LinkedIn provides.
With 1.3 billion active users, LinkedIn is the largest professional networking platform. Users would naturally expect and engage with career-related outreach, particularly job seekers. This significantly lowers their caution threshold when compared to unsolicited emails or social media messages from trusted contacts on other platforms.
Figure 4 - Personal Messages on LinkedIn
Once contact is established, targets are directed to a Google Form hosted at hxxps://forms.gle/JjAtpy26Tcokow2Q7.
Hosting the next stage on Google’s legitimate infrastructure is intentional: most URL filtering solutions and email security gateways do not flag Google domains, allowing the attacker to preserve the job application narrative while bypassing automated defenses entirely.
Payload Delivery — Trusted Platforms as Staging Infrastructure
Within the Google Form, victims were instructed to review a job description via a hyperlink. The link (hxxps://tr.ee/PRtnsf) was a shortened URL that redirected to a Dropbox-hosted ZIP archive named “Position Details and Compensation Policy (2).zip”. The layering of a URL shortener on top of a trusted cloud storage platform made static analysis significantly more difficult. At the same time, the job-themed filename gave victims no reason to hesitate before opening it.
Figure 5 - Google Form with hyperlink
The downloaded archive registered zero detections on VirusTotal at the time of analysis, demonstrating the effectiveness of this multi-platform delivery chain against conventional security tooling.
Figure 6 - VT Detection
Archive Contents — Concealment by Design
Once extracted, the archive presented the victim with a single visible file: what appeared to be a legitimate Microsoft Word executable. All remaining components were deliberately hidden within the archive, including:
A malicious DLL (AppvIsvSubsystems64.dll)
Supporting runtime files
A batch script (en.cmd / en.pip)
A decoy Word document
A hidden folder named “__” containing next-stage components (Invoice.pdf, Trend.jpg, support.ico, nsedge.exe, update.dll)
Figure 7 - Files inside the archive
DLL Sideloading:
Executing the visible file — Position Details and Compensation Policy.EXE (a renamed winword.exe) — triggered a DLL sideloading attack. The malicious AppvIsvSubsystems64.dll was loaded in place of the legitimate Microsoft Office counterpart of the same name.
What distinguishes this DLL File is its file size. The clean, signed version of this DLL typically ranges between 1 MB and 3 MB. The malicious variant was deliberately inflated to approximately 100 MB. This technique — known as binary padding — is specifically designed to evade automated scanning pipelines and static analysis tools that impose file size thresholds or skip oversized files to conserve processing resources.
Figure 8 – DLL Main of Appvlsvsubsustems.dll
Batch Script Execution and Persistence
Despite its inflated size, the malicious DLL had a single task: copy "en.pip" to "en.cmd" and execute it. From there, the batch script extracted a next-stage payload from a password-protected archive disguised as "Invoice.pdf" into %LOCALAPPDATA%\Microsoft\WindowsApps, deleted the archive and extraction utility to reduce forensic traces, and registered a scheduled task for persistence.
The final payload was launched through a Python executable named "nsedge.exe" alongside "update.dll", both placed inside %LOCALAPPDATA%\Microsoft\WindowsApps. The masquerade here operated on two levels: the folder path mimicked a legitimate Microsoft Edge installation directory. At the same time, the filenames were chosen to resemble trusted Edge components, making the entire setup appear as routine system activity to both analysts and automated detection tools. (See Figure 6)
Figure 10 - Python process creation and decoy file
Multi-Layer Encoding
Despite carrying a DLL extension, "update.dll" was in fact a Python script, executed with the parameter "sunset". Its role was to read encrypted content from a file named "support.ico", decode it using a key embedded within the file itself, and execute the resulting deobfuscated Python script directly in memory using Python's exec() method, leaving no additional files on disk for forensic tools to recover.
Figure 11 - Contents of update.dll
The XOR-decoded content was not the final layer. Underneath it was Python bytecode that had been Base64-encoded and compressed with both bzip2 and zlib. In simple terms, the attacker wrapped the malicious code in multiple layers, one inside the other, making it harder and more time-consuming for analysts to unpack and understand what the malware was actually doing.
Figure 12 - Decoded Python script
Command and Control — Telegram-Based Dynamic Infrastructure
Once the final payload executed, the malware contacted a Telegram channel (hxxps://t.me/erik22sucbot) to retrieve the address of its command-and-control (C2) server. Rather than hardcoding the C2 address — a static indicator that can be blocked after discovery — the attacker stored it on Telegram in encrypted form. The malware decrypted the address at runtime, allowing the attacker to rotate infrastructure without recompiling or redeploying the payload.
Figure 13 - hxxps://t.me/erik22sucbot
Using the “sunset” parameter, the script constructed a download URL (hxxp://151.243.109.125/support/links/sunset[.]txt) to retrieve the final stage payload. The IP address 151[.]243[.]109[.]125 is configured to redirect to a Chinese government website — an additional layer of masquerading intended to cast doubt on analyst findings and create the false impression that the payload was hosted on legitimate government infrastructure.
Figure 14 - Redirection to gov.cn
The downloaded file "sunset.txt" was not a text file despite its .txt extension. It was, in fact, a Python script, heavily obfuscated to resist analysis.
Figure 15 - sunset.txt contents (Python file)
Python Bytecode analysis
From the memory strings, we observed the following: it tries to steal the following items.
Category
Target
Details
Browser Wallet Extension
MetaMask
nkbihfbeogaeaoehlefnkodbefgpgknn
TronLink
ibnejdfjmmkpcnlpebklmnkoeoihofec
Binance Chain Wallet
fhbohimaelbohpjbbldcngcnapndodjp
Phantom
bfnaelmomeimhlpmgjnjophhpkkoljpa
Coinbase Wallet
hnfanknocfeofbddgcijnmhnfnkdnaad
Trust Wallet
egjidjbpglichdcondbcbdnbeeppgdph
Exodus Web3
aholpfdialjgjfhomihkjbmgjidlcdno
Ronin Wallet
fnjhmkhhmkbjkkabndcnnogagogbneec
Math Wallet
hpglfhgfnhbgpjdenjgmdgoeiappafln
Guarda
aeachknmefphepccionboohckonoeemg
Keplr
dmkamcknogkgcdfhhbddcghachkejeap
BitKeep
jiidiaalihmmhddjgbnbgdfflelocpak
XDEFI Wallet
hmeobnfnfcmdkdcmlblgagmfpfboieaf
Yoroi
Cjelfplplebdjjenllpjcblmjkfcffne
Jaxx Liberty
fihkakfobkmkjojpchpfgcmhfjnmnfpi
2FA & Authenticator
Authy
gaedmjdfmmahhbjefcbgaolhhanlaolb
GAuth Authenticator
ilgcnhelpchnceeipipijaljkblbcobl
Authenticator
bhghoamapcdpbohphigoooaddinpkbai
EOS Authenticator
oeljdldpnmdbchonielidgobddffflal
Trezor Password Manager
imloifkgjagghnncjkhggdhalmcnfklk
Browser
Google Chrome
Google\Chrome\User Data
Microsoft Edge
Microsoft\Edge\User Data
Brave
BraveSoftware\Brave-Browser\User Data
Chromium
Chromium\User Data
QQ Browser
Tencent\QQBrowser\User Data
Vivaldi
Vivaldi\User Data
Comodo Dragon
Comodo\Dragon\User Data
Epic Privacy Browser
Epic Privacy Browser\User Data
CocCoc
CocCoc\Browser\User Data
Desktop Wallet
Bitcoin-Qt
Software\Bitcoin\Bitcoin-Qt
Dash-Qt
Software\Dash\Dash-Qt
Litecoin-Qt
Software\Litecoin\Litecoin-Qt
Electrum
Electrum
Ethereum
Ethereum\keystore
Exodus
exodus.wallet
Jaxx
com.liberty.jaxx
Atomic Wallet
atomic\Local Storage\leveldb
Zcash
Zcash
Application
Telegram Desktop
Session data
Foxmail
Email client credentials
Ledger Live
Hardware wallet manager
Network traffic analysis reveals that sensitive data is being exfiltrated to the external IP address 15.235.156[.]143 over port 56001. Outbound communication is concealed within TLS-encrypted traffic, effectively masking its contents and evading content-based inspection. This encryption layer suggests a deliberate attempt to obfuscate data exfiltration, making it difficult to detect with standard deep packet inspection techniques.
Figure 16 - TLS HandshakeFigure 17 - TLS Communication
Conclusion
PXA’s evolution into a mature, multi-layered attack operation is a concerning development, as it exploits trust at every stage of the kill chain, from the professional credibility of LinkedIn to the reputation of Google, Dropbox, and Microsoft Office binaries.
The threat actors behind this campaign demonstrate strong operational security awareness, evidenced by the deliberate use of legitimate platforms to avoid detection, in-memory payload execution that leaves no on-disk artifacts, dynamic C2 infrastructure managed through Telegram, and multi-layer encoding to resist reverse engineering.
The campaign's continued propagation through victim LinkedIn connections creates a compounding distribution effect: each compromised account becomes a new, trusted sender for the job-lure message, extending the campaign's reach without additional infrastructure investment from the threat actor.
Job seekers, HR professionals, and employees actively engaged on LinkedIn represent the highest-risk population. Organizations in India, Bangladesh, the Netherlands, Sweden, and the United States should treat this campaign as an active threat.
How can Cyble help?
Cyble Vision can help detect compromised credentials and endpoints, monitor known threats, and supplement SOC teams with proactive intelligence to help avoid them even before they are targeted.
A competitive CTI solution, such as Vision, helps users stay a step ahead of threats originating from the surface, deep, and dark web through timely intel, low signal-to-noise ratio, and specific support in the event of an incident or compromise.
Recommendations
Verify Recruiter Identities Independently: Always confirm recruiter profiles and company legitimacy through official websites or direct calls before engaging with any job offer received via LinkedIn DMs.
Never Open Unsolicited File Attachments: Do not download or execute ZIP archives, EXE files, or documents received through job application links, even if they appear to come from a trusted connection.
Enable Multi-Factor Authentication (MFA): Enable MFA on LinkedIn, email, and all critical accounts. Prefer hardware security keys over app-based TOTP, as infostealers can harvest authenticator tokens
Audit Your LinkedIn Active Sessions Regularly: Periodically review active sessions and connected devices in LinkedIn security settings. Immediately revoke any unrecognised sessions.
Keep Endpoint Security Tools Updated: Ensure EDR and antivirus solutions are active and up to date. Deploy solutions capable of detecting DLL sideloading, anomalous Python execution, and large, oversized DLL files.
Monitor for Suspicious Scheduled Tasks: Regularly audit scheduled tasks on endpoints. Flag any tasks with names that mimic legitimate system processes, such as Microsoft Edge update services.
Educate Employees on LinkedIn-Based Social Engineering: Include LinkedIn phishing scenarios in regular security awareness training. Employees should understand that professional platforms are actively exploited as initial access vectors
Report and Revoke Immediately if Compromised: If your LinkedIn account is suspected to be compromised, immediately revoke all active sessions, reset credentials, notify your connections, and report the incident to LinkedIn and your security team.
MITRE ATT&CK Mapping
Tactic
Technique
Description
Initial Access (TA0001)
Phishing: Spearphishing Link (T1566.002)
LinkedIn DM with job lure linking to Google Form and Dropbox-hosted payload
Execution (TA0002)
User Execution: Malicious File (T1204.002)
The victim manually executes the disguised WinWord.exe from the downloaded ZIP.
Execution (TA0002)
Command and Scripting Interpreter: Windows Command Shell (T1059.003)
Malicious logic executed via en.cmd batch script
Persistence (TA0003)
Scheduled Task/Job: Scheduled Task (T1053.005)
Scheduled task created for persistence across reboots
Defense Evasion (TA0005)
DLL Side-Loading (T1574.002)
Malicious AppvIsvSubsystems64.dll loaded in place of the legitimate Microsoft Office DLL.
Defense Evasion (TA0005)
Obfuscated Files or Information: Binary Padding (T1027.001)
DLL inflated to ~100 MB to bypass file size thresholds in automated scanners
Defense Evasion (TA0005)
Obfuscated Files or Information (T1027)
Payload concealed inside a password-protected archive named Invoice.pdf
Defense Evasion (TA0005)
Indicator Removal: File Deletion (T1070.004)
The archive and extraction utility deleted post-execution to reduce forensic artifacts.
Defense Evasion (TA0005)
Masquerading: Match Legitimate Name or Location (T1036.005)
Python executable renamed to nsedge.exe; files placed in a legitimate-looking Edge directory
Defense Evasion (TA0005)
Data Encoding: Standard Encoding (T1132.001)
Payload encoded with XOR, Base64, bzip2, and zlib across multiple layers
Execution (TA0002)
Shared Modules (T1129)
Malicious update.dll (Python script) loaded to execute next-stage payload
Command and Control (TA0011)
Application Layer Protocol: Web Protocols (T1071.001)
C2 communication over HTTP/S; Telegram used for dynamic C2 address retrieval
Credential Access (TA0006)
Credentials from Password Stores: Credentials from Web Browsers (T1555.003)
Browser credential stores targeted across Chrome, Edge, Brave, and others