转载

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

手机银行是一种非常便捷的方式让用户可以随时随地的完成交易。KPMG预测手机银行用户在2019年会增长到1.8亿。但是,随着手机银行涉及的金钱数额越来越大,坏人要找到创造性的方式来窃取金钱。现在,坏人将在个人电脑上偷窃网上银行的方式越来越多的用到了Android平台上。

就在上周,新加坡银行协会(ABS)发布了公告称手机银行恶意软件感染安卓智能机的数量大幅上升。我们很有兴趣深入研究这种新兴的威胁,之后我们发现了一个目标是手机银行app的安卓恶意软件,于是我们对它展开了进一步研究。

安装

这种移动端恶意软件通过其他恶意软件-一个独立的app或者用户登入恶意网站时进行他们不了解的下载更新进入到用户的手机中。

目前为止,我们把所有遇到的伪装过的样本归结命名为假冒的Adobe Flash Player,这个名字并不奇怪,大家都知道"Adobe Flash Player"这个梗(这个东西今年被曝出很多漏洞啊,还有0day什么的,大家都懂的)。Adobe Flash Player所需的权限要比同类普通应用高的多(事实上,在某些情况下安卓并不支持它)。Player最引人注目的权限就是被激活为设备管理员,也就是需要安卓的最高权限,这点很容易被恶意软件操纵。从本质上讲,设备管理员权限赋予了这款恶意软件禁止用户强制停止和卸载app的权利,它的进程决定了移除它非常困难。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图1:安装、许可和设备管理员

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图2:恶意软件要求获取设备管理员权限

深入了解恶意代码

木马病毒的配置数据

如下图所示,恶意软件检索和解码它的配置文件,Base64编码,使用"@"解析,因此它可以以数组形式储存。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图3:代码检索配置文件

经过解码的Base64配置数据显示了它的C&C服务器,目标的应用程序,银行列表,C&C命令等等。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图4:Base 64解码的配置数据

每当恶意软件需要特定的数据,它可以通过对于数组来说作为索引的硬编码整数值进行检索。如下面的代码所示,整数值14和46指向带有"type"和"device info"值的配置数组的索引。我们还可以看到C&C服务器和作为感染设备标志符的代码值来回应。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图5:配置索引

我们再来看下清单文件,然后就能很快发现样本想要做什么了。我们很确定这款恶意软件的目标就像我们之前提到的一样,针对手机银行和移动支付用户。下面是清单文件的截图:

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图6:安卓的清单

这款恶意软件可以通过创建伪造银行窗口来进行网络钓鱼获取被然后用户的银行信息,如信用卡帐号、账单地址、银行用户名、PIN和密码等等。

下图是基于我们样本的被瞄准的银行和支付服务的列表:

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图7:目标银行和目标支付服务

接下来我们再看看恶意软件的核心功能及主要操作,尤其是执行数据窃取的一系列活动。

钓鱼技巧

当受害人打开合法手机银行或者支付app时,该恶意软件同时打开了它伪造的银行窗口,然后把两个窗口叠加,用户很难通过界面发现一个新的窗口被打开了。假冒的窗口和原生窗口非常累死。然而,当用户点击其他功能,比如编辑或者屏幕上的菜单功能时就能发现他们的区别了。在这里,假冒的界面没有任何反应,因为假的用户界面没法实现这些功能。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图8:伪造的银行界面

点击更多任务查看两种登录页面-第一个是合法的应用程序,第二个是伪造的Adobe Flash Player。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图9:多任务查看

另外一些钓鱼窗口的例子,他们简直和合法窗口太像了:

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图10:银行网络钓鱼窗口

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图11:信用卡钓鱼窗口

收集登录凭证

像前面所说的,最重要的一部就是劝说受害者进入他们伪造的登录界面进行信息验证。因此,恶意软件需要做的第一件事就是决定确定用户使用的是什么公司的银行以及银行界面长什么样。

恶意软件定期检查设备上运行的app并通过getPackageName() API调用检索应用程序相关的界面名称然后把这个来自这个API的返回参数和下面这个目标应用程序名字列表进行比较:

金融应用程序:

com.commbank.netbank com.cba.android.netbank au.com.nab.mobile org.westpac.bank org.stgeorge.bank com.anz.android.gomoney nz.co.kiwibank.mobile nz.co.westpac nz.co.bnz.droidbanking nz.co.anz.android.mobilebanking de.dkb.portalapp dk.bec.android.mb1.b00037.prod com.hangseng.servicemenuapp com.scb.breezebanking.hk com.citibank.mobile.hk at.bawag.mbanking at.erstebank.george at.spardat.netbanking com.bankaustria.android.olb com.dbs com.posb com.ocbc.mobile com.uob.mobile com.paypal.android.p2pmobile com.isis_papyrus.raiffeisen_pay_eyewdg com.bbva.bbvacontigo es.bancosantander.apps Social and communication application com.android.vending com.google.android.music com.whatsapp com.viber.voip com.instagram.android com.skype.raider com.google.android.gm

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图12:获取正在运行进程的包的名字

如果匹配的应用程序被发现正在受感染设备上运行,负责回应的类会显示上映的伪造的登录页面。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图13:在伪造的登录页显示的流量

下面的视频解释了一个真实的攻击情形,当用户的手机被感染时,他们的网上银行凭据是如何被窃取的。希望这个关于真实攻击的视频可以给你启示:

