Blog

Octagon: A New Android Bot Targeting Crypto Wallets and Banking Apps

Headshot of Daniel Kelley, Threat Research Fellow at iVerify

Daniel

Kelley

·

In June 2026, iVerify's threat intelligence team identified Octagon, a previously undocumented Android on-device fraud bot sold as malware-as-a-service (MaaS) by the Russian-speaking actor AndroidKitKat.

The operator advertises Octagon for $1,400 a month, giving buyers accessibility overlays, hidden VNC, SMS and one-time password interception, unlock-pattern capture, and on-screen balance reading. It targets crypto wallets and banking apps after installation, while the delivery app can use an unrelated theme.

Executive summary

Attribute

Observation

First evidence

1 June 2026 sales thread on a Russian-language cybercrime forum

State

Advertised MaaS offering; version 1.2 announced 29 June 2026

Operator

AndroidKitKat; active on Russian-language cybercrime forums (member ID 221700)

Target OS

Android

Target apps

Crypto wallets, exchanges, banking apps, messaging apps

Fraud scenario

On-device fraud via accessibility abuse, overlays and remote control

Infection vector

Sideloaded APK; the operator advertises a Restricted Settings bypass, while Dream Group documented fake store and government lures for a separate related payload

Cash-out

Cryptocurrency transfers and account takeover

Operator and distribution

AndroidKitKat began advertising Octagon on a Russian-language cybercrime forum on June 1, 2026, under member ID 221700. The sales material and panel use English, while backend logs and Telegram history use Russian, consistent with a Russian-speaking developer selling the service internationally. The sales thread establishes how Octagon was marketed, while the panel shows what buyers could do with it.


Sales thread for Octagon, 1 June 2026

Figure 1: Sales thread for Octagon, 1 June 2026

Technical analysis

Octagon connects a Windows command-and-control panel to an Android trojan. Compromised devices appear as "Wards," where the operator can inspect applications, read the screen, launch overlays, and control the device.


Octagon panel overview

Figure 2: Octagon panel overview

The builder identifies the Android package as com.kisa.octagonpanel. Its manifest registers WardAccessibilityService through ward_accessibility_config and adds a foreground service that keeps the client running after installation.


Octagon Builder showing AndroidManifest.xml

Figure 3: Octagon Builder showing AndroidManifest.xml

Once the victim enables accessibility, Octagon reads the interface tree of targeted apps and can place editable HTML WebView overlays over them. Those overlays request a seed phrase, password, or other account data and return the captured values to the panel. The supplied templates include Trust Wallet, Binance, and MEXC, and buyers can add their own.


Trust Wallet in the panel's accessibility node tree

Figure 4: Trust Wallet in the panel's accessibility node tree

Botnet telemetry and targeting

The panel screenshots show a small set of devices, including what appears to be a current-generation Samsung handset. They capture active testing or an early deployment, although they do not provide a reliable victim count.


Test device information panel

Figure 5: Test device information panel

Each device card brings together the installed application list and a balance field, matching the balance-reading capability advertised by the operator.


Panel device card with app list and balance

Figure 6: Panel device card with app list and balance

The device views show where that access is aimed. Crypto wallets and exchanges sit at the center of the workflow, including Trust Wallet, MEXC, MetaMask, Binance, and TON Keeper. Telegram, WhatsApp, and Viber also appear, while the version 1.1 changelog advertises 457 built-in definitions.


Panel balance view showing $2,190.26

Figure 7: Panel balance view showing $2,190.26

Evasion in action

Another screenshot shows how Octagon can continue while the device appears clean. Google Play Protect reports "No harmful apps found" as the malware reads the same screen through accessibility. Its access comes through Android features the victim has been persuaded to enable.


Google Play Protect reporting no harmful apps

Figure 8: Google Play Protect reporting no harmful apps

Sample analysis

We recovered three APKs attributable to Octagon with high confidence: 

Sample

SHA-256

Build

Octagon

3530b1600e059468e585d48482bb2f375edfe5cb5c23862b01d8405ab56376b9

Octagon build

Lifted Dreams

b7e9072e5bda17e0c68db010106584815442b8a9e0ce05db8e3724d8c8967f4f

Octagon build using the Lifted Dreams cover

BahrDate

41d922a220ac28a4af8cbed3ffff517bfc5087f11c52801a1be0353e22a71fe0

Lean Octagon build

The shared package, Ward and Guardian protocol, encryption code, accessibility configuration, and overlay assets tie all three to the same builder.

package:          com.kisa.octagonpanel
client:           0.2.0
runtime protocol: 3
transport:        AES/GCM/NoPadding
control port:     4444/tcp
passphrase:       octagon-default-key-change-me

Octagon build

Octagon is the most complete build in the set. It connects to 45.192.12[.]34:4444, identifies itself as BUILD_001, and has a valid v2 and v3 signature whose certificate names Octagon. Its persistence stack combines boot restart, a separate :guard process, AlarmManager and WorkManager watchdogs, network and doze recovery, fake account sync, silent audio, and OEM autostart routing. The build can also receive SMS messages, but its configuration skips the SMS permission prompt during onboarding.

BUILD_ID = "BUILD_001"
server_host = "45.192.12.34"
ENABLE_WATCHDOG = true
REQUEST_OEM_AUTOSTART = true
SILENT_AUDIO_KEEPALIVE = true
REQUEST_SMS_PERMISSION = false

