Introduction

Between March and September 2026, thousands of Android phones belonging to retail banking customers in the META region were confirmed to be infected with the malware Group-IB tracks as Mirax, with two big activity spikes observed over the Eid holidays and at the end of July.

Figure 1. Mirax RAT samples installation over time (based on Group-IB telemetry).

Figure 1. Mirax RAT samples installation over time (based on Group-IB telemetry).

Where unauthorized international transfers were reported, funds were sent to accounts abroad, some of which are suspected to be mule accounts. Based on reported cases, we estimate losses in the millions of US dollars. These numbers account for only what Group-IB analysts can confirm, through our own telemetry and confirmed cases reported by affected banks in the region. The real figure is likely higher, from infections on devices we have no visibility into, and bank customers who never reported a loss.

The campaign uses dynamically generated package names and impersonates “Google Play Services” to evade user suspicion and signature-based detection. The number of infected devices exceeds the number of identified samples, consistent with sample reuse and distribution across multiple victims. This campaign is still observed to be running at the time of publication.

Figure 2. Android malware campaign statistical summary.

Figure 2. Android malware campaign statistical summary.

The bait appears to be simple: a free video streaming app on the Google Play Store. Users who frequently download low-reputation streaming apps expect very little, and this one delivered exactly that — advertisements, video links, and not much else. It looked, and largely behaved, like any other low-effort streaming app. But evidence suggests that the ad banners served inside it lead users to a dropper, downloaded outside the official store which installs the Mirax malware payload.

Mirax is classified as an Android Device Take-Over (DTO) family of malware. Its key permission: the Accessibility Service. With it, the attacker is able to see and control the compromised device in real time: reading credentials, intercepting one-time codes, capturing the PIN to unlock the device later, opening a banking app and moving money out to newly added beneficiaries and mule accounts abroad. From the bank’s side, little looks unusual; the activity and transactions come from the customer’s own device, app, and from the expected location.

The lure is actually the least interesting part; malicious ads served inside shady streaming apps is nothing new. What matters begins after installation. Mirax ships deliberately light on incriminating code and configuration. Its C2 infrastructure, ports, TLS parameters, DNS-over-HTTPS behavior, polling intervals, and even the phishing and HTML-injection templates tailored to individual banking apps are all fetched from the attacker’s C2 server at runtime. The hardcoded C2 address in the sample is a rendezvous point and nothing more. While the capabilities ship in the app, how they are configured, what they are aimed at, and how the device reaches its operator are all settled afterwards.

This report walks through how Mirax reaches victims, how it earns the permissions it needs, what its infrastructure looks like under the hood, and what defenders can do about it.

Key Discoveries

  • Malicious ads served inside low-reputation free streaming apps that lead to a dropper.
  • The payload impersonates “Google Play Services,” substituting a Cyrillic “о” for the Latin letter, and actively coerces victims into granting Accessibility Service access – the single permission that unlocks full remote control.
  • Build identity is deliberately disposable: package names are randomized per build, the launcher icon is hidden at runtime, so no drawer entry exists, and the campaign rotates app names to stay ahead of takedown and detection.
  • Command-and-control runs a dual-WebSocket design over a single host with an HTTP long-poll fallback; nearly every transport parameter is remotely reconfigurable, and DNS-over-HTTPS keeps C2 resolution off local and carrier DNS entirely.
  • Phishing content is never shipped in the APK – HTML injection templates and their target-app mappings are pushed from C2 at runtime, meaning static analysis of the installed sample reveals only a fraction of the campaign’s real capability.
  • A region-specific campaign, identified by its build tag: the samples in this report all carry the embedded build tag aquafina, which links them to a single operation across more than one C2 host. The applications the C2 pushes for targeting are predominantly regional: 20+ META banks and digital wallets.

Who may find this blog interesting

  • Fraud and mobile threat analysts at financial institutions
  • Malware researchers and reverse engineers covering Android threats
  • Threat intelligence teams tracking Device Take-Over families
  • Digital risk / app-store abuse teams
  • Incident response and SOC teams at targeted banks

Group-IB Threat Intelligence and Fraud Intelligence Portals:

Group-IB customers can access our Threat Intelligence and Fraud Intelligence portals for more information about the threat actor and malware described in this blog.

Aquafina_Threat Actor Profile

Mirax_Malware Profile

Anatomy of the Infection

