Visualização normal

Antes de ontemBlog – Cyble
  • ✇Blog – Cyble
  • Glitch SPY: An Emerging Android RAT Distributed Through a Fake Polish Rental App rohansinhacyblecom
    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
     

Glitch SPY: An Emerging Android RAT Distributed Through a Fake Polish Rental App

30 de Junho de 2026, 06:58

Glitch SPY

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 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
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
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
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.

Figure 9 - Crypto clipper clipboard replacement logic

Remote Browser Capability

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.

MITRE ATT&CK® Techniques

Tactic Technique ID Procedure
Initial Access (TA0027) Phishing (T1660) Glitch SPY is distributed via phishing sites
Persistence (TA0028) Event Triggered Execution: Broadcast Receivers (T1624.001) Glitch SPY implemented a broadcast receiver for screen capturing
Defense Evasion (TA0030) Impair Defenses: Prevent Application Removal (T1629.001) Prevent uninstalling application
Defense Evasion (TA0030) Hide Artifacts: Suppress Application Icon (T1628.001) Glitch SPY hides its icon
Defense Evasion (TA0030) Masquerading: Match Legitimate Name or Location (T1655.001) Glitch SPY masquerades as a Polish rental application
Defense Evasion (TA0030) Input Injection (T1516) Glitch SPY can perform actions such as Clicks, swipes, gestures, and enter text into edit fields.
Credential Access (TA0030) Abuse Accessibility Features (T1453) Glitch SPY abuses Accessibility service
  Input Capture: Keylogging (T1417.001) Glitch SPY includes a Keylogging module  
Discovery (TA0032) Software Discovery  (T1418) Glitch SPY collects installed applications
Discovery (TA0032) File and Directory Discovery (T1420) Glitch SPY can enumerate files from external storage
Discovery (TA0032) Location Tracking (T1430) Glitch SPY can collect device location
Discovery (TA0032) System Information Discovery (T1426) Glitch SPY can collect device information
Collection (TA0035) Archive Collected Data (T1532)   Glitch SPY compresses the external storage directories as a zip file before sending
Collection (TA0035) Screen Capture (T1513) Glitch SPY captures screen content
Collection (TA0035) Audio Capture (T1429) Glitch SPY can capture Audio
Collection (TA0035) Clipboard Data (T1414) Malware can monitor Clipboard content
Collection (TA0035) Data from Local System (T1533) Malware collects encrypted files from external storage
Collection (TA0035) Protected User Data: Contact List (T1636.003) Malware collects contact details
Collection (TA0035) Protected User Data: SMS Messages (T1636.004) Glitch SPY collects SMS data
Collection (TA0035) Protected User Data: Accounts (T1636.005) Malware collects Account information
Collection (TA0035) Protected User Data: Call Log (T1636.002) Glitch SPY collects Call logs
Command & Control (TA0037) Application Layer Protocol (T1437) Glitch SPY communicates with C2 over TCP
Exfiltration (TA0036) Exfiltration Over C2 Channel (T1646) Glitch SPY exfiltrates data to the C&C server
Impact (TA0034) Data Encrypted for Impact (T1471) Malware encrypts all the files present on the device with the .enc extension
Impact (TA0034) Data Destruction (T1662) Glitch SPY deletes all plain-text files after encryption

Indicators of Compromise (IOCs)

Indicators Indicator type Description
hxxps://tutaj-dompl[.]com/Tutajdom.apk URL Distribution URL
sportypointsrewards[.]com Domain C&C server
80af5e921cf8a3052fe4483bb2eb15953590e72ed003ac61c0b9135575c32075 FileHash-SHA256 Glitch SPY Hash
d439475bf09af7b474cdba2c19e136a1dd38e62b088537445ac3c8e4c2d3a8b1 FileHash-SHA256 Brokewell Loader

The post Glitch SPY: An Emerging Android RAT Distributed Through a Fake Polish Rental App appeared first on Cyble.

  • ✇Blog – Cyble
  • Operation HumanitarianBait: An Infostealer Campaign in Disguise rohansinhacyblecom
    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
     

Operation HumanitarianBait: An Infostealer Campaign in Disguise

7 de Maio de 2026, 02:14

Operation HumanitarianBait

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 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
HumanitarianBait
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.

SHA-256 8a100cbdf79231e70cee2364ebd9a4433fda6b4de4929d705f26f7b68d6aeb79

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
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.

Figure 3 - Downloading the Lure PDF file
Figure 3 - Downloading the Lure PDF file

Lure PDF URL hxxp://159.198.41[.]140/static/builder/lnk_uploads/invo.pdf

Saved To %TEMP%\open_doc

Figure 4 - Lure PDF application form
Figure 4 - Lure PDF application form

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
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 page
Figure 6 – GitHub page

Figure 7 – Releases
Figure 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
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
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
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
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).

  • Target browsers: Chrome, Edge, Brave, Opera, Yandex Browser, Firefox
  • 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
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
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
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
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
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.

Figure 18 - Remote access tool install
Figure 18 - Remote access tool install

RustDesk download source hxxps://github.com/rustdesk/rustdesk/releases/download/1.4.4/rustdesk-1.4.4-x86_64.exe

Command and Control Infrastructure

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
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&C
Figure 20 - Uploading files to C&C

Figure 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.

Indicators of Compromise (IOCs)

Indicator Indicator Type Description
8a100cbdf79231e70cee2364ebd9a4433fda6b4de4929d705f26f7b68d6aeb79 SHA-256 Initial LNK dropper
9be61c95056fd6b63565cf51a196f2615f5360c0a42e616b2a618473e9d60a21 SHA-256 Dementyeva_Anna_Vasilyevna_zayavka_gumanitarnayapomosch.rar
hxxp://159.198.41.140/static/builder/lnk_uploads/invo[.]pdf URL Lure PDF download
hxxp://159.198.41.140/test/index.php?r=survey/index&sid=936926&newtest=Y&lang=ru%22 URL Survey URL
hxxps://github.com/leravalera2/dtfls/releases/download/dtfls/data.zip URL PyArmour packed malicious scripts
a5b782901829861a6f458db404e8ec1a99c65a48393525e681742bb2a5db454d SHA-256 module.pyw - packed Python stealer/RAT

The post Operation HumanitarianBait: An Infostealer Campaign in Disguise appeared first on Cyble.

Professional Networks Under Attack: Vietnam-Linked Actors Deploy PXA Stealer in Global Infostealer Campaign

30 de Março de 2026, 11:57

LinkedIn

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 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.

Infostealer
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.

Period Milestone / Version Key Changes & Observed TTPs
Oct-24 Early Infrastructure Seeding Telegram BotIDs created; initial Python-based stealer circulated in Vietnamese cybercrime Telegram channels ("Mua Bán Scan MINI"). Handle @LoneNone hardcoded in payload.
Nov-24 Public Discovery (v1.0) 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.

LinkedIn
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)

LinkedIn, Infostealer
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.

Figure 9 - Payload extraction, self-delete, scheduled task

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)

LinkedIn
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
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
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
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
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), LinkedIn
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 Handshake

Figure 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

The post Professional Networks Under Attack: Vietnam-Linked Actors Deploy PXA Stealer in Global Infostealer Campaign appeared first on Cyble.

❌
❌