Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
Malware

SparkKitty

SparkKitty is a mobile spyware/infostealer targeting both Android and iOS, assessed by researchers as likely linked to the SparkCat campaign. It has been active since at least February 2024 and is primarily associated with theft of cryptocurrency wallet recovery material, especially seed phrases or recovery codes saved as screenshots, although most observed variants indiscriminately exfiltrated accessible images from the victim’s gallery. Kaspersky detects it as HEUR:Trojan-Spy.AndroidOS.SparkKitty.* and HEUR:Trojan-Spy.IphoneOS.SparkKitty.*.

Distribution included unofficial app sources and official platforms including Google Play and the Apple App Store. Researchers observed delivery via malicious TikTok mods, scam and Ponzi-themed platforms, gambling and adult-themed apps, crypto-themed apps, and messaging apps with crypto exchange features. One infected Android messaging app reportedly had more than 10,000 installs on Google Play. An infected iOS app named 币coin was also identified in the App Store. The campaign appears focused primarily on users in Southeast Asia and China.

On iOS, SparkKitty was delivered through malicious frameworks masquerading as AFNetworking.framework or Alamofire.framework, obfuscated libraries such as libswiftDarwin.dylib and wc.dylib, or code embedded directly into apps. Researchers identified a malicious AFNetworking-themed module using +[AFImageDownloader load] as an entry point, checking an Info.plist key named ccool, decrypting configuration with AES-256 ECB, requesting photo library access, obtaining authorization from endpoints such as /api/getImageStatus or /api/getStatus, and exfiltrating photos and device metadata via endpoints including /api/putImages. Reported infrastructure included 23.249.28[.]88:7777 and i.bicoin[.]com[.]cn. In the 币coin iOS sample, KYDeviceActionManager implemented photo theft and upload logic.

On Android, SparkKitty existed in Java and Kotlin variants; the Kotlin variant functioned as a malicious Xposed/LSPosed module in some samples. The malware decrypted C2 addresses, contacted /api/anheartbeat to determine whether uploads were permitted, requested gallery access, and uploaded images and device information to endpoints such as /api/putDataInfo. Researchers also observed a device marker stored at /sdcard/aray/cache/devices/.DEVICES derived from an MD5 of the IMEI, MAC address, and a random UUID. Some related Android variants selected the fastest C2 server by measuring response times. Researchers also observed a likely related cluster in scam Android apps using Google ML Kit OCR to scan JPEG and PNG images for text before uploading matching images.

Researchers linked SparkKitty to SparkCat based on shared Android frameworks, overlapping infected apps, and matching iOS debug symbol paths. Some later FakeWallet phishing apps also contained SparkKitty modules, and researchers assessed possible overlap in operators or tooling based on shared modules, Chinese-language artifacts, similar fake App Store-style distribution methods, and a common focus on cryptocurrency theft. Apple and Google reportedly removed identified malicious apps after notification.

Share:
For your environment

Hunt this family in your stack

Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.

MITRE ATT&CK

Techniques & procedures

21 distinct techniques documented for this family, organized by ATT&CK tactic.

Resource Development

1 technique
T1583.001DomainsEvidence1

visiting the website on an iPhone triggers a series of redirects, ultimately landing the user on a page that crudely mimics the App Store and prompts them to download an app.

Initial Access

2 techniques
T1195.001Compromise Software Dependencies and Development ToolsEvidence1

The malware was distributed through unofficial sources as well as Google Play and App Store... In both the Android and iOS versions, the malicious payload was part of the app itself, not of a third-party SDK or framework. | The threat actor distributed apps containing a malicious SDK/framework... On iOS, the malicious payload is delivered as frameworks (primarily mimicking AFNetworking.framework or Alamofire.framework) or obfuscated libraries disguised as libswiftDarwin.dylib, or it can be embedded directly into the app itself.

T1566PhishingEvidence2

we uncovered more than twenty phishing apps in the Apple App Store masquerading as popular crypto wallets. Once launched, these apps redirect users to browser pages designed to look similar to the App Store and distributing trojanized versions of legitimate wallets.

Execution

1 technique
T1059Command and Scripting InterpreterEvidence1

Later, we discovered other versions of this Trojan embedded in casino apps. These were loaded using the LSPosed framework, which is designed for app code hooking. Essentially, these Trojan versions acted as malicious Xposed modules. They would hook app entry points and execute code similar to the malware we described earlier.

Privilege Escalation

2 techniques
T1548Abuse Elevation Control MechanismEvidence1