From streaming app to drained accounts, Mirax’s infection chain is built to look unremarkable at every step:

  • Delivery: The victim installs a low-reputation streaming/video-player app from Google Play. Evidence suggests that the ad banners and video links it serves, lead to a dropper downloaded outside the official store. There is no suspicious link in an SMS: the starting point is an app from an official store doing what streaming apps do: serving ads.
  • The Dropper: The installed app quietly retrieves and installs Mirax’s second-stage payload, the component that actually carries out the takeover. A confirmed dropper observed in the course of this research presents itself as an adult version of TikTok named “Tiktok 18+1; it is not affiliated with TikTok.
 Figure 3. Detected NSFW lure dropper using the label TikTok 18+.

Figure 3. Detected NSFW lure dropper using the label TikTok 18+.

Impersonation and permission coercion: The payload presents itself as “Google Play Services” – down to the Cyrillic homoglyph in its name – and requests a broad set of permissions, most critically Accessibility Service. On-device automation actively steers the victim toward granting Accessibility access, rather than simply hoping they click through.

Figure 4. “Google Play Services” Interface prompts displayed to targets leading to Accessibility Service authorization.

Figure 4. “Google Play Services” Interface prompts displayed to targets leading to Accessibility Service authorization.

  • Takeover: Once accessibility is granted, the operator has a real-time, interactive view of the device: SMS and notification interception, screen monitoring, and screen-sharing/remote-control abuse.
  • Fraud execution: With this live access, the operator can open the victim’s own banking session and drive it directly, initiating transactions that appear, from the bank’s perspective, to originate from the legitimate device and app.
  • Persistence: Accessibility Services privileges make the app harder to remove through normal means, extending the operator’s window.
  • Monetization and laundering: Evidence to date indicates several potential channels used to monetize and move the fraudulent proceeds, including the addition of a beneficiary for international transfers, internal transfers between accounts, and eShop purchases on online  marketplaces. The available evidence suggests that mule accounts may have been used to facilitate the movement and laundering of funds in India. Further tracing of transaction destinations and beneficiary accounts is ongoing by Group-IB to establish the full flow of funds.
  • Figure 5. Mirax attack chain scheme.

    Figure 5. Mirax attack chain scheme.

    Why Mirax is Hard to Pin Down

    Under the hood, two design choices set Mirax apart from more static regional DTO families.

    The first is identity fluidity. The manifest package name is randomized per build, launcher aliases are toggled at runtime so the app never shows a drawer icon, and the campaign rotates the visible app name over time. None of this requires a new build pipeline each time – it’s designed to be cheap to repeat.

    The second, and more consequential, is server-side capability. Mirax’s C2 runs a dual-WebSocket architecture on a single host with an HTTP long-poll fallback, and effectively every transport parameter – host, both ports, TLS, DNS-over-HTTPS, polling intervals – can be reconfigured remotely. DNS-over-HTTPS is enabled by default, which keeps C2 resolution invisible to local and carrier-level DNS monitoring. The phishing and HTML-injection templates used to target specific banking apps aren’t in the APK at all; they, along with their app-to-template mappings, are pushed from C2 after install.

    The practical effect is that inspecting the installed sample – even thoroughly – only shows what Mirax could do at the moment of install, not what it’s actually configured to do in the field. This visibility gap is the campaign’s real advantage.

Built for Control: Inside the Mirax Platform

  • Private MaaS, not a commodity: Mirax is an Android remote access trojan and banking malware observed to be sold on Russian-language cybercrime forums since December 2025 by a developer using the handle MiraxBot. According to the developer’s forum advertisements, access is reserved only for vetted affiliates, with priority given to established Russian-speaking actors.
  • A full device-takeover platform: Beyond credential theft, Mirax offers HTML overlay injection against banking, crypto, email and social apps; keylogging; SMS and notification interception for OTP theft; and hidden VNC / screen-sharing for real-time interactive control of the device.
  • Autonomous device unlock: Mirax captures the victim’s lock-screen secret (PIN, password or pattern), and can replay it to unlock the device unattended, letting the operator act while the victim isn’t watching.
  • Residential proxy built in: A February 2026 update added a SOCKS5 module that turns each infected phone into a residential proxy node, letting operators route fraudulent traffic through the victim’s own IP address to defeat geolocation and IP-reputation checks.
  • The app ships the capabilities, not the targets: Overlay templates and their target-app mappings are not shipped in the APK. They are pushed from the C2 per device, based on what the victim has installed. Two infections of the same malware can therefore be configured to attack entirely different institutions.
  • Persistence and self-preservation: Mirax maintains persistence through Android Broadcast Receivers, re-establishing itself after reboots and app restarts. On top of that it actively resists removal: it blocks the user from reaching its uninstall screen, can block security and antivirus apps from launching, and uses full-screen black overlays (including a fake “updating” screen) to hide malicious activity while it runs.
  • Command-and-control: The C2 runs over dual WebSocket channels, one for commands, one for data exfiltration. Newer builds add DNS-over-HTTPS and an HTTP long-poll fallback, and almost every transport parameter is remotely reconfigurable. The operator drives the device through a broad command set. The full list of observed C2 commands is provided in the Appendix.
  • Built to support affiliates: Mirax ships as a ready-to-run operation: a builder with selectable packers, a web panel for managing multiple infected devices, and a steady stream of updates from the developer. Every build is also stamped with a campaign identifier – build tag, that the payload reports back to its C2.
