微信双开是定时炸弹?关于非越狱iOS上微信分身高危插件ImgNaix的分析

澳门新葡亰3522平台游戏 22

视屏1:

一、 “倍推微信分身”初探

 

这次要分析的产品名字叫”倍推微信分身”,可以实现非越狱iOS上的微信多开。这个app的安装是通过itms-services,也就是企业证书的安装模式进行安装的。服务器是架在59os.com。可以看到除了微信分身以外,还有很多别的破解应用提供下载:

澳门新葡亰3522平台游戏 1

 

app安装完后的图标和微信的一模一样,只是名字变成了“倍推微信分身”: 

澳门新葡亰3522平台游戏 2

 

下载完倍推微信分身,并登陆后,可以看到首页与原版微信并没有太大的变化,只是左上角多了一个VIP的标志:

澳门新葡亰3522平台游戏 3

 

我们知道,根据苹果的系统机制,一台iOS设备上不允许存在多个Bundle
ID一样的app。因此,我们猜测这个微信分身app是修改过Bundle
ID的。于是我们查看一下Info.plist,果然Bundle ID已经做了修改:

 澳门新葡亰3522平台游戏 4

 

但是研究过iOS上微信分身的人一定知道,微信app在启动以及发送消息的时候会对Bundle
ID做校验的,如果不是”
com.tencent.xin”就会报错并退出。那么”倍推微信分身”是怎么做到的呢?经过分析,原来”倍推微信分身”是通过hook的手段,在app启动的时候对BundleID做了动态修改。至于怎么进行非越狱iOS上的hook可以参考我之前写的两篇文章:

 

【iOS冰与火之歌番外篇 –
在非越狱手机上进行AppHook】

 

【iOS冰与火之歌番外篇 -App
Hook答疑以及iOS 9砸壳】

 

于是我们对”倍推微信分身”的binary进行分析,发现这个binary在启动的时候会load一个伪装成一个png文件的第三方的dylib–
wanpu.png:

澳门新葡亰3522平台游戏 5

 

用file指令可以看到这个伪png文件其实是一个包含了armv7和arm64的dylib:

澳门新葡亰3522平台游戏 6

 

我们看到这个伪图片就像是一个寄生虫一样存在于微信app的体内,特别像dota里的Naix(俗称小狗)的终极技能

  • 寄生,因此我们把这个高危样本称之为ImgNaix。

澳门新葡亰3522平台游戏 7

 

不过,ID@蒸米的用户昨天在乌云平台发布了一篇漏洞报告文章,指出 iOS
系统无论越狱与否,都存在一个重大安全隐患。他展示了在未越狱且搭载 iOS 8.2
系统的 iPhone 上用 URL Scheme
设计漏洞劫持微信支付(京东客户端)和支付宝(美团客户端)账号密码的视频
Demo。

二、wanpu.png分析

 

用ida打开wanpu.png,可以看到这个dylib分别对BundleID,openURL和NewMainFrameViewController进行了hook:

澳门新葡亰3522平台游戏 8

 

BundleID不用说,是为了让app在运行的时候改回”com.tencent.xin”。

 

NewMainFrameViewController的hook函数就是在微信主页上显示VIP的图片,以及传输一些非常隐私的用户数据(ssid,
mac, imei等)到开发者自己的服务器上:

澳门新葡亰3522平台游戏 9
澳门新葡亰3522平台游戏 10

 

OpenURL这个hook就很有意思了,这个函数本身是用来处理调用微信的URL
Schemes的。看过我之前写过的《iOS URL Scheme
劫持》的文章的人一定知道这个”倍推微信分身”是有能力进行URL
Scheme劫持的,如果在Info.plist里进行了声明,手机上所有使用的URL
Schemes的应用都有可能被hijack。

 

除了这些hook以外,我们在竟然在”倍推微信分身”的逆向代码里,发现了Alipay的SDK!一个没想到,在”倍推微信分身”的帮助下,支付宝和微信支付终于走到了一起:

