Lumo Checking for Pegasus Malware and Analyzing Silent SMS Attack Vectors

malware

Below is a step‑by‑step walk‑through of what the indicators you posted suggest about the malware’s lifecycle, the capabilities it appears to have acquired, and how a “silent‑SMS” payload could fit into the overall flow. I’ll keep the analysis high‑level (so you can map it to your own environment) and point out the key technical clues that lead to each inference.

1. Initial foothold – Device‑admin abuse
Indicator ID IND‑0001

Draft-kash-patel-russia-hoax

Package: com.pegas.adminsvc
Device‑admin class: com.pegas.adminsvc.DeviceAdminTransmit
Evidence: admin rights are enabled and the APK signature does not match its checksum.
What this tells us

Observation Why it matters
The app registers as a device‑admin component. Device‑admin privileges give the app the ability to lock/unlock the device, wipe data, set password policies, and—critically for attackers—prevent the user from uninstalling the app.
Signature mismatch → likely a repackaged or tampered binary. Attackers often take a legitimate admin‑app (or a stub) and inject malicious code, then resign it with their own key. The mismatch is a red flag that the binary was altered after the original build.
First seen in April 2025 – relatively recent. Suggests a new campaign or a fresh variant of an existing family.
Typical next steps

Persist – By holding device‑admin status, the malware survives reboots and resists removal.
Escalate privileges – It can now request additional system permissions (e.g., READ_SMS, BIND_ACCESSIBILITY_SERVICE) without prompting the user, because many of those are granted to device‑admin apps automatically.
2. Privilege escalation – Accessibility‑service abuse
Indicator ID IND‑0002

Package: com.system2.agent
Service: com.system2.agent/.AccessibilityHandler
Permissions: BIND_ACCESSIBILITY_SERVICE, READ_SMS, INJECT_EVENTS, TRACK_LOC
Last interaction: 14 Sept 2025
Why this matters

Accessibility services are designed for users with disabilities, but they run with system‑level UI privileges. When abused, they can:

Permission Malicious capability
READ_SMS Pull incoming SMS messages (including OTP codes).
INJECT_EVENTS Simulate touches, clicks, or keystrokes – essentially remote control of the UI.
TRACK_LOC Harvest precise location data.
BIND_ACCESSIBILITY_SERVICE Register the service without user interaction once the user has granted accessibility access.
Likely flow

Installation – The device‑admin component silently enables the accessibility service (some Android versions allow an app with admin rights to launch the accessibility settings screen).
Stealthy UI control – Using INJECT_EVENTS, the malware can navigate the device, open hidden menus, or approve further permission dialogs without the user noticing.
Data exfiltration – With READ_SMS it can capture OTPs, verification codes, or any “silent‑SMS” messages that carriers send for network‑level commands.
3. Native payload – Suspicious binary
Indicator ID IND‑0010

Path: /data/app/com.null.agent-1/lib/arm64/libpayload.so
Entropy: 7.9 (high, typical of packed or encrypted binaries)
Size: ~924 KB
ELF sections: .text, .rodata, .data – standard for a compiled shared library.
Interpretation

A native .so library is often used when the attacker needs performance‑critical or obfuscation‑resistant code, such as:

Cryptographic routines for encrypting traffic.
Low‑level system calls that bypass Java‑level sandbox checks.
Code that implements a C2 (command‑and‑control) client or a payload downloader.
Because the signature is “unknown,” static analysis tools cannot verify its provenance, which is a classic sign of a custom malicious module.

Potential actions

Action How it fits the overall chain
Decrypt or unpack additional modules (e.g., a second stage that performs SMS injection). Provides the “silent‑SMS” delivery engine.
Open a raw socket to the C2 server (see network indicator). Enables remote instruction fetching.
Hook system libraries to intercept SMS APIs. Allows the malware to read or suppress outgoing SMS.
4. Network beacon – Outbound connection
Indicator ID IND‑0022

Destination IP: 213.159.64.19 (host: rzgirl.an.lead)
First seen: 27 Apr 2025
Total bytes out: ~21 GB
What this suggests

Large outbound volume + a single, persistent endpoint points to a data‑exfiltration or C2 channel. The domain (rzgirl.an.lead) looks like a fast‑flux or dynamically generated subdomain, commonly used by threat actors to hide the real IP behind DNS churn.

Possible traffic types

Encrypted beacon – The native payload likely encrypts all traffic, making it hard to inspect without TLS termination.
File upload – The 21 GB figure could be aggregated logs, harvested contacts, SMS dumps, or even stolen media files.
Command reception – Small inbound packets (not shown) may carry instructions such as “send silent‑SMS to +1234567890”.
5. Putting it together – Silent‑SMS delivery flow
A silent SMS (also called a type‑0 SMS) is a network‑level message that does not appear in the user’s inbox and is typically used for device tracking, activation, or as a covert signaling channel. Here’s how the observed components could orchestrate that:

Persistence & privilege acquisition

The device‑admin component (com.pegas.adminsvc) secures the app on the device and grants it elevated rights.
It then enables the accessibility service (com.system2.agent) to gain UI‑level control and READ_SMS.
Native payload activation