Figure 6. Banking overlay example.

Figure 6. Banking overlay example.

The Aquafina Campaign

The samples behind the activity described in this report all carry the same build tag: aquafina (and its variant aquafina_all). This single identifier led Group-IB researchers to treat these infections as one coherent campaign rather than unrelated sightings. The same tag was observed reporting to more than one C2 host, so even where the infrastructure differs, the samples trace back to a common operation. The tag string itself says nothing about who is being targeted; that comes from the C2’s own response. When the discovered samples checked in with the C2, the server returned the list of applications it wanted monitored and pushed a matching set of banking overlays. The target set of 20+ packages contains retail banks and digital wallets from the META region, alongside a couple of global cryptocurrency exchanges. In other words, aquafina is not a generic Mirax deployment that happened to reach the META region; it is a campaign configured specifically for it.

Impact

Mirax’s activity intensified sharply during the Eid holiday period and, as of this investigation, remains ongoing. At the time of writing, streaming apps assessed as potential vectors for the malicious ads remained available on Google Play, and the operators continued rotating application names to stay ahead of takedown. Victims are retail banking customers reached indirectly through a general-purpose entertainment app rather than a banking-themed lure, which is precisely what makes the initial install unremarkable. Multiple victims across the region have reported unauthorized transactions and missing funds. Preliminary data indicates approximately thousands of affected bank accounts on the Android channel across several financial institutions, with reported unauthorized international outgoing transfers initiated from infected victim devices and routed to mule accounts in India. Set against the confirmed infection count, that puts the estimated losses in the millions — a floor rather than a total, since it captures only fraud that was detected and disputed.

Because the phishing templates and target-app mappings are server-controlled rather than fixed at build time, the campaign can pivot toward other banking apps, industries, or regions without a new release – a spread vector worth monitoring closely.

Detection

Group-IB Fraud Protection’s coverage of Mirax leans on behavioral signals rather than static signatures alone, in line with how little the installed sample actually reveals on its own. Detection focuses on Accessibility Service abuse patterns, remote-control and screen-sharing session activity, and network/C2 behavior consistent with the dual-WebSocket and DoH design described above. Fraud-monitoring rules that flag screen-sharing or remote-control indicators alongside an active transaction attempt are the primary trigger for escalation and review before funds move.

Figure 7. Active remote access alert detection on the infected victim device with Mirax RAT sample.

Figure 7. Active remote access alert detection on the infected victim device with Mirax RAT sample.

Group-IB Fraud Protection generated alerts shortly after Mirax malware sample was installed on victim devices with admin and Accessibility Service permissions were granted (Figure 8).

Figure 8. Post-installation alerts on infected devices indicating potential DTO ( Device Takeover).

Figure 8. Post-installation alerts on infected devices indicating potential DTO ( Device Takeover).

Group-IB solutions constantly monitor new android malware threats and update existing detection mechanisms and IOCs databases.

Figure 9. Example of session with Mirax infected device detection.

Figure 9. Example of session with Mirax infected device detection.

Conclusion

Mirax fits a pattern Group-IB has tracked across several regional campaigns this year: attackers investing less in the installed APK and more in what the server can do after the fact. A thin, disposable client – randomized package, hidden icon, rotating name – paired with a fully server-controlled attack surface means that app-store review and victim awareness, on their own, are less effective defenses than they used to be. Mirax and similar threats are likely to keep reappearing under new names, including via lures distributed through official app stores, timed around high-traffic periods like religious holidays, and to keep leaning on Accessibility Service as the one permission that matters. The takeaway for defenders: any detection strategy anchored solely to the installed sample is likely to remain a step behind a campaign whose real capability lives on a server it controls.

Recommendations

To limit exposure to Mirax and similar Device Take-Over campaigns, we recommend the following layered measures, mapped to where they take effect in the chain.

