Researchers from security firm FireEye first documented the Trojan in December and named it SlemBunk. Once installed, it starts monitoring the processes running on the device and when it detects that a mobile banking app is launched, it displays a fake user interface on top of it to trick users into inputting their credentials.
The Trojan can spoof the user interfaces of apps from at least 31 banks from across the world and two mobile payment service providers.
The first variants of SlemBunk were distributed as rogue copies of legitimate apps through various third-party websites, but not Google Play. This meant that devices configured to only install apps from Google Play were not affected.
The latest versions, however, are distributed through drive-by download techniques, predominantly when visiting porn websites. Device owners are alerted that in order to view the videos on the site they need to update their Flash Player and an APK (Android application package) is offered for download.
"Unwary users, who are more eager to see the video than to consider what this app is really about, would readily accept what the website is saying, and happily install the app that claims to be a Flash update," the FireEye researchers said in a blog post Wednesday.
This would still require users to enable the installation of apps from unknown sources, which is disabled by default on Android devices.
The attack is more complicated than it appears at first glance, because the APK downloaded during this first stage does not contain any malicious functionality, making it hard for antivirus apps and even Android's built-in app scanner to detect it.
This "dropper" app is using a packing technique to hide some functions that generate code on the fly and save it to another temporary APK in the device's storage. This second APK is loaded into memory dynamically by the first app and is then deleted from the file system. It too is not explicitly malicious, but it contains the routine that downloads the final, malicious payload.
The downloader app contacts a command-and-control server and receives the link for the actual SlemBunk APK and also its MD5 signature. The signature is used to verify that the downloaded file has not been tampered with or corrupted during transmission.
This chained attack, the first two steps of which are not directly malicious, is intended to make the attack more persistent, harder to detect and difficult to analyze, the FireEye researchers said. "Even if the malicious action of the SlemBunk payload were detected and removed, the more surreptitious downloader could periodically attempt to re-download the payload to the device."
The command-and-control infrastructure is also well thought out, using separate domain names for the payloads and the configuration data and administration panel.
"The use of a drive-by download to distribute the SlemBunk payload and the details of the CnC server communication suggest that this campaign is well-organized and continuing to evolve," the FireEye researchers said.