首页
社区
课程
招聘
[原创]iOS.GuiInject广告木马插入正常APP—腾讯TIM、并使用MITM中间人劫持木马--辛巴达6月历险记
发表于: 2017-7-1 12:10 38259

[原创]iOS.GuiInject广告木马插入正常APP—腾讯TIM、并使用MITM中间人劫持木马--辛巴达6月历险记

2017-7-1 12:10
38259

Contributors : [OSG·辛] team :afox、AliceForever、KoU2N、物以类聚


    (1)iOS Application File

最近一款在VirusTotal的应用程序引起了我们的注意。

从文件名可以看出这是一款使用了Clutch的破解软件。对ipa文件进行解压(实际是zip文件)。

jailbreak这个库看起来很可疑

nguyen tat hung 虽然是一个知名开发商,但不是MailTime Pro的开发商。

进一步,我们发现jailbreak动态注入到了二进制程序中。

大多数的库,在导入表中包含了他们的安装路径和真实名称

通过assert()宏,查看项目的关联信息

    (2)Inject Library

通过符号表,快速的找到知名SDK和CocoaPods。

一个越狱软件包括如此多的广告是不常见的,这里有剩余的类头文件

-[Config getConfig]方法从程序目录加载wrap.json文件。

经过几次循环等待,注入的代码会联系一个不安全的远程主机,部分的服务可以工作。

比如,coreapi服务似乎不能工作。

bb6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6J5j5i4m8H3k6i4u0Q4x3X3g2D9j5i4g2Y4K9s2N6G2M7X3I4V1i4K6u0W2L8X3g2@1i4K6u0r3j5$3!0J5k6h3q4H3K9g2)9J5c8X3q4U0N6r3W2$3k6g2)9#2k6X3c8W2N6X3W2U0k6g2)9J5k6i4m8Z5M7q4)9K6c8Y4m8C8i4K6y4p5d9g2m8m8e0V1q4y4c8g2)9J5y4X3q4E0M7q4)9K6b7X3W2K6i4K6g2X3K9X3u0Q4x3@1b7I4i4K6t1$3j5h3#2H3i4K6y4n7N6h3c8A6k6q4)9K6c8q4u0q4c8p5q4o6g2p5g2p5i4K6t1$3j5h3#2H3i4K6y4n7M7$3W2Y4L8X3q4@1N6i4u0W2i4K6y4p5e0f1b7#2

062K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6J5j5i4m8H3k6i4u0Q4x3X3g2D9j5i4g2Y4K9s2N6G2M7X3I4V1i4K6u0W2L8X3g2@1i4K6u0r3j5$3!0J5k6h3q4H3K9g2)9J5c8X3N6W2N6q4)9#2k6X3I4A6M7%4c8Q4y4h3k6E0k6i4y4K6j5h3N6W2i4K6u0W2M7r3S2H3i4K6y4r3M7r3E0Q4x3@1c8u0f1p5q4z5b7f1#2q4i4K6t1$3j5h3#2H3i4K6y4n7K9i4y4Q4y4h3k6B7j5W2)9K6c8o6q4Q4x3U0k6S2L8i4m8Q4x3@1u0#2k6r3W2V1i4K6y4p5f1V1g2p5b7f1y4f1c8f1c8Q4x3U0k6S2L8i4m8Q4x3@1u0D9K9h3u0$3k6i4u0Q4x3@1b7J5x3o6p5$3x3o6R3I4z5q4)9J5y4X3q4E0M7q4)9K6b7X3q4H3M7q4)9#2k6Y4m8C8i4K6y4p5d9g2m8m8e0V1q4y4c8g2)9#2k6V1q4s2b7f1W2z5i4K6t1$3j5h3#2H3i4K6y4n7j5i4m8H3i4K6g2X3N6X3g2J5i4K6y4p5x3g2)9J5k6e0u0Q4x3X3f1K6i4K6t1$3j5h3#2H3i4K6y4n7M7$3W2Y4L8X3q4@1N6i4u0W2i4K6y4p5e0f1b7#2

当api服务启动后

d5aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6J5j5i4m8H3k6i4u0Q4x3X3g2D9j5i4g2Y4K9s2N6G2M7X3I4V1i4K6u0W2L8X3g2@1i4K6u0r3j5i4m8A6i4K6u0r3j5$3!0E0i4K6u0W2L8h3q4A6L8s2c8A6L8h3g2Q4x3X3g2y4j5h3W2D9g2r3W2E0k6g2m8J5L8#2)9#2k6X3q4V1M7#2)9J5k6h3A6K6L8$3^5`.

最有趣的是update请求

-[API getUpdate:withSelector:]方法会请求448K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6J5j5i4m8H3k6i4u0Q4x3X3g2D9j5i4g2Y4K9s2N6G2M7X3I4V1i4K6u0W2L8X3g2@1i4K6u0r3j5i4m8A6i4K6u0r3j5$3!0E0i4K6u0W2L8h3q4A6L8s2c8A6L8h3g2Q4x3X3g2y4j5h3W2D9g2r3W2E0k6g2m8J5L8#2)9#2k6Y4g2H3k6r3q4@1k6g2)9J5k6h3A6K6L8$3^5`.

