Blog
Oblivion RAT - An Android Spyware Platform With a Built-In APK Factory
Daniel Kelley, Threat Researcher
Mar 2, 2026

Oblivion RAT is a new Android remote access trojan sold as a malware-as-a-service (MaaS) platform on cybercrime networks for $300/month.
First reported publicly by Certo Software, it caught our attention because of how production-ready the entire operation is. The platform includes a web-based APK builder for the implant, a separate dropper builder that generates convincing fake Google Play update pages, and a C2 panel for real-time device control.
Pricing runs $300/month, $700/3 months, $1,300/6 months, or $2,200 lifetime, with 7-day demo accounts available. We obtained samples of both the dropper and RAT implant, gained access to the builder and C2 panel, and reverse-engineered the full infection chain. What follows is a walkthrough of how Oblivion gets onto a device and what it does once installed.
Three-Page Sideloading Lure
Oblivion uses a two-stage infection model. The first stage is a dropper APK distributed to victims via social engineering, typically through messaging apps or dating platforms. It contains the compressed RAT implant (payload.apk.xz) and three self-contained HTML pages that simulate a Google Play update flow. All pages use inline CSS with no external dependencies.
The first page fakes a download completing with a progress bar followed by a security scan displaying reassuring check
marks: "No malicious code," "Safe data transfer," "Verified developer," "Complies with Google policy."

Figure 1: Fake download completion with security scan
The second presents a fake Play Store listing with a developer name ("LLC Google"), a 4.5-star rating, and a green UPDATE button that triggers REQUEST_INSTALL_PACKAGES to begin sideloading the second-stage payload.

Figure 2: Fake Play Store listing page
The third page walks the victim through enabling sideloading with numbered steps, a screenshot of the "Allow from this source" toggle, and a blue info box stating this is "a standard procedure to protect your device."

Figure 3: Sideloading enablement walkthrough
All three pages auto-translate via language presets in the builder. We confirmed English and Russian presets exist. The dropper's default package pattern is com.darkpurecore*, with com.oblivion.dropper.MainActivity as the launcher activity across all samples.
AccessibilityService Hijacking
The second-stage implant is generated through the APK Builder at oblvn.sbs. Operators configure the app name, package name (default pattern: net.darkhyperapps*), client icon, and choose between two modes.
Stealth mode requests AccessibilityService access immediately on launch, auto-grants all runtime permissions, hides the launcher icon, and presents no visible UI. Webview mode opens a configurable URL as a decoy while performing the same permission escalation in the background.

Figure 4: APK Builder configuration interface
The core of the social engineering is the Accessibility Page builder, which generates a pixel-perfect replica of Android's Accessibility Service settings screen. Every text element is operator-controlled: page title, section headers, the Enable button, and a descriptive info message. When the victim taps Enable, they grant the implant's AccessibilityService full control over the device UI.

Figure 5: Fake Accessibility settings page
The service then programmatically navigates Settings to auto-grant every remaining dangerous permission, including SMS, storage, notification listener, and device admin, without the victim seeing any prompts. The hide_permission_process toggle makes this entirely invisible by intercepting and auto-dismissing system permission dialogs before they render.
Fake ZIP Encryption and C2 Config
The implant uses several anti-analysis techniques to complicate reverse engineering.
The most interesting is a fake ZIP encryption trick targeting common analysis tools. When we attempted static analysis of the implant APK, we discovered that the classes.dex ZIP entry has its general-purpose bit flag set to 0x0809, which signals encryption to ZIP parsers. This causes jadx, apktool, and Python’s zipfile library to refuse extraction, displaying encryption errors.
However, the underlying data uses standard DEFLATE compression with no actual encryption. The fake encryption flag is purely cosmetic, designed to frustrate automated analysis workflows. We bypassed this by manually parsing ZIP local file headers to extract the DEX file directly:
Once we extracted the DEX file, the C2 configuration was trivial to locate. The entire config is stored as a plaintext base64 string with no additional obfuscation. No XOR, no AES, no string encryption. A simple strings search on the extracted DEX reveals the encoded configuration, which decodes to reveal the server host (89.125.48.159:8888), operator authentication token prefixed with OBL_ (OBL_tcdekho8W3NRbxtXxOJ0ywEldcwoWmWn), every UI string used in the fake Accessibility screen, and the client operating mode.
Post-Compromise Capabilities
After the implant establishes connection to the C2 server over self-signed TLS (CN=OblivionServer), the operator gains access to an extensive control panel. This includes real-time VNC with full touch input, a keylogger capturing all AccessibilityService events tagged by source app and timestamp, and complete SMS control.

Figure 6: Real-time VNC session interface
Because the implant registers as the default SMS handler through AccessibilityService manipulation, incoming messages, including OTP codes and 2FA tokens, hit the C2 panel before the victim's messaging app. The operator can also send SMS from the victim's number.
A "Wealth Assessment" feature auto-categorizes the victim's installed apps into Banks, Crypto, Marketplaces, MFO (Microfinance/Loans), Government, and OFD Receipts, giving the operator an instant picture of which financial accounts are worth targeting.

Figure 7: C2 panel with Wealth Assessment
Indicators of Compromise
Indicator | Type | Notes |
|---|---|---|
89.125.48.159 | C2 IP | Port 8888, self-signed TLS (CN=OblivionServer), AS 213702 (NL) |
185.90.61.49 | Panel IP | Observed in C2 panel session |
83.168.108.45 | Secondary IP | Port 443, AS 35179 (PL) |
83.168.108.85 | Secondary IP | Port 443, AS 35179 (PL) |
oblvn.sbs | Panel Domain | C2 panel and builder interface |
fecf484b0fb268b1a6867057769a3e805abfc0b506cd022d37e0e50a9401714e | RAT Payload Hash | payload.apk (com.oblivion.client), VT: 14/67 |
d60d067c1239ec7db222ec18f7b8e20d85dd29ca5e8d4ddd86c55047374c3c48 | RAT Payload Hash | payload.apk (com.mail.ru), VT: 9/65 |
69a81fe8b53c1f5fa37363e32a2ed867a0c808776bdae155fc118c2de94a321a | Dropper Hash | Yandex.Archive.apk (com.yandexxxx.update), VT: 5/66 |
MITRE ATT&CK
Technique | ID | Usage |
|---|---|---|
Masquerading | T1655.001 | Impersonates Google Services, Mail.ru, Yandex |
Input Capture: Keylogging | T1417.001 | AccessibilityService-based keylogger |
SMS Control | T1582 | Read, send, intercept, default handler hijack |
Screen Capture | T1513 | VNC via MediaProjection |
Abuse Accessibility Features | T1453 | Auto-grant permissions, anti-removal |
Obfuscated Files | T1406 | Fake ZIP encryption flag on classes.dex |
Application Discovery | T1418 | App enumeration and Wealth Assessment |
Boot Persistence | T1398 | RECEIVE_BOOT_COMPLETED receiver |
iVerify detects threats like Oblivion through continuous device telemetry monitoring, identifying the behavioral indicators that commercial spyware leaves behind, even when the implant evades signature-based detection. To learn more, visit iverify.io.
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.



