首页
社区
课程
招聘
ANDROID-8219321漏洞、POC及其他相关信息汇总
发表于: 2013-7-10 01:18 22786

ANDROID-8219321漏洞、POC及其他相关信息汇总

2013-7-10 01:18
22786

这两天这个问题基本已经公之于众了。所以不用再保密了。相关信息及自己研究的一些结果放上来,汇总一下。

首先是3月和5月google官方发出的补丁说明:

3月:

Improper installation of unsigned code
ID: ANDROID-8219321
Severity: High
Affected versions: Android 2.0 and greater

An inconsistency in the handling of zip files during application installation may lead to the installation and execution of unsigned code in a privileged context.

This issue will be publicly disclosed in 90 days. A CTS test will be included in the next CTS release.

5月:

Insertion of arbitrary code without changing package signature due to incorrect parsing of APKs (update to previous bulletin)
First published: March 4th, 2013
Last Updated: May 31st, 2013
ID: ANDROID-8219321
Severity: High
Affected Android Versions: all

Arbitrary code can be inserted into an APK and pass signature verification due to incorrect parsing of APKs. A maliciously crafted classes.dex can be inserted before a legitimately signed classes.dex in an APK. Signature verification will be performed on the second, legitimate classes.dex, but the first, malicious classes.dex is installed for application use. 

Update: This issue will be publicly presented at Blackhat 2013. Please see f7bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0D9j5h3y4C8K9r3q4@1i4K6u0W2j5$3!0E0i4K6u0r3N6i4y4Q4x3X3b7I4x3#2)9J5c8X3u0J5K9h3g2X3K9h3&6Y4M7#2)9J5k6h3S2@1L8h3I4Q4x3U0y4r3L8%4u0J5K9i4y4@1j5h3I4Q4x3U0k6F1j5Y4y4H3i4K6y4n7k6X3!0J5i4K6t1$3L8X3u0K6M7q4)9K6b7X3#2G2M7X3g2Q4x3U0k6F1j5Y4y4H3i4K6y4n7k6r3g2@1j5h3W2D9M7#2)9J5k6g2)9J5y4X3&6T1M7%4m8Q4x3@1u0m8N6q4)9J5y4X3&6T1M7%4m8Q4x3@1u0@1K9r3q4@1i4K6t1$3L8X3u0K6M7q4)9K6b7Y4c8A6L8h3g2Q4x3V1y4Q4x3U0k6F1j5Y4y4H3i4K6y4n7N6$3g2Q4x3U0k6F1j5Y4y4H3i4K6y4n7k6i4S2H3k6h3y4@1i4K6t1$3L8X3u0K6M7q4)9K6b7X3q4U0N6r3W2$3k6g2)9J5y4X3&6T1M7%4m8Q4x3@1u0H3N6h3u0D9K9h3y4Q4x3U0k6F1j5Y4y4H3i4K6y4n7k6i4S2H3L8r3!0A6N6r3q4@1K9h3!0F1i4K6t1$3L8X3u0K6M7q4)9K6b7X3!0X3i4K6t1$3L8X3u0K6M7q4)9K6b7Y4c8Z5K9i4y4Q4x3U0k6F1j5Y4y4H3i4K6y4n7K9i4y4K6N6h3g2Q4x3U0k6F1j5Y4y4H3i4K6y4n7L8%4g2@1M7$3W2V1k6g2)9J5y4X3&6T1M7%4m8Q4x3@1u0G2k6W2)9J5y4X3&6T1M7%4m8Q4x3@1u0s2L8$3!0Y4L8r3g2Q4x3U0k6F1j5Y4y4H3i4K6y4n7f1r3I4S2P5g2)9J5k6b7`.`.

官方补丁: patch.rar

---------------------------------------------------------------------------------

当然大家关注这个问题是在7月3号bluebox在官网发文以后。
发文地址:43fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9N6h3g2T1L8%4S2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8%4u0H3L8%4u0S2N6r3g2Q4x3X3c8T1L8r3!0Y4i4K6u0r3j5X3I4#2k6h3u0G2P5q4)9J5k6s2g2F1j5$3!0$3k6i4u0K6i4K6u0V1j5h3&6V1M7X3!0A6k6q4)9J5k6r3#2S2M7%4c8W2M7W2)9J5k6r3E0W2P5g2)9J5c8R3`.`.

由于问题的严重性,一时间大家开始研究起来。漏洞基本公之于众是在7号cyanogenmod打上补丁之后。
详见:079K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4u0W2N6X3W2W2N6#2)9J5k6h3y4&6j5h3&6G2k6$3g2F1L8h3!0V1i4K6u0W2L8%4u0Y4i4K6u0r3i4K6t1K6i4K6u0r3j5#2)9J5c8U0b7#2x3U0f1I4i4K6u0r3