For Businesses

  • Fraud Protection: Add confirmed-affected devices to an enhanced monitoring list; treat fraud-alert triggers accompanied by screen-sharing or remote-control indicators as high-priority escalations, and hold transactions pending customer verification where such indicators are present.
  • Threat Intelligence: Keep certificate, package, and C2 infrastructure indicators current as the campaign rotates identifiers, and monitor for signs of the phishing template set expanding to new targets.
  • Reach out directly to users of confirmed-affected devices to help identify and remove the malicious app, using approved mobile security tools where needed for remediation.
  • Where permitted by applicable law and contractual obligations, share indicators and campaign patterns with other institutions and app-store abuse teams, given the potential for this delivery method to spread to other industries or regions.

For End-Users

  • Be cautious with ads, video pop-ups, and redirect banners on unpopular or untrusted streaming apps and sites – this is Mirax’s primary vector.
  • Treat any request for Accessibility Service access from an app that isn’t a genuine accessibility tool as a red flag, especially from an app impersonating “Google Play Services.”
  • If a streaming or entertainment app requests Accessibility permissions, decline and uninstall.

Acknowledgement of research support:

  • Pavel Naumov, Global Senior Security Researcher FHP
  • Yuan Huang, Global Fraud Intelligence Lead

Group-IB Fraud Matrix

Mirax-FraudMatrix

MITRE ATT&CK® Scheme

Mirax-Mitre

MITRE ATT&CK® for Mobile

Mirax-MitreMobile

Indicators of Compromise (IOCs)

File Indicators

name sha1 installed
net.wgrjvz.toolyt93a b9e84889c9760460f53c9b49cb43a636bb721d28 Aug 6, 2026
org.xrmhvlfx.litewnj3h 8531fe2db41e9e08525080be6d3e8092c5ffa5f8 Jul 31, 2026
net.jsbzchba.clientpnzd 0d83344fee8973165e5009768c1752095a57f3c1 Jul 28, 2026
org.xifbep.utilityt50 3a1f9060dad56cd08e87fcafa2c87b99295b3db3 Aug 4, 2026
io.svmlmt.mobilecu7sq 6a37c3d4beb80ae1689dbbedcb53a86f85c8e44a Jul 8, 2026
io.xccqt.helper3mk fd4a2c02ab5a99b5420538c8b1bfef6fa4fbd7fe Aug 6, 2026
io.vvecxa.clientffb 2b5eeabbc52a25172123c2e7789c977e6bb557af Jun 29, 2026
io.crxti.systems11f d7b4d33c38deb0978b71ef79ff4df9fb90118cc2 Aug 2, 2026
org.lfzfxjmb.securejp65 746dc75b1b887812db37b3801e104d887b2c8707 Aug 5, 2026
net.yexqoe.systemlshkq c9258f527fe447431ff983aa76866e340db98e60 Aug 5, 2026
net.mfiaekme.toolgdqvu ace41996dc5b7ecdb68c2222fc7af8e6f3b7d839 Aug 6, 2026
org.fxutpep.utility0ql 9e6889b1445e30d9d28849cbffed5a3123408646 Aug 4, 2026
net.rhnrektl.mobilejrs cca7187d5cbf31b3e785f21309bb60b9247a4fb4 Aug 5, 2026
io.isvac.safemmz7g 562d8360854005e90ae316c1350b9660ffd3e6f9 Aug 1, 2026
com.zjper.litewens da997eeb64a3879af819c5cdda3aa5a236c55a25 Jul 31, 2026
org.pruvqil.appq1km 413e1c8661ec11fc8e7f9a7caccfc9c54cb1ea3d Aug 1, 2026
net.vsqomby.toolc4s1x c8f5abb80e9c936d6bd5da99c10e829cde69a8f5 Aug 1, 2026
org.yhjrihi.managerrk9u6 20068b91036145b3e1b1d7e294b7a2f5ba26bd7f Aug 1, 2026
io.nmflf.pro4d2ll b164a1bf2c7b478ce040e479377526c00885ab7f Aug 5, 2026

Network Indicators

  • oscofneuid[.]com
  • kenobuias[.]com

Appendix

Full Inventory of Mirax C2 Commands

