揭秘:安卓木马是如何盗取用户手机银行的?

知乎日报 知乎日报 143℃ 评论

揭秘:安卓木马是如何盗取用户手机银行的?

原文链接 来自 freebuf.com
手机银行是一种非常便捷的方式让用户可以随时随地的完成交易。KPMG 预测手机银行用户在 2019 年会增长到 1.8 亿。但是,随着手机银行涉及的金钱数额越来越大,攻击者要找到更多创造性的方式来窃取金钱。

就在上周,新加坡银行协会(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.xml

如何删除恶意软件

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

图 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)

 

转载请注明:微图摘 » 揭秘:安卓木马是如何盗取用户手机银行的?

喜欢 (0)or分享 (0)
发表我的评论