In the case of the malicious TikTok mods, the attackers used an Enterprise profile... Once the profile is installed on a device, the certificate becomes trusted, allowing the app to run.

T1548.005Temporary Elevated Cloud AccessEvidence1

By abusing iOS provisioning profiles to install malware, attackers were able to steal recovery phrases from major hot wallets

Stealth

5 techniques
T1027Obfuscated Files or InformationEvidence1

obfuscated libraries disguised as libswiftDarwin.dylib... had initialization functions that were obfuscated with LLVM... The code uses custom names for classes, methods, and fields.

T1027.013Encrypted/Encoded FileEvidence1

It retrieves the Base64-encoded value of the ccc key... decoded and then decrypted using AES-256 in ECB mode... The decrypted value is a list of URLs...

T1036MasqueradingEvidence1

malicious payload is delivered as frameworks (primarily mimicking AFNetworking.framework or Alamofire.framework) or obfuscated libraries disguised as libswiftDarwin.dylib

T1070Indicator RemovalEvidence1

To keep track of which photos have been stolen, it creates a local database.

T1497.001System ChecksEvidence1

It checks if the value of the ccool key in the app’s main Info.plist configuration file matches the string 77e1a4d360e17fdbc. If the two differ, the malicious payload will not proceed.

Credential Access

2 techniques
T1056Input CaptureEvidence1

Tapping these opened WebView, revealing an online store named TikToki Mall... For Android users, the link downloaded an APK file that opened the scam platform via WebView.

T1649Steal or Forge Authentication CertificatesEvidence1

This link kicks off a scheme leveraging provisioning profiles to install infected versions of crypto wallets onto the victim’s device.

Discovery

4 techniques
T1033System Owner/User DiscoveryEvidence1

the malware sends a GET request to the /api/getImageStatus endpoint, transmitting app details and the user’s UUID... the Trojan writes a hexadecimal number... an MD5 hash of a string containing the infected device’s IMEI, MAC address, and a random UUID.

T1069Permission Groups DiscoveryEvidence1

On every launch, the app requested access to the user’s photo gallery... Next, the malware requests access to the user’s photo gallery.

T1083File and Directory DiscoveryEvidence1

the Trojan then checks the contents of a file named aray/cache/devices/.DEVICES on external storage.

T1497.001System ChecksEvidence1

It checks if the value of the ccool key in the app’s main Info.plist configuration file matches the string 77e1a4d360e17fdbc. If the two differ, the malicious payload will not proceed.

Collection

3 techniques
T1005Data from Local SystemEvidence1

The malware exfiltrates any accessible photos that have not already been uploaded... If the gallery is modified while the app is running, the malware will attempt to access and upload the new images to the C2 server.

T1056Input CaptureEvidence1

Tapping these opened WebView, revealing an online store named TikToki Mall... For Android users, the link downloaded an APK file that opened the scam platform via WebView.

T1213Data from Information RepositoriesEvidence1

It would then use an OCR model to select and exfiltrate images of interest... ML Kit searched for text blocks and then broke them down into lines. If at least three lines containing a word with a minimum of three letters were found, the Trojan would send the image to the attackers’ server.

Command and Control

2 techniques
T1071.001Web ProtocolsEvidence1

To do this, the malware sends a GET request to the /api/getImageStatus endpoint... Data transmission is performed directly... by making a PUT request to the /api/putImages endpoint.

T1105Ingress Tool TransferEvidence1

The decrypted value is a list of URLs from which the malware fetches additional payloads, encrypted using the same method. This new ciphertext contains a set of C2 addresses used for exfiltrating stolen photos.

Exfiltration

1 technique
T1041Exfiltration Over C2 ChannelEvidence1

the malware exfiltrates any accessible photos... by making a PUT request to the /api/putImages endpoint... the Trojan uploads images from the gallery, along with infected device info, to the command server via a PUT request to /api/putDataInfo.

INDICATORS OF COMPROMISE

IOCs tracked for this family

114 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.

View more in app
Network
31 tracked

IPs, domains, and DNS infrastructure linked to this family.

Hashes
56 tracked

File hashes (MD5, SHA-1, SHA-256) from samples and reports.

Other
27 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
domain●●●●●●●●●●●●View more in app5 years ago
domain●●●●●●●●●●●●View more in app5 years ago
domain●●●●●●●●●●●●View more in app5 years ago
domain●●●●●●●●●●●●View more in app5 years ago
domain●●●●●●●●●●●●View more in app5 years ago
domain●●●●●●●●●●●●View more in app5 years ago
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching114

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping21

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.