Command Description
addExternalHtmlTemplate Pushes a new HTML overlay template to the device
addHtmlInjectionConfig Binds a target package name to an overlay template
back Simulates pressing the Back button
blackScreen Activates a full-screen black overlay
blackScreen_unlock Removes the black screen overlay
blackScreen_updating Shows a fake “updating” message on the black overlay
blockApp Prevents a specific application from being launched
camera_status Returns current camera service status
checkExternalTemplateExists Checks whether a named template is stored locally
collectSmsNow Triggers an immediate SMS upload
disableHtmlInjection Disables the overlay injection system
disableNeverSleep Restores normal screen timeout behavior
disableUninstallProtection Disables anti-uninstall protection
enableHtmlInjection Enables the overlay injection system
enableNeverSleep Forces the screen to stay on indefinitely
enableUninstallProtection Blocks uninstallation of the malware
forceReconnect Forces reconnection to the C2 server
getAvailableCameras Lists all available camera sensors
getBlockedApps Returns the list of currently blocked applications
getCameraStatus Returns camera service status
getClipboard Retrieves current clipboard contents
getDeviceState Returns device metadata (battery, network, OS, model)
getExternalTemplatesList Lists overlay templates stored on device
getExternalTemplatesPath Returns the storage path for overlay templates
getHtmlInjectionStatus Returns the current state of the overlay engine
getHtmlTemplates Lists all locally available overlay templates
getInstalledApps Returns a full inventory of installed applications
getKeyguardInfo Returns lock screen configuration details
getLockStatus Returns the current lock screen type and status
getPermissions Returns status of all Android permissions
getSmsPermissions Returns SMS permission status
getSmsStatus Returns SMS collection engine status
getVncScreenSharingStatus Returns VNC session status
home Simulates pressing the Home button
layout_updates_restart Restarts screen layout monitoring
layout_updates_start Begins streaming screen layout data to C2
layout_updates_stop Stops screen layout data streaming
listCameras Lists available cameras
lockDevice Locks the device screen immediately
mute Mutes device audio
openApp Launches an application by package name
ping Heartbeat / keepalive
recents Simulates pressing the Recent Apps button
removeExternalHtmlTemplate Deletes a named overlay template from device
removeHtmlInjectionConfig Removes a target application’s overlay binding
requestPermission Triggers a system permission request dialog
rescanHtmlTemplates Rescans storage for updated overlay templates
resetHtmlInjectionCounters Resets overlay injection counters
resetLockCaptured Resets the lock screen capture state
setClipboard Sets clipboard content to operator-supplied text
setLockType Configures the fake lock screen type (PIN/pattern/password)
showNotification Displays a notification (STANDARD / OVERLAY / TOAST modes)
socks5_enable Enables or disables the SOCKS5 proxy relay
socks5_status_request Returns SOCKS5 proxy status
startCamera Starts background camera capture
startScreenSharing Starts screen capture streaming to C2
startSmsCollection Starts continuous SMS interception
startVncScreenSharing Starts interactive VNC session
stopAllScreenSharing Stops all active screen sharing sessions
stopCamera Stops camera capture
stopScreenSharing Stops standard screen sharing
stopSmsCollection Stops SMS interception
stopVncScreenSharing Stops VNC session
swipe Performs a swipe gesture between two coordinates
switchClient Switches active client session
tap Performs a tap gesture at specified coordinates
testHtmlInjection Manually triggers an overlay for a specified package
text Types text via accessibility input
unblockApp Unblocks a previously blocked application
uninstallPackage Uninstalls a specified application
unlockDevice Unlocks the device using captured credentials
updateAppRecordingConfig Updates the list of targeted apps monitored for recording
updateExternalHtmlTemplate Updates an existing overlay template on device
wakeDevice Wakes the device screen from sleep

Disclaimer

Third-party trademarks. All product names, logos and brands referenced in this publication are the property of their respective owners. They are used solely for identification and descriptive purposes in the context of security research, and their use does not imply any affiliation with, or endorsement by, their owners. Screenshots of fraudulent resources are reproduced to document the impersonation of legitimate brands and services; the brands depicted are victims of that impersonation.

1 “TikTok 18+” is a fraudulent imitation created by threat actors to deceive victims. This application is not an official product of ByteDance, nor is it affiliated with, endorsed by or connected to the official TikTok brand in any way.

© 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. The MITRE ATT&CK content is used subject to the MITRE ATT&CK Terms of Use. MITRE ATT&CK® and ATT&CK® are registered trademarks of The MITRE Corporation. This publication is independently produced and is not affiliated with, sponsored by, or endorsed by The MITRE Corporation.

Third-party service providers. Certain indicators reference lawful hosting, serverless and API providers whose services were abused by the operators without their knowledge or involvement. No wrongdoing on their part is alleged or implied.

No legal advice. This publication is provided for information and defensive purposes only and does not constitute legal advice. Statements concerning the possible legal position of any party are general in nature; readers should obtain advice from a qualified adviser in the relevant jurisdiction.

Assessments and attribution. All assessments, attributions and confidence levels stated in this publication reflect the information available to Group-IB as at the date of publication and may change as further information becomes available. Where conduct is attributed to accounts, channels or groups, Group-IB makes no assertion as to the identity of any individual behind them beyond what is expressly stated.