Experts warn of Necro Trojan found in Google Play, threat actors are spreading it through fake versions of legitimate Android apps.
Researchers from Kaspersky discovered a new version of the Necro Trojan in multiple apps uploaded to the Google Play store. The malware was hidden in popular applications and game mods.
Kaspersky researchers first spotted the Necro Trojan in 2019, the malicious code was in the free version of the popular PDF creator application CamScanner app.
The new version of the Necro loader infected both apps in Google Play and modified versions of Spotify, Minecraft, and other popular applications in unofficial sources.
The new version of the Necro loader uses obfuscation and steganography techniques to evade detection. It can perform various malicious actions, including displaying ads in invisible windows, downloading and executing DEX files, installing applications, opening links in hidden WebView windows, executing JavaScript, and creating tunnels through the victim’s device. The malicious code can also potentially subscribe to paid services.
According to the experts, the malicious apps in the Google Play Store have been downloaded 11 million times (Wuta Camera 10+ million downloads, Max Browser 1+ million downloads). The actual number of infected devices could be higher due to Necro’s spread through unofficial app sources.
“The new version of the Necro Trojan has infected various popular applications, including game mods, with some of them being available on Google Play at the time of writing this report.” reads the report published by Kaspersky. “The combined audience of the latter exceeds 11 million Android devices.”
The researchers believe that the malware found its way to the Play Store through a tainted software developer kit (SDK) used to integrate advertising capabilities into the apps.
Necro malware is primarily delivered through modded versions of popular apps and games available on unofficial sites and app stores. These apps activate the Coral SDK, which sends an encrypted POST request to a command-and-control (C2) server, containing details about the compromised device and the host app. The C2 server responds with a JSON file that includes a link to a PNG image file and metadata like MD5 and version info. This PNG file contains a payload hidden via steganography. The SDK extracts the main payload, a Base64-encoded Java archive (JAR) file, from the image.
Necro has a modular structure, the plugins are downloaded from the C2 server to allow it to support multiple capabilities including:
- NProxy: Creates a tunnel through the victim’s device.
- Island: Generates a pseudo-random time interval between displays of intrusive ads.
- Web: Contacts a C2 server periodically to execute arbitrary code with elevated permissions via specific links.
- Cube SDK: Loads plugins that handle background ad display.
- Tap: Downloads JavaScript code and a WebView interface from the C2 server to covertly load and view ads.
- Happy SDK: Combines the NProxy and Web modules with minor differences.
The analysis of Happy SDK likely revealed a different variant of Necro that doesn’t have a modular architecture.
This indicates that Necro is highly adaptable, and capable of downloading new iterations of itself, potentially adding new features.
Between August 26th and September 15th, security solutions blocked over 10,000 Necro attacks globally, with most of the infections in Russia, Brazil, and Vietnam.
“The Necro Trojan has once again managed to attack tens of thousands of devices worldwide. This new version is a multi-stage loader that used steganography to hide the second-stage payload, a very rare technique for mobile malware, as well as obfuscation to evade detection.” concludes the report. “The modular architecture gives the Trojan’s creators a wide range of options for both mass and targeted delivery of loader updates or new malicious modules depending on the infected application.”
Follow me on Twitter: @securityaffairs and Facebook and Mastodon
(SecurityAffairs – hacking, malware)