澳门新葡亰3522平台游戏 11

 

因为捆绑了支付宝的SDK,”倍推微信分身”可以调用支付宝的快捷支付功能:

澳门新葡亰3522平台游戏 12

 

通过网络抓包分析,我们可以看到”倍推微信分身”会发送一些服务收费的数据到手机上:

澳门新葡亰3522平台游戏 13

 

经分析,”倍推微信分身”之所以加入支付宝sdk是为了对这个微信多开app进行收费。因为天下没有免费的午餐,软件开发者之所以制作腾讯的盗版软件”倍推微信分身”就是为了能够获取到一定的收入,所以才会接入支付SDK的。

 

据悉,作者是来自香港中文大学的博士生,他声明并该漏洞是 iOS
系统漏洞。至于支付宝、微信、京东客户端,仅是为了演示,其他应用同样可以中招。

 

澳门新葡亰3522平台游戏 14

随意修改推送的内容,进行钓鱼攻击等操作。比如我通过DNS劫持就能够随意修改推送给用户的数据,以及诱导用户去下载我自己设定的企业app,简直和XcodeGhost一模一样(具体细节可以参考我之前发表的《你以为服务器关了这事就结束了?

XcodeGhost截胡攻击和服务端的复现,以及UnityGhost预警》)。

 

这里我们进行DNS劫持并修改了推送的内容,同时我们把URL替换成了另一个企业应用的下载plist:

澳门新葡亰3522平台游戏 15

 

可以看到我们在启动”倍推微信分身”的时候弹出了更新对话框,还无法取消:

澳门新葡亰3522平台游戏 16

 

点击后,”倍推微信分身”下载了我们替换后的企业应用,一个伪装成微信的假app:

澳门新葡亰3522平台游戏 17

 

除此之外,在分析的过程中,我们还发现”倍推微信分身”app还存在非常多的高危接口,并且可以利用第三方服务器的控制进行远程调用:

 

澳门新葡亰3522平台游戏,(1).
“倍推微信分身”app利用动态加载的方式调用了很多私有API。比如app使用了MobileCoreServices里的[LSApplicationWorkspace
allInstalledApplications]来获取手机上安装的应用:

澳门新葡亰3522平台游戏 18

 

比如app使用了SpringBoardServices的SBSLaunchApplicationWithIdentifier。这个API
可以在不需要urlscheme的情况下调起目标app:

澳门新葡亰3522平台游戏 19

 

比如app加载了和应用安装有关的私有Framework
MobileInstallation以及预留了通过URL Scheme安装企业app的接口:

澳门新葡亰3522平台游戏 20

 

(2).
“倍推微信分身”app预留了一整套文件操作的高危接口,可以直接对微信app内的所有文件进行操作,这些文件包括好友列表,聊天记录,聊天图片等隐私信息。

澳门新葡亰3522平台游戏 21

 

要知道在iOS上,聊天记录等信息都是完全没有加密的保存在MM.sqlite文件里的:

澳门新葡亰3522平台游戏 22

 

演示视频中“伪装”成支付宝的“FakeAlipay”,在收到美团发来的订单信息后,生成了一个和支付宝一样的登陆界面,用户在输入帐号密码后,FakeAlipay
会把账号密码以及订单信息发送到黑客的服务器上,黑客获得这些信息后可以在自己的
iOS 设备上完成支付,并把支付成功的 URL Scheme 信息发回给
FakeAlipay,FakeAlipay 再把支付成功的 URL Scheme
信息转发给美团,这样就完成了一次被劫持的支付。

三、高危接口分析

 

需要注意的是,”倍推微信分身”打开的url数据都是服务端可控的,并且没有进行加密,黑客可以使用MITM
(Man-in-the-middle attack)

这是为什么呢?

作者:蒸米@阿里移动安全