script_zip,script_file和md5_script没有被执行,script_zip的URL指向一个加密的ZIP,并且md5_script是无效的(最后一个字节错误)。

linkfw指向一个有效的Zip,一旦下载并解压, -[guiinject _loadPluginAtLocation:]将加载框架并发送一个run消息到principalClass。md5fw用于自我更新。

到目前为止,我们没有看到任何广告,他们可能隐藏在视图中。

    (3)Downloaded Framework

开发者的标识发生了改变。

框架的header中有开发者和组织。

这是有Xcode自动生成的,经itviec工作网查询, GTT Media 和 T&B 是外包公司。


一旦加载完成,框架通过lib服务请求托管在DailyUploads和FileFactory站点上的文件列表。

2f8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6J5j5i4m8H3k6i4u0Q4x3X3g2D9j5i4g2Y4K9s2N6G2M7X3I4V1i4K6u0W2L8X3g2@1i4K6u0r3L8r3W2T1i4K6u0r3c8r3q4A6L8s2W2g2M7r3I4G2j5h3c8p5L8%4N6F1L8r3!0S2k6p5#2G2k6s2g2D9k6g2)9J5k6h3y4G2L8X3j5`.

a42K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6J5j5i4m8H3k6i4u0Q4x3X3g2D9j5i4g2Y4K9s2N6G2M7X3I4V1i4K6u0W2L8X3g2@1i4K6u0r3L8r3W2T1i4K6u0r3c8X3W2D9k6f1k6S2j5%4c8G2M7Y4W2p5L8%4N6F1L8r3!0S2k6p5#2G2k6s2g2D9k6g2)9J5k6h3y4G2L8X3j5`.

框架也会使用DynDNS定期检查iOS设备的外部IP。

每当框架加载完毕或者IP变更,都会从DailyUploads和FileFactory下载一个随机文件。

dailyuploads也指向其他iOS应用,这些应用都是被nguyen tat hung签名并注入的(yara规则)。

    (4)Abusing the Injected Adware Library

一个动态库使用不安全的协议来连接远程主机并执行代码。我们是否通过拦截和修改update的response,加载了自己的代码?能否移植到别的APP中?


    (1)砸壳ipa

    (2)拷贝com.tencent.tim-iOS7.0-(Clutch-2.0.4).ipa至电脑并解压

    (3)在TIM中注入jailbreak

    (4)重新签名并打包为ipa文件,安装新程序至iOS

工具:iOS App Signner、codesign、AppResign、Cydia Impactor皆可以

    (5)iOS配置局域网代理,并使用BurpSuite抓包,BurpSuite开启修改Intercept Client Resquests功能

    (6)撰写新的动态链接库(文件见附件)用于劫持流程

压缩并计算md5。

 (7)启动本地httpd,并将DailyUploadDownloadLib.framework.zip放置在根目录

    (8)启动App,使用burp修改以下请求回包


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 2
支持
分享
最新回复 (8)
雪    币: 3907
活跃值: (5922)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
2
要是把改包的过程写详细一点就更好了。虽然流程已经很清楚了。
2017-7-1 13:58
0
雪    币: 4
活跃值: (279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
a0cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3&6@1K9h3&6W2L8r3!0F1k6g2)9J5k6h3y4G2L8g2)9J5c8X3u0D9L8$3N6K6i4K6u0r3j5h3&6S2L8s2W2K6K9i4y4Q4x3X3c8A6L8%4y4Q4x3X3c8Y4N6h3W2A6L8X3A6W2j5%4c8Q4x3X3c8S2k6s2N6S2M7X3g2Q4x3X3c8D9K9h3u0J5j5i4u0&6i4K6u0r3
2017-7-2 16:47
0
雪    币: 208
活跃值: (484)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
膜大佬们Orz
2017-7-2 18:51
0
雪    币: 3907
活跃值: (5922)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
5
unknowdan 4c3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3&6@1K9h3&6W2L8r3!0F1k6g2)9J5k6h3y4G2L8g2)9J5c8X3u0D9L8$3N6K6i4K6u0r3j5h3&6S2L8s2W2K6K9i4y4Q4x3X3c8A6L8%4y4Q4x3X3c8Y4N6h3W2A6L8X3A6W2j5%4c8Q4x3X3c8S2k6s2N6S2M7X3g2Q4x3X3c8D9K9h3u0J5j5i4u0&6i4K6u0r3
我们实际地跑了一遍,还把木马库插到正常App里去了,还做了任意代码劫持,比原作深入太多了。
2017-7-3 20:44
0
雪    币: 3
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了
2017-7-23 12:55
0
雪    币: 244
活跃值: (189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个劫持只能特定环境?
2018-6-4 15:28
0
雪    币: 2002
活跃值: (607)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习了
2019-9-18 06:29
0
雪    币: 208
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
roysue 要是把改包的过程写详细一点就更好了。虽然流程已经很清楚了。
最后于 2019-12-2 12:03 被t1996ys编辑 ,原因:
2019-12-2 12:03
0
游客
登录 | 注册 方可回帖
返回