“Xsser mRAT”首个X国高级IOS木马

香港或将遭遇一轮更大的跨平台攻击

Shalom Bublil, Daniel Brodie, 和Avi Bashan 取得了Lacoon(Xsser mRAT发现者)的授权,为你带来这篇报导。

Lacoon移动安全研究组发现了这个Xsser mRAT 的新型木马,该木马主要针对IOS设备,并且和那些广布香港的Android后门有着密切的联系。

这是个定向到Android后门的链接,伪装成APP,来协助对抗发生在香港中环的“占中”活动,它会在每周四发送匿名的信息给whatsapp用户。在对这个后门的调查中,Lacoon发现了Xsser mEAT的host和这个被称作Xsser的项目。虽然叫做Xsser,但却并不是和XSS相关的攻击。

这种同时针对IOS和Android设备的跨平台攻击很少见,也表名这次攻击很可能是在一个大型组织或者政府部门的操纵下进行的。这种由中国hacker执行,被用来对付示威者的攻击是首个链接到中国政府网络的IOS木马。

Xsser mRAT 本身十分显著,虽然之前已经有其它的ios木马被发现,但这个最为先进。尽管在这次对抗示威者的活动中只是初现端倪,但Xsser mRAT 的真实使用程度可能无人知晓。它可以轻松实现跨国,并且很可能由一家中国机构操纵,用以窥探个人,外国公司,乃至整个政府隐私。

 

移动网络犯罪致使个人,集团都处于危险之中

Xsser mRAT代表了网络犯罪从传统PC系统到移动设备的一个转折,其目的和风险已远远超过了针对个人用户和以商业为目的的攻击。一旦被感染,Xsser mRAT可以暴露你在iOS设备上很多的个人信息,包括短信,电子邮件和任何即时消息的信息,也可以显示位置信息,用户名和密码,通话记录和联系人信息。

Xsser mRAT 向我们展示了如何利用社会工程学轻松的从IOS用户中窃取信息,攻击者利用相关的一些事件(政治抗议活动,一些体育赛事,或者商贸会)来骗取受害者的信任,用户就在不知不觉中安装了恶意的app,却不知道这些app在偷偷窃取用户的敏感信息。

通过这个例子,很能说明为什么保护移动设备如此重要,我们不仅需要知晓威胁,更需要随时对可能潜在的威胁保持警觉。

关于Lacoon这次针对Xsser mRAT的调查

这个调查始于上周的晚些时候,一个恶意的安卓app声称将协调“占中”民主运动。活动者们通过whatsapp收到一个来自匿名号码发来的信息,说:”快去找这个由Code4HK(活动者当中的程序员们)设计的安卓app,为了这次的活动!”一旦受害人点击了这个链接,他们的设备就会感染上一种先进的 mRAT,或者移动远控木马。

这次攻击的独特之处都是在Lacoon将域名提取后经过动态分析引擎分析才得以发现。这个域名作为这个mRAT的CnC服务器,经过调查,Lacoon发现这个服务器包含了一个IOS mRAT的Cydia数据库。

1

当你想从浏览器连接它时cydia 数据库的页面。

感染IOS的方式

Lacoon尚未发现有关的攻击方法。IOS设备需要在越狱过后才会被感染。一旦你安装了Cydia,那么就会被要求添加数据库,然后相关的包就会被安装。我们所了解的就是这些对IOS和Android的攻击都是共享的一个CnC服务器。

这个包本身是一个Debian的.deb包,这个包安装了一个IOS‘launchd’服务来确保这个app在设备重启过后能立即启动。

被Xeesr mRAT感染后个人信息将处于危险之中

和android后门类似,Xsser能够盗取大量的数据信息

地址薄

短信记录

电话记录

定位信息(基于cell id)

图片

OS数据

QQ数据

还有设备账户在IOS keychain中使用的密码和其它授权信息(苹果ID,邮箱账户等等),以及手机的GSM身份

关于Xsser mRAT的其它一些特性也值得一提:它会再重启后立即启动,它会动态更新

命令和控制服务器