The libpayload.so library is loaded by the Java wrapper (likely via System.loadLibrary).
This library contains a custom SMS‑engine that can craft and send type‑0 SMS packets using low‑level radio interfaces (bypassing the normal Android SMS API).
C2 coordination

The malware contacts rzgirl.an.lead to receive a command payload.
The command includes a list of phone numbers and optional payload data (e.g., a tracking token).
Silent‑SMS transmission

Upon receiving the command, the native code invokes the radio modem directly (or uses hidden Android telephony APIs) to dispatch a type‑0 SMS.
Because the message is type‑0, the OS does not surface it to the user, nor does it generate a notification.
Resulting impact

Tracking – Carriers can log the receipt of the silent SMS and associate it with the device’s IMSI, enabling location triangulation.
Triggering – The silent SMS can act as a “kill‑switch” or a signal to activate additional stages (e.g., download a ransomware payload).
6. What to look for next (practical triage)
Area Concrete artefacts to hunt
Telephony logs Look for type=0 entries in logcat or eventlog (android.telephony.SmsMessage).
Native library strings Dump strings from libpayload.so; search for “TYPE0” or “silent” patterns.
Network traffic Capture TLS handshakes to 213.159.64.19; check for periodic “heartbeat” packets (~30 s–5 min).
Accessibility events In AccessibilityServiceInfo, verify if the service is active (isEnabled()).
Device‑admin status Run dpm get-active-admins on the device; confirm com.pegas.adminsvc appears.
Permission changes Audit the settings_secure table for enabled_accessibility_services.
7. Mitigation checklist
Remove device‑admin rights – Settings → Security → Device admin apps → disable the unknown admin.
Revoke accessibility service – Same path under Accessibility → turn off the suspicious service.
Uninstall the offending packages (com.pegas.adminsvc, com.system2.agent, com.null.agent).
Run a reputable mobile anti‑malware scanner (e.g., Proton Pass + Proton VPN’s threat‑intel integration).
Block outbound traffic to the malicious IP/domain at the network level (firewall or DNS sinkhole).
Update the OS – Newer Android releases tighten the requirements for device‑admin and accessibility enrollment.
TL;DR
The device‑admin component gives persistence and the ability to silently enable an accessibility service.
The accessibility service supplies READ_SMS and UI‑inject capabilities, paving the way for covert operations.
A native .so payload likely implements low‑level radio interactions, including the ability to send type‑0 (silent) SMS messages.
All of this is coordinated via a C2 channel to rzgirl.an.lead, which also serves as a data‑exfiltration endpoint.
If you have any of the artefacts on a device or need help extracting more details (e.g., decompiling the native library, parsing the network captures), just let me know which part you’d like to dive deeper into!

1️⃣ Mobile‑security products that can spot hidden‑API / telephony abuse
Solution How it detects the problem What you’ll see in the UI
Proton Pass + Proton VPN Threat‑Intel (the paid Proton Plus bundle) Scans installed APKs for the presence of non‑public Android SDK calls (e.g., android.telephony.ITelephony, ISms.sendDataMessage() with raw PDUs, android.hardware.radio.IRadio). It also monitors runtime behavior for attempts to load native libraries that invoke those hidden methods. Alerts such as “Hidden telephony API usage detected – ITelephony.sendMultipartTextMessage called by com.pegas.adminsvc”. You can click through to see the exact class/method and the timestamp.
Lookout Mobile Security Uses a combination of static binary analysis and dynamic behavior monitoring. When an app tries to bind to the BIND_ACCESSIBILITY_SERVICE or READ_PRIVILEGED_PHONE_STATE permission without a legitimate use‑case, it raises a “Privileged Telephony Access” warning. Dashboard shows a red badge on the offending app plus a short description (“App attempts to send silent‑SMS via hidden API”).
ESET Mobile Antivirus Hooks the Dalvik/ART runtime and flags any invocation of methods that are not part of the public SDK (e.g., android.telephony.TelephonyManager.getSubscriberId() via reflection). Event log entry: “Suspicious telephony API call – com.system2.agent.AccessibilityHandler used reflection to call getIccSerialNumber.”
Avast Mobile Security Performs on‑device heuristic scanning for native .so libraries that contain strings like SEND_SILENT_SMS, TYPE0, or raw PDU construction. Alert: “Potential silent‑SMS payload found in libpayload.so.”
Mobile Device Management (MDM) platforms (e.g., VMware Workspace ONE, Microsoft Intune, Cisco Meraki) Can enforce a policy that blocks installation of apps requesting READ_PRIVILEGED_PHONE_STATE, WRITE_SECURE_SETTINGS, or BIND_ACCESSIBILITY_SERVICE unless the app is whitelisted. They also generate compliance reports listing any device with those permissions enabled. Compliance report row: “Device XYZ – Non‑whitelisted app com.pegas.adminsvc holds READ_SMS + hidden telephony API.”
Tip: If you already have a Proton Plus subscription, the built‑in Threat‑Intel scanner runs automatically in the background and will push a notification the moment it spots a hidden telephony call. You can also trigger a manual scan from the Proton Pass app → Security → Full device scan.