For cover, the client loads www.murlauncher[.]com/fenrir-launcher in a hidden WebView and reveals it after WardForegroundService starts.

Lifted Dreams

Lifted Dreams uses the same client with different cover content and onboarding. It connects to 104.251.180[.]179:4444 and asks to read, receive, and send SMS messages. Incoming messages are stored and forwarded as WardSmsReceived, giving the operator access to message content and one-time codes. Its packaged configuration points to 104.251.180[.]179; 209.99.187[.]28 is used only if that configuration cannot be read.

webView.setVisibility(View.INVISIBLE);
webView.loadUrl("https://sandbox-adventure.com/lifted-dreams/game");
stepBattery(); stepSms(); stepA11y();
startForegroundService(WardForegroundService.startIntent(this));
webView.setVisibility(View.VISIBLE);

After requesting permissions and starting WardForegroundService, the client reveals the embedded Lifted Dreams visual novel as its victim-facing cover.


Live Lifted Dreams HTML5 visual novel page referenced by the recovered APK and displayed as post-install cover.

Figure 9: Live Lifted Dreams page used as post-install cover

Underneath the game, the same client remains. Guardian commands can collect screenshots and installed applications, launch apps, push package-specific HTML overlays, and perform clicks, swipes, text entry, and Android global actions. 

Submitted overlay values pass through OctagonBridge and return to the operator as WardGateAnswer records. The same code can capture PINs, passwords, and unlock patterns from Android System UI and common vendor keyguard packages.

One builder artifact appears in every sample: config.json says protocol version 2, while WardForegroundService switches the client to version 3 before connecting. The hosts, cover URLs, signing choices, and persistence settings vary, but the client remains the same.

Dream Group's Bahrain deployment

Dream Group traced a closely related OctagonPanel/Ward payload to users through the BH Alert campaign. BH Alert used Bahrain Civil Defense branding, fake Google Play and government pages, simulated installation screens, and a four-stage APK chain. The final payload shared com.kisa.octagonpanel, the Ward and Guardian implementation, the default passphrase, TCP port 4444, and the Fenrir Launcher URL found in our Octagon build.


Dream Group's fake Bahrain government portal and four-stage delivery chain for the separate BH Alert campaign.

Figure 10: Bahrain government lure and delivery chain. Source: Dream Group.

The Bahrain theme gave users a timely reason to sideload the app and grant sensitive permissions. Once installed, the related payload could discover apps, display overlays, collect lockscreen and SMS data, take screenshots, and control the interface.

Detection and mitigation

Across all three samples, we found the same permission flow during installation, encrypted control connection, and identifiers embedded in the client. The hosts and cover content changed between builds, but these behaviors remained consistent. 

Detection can focus on three areas:

1. Installation and permission flow. A sideloaded app requests accessibility, package enumeration, battery-optimization exclusion, wake locks, and foreground execution. Octagon and Lifted Dreams also contain SmsReceiver, although only Lifted Dreams asks for SMS access during onboarding. BahrDate omits it.

2. Network behavior. The client opens an encrypted TCP control connection on port 4444. The destination hosts vary between builds, while the port and default passphrase remain consistent across the three samples.

3. Shared client identifiers. Useful hunting strings include com.kisa.octagonpanel, octagon-default-key-change-me, WardAccessibilityService, OctagonBridge, WARD_GATE_ANSWER, and GUARDIAN_SET_PACKAGE_TEMPLATES. These behaviors and identifiers should outlast individual hosts and cover URLs.

Indicators of compromise

Type

Value

Source

Handle

AndroidKitKat

Operator material

Underground presence

Russian-language cybercrime forums

Operator material

Package name

com.kisa.octagonpanel

All three local APKs

Default C2 key

octagon-default-key-change-me

All three local APKs

Control port

4444/tcp

All three local APKs

SHA-256 APK hash

3530b1600e059468e585d48482bb2f37 5edfe5cb5c23862b01d8405ab56376b9

Local Octagon APK

SHA-256 APK hash

41d922a220ac28a4af8cbed3ffff517b fc5087f11c52801a1be0353e22a71fe0

Local BahrDate APK

SHA-256 APK hash

b7e9072e5bda17e0c68db01010658481 5442b8a9e0ce05db8e3724d8c8967f4f

Local Lifted Dreams APK

C2 IP

45.192.12[.]34

Local Octagon config.json

C2 IP

45.150.34[.]77

Local BahrDate config.json

C2 IP

104.251.180[.]179

Local Lifted Dreams config.json

Missing-config default host

209.99.187[.]28

Local Lifted Dreams fallback code

Octagon signer certificate SHA-256

d472e984c6e8f3d4d7352125ebcc7c3c 5609b2afc0f248a2e7028a59f9edc5e7

Local Octagon APK

Cover URL

hxxps://www.murlauncher[.]com/fenrir-launcher

Local Octagon APK; also reported by Dream Group

Cover URL

hxxps://sandbox-adventure[.]com/lifted-dreams/game

Local Lifted Dreams APK

Related campaign C2 IP

209.99.184[.]50

Dream Group BH Alert payload; separate campaign

Get Our Latest Blog Posts Delivered Straight to Your Inbox

Get Our Latest Blog Posts Delivered Straight to Your Inbox

Subscribe to our blog to receive the latest research and industry trends delivered straight to your inbox. Our blog content covers sophisticated mobile threats, unpatched vulnerabilities, smishing, and the latest industry news to keep you informed and secure.

Subscribe

Subscribe