根据打补丁的代码,大家推测到是apk中存在两个相同的classes.dex文件。于是大家又开始研究POC的问题。我也自己做了尝试,由于打包顺序问题没弄出来(失之毫厘,谬以千里啊~)。今天上班没法弄,之后大家关注到了这个网址:
990K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4y4@1i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2j5$3!0E0i4K6u0r3M7r3!0D9K9i4k6S2i4K6u0r3x3K6k6T1x3o6M7&6y4h3q4T1y4K6W2S2k6o6k6X3x3e0c8X3k6o6R3`.

---------------------------------------------------------------------------------

到这本来应该已经完了。结果下午我网上下载了一个网易新闻Android客户端按照上面网址的操作方法,却怎么也安装不上。我曾怀疑是我方法的问题,后来写了一个简单的demo,发现通过这个方法又能成功安装。

这个方法是将原始apk数据全部压缩进修改后的未签名的apk中,体积直接增大了一倍!网站上自己对这个方法的描述也是“Quick & dirty PoC for Android bug 8219321 discovered by BlueboxSec”。所以确实存在问题。

经过上述方法的启发,我明白之前的方法问题出在压缩顺序上。应该是先压缩修改后的dex文件,再压缩原本的dex。

于是,比较完善的方法是:

1、将原本的apk中的文件解压出来。分成两个文件夹,orgin_dex和orgin_nodex。其中orgin_dex仅放解压出来的classes.dex文件,orgin_nodex放剩余的所有文件。
2、创建第三个文件夹dirty_dex,放修改之后编译出的classes.dex文件。
3、利用ant打包。build.xml如下:


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

上传的附件:
收藏
免费 5
支持
分享
最新回复 (15)
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
2
这个漏洞杀伤力大啊
2013-7-10 08:08
0
雪    币: 131
活跃值: (98)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
厉害厉害啊
2013-7-10 08:40
0
雪    币: 124
活跃值: (609)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
顶顶顶顶
2013-7-10 09:18
0
雪    币: 86
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是的,签名没有变化 即使签名不一样也会覆盖的 打包后压缩的大小差别很小啊 是按这个来的么AndroidMasterKeys,Windows下发现不了多了个classex.dex,解压缩的时候会发现,用神马360压缩看不到,7z看的见.
2013-7-10 10:39
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
winrar 7z 都可以看见。
2013-7-10 15:46
0
雪    币: 452
活跃值: (72)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
7
这里有原理介绍啊。8f0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3L8s2g2K6i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3!0E0i4K6u0r3x3e0p5K6x3K6x3I4z5o6l9^5y4U0l9%4y4e0t1^5z5o6p5I4z5e0t1%4i4K6u0r3M7r3!0K6N6s2y4Q4x3V1k6s2P5p5c8m8y4U0p5I4x3i4k6k6P5b7`.`.
利用解析zip文件的漏洞,构造一个zip文件,包含有2个同名文件,让注入的文件代替原始文件被打开。
2013-7-10 16:00
0
雪    币: 433
活跃值: (1895)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
8
微信安装失败,提示"apk认证编码错误“
2013-7-10 16:08
0
雪    币: 488
活跃值: (185)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
9
嗯?我的可以啊。你用的是什么手机?
2013-7-10 16:25
0
雪    币: 433
活跃值: (1895)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
10
盖世3不受该漏洞影响,用模拟器和HTC实体机测试成功了。
2013-7-11 16:17
0
雪    币: 104
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
这个漏洞确实厉害!
在此请教,如何知道Android系统执行一个操作(比如此处的安装apk文件)系统是如何依次调用底层的方法进行应用安装的? 想弄明白安装的具体过程,如果够清晰的话应该能够绘出一个方法的调用的流程图。
2013-7-11 20:32
0
雪    币: 158
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
应该你的手机打补丁了,我这边一台摩托也是,别的都行
2013-7-14 14:34
0
雪    币: 433
活跃值: (1895)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
13
不是打补丁,是本身就没这漏洞
2013-7-14 16:19
0
雪    币: 158
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你的rom本身就修复了,我这边的moto的rom是5月份发布的,这个bug修复了已经
2013-7-14 16:23
0
雪    币: 53
活跃值: (321)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
个人结论:
想在odex ROM上安装特殊修改过的APK是行不通的,因为无法从odex还原原始的classes.dex。
而恰恰现在市面上的出厂ROM都是odex的,所以。。。。

但各大论坛上的第三方deodex的ROM是有极大风险的。
2013-7-17 15:08
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
模拟器安装网易新闻失败,之前是检测过,确认该漏洞存在,jarsigner检测签名也失败
2013-7-27 15:00
0
游客
登录 | 注册 方可回帖
返回