This year we have seen many different malware campaigns trying to compromise users with malicious apps distributed via Google Play. Even though these apps are often removed within days after having been reported to Google, they still manage to infect thousands of users. All apps submitted to Google Play are automatically analyzed in an effort to block malicious applications, but the latest campaigns we have seen use techniques such as legitimate applications containing malicious behavior on a timer (in this case two hours) in order to circumvent Google Play’s automated detection solutions.
Acknowledgement
This article is based on joint research we have conducted with Avast and SfyLabs, who have also published their respective blog articles on the topic.
In October and November 2017 we ran into two new campaigns using droppers in the Play Store — the first campaign to drop the banking malware. This second campaign has recently been described on this site; we are adding some additional IoCs at the end of this blog article.
The droppers from the previous campaigns were far more sophisticated, using Accessibility Services to perform clicks in the background and enable app installation from unknown sources. This new dropper does not have such trickery and relies on the user having unknown sources already enabled. If this is not the case, the dropper will fail to install the BankBot malware resulting in no threat to the user. If installation from unknown sources is enabled, the user will be prompted to install the BankBot malware. This malware seems to be pretty much the same as the instance Trend Micro blogged about in September.
Interestingly enough, even though the Tornado FlashLight dropper (com.andrtorn.app) has been removed from Google Play, it is not detected by Google’s Play Protect. The same goes for the malware that is dropped by the dropper (com.vdn.market.plugin.upd). This means the dropper app and malware can still be installed from third-party locations and run without interference, unless the device is running suitable security software.
Detailed analysis
When the dropper is first started, it will check the installed applications against a hardcoded list of 160 apps. We’ve only been able to identify 132 of them, since the package names are not included in the dropper, but just their hashes. The list of targeted packages has remained the same since the campaign described by Trend Micro. If one or more of the targeted apps are installed when the dropper app is closed, it will start the service with dropper functionality.
The dropper will run the same check on device boot and if it succeeds it will also start the service. The service will first request administrator permissions from the user and after obtaining those it will continue to the download routine. The BankBot APK, which is the same for all dropper samples is downloaded from hxxp://138.201.166.31/kjsdf.tmp. The download is only triggered two hours after device administrator rights have been granted to the dropper.
Once the download is completed, the dropper will try to install the APK, using the standard Android mechanism to install applications from outside the Google Play store. Besides requiring unknown sources to be already enabled, this install method requires the user to press a button to continue the installation.
Looking at the name and icon of the package to install, we assume the attackers are trying to make the user think it is a Google Play update. Once the install is finished, the new APK will request device administrator rights and then the attack continues.
If installation from unknown sources is not enabled, Android will show an error message and the installation will fail.
How to prevent a successful attack?
For a user, it can be difficult to figure out whether an app is malicious. First off it is always good only to install applications from the Google Play store, since most malware is still mainly spread through alternative stores. Second, unless you know exactly what you are doing, do not enable 'unknown sources'. If you are asked to do this by an app or someone you do not trust personally, it is most likely malware-related.
But what if you want to install an app from the Google Play? For the typical user, we recommend using a security solution to catch the already detected malware that has not yet been blocked by Google. Besides installing a security solution, you can check some things yourself to decrease the risk of infection.
First, make sure the app has many users and good reviews. Most malware will not have been in the store for a very long time and will not have lot of users. Then, after you install the app, take note of several things: Most malware will ask to become device administrator (do not give this permission as it can be used to prevent being removed). Other malware may ask for accessibility service permission, which would enable it to simulate user interaction with the device, basically taking over the device. Another indicator is the app icon disappearing from your app drawer after the first time you start the app. The malware does this to hide itself. If this happens to you, it's probably best to back up your data and do a factory reset to make sure the malware is gone.
Campaign #1
IoCs |
||
---|---|---|
Droppers | Package name: | SHA-256: |
Tornado FlashLight | com.andrtorn.app | 89f537cb4495a50b0827 58b34e54bd1024463176d7d2f4a445cf859f5a33e38f |
phxuw | com.sysdriver.andr | d93e03c833bac1a29f49fa5c3060a04298e7811e4fb0994afc05a25c24a3e6dc |
faczyfut | com.sysmonitor.service | 3a3c5328347fa52383406b6d 6ca31337442659ae8fafdff0972703cb49d97ac2 |
Lamp For DarkNess | com.wifimodule.sys | 138e3199d53dbbaa01db40742153775d54934433e999b9c7fcfa2fea2474ce8d |
zqmfsx | com.seafl.andr | c1720011300d8851bc30589063425799e4cce9bb972b3b32b6e30c21ce72b9b6 |
Discounter | com.sarniaps.deew | bb932ca35651624fba2820d657bb10556aba66f15c053142a5645aa8fc31bbd0 |
Dropped ynlfhgq |
com.vdn.market.plugin.upd | 9a2149648d9f56e999bd5af599d041f00c3130fca282ec47430a3aa575a73dcd |
C2
All apps communicate with 138.201.166.31
Campaign #2
IoCs |
||
---|---|---|
Droppers | Package name: | SHA-256: |
XDC Cleaner | com.sdssssd.rambooster | cc32d14cea8c9ff13e95d2a83135ae4b7f4b0bd84388c718d324d559180218fd |
Spider Solitaire | com.jkclassic.solitaire12334 | b6f5a294d4b0bee029c2840c3354ed814d0d751d00c9c3d48603ce1f22dae8b3 |
Classic Solitaire | com.urbanodevelop.solitaire | b98d3f4950d07f62f22b4c933416a007298f9f38bebb897be0e31e4399eb39c3 |
Solitaire | com.jduvendc.solitaire | b98d3f4950d07f62f22b4c933416a007298f9f38bebb897be0e31e4399eb39c3 |
Dropped malware xcuah | com.vdn.market.plugin.upd | 129e8d59f2e3a6f0ac4c98bfd12f9fb5d38176164ff5cf715e7e082ab33fffb6 |
Adobe Update | com.hqzel.zgnlpufg | 3f71c21975d51e920f47f6 ec6d183c1c4c875fac93ce4eacc5921ba4f01e39d3 |
C2
All droppers communicate with 5.61.32.253. The different hostnames used are:
- 88820.pro
- 88881.pro
- 88884.pro
The malware samples communicate with 94.130.0.119 and 31.131.21.162.
Targeted apps
ar.nbad.emobile.android.mobilebank
at.bawag.mbanking
at.spardat.bcrmobile
at.spardat.bcrmobile
at.spardat.netbanking
au.com.bankwest.mobile
au.com.cua.mb
au.com.ingdirect.android
au.com.nab.mobile
au.com.newcastlepermanent
au.com.suncorp.SuncorpBank
ch.raiffeisen.android
com.EurobankEFG
com.adcb.bank
com.adib.mbs
com.advantage.RaiffeisenBank
com.akbank.android.apps.akbank_direkt
com.anz.SingaporeDigitalBanking
com.bankaustria.android.olb
com.bankofqueensland.boq
com.barclays.ke.mobile.android.ui
com.bbva.bbvacontigo
com.bbva.netcash
com.bendigobank.mobile
com.bmo.mobile
com.caisseepargne.android.mobilebanking
com.cajamar.Cajamar
com.cbd.mobile
com.chase.sig.android
com.cibc.android.mobi
com.citibank.mobile.au
com.clairmail.fth
com.cm_prod.bad
com.comarch.mobile
com.comarch.mobile.banking.bnpparibas
com.commbank.netbank
com.csam.icici.bank.imobile
com.csg.cs.dnmb
com.db.mm.deutschebank
com.db.mm.norisbank
com.dib.app
com.finansbank.mobile.cepsube
com.finanteq.finance.ca
com.garanti.cepsubesi
com.getingroup.mobilebanking
com.htsu.hsbcpersonalbanking
com.imb.banking2
com.infonow.bofa
com.ing.diba.mbbr2
com.ing.mobile
com.isis_papyrus.raiffeisen_pay_eyewdg
com.konylabs.capitalone
com.mobileloft.alpha.droid
com.moneybookers.skrillpayments
com.moneybookers.skrillpayments.neteller
com.palatine.android.mobilebanking.prod
com.pozitron.iscep
com.rak
com.rsi
com.sbi.SBIFreedomPlus
com.scb.breezebanking.hk
com.snapwork.hdfc
com.starfinanz.smob.android.sfinanzstatus
com.suntrust.mobilebanking
com.targo_prod.bad
com.tmobtech.halkbank
com.ubs.swidKXJ.android
com.unicredit
com.unionbank.ecommerce.mobile.android
com.usaa.mobile.android.usaa
com.usbank.mobilebanking
com.vakifbank.mobile
com.vipera.ts.starter.FGB
com.vipera.ts.starter.MashreqAE
com.wf.wellsfargomobile
com.ykb.android
com.ziraat.ziraatmobil
cz.airbank.android
cz.csob.smartbanking
cz.sberbankcz
de.comdirect.android
de.commerzbanking.mobil
de.direkt1822.banking
de.dkb.portalapp
de.fiducia.smartphone.android.banking.vr
de.postbank.finanzassistent
de.sdvrz.ihb.mobile.app
enbd.mobilebanking
es.bancosantander.apps
es.cm.android
es.ibercaja.ibercajaapp
es.lacaixa.mobile.android.newwapicon
es.univia.unicajamovil
eu.eleader.mobilebanking.pekao
eu.eleader.mobilebanking.pekao.firm
eu.inmite.prj.kb.mobilbank
eu.unicreditgroup.hvbapptan
fr.banquepopulaire.cyberplus
fr.creditagricole.androidapp
fr.laposte.lapostemobile
fr.lcl.android.customerarea
gr.winbank.mobile
hr.asseco.android.jimba.mUCI.ro
in.co.bankofbaroda.mpassbook
may.maybank.android
mbanking.NBG
mobi.societegenerale.mobile.lappli
mobile.santander.de
net.bnpparibas.mescomptes
net.inverline.bancosabadell.officelocator.android
nz.co.anz.android.mobilebanking
nz.co.asb.asbmobile
nz.co.bnz.droidbanking
nz.co.kiwibank.mobile
nz.co.westpac
org.banksa.bank
org.bom.bank
org.stgeorge.bank
org.westpac.bank
pl.bzwbk.bzwbk24
pl.bzwbk.ibiznes24
pl.ipko.mobile
pl.mbank
pt.bancobpi.mobile.fiabilizacao
pt.cgd.caixadirecta
pt.novobanco.nbapp
ro.btrl.mobile
src.com.idbi
wit.android.bcpBankingApp.activoBank
wit.android.bcpBankingApp.millennium
wit.android.bcpBankingApp.millenniumPL
www.ingdirect.nativeframe