视频1:DBS钓鱼场景

你可以从这个视频看出,当真实的DBS应用被触发时,受害者将看到一个假冒的DBS登录画面。之后你可以看到受害者会被要求进入这个登录界面两次。接下来,受害者将被重定向到合法的DBS应用GUI。

在假的登录界面截取的登录凭证就会被恶意软件发送的C&C服务器上:

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图14:发送窃取的凭证

截取一次性密码(OTP)

银行经常把短信作为一次性密码(OTP)发送给用户作为用户ID和密码之外的登录凭证。获取这种额外的登录凭证需要攻击者进入受害者的设备获取接入OTP的权限来获取OTP。

恶意软件通过把自己注册成安卓操作系统的SMS广播接收方来完成OTP获取工作。在这种理论中,只要受害者在安装时授予了软件合适的执行权限,恶意软件就能很轻松的完成这项工作,这种权限在清单文件中被明确的指出了。因此,所有接收的SMS都可以被很容易的劫持,SMS的内容可以被发送到攻击者的C&C服务器。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图15:拦截所有接收到的SMS短信

持久性机制

我们还有兴趣了解恶意软件的持久性机制是如何工作的。在清单列表的表住下,我们快速定位了持久性机制的入口点-android.intent.action.BOOT_COMPLETED 和 android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE。但是,分析反编译源码并不是一项简单的任务,因为攻击者把java代码进行了模糊处理。好消息是模糊的代码可以被轻易地确定,因为只有一小部分垃圾代码和实际代码进行了混合。

清理Service Starter代码中的垃圾代码后,我们意识到恶意软件看起来回避了俄罗斯用户。这可能表明,这段恶意代码来自俄罗斯。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图16:清单文件显示持久性机制的切入点类名称

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图17:当手机启动时,接收功能将被启动

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图18:创建服务处理函数从接收器被调用

我们可以从图18看出,恶意软件丢弃使用硬编码文件名的SD卡中的隐藏文件。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图19:保存文件到SD卡的原始配置数据

结论

大多数安卓恶意软件app不会自动安装-他们需要用户参与来感染设备。所以如果你想让你的设备安全就需要在下载和更新应用程序时保持警惕。明智的做法是从Google Play商店这种安全的受信任的源来下载应用程序。

话虽这么说,恶意软件编写者也会提高钓鱼能力,让用户下载看起来像合法app的恶意软件并进行更新。安装安全软件更有助于保护用户的个人数据和设备上的在线交易资料。

主动检测恶意软件,如Android/Acecard.B!tr,C&C服务器就会被监测成Android.Acecard。

Fortiguard Lion Team

相关MD5哈希:

76745ce873b151cfd7260e182cbfd404 702770d70c7aab793ffd6a107fd08dad eeab2f9137c59efdfae5db2b2b93f178 d08b2f4d851b2505f4aed31ecfa53c2e a7e28a9efc8a6acb02d65829a6d773c2

C&C服务器列表:

http://37.235.48.177:34580  http://46.108.39.12:34580   http://5.196.243.6:34580  http://31.148.219.192:34580

STIX xml的报告: https://github.com/fortiguard-lion/AceCard/blob/master/acecard.xm l

如何删除恶意软件

第一步:把你的手机或者平板设置为安全模式。按住手机电源键知道手机提示你关机。接下来,点击并按住电源关闭直到手机提示你重新启动到安全模式,然后点击确定。如果你的设备没有翻译,你可以百度一下,"你的手机型号如何进入安全模式"。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图20:让你的手机进入安全模式

第二步:在安全模式里,打开设置菜单,滑到安全选项进入。查看名叫设备管理员的一栏,点击进入。现在它会显示设备的管理员列表。移除它作为设备管理员的一项,停用恶意软件app Adobe Flash Player作为设备管理员。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图21:找到注册为设备管理员的可以应用

第三步:进入设置带但,滚到应用程序,确保有下载选项。点击恶意软件app Adobe Flash Player,打开app info(app信息),然后点击uninstall(卸载)并确定。

安卓恶意软件是如何攻击安卓机,并窃取用户银行账户信息

图22:卸载银行木马

第四步:用正常模式重启手机

更多如何找到恶意软件的指示

通过使用如文件管理或者安卓SDK工具的adb第三方应用,你可以浏览额外的存储信息,如SD卡等,然后你可以查看隐藏文件(在文件名前加.)。然后你可以查看每个隐藏文件,找到类似于图19中的文件名。

从设备管理员列表中查看任意不知名的或者没见过的应用,如图21所示。

小编寄语

小编是果粉!因为苹果的iOS更加安全,安卓因为版本太多,机型不一,每种都有不同的机制,给黑客带来了更多可乘之机,怎么保护我们的隐私不受到侵害?我们的金钱不被窃取?我们的生活不受到影响?定期检查更新,及时进行系统更新;不使用root权限或者锁住root权限;定期杀毒;按时看freebuf,了解最新的漏洞资讯,查看自己的手机是否有中毒情况;在付款时不要贪图快而大意;自己加倍小心才能不给罪犯可乘之机。

*原文地址: fortinet ,FB小编FireFrank编译, 转载请注明来自FreeBuf黑客与极客(FreeBuf.com)

正文到此结束
Loading...