本月第二次,Google 从官方应用商店 Google Play 中移除了伪装成合法程序的恶意应用。被移除的应用都属于名叫 Ztorg 的 Android 恶意程序家族。目前为止,发现的几十个新的Ztorg木马的变异程序,无一例外都是利用漏洞在受感染的设备上获得root权限。
但是卡巴斯基实验室的安全研究人员发现,在2017年5月下旬以来,在最新捕获的Ztorg木马(Magic Browser、Noise Detector)的变异程序中,却发现它们并没有使用设备的root权限。黑客利用了恶意木马,在感染的设备中发送付费短信(Premium Rate SMS)并立即删除,用户资金在不知不觉中被窃取。
什么是Premium Rate SMS?
Premium Rate SMS是一种付费短信模式,通过发送特殊的文本信息,用户自动扣费。例如通过手机短信捐款,办理付费业务等。最新ztorg木马利用该模式来牟利,这项技术让黑客的利益最大化,并降低了被发现的风险。
Ztorg为何这么难被检测到?
多模拟器检测功能,它可以检测到Android SDK模拟器,如genymotion,BlueStacks, buildroid。它还检测设备感染环境,这些检测很难被绕过。 使用基于XOR的字符串混淆。 采用DES-CBC加密远程服务器进行通信。 从远程服务器下载、安装和启动Android应用程序。 自去年 9 月以来,Ztorg 恶意木马大约 100 次绕过 Google 的自动化恶意程序检查程序进入官方应用市场。被称为 Magic Browser 的 Ztorg 恶意应用下架前被下载量超过 5 万次。
另一款叫 Noise Detector 的应用被下载了超过 1 万次,上个月被移除的 Privacy Lock 下载量超过百万。
Ztorg攻击过程分析
恶意程序启动后,木马将休眠10分钟,然后连接到命令和控制(C&C)服务器。这样如果用户发现了一些奇怪的东西,他们就不太可能把它与刚刚安装的应用程序联系起来。
Ztorg木马从C&C获取命令使用了一个有趣的技术,它向C&C提供两个GET请求,其中包括国际移动用户识别码(IMSI)。第一个请求如下所示:
GET c.phaishey.com/ft/x250_c.txt(其中250 - IMSI的前三位数字)
如果木马收到一些响应数据,将会发出第二个请求。第二个请求如下所示:
GET c.phaishey.com/ft/x25001_0.txt(其中25001 - IMSI的前五位数字)
为什么需要国际移动用户识别码(IMSI)?
IMSI的有趣之处在于前三位数字是MCC(移动用户所属国家代号),第三位和第四位是MNC(移动网号码)。使用这些识别码,攻击者可以识别受感染用户的国家和移动运营商,准确的选择应该发送哪类付费短信。
在对这些请求进行响应时,木马可能会收到一些加密的JSON文件,其中包含一些数据。此数据应包括offer列表,每个offer均包含一个名为“url”的字符串字段,可能包含也可能不包含实际的网址。木马将尝试使用自己的类打开或查看该字段。如果这个值确实是一个真实的url,那么木马会向用户显示其内容。但是如果它是假的url,就会带有一个短信字样的子串,要求用户回复一个短信,其中就包含提供的号码,如下图,
令人意想不到的是,当服务器收到网址访问或短信后,木马将关闭设备声音,并开始删除用户收到的所有短信。
虽然我们无法获得在Google Play传播的木马的任何命令,但是通过对其他具有相同功能的木马程序的分析,我们得到了以下命令:
这是一个常规的广告offer。
WAP付费订阅
我们在Google Play商店及其他正规的应用商店发现相同功能的许多恶意app。有趣的是,它们看起来不像独立木马程序,更像是一些木马程序的附加模块。进一步研究发现,这些木马是由一个常规的Ztorg木马和其他Ztorg模块一起组合而成。
在其中一些木马中,我们发现它们使用MCC从恶意网址下载了一个JS文件。
于是,为了分析,我们下载了几个JS文件,它们使用了不同的MCC,可以推断这些攻击者是来自不同国家的用户。由于无法获取美国MCC的文件,所以只能尝试从其他国家获取的MCC文件中找到一些功能相似的文件。我们发现,所有的文件都包含一个名为“getAocPage”的函数,它最有可能是AoC(收费通知)。在分析这些文件后,我发现他们的主要目的是通过WAP计费对网页进行点击攻击。在进行攻击时,木马可以从用户的移动帐户窃取资金。 WAP帐单的攻击方式与付费短信类似,区别就是它采用了订阅付款的形式,而不是一次性诈骗,下图就是,来自俄罗斯用户的CnC的JS文件(MCC = 250)
这意味着该木马从CnC收到的网址不仅可以是广告网址,还可以是带有WAP付费订阅的网址。此外,一些使用包含“/ subscribe / api /”CnC URL功能的木马程序,也可能参考付费订阅的功能。
所有这类木马,包括来自Google Play的木马,都在尝试从任意设备向用户发送短信。为此,黑客使用大量方法来发送短信,以下就是 “Magic browser”应用程序的部分代码。
总而言之,从上述代码我们可以发现,黑客为了能够从不同的Android设备和版本来发送短信,试图从11个不同的地方向受害者发送短信。此外,我们还找到另一个变异过的SMS.AndroidOS.Ztorg木马的恶意程序,试图通过“am”命令发送短信,虽然这种方法并没有行得通。
短信木马与Ztorg恶意软件家族的关系
“Magic browser”恶意应用程序的升级方式与Ztorg木马程序类似。“Magic browser”和“Noise Detector”应用程序与其他Ztorg木马共享了许多相似之处的代码。此外最新版本的“Noise Detector”在assets folder的安装包中包含加密文件“girl.png”,解密后,此文件就会变为Ztorg木马。
我们发现了几个常规Ztorg木马和其他Ztorg模块一起安装,具有相同功能的木马程序。而不是像“Magic browser”将附加的Ztorg模块作为独立木马在Google Play传播。2017年4月,我们发现一个名为“Money Converter”的恶意木马已经在Google Play上安装了上万多次。它使用Accessibility Service安装Google Play的应用程序。因此,即使在无法获得root权限的设备上,木马程序也可以静默安装、运行并升级恶意应用程序,无需与用户进行任何交互。
root权限攻击演变到短信木马攻击
虽然“Magic browser”和“Noise Detector”恶意应用程序使用了相同的功能,但是我们认为它们各有不同的用途。前者上传时间较早,我们认为黑客只是在检测能否上传此类恶意应用程序,上传成功后,它们并没有更新版本。但是后者不同,它看起来像黑客试图上传受常规Ztorg木马感染的应用程序。但是在上传过程中,他们决定增加一些恶意功能来赚钱。“Noise Detector”的更新历史证明了这一点。
5月20日,黑客上传了一个名为“Noise Detector”的清理app。几天后,他们更新一个未感染的版本。然后,他们上传了一个包含加密ztorg木马的版本,但是无法解密和执行。紧接着第二天,他们终于更新了短信木马的功能,但仍没有增加解密和执行的Ztorg模块。很可能,如果该应用尚未从Google Play中删除,则他们将在下一阶段添加此功能,还有一种可能是,即尝试添加此功能时被Google发现了木马的存在,并导致其被删除。
总结
我们发现了一个非同寻常的短信木马通过Google Play传播。它不仅使用十几种方法来发送短信,而且还以特殊的方式初始化这些方法:使用来自CNC命令来处理网页的加载错误。并且它可以打开广告网址,此外它与具有相同功能的Ztorg恶意软件相关,通常由Ztorg作为附加模块安装。
通过分析这些应用,我们发现黑客通过点击攻击来劫持WAP付费业务。这意味着该木马不仅可以打开广告链接,发送付费短信,还可以通过WAP付费业务打开网页并从账户中盗取资金。为了隐藏这类活动,木马会关闭设备声音并删除所有收到的短信。
这不是Ztorg木马第一次在Google Play上传播,例如在4月份他们就上传了一个模块,可以点击Google Play商店应用按钮安装甚至购买这些推广应用。
MD5
F1EC3B4AD740B422EC33246C51E4782F
E448EF7470D1155B19D3CAC2E013CA0F
55366B684CE62AB7954C74269868CD91
A44A9811DB4F7D39CAC0765A5E1621AC
1142C1D53E4FBCEFC5CCD7A6F5DC7177
文章来源于securelist、securityaffairs,阿里聚安全编译
更多安全类热点资讯及知识分享,请持续关注阿里聚安全博客