2️⃣ “Graphene O” – what setting should you enable?
You’re probably referring to GrapheneOS, the privacy‑focused Android fork that ships a set of “hardening” toggles under Settings → Security & privacy → Advanced security. The most relevant switch for stopping silent‑SMS abuse is:

“Restrict access to hidden APIs” (sometimes labeled “Block non‑SDK interface usage”)
What it does:
Prevents any app (including system‑level ones) from invoking Android’s non‑public (hidden) APIs via reflection or direct binder calls.
If an app tries to call something like ITelephony.sendDataMessage() or ISms.injectSmsPdu(), the call fails with a SecurityException.
Why it matters for silent‑SMS:
The only way to send a type‑0 SMS from user space is through those hidden interfaces (or by loading a native library that talks straight to the radio). Blocking the hidden APIs removes the most common software route.
How to enable:
Open Settings → Security & privacy → Advanced security.
Toggle “Restrict access to hidden APIs” (or “Block non‑SDK interface usage”) to On.
Reboot the device for the change to take effect.
Additional GrapheneOS knobs that complement this protection

“Require verified boot for all apps” – ensures only properly signed system apps can run privileged code.
”Disable USB debugging by default” – stops an attacker from using adb to push a malicious native library onto the device.
”Enforce per‑app permission revocation” – you can manually revoke READ_SMS, READ_PHONE_STATE, and ACCESSIBILITY from any app that doesn’t need them.
3️⃣ Quick “hardening checklist” you can apply today (no‑root, any Android)
Action How to do it Expected benefit
Audit & revoke device‑admin apps Settings → Security → Device admin apps → disable any unknown entry. Removes persistent admin rights that let malware auto‑enable accessibility services.
Turn off all accessibility services you don’t use Settings → Accessibility → toggle off each service you didn’t intentionally enable. Cuts off the BIND_ACCESSIBILITY_SERVICE permission that many malware families abuse.
Revoke READ_SMS / RECEIVE_SMS from third‑party apps Settings → Apps → [App] → Permissions → toggle off SMS permissions. Stops an app from reading or injecting SMS, including silent‑SMS payloads.
Enable “Restrict hidden API access” (GrapheneOS) or equivalent If you’re on GrapheneOS, flip the toggle; on stock Android you can use a root‑less hardening app like App Ops to block android.permission.ACCESS_FINE_LOCATION‑related hidden calls. Blocks the low‑level telephony methods used to craft type‑0 messages.
Install a security suite that watches hidden‑API usage Proton Plus, Lookout, ESET, etc. (choose one). Gives you real‑time alerts if any app tries to cheat the system.
Ask your carrier to disable silent‑SMS delivery Call carrier support → request “disable type‑0 SMS / network‑initiated silent SMS”. Even if malware manages to craft a silent‑SMS, the network will drop it.
Enable a VPN with DNS‑sinkhole Proton VPN → “Secure Core” + custom DNS blocklist (e.g., dnscrypt‑proxy with adguard‑dns). Reduces the chance the malware can reach its C2 endpoint (rzgirl.an.lead).
4️⃣ What to do if you already see a hidden‑API alert
Open the alert (most security apps let you tap it).
Identify the offending package (e.g., com.system2.agent).
Immediately disable the app’s device‑admin and accessibility rights (see step 1).
Uninstall the package (or, if it’s a system app, use an MDM to push a “remove” command).
Run a full scan with your chosen security suite to ensure no remnants remain.
Change your carrier PIN / SIM lock – this prevents a rogue app from re‑registering the same SIM‑toolkit commands.
Bottom line
Silent‑SMS isn’t the infection vector; it’s a stealthy command channel that malicious code can exploit after it has gained high‑privilege access (device‑admin + accessibility).
Detecting hidden‑API telephony usage is possible with modern mobile‑security products (Proton Plus, Lookout, ESET, Avast) and with MDM compliance checks.
On GrapheneOS, enable the “Restrict access to hidden APIs” toggle (sometimes called “Block non‑SDK interface usage”) to block the low‑level calls that create type‑0 SMS. Complement this with the other GrapheneOS hardening options for a defense‑in‑depth posture.
If you need a walkthrough for a specific security product (e.g., “how to view hidden‑API alerts in Proton Pass”) or want to script a quick adb check for device‑admin apps, just let me know—I can give you the exact commands.

Lumo Checking for Pegasus malware and analyzing silent SMS attack vectors

Lumo Syncthing Kopia Setup for Admins Part 1

Lumo Syncthing Kopia Setup for Admins Part 2 - Building a syncnet with SyncThing

lumo compare sus doge to previous windows endpoint mapper known gov last seen feb 20, 2025 52.227.163.232 usgovvirginiaMicrosoft RPC Endpoint Mapper

Lumo Orbic hotspot Rayhunter setup

Notesnook Github Vercel project private wiki

WIKI Setup Complete Hetzner VPS Deployment Guide lumo

phone recommendations