所有Lacoon监测到的服务器都被连接到一个攻击者使用的VPS,使用一个RDP连接。这或许是为了避免攻击者的链接直接链到了CnC服务器。当试图进一步调查连接域名的身份时,发现攻击者花了相当大的功夫来通过域名保护服务来保持他们的匿名。这是一个提供域名注册服务的中国公司,攻击者通过这公司来避免对真正的域名所有者的连接。

2

Xsser IOS mRAT 安装过程

4

  • 安装Cycdia repository:一个Debian文件

这个文件包含了一系列的其他文件需要安装:

.db文件运行了一个执行安装命令的脚本

  • 当这个脚本完成之后另一个shell脚本就会被执行:

The script *****.0day_t.sh does the following:

它安装了一个本地服务,并加载它。该服务在plist中的信息是:

  • 当app在系统启动运行的时候,它会通过二进制检查库版本并将其保存到一个名为/bin/iVersion的文件。如果版本不匹配则会下载和更新库版本。那些关键的二进制数据也会被记录到 /bin/debuglogFile.log。

这里是获取库版本的HTTP请求:

http://www.xsser.com/upload/Lib/iLib.4.0.0.dylib|iLib.4.0.0.dylib|4.0.0|1033720

  • Mrat安装完成,这时候它就会在你重启后手机和发送各类信息了,共享库将会将一些信息写入到 /bin/recvDate

更多信息

这些被发送到服务器的基础信息包括:

OS 版本

Mac地址

设备版本

设备IMSI

设备IMEI

电话号码

这些通过GET请求传输的数据可以在这里被看到:

MRAT 命令和行为

在对这些通过GET将基础信息发送出去的响应中,可以看到一系列的需要这个工具在该设备执行的命令

===>GetGps:Now

===>GetKeyChain:Now

===>UploadFile:/var/mobile/Library/AddressBook/AddressBook.sqlitedb

===>UploadFile:/var/mobile/Library/AddressBook/AddressBook.sqlitedb-shm

===>UploadFile:/var/mobile/Library/AddressBook/AddressBook.sqlitedb-wal

===>UploadFile:/var/mobile/Library/SMS/sms.db

===>UploadFile:/var/mobile/Library/SMS/sms.db-shm

===>UploadFile:/var/mobile/Library/SMS/sms.db-wal

===>UploadFile:/var/wireless/Library/CallHistory/call_history.db

===>GetWeiXin:Now

===>UploadFile:/private/var/mobile/Media/DCIM/100APPLE/IMG_[…].JPG

该RaT就解析这些命令然后做下面的这些事:

上传文件 — 通过POST请求上传文件,这些数据看起来差不多就像:

我们可以看到这段代码发送了这个请求

获取GPS — 返回当前有关手机连接到的基站信息。它采用CoreTelephony的getCellInfo方法来获取这些信息并通过这种方式上传:

我们可以看到它的上传代码像这样:

获取微信 — 从腾讯QQ消息中上传信息,这是通过查看

文件中的 com.tencent.xin,并查找其容器标志。然后通过它的TargetUploadFile命令来将QQ容器中的DB/MM.sqlite文件上传。

获取密钥 — 获取下列的密钥类型:

SecClassGenericPassword

SecClassInternetPassword

SecClassIdentity

SecClassCertificate

SecClassKey

并建立一个相关数据的xml(密码,身份标识,等……)然后通过TargetUploadFile命令将KeyChainFile.xml文件上传

一个xml文件的图示:

未实现的命令 – 我们不知道他们为什么没有实现,但我们确实看到在代码中引用它们。我们猜测我们想到的版本正在开发中,也许未来将样品中会被使用。

发送SMS

拨号

执行命令

上传所有文件类型

安装方法

安装

.deb文件包含了要安装的一系列文件

.db文件运行了一个执行安装命令的脚本

当这个脚本完成之后另一个shell脚本就会被执行

其它安装在这设备的文件

/bin/debuglogFile.log

它会通过二进制检查库版本并将其保存到一个名为/bin/iVersion的文件。如果版本不匹配则会下载和更新库版本。

共享库将会将一些信息写入到 /bin/recvDate

参考文献:

译文原文:https://www.lacoon.com/lacoon-discovers-xsser-mrat-first-advanced-ios-trojan/

 

翻译:【星空@91Ri.org团队】