移动叔叔
标题:
原道M87,春节升级安卓5.1.1,已知安全漏洞消灭教程
[打印本页]
作者:
lifc0
时间:
2016-2-15 07:17
标题:
原道M87,春节升级安卓5.1.1,已知安全漏洞消灭教程
一、缘起
春节回家,运营商(广电)管理不善,存在apk应用劫持、服务欺骗等情况,
多部手机、平板在装有不同品牌安全软件情况下被注入安装恶意程序。
二、手段
1、运营商缓存服务器被修改,用户通过浏览器,或某些未校验应用签名市场下载应用,下载apk被替换成推广应用。
2、通过dns污染等手段,伪造常用软件升级服务欺骗其自动安装“更新包”实现注入(某输入法)。
(根源:国内没有Google官方市场,只能打开运行安装未知软件开关,从其他渠道安装)
三、危害
1、中毒后不停下载安装各种推广,直接导致系统变慢(多个可执行文件互相保护、不断释放变体)
2、大范围修改替换系统文件,主流杀毒软件检测更无法彻底杀除
3、中毒后收到诈骗短信、电话,信息与最近联系人有关
4、更有甚者,某些恶意应用修改uboot、boot分区深入植入,不完整线刷都无法将其彻底清除
(刷system镜像启动后会被uboot木马自动修改,原理类似某些WinPE装机盘自动安装某管家)
四、缺陷
现有安全软件,除了拦截骚扰电话、短信和清理系统垃圾外,系统安全方面只能做到事先用有限的数据库检测安装包,事后(中毒后)匹配删除病毒文件,并根据已知特性清除。
先进一些的安全软件,可截获某些安卓信号,修改系统文件属性,安装SELinux规则等等,但这些动作对于防范、消灭数量众多的未知恶意程序来说远远不够。
五、起因
安全软件技术不到位只是一方面原因,真正根源在于安卓系统规模庞大,服务模块众多、源码数量不计其数(编译过安卓系统的都知道)。
加之其采用开源策略,黑白两道可随意分析研究,导致各种漏洞不断暴露并被“充分利用”。
像前段流传甚广的“一条彩信控制你的手机”绝非危言耸听。与Stagefright相关多媒体漏洞更是数量众多,即便不通过彩信,Q群、微信分享的一段视频、一幅照片,都有可能变身成攻击手机利器。
与之类似的漏洞,每年最少爆出十几个。已被发掘但尚未报告的估计也为数不少,这点从如今各种“免root”“一键root”类程序的流行就可看出。
要减少恶意程序危害,提升系统安全性才是王道。安全软件对系统中存在真正要命的安全漏洞基本根本不会提及(因为解决不了),这方面桌面系统安全软件做的更好。
六、移植
到Lbe、360等安全软件论坛反应没得到有效回应(从原理上杜绝并查杀未知恶意软件本来就不现实)只好想办法提升手机安全性。
漏洞检测程序(不是“安全软件”)试试开源的AndroidVTS,能检测手机上存在多少已知漏洞,16年2月最新正式版V.13检查原道M874.4.2版17个未修复漏洞。
发现漏洞后现阶段只能升级系统,因为安全软件暂时无法提供补丁,而安卓的OTA升级机制,基本只限于Google、三星等大品牌及国内小米主流机型,其他山寨、孤儿机长期得不到更新。高级的用户想到第三方ROM,无奈国内ROM很多被下毒(见各安全厂商公告),有动手能力的用户通常选择搭梯子去外面找ROM自己做适配。
本次病毒先替换我三星boot分区不成功卡启动屏,自己下载伪造刷机包将手机彻底杀死(年后回去JTAG救援),目前只能拿还能用的原道M87移植(内部做工看过会吓到)。
首先尝试MIUI,因为它安全方面做的不错,而且系统经常更新。找来红米Note联通版最新ROM,替换内核及HAL驱动,启动成功、双卡通话正常、GPS正常、待机非常省电……就是相机不工作,重启、关机菜单不管用。
MIUI的东西有些麻烦,同样4.4.2但有些lib非标,直接替换各种符号错误,暂时放下。
再尝试mtkroms上的最新ROM,试了15年12月的Exodus以及16年1月的CM12.1,前者GPS不工作(库符号差异无法简单替换),后者相对稳定各功能正常,增加虚拟按键、扩展桌面后比较顺手(操作类似原道原有系统)。
本次移植替换了两个库文件,修改system/build.prop增加虚拟键修改DPI密度,再就是替换boot.img内核,修改刷机分区。Recovery修改了adb权限,避免recovery模式检查adb签名(/data/misc)问题。上述改动处大家上mtkroms(自己找梯子)下载CM-12.1_Bugless_v2.2_MT6592_Ajit_mtkroms-com解压后用diff验证。
AndroidVTS测试已知Bug只剩一个(漏洞CVE-2015-3636源自M87去年的3.4.67内核),小米最新系统还有两个漏洞。
七、修补
已知漏洞一个也多。内核ICMP漏洞,常规修复手段只有打补丁重编译,但国内厂商普遍不开源。
找来其他MT6592产品源码,花费一天熟悉MTK环境,根据内核日志改ProjectConfig.mk搞定多数硬件,再从其他项目移植gt9xx_new解决GT963触屏,最后修改partition_table_MT6592.xls重定义分区(data分13G与内置鸡肋FAT分区合并),此时可引导只是日志不断报告MT6333相关PMC中断一段时间后重启,估计是DCT(引脚描述)与硬件不完全匹配,触发了看门狗或电源保护动作。
我的方法,先用MTK自带工具改DCT配置,再find -cmin 10查找最近修改源码,然后通过Ida Pro分析内核解压Image,找到M87和新内核相关函数差异,最终从差异反推原始DCT配置。
这是体力活,MTK内核增量编译一次要10分钟(老家电脑破),再导入IDA分析也要很久,一天只能同步几处。且DCT与硬件布线有关,关系到供电、传感器和GPIO等功能。没原理图1.8v参考电压等引脚错误,或GT系列触屏驱动更新了错误固件,都可能产生不可逆伤害,于是开始寻求其他途径。
看CVE-2015-3636漏洞分析,缺陷代码位于net/ipv4/ping.c的ping_unhash,新版内核只增加了一条语句——清空链表prev,可尝试二进制修补。
几个熟悉的二进制内核热修补项目(服务器常用)都要求有内核源码,此路不通。
接下来考虑写内核模块修补,开始想修改对应内核代码页权限,插入跳转语句调用我的内核模块完成unhash逻辑。后来比较新旧内核目标码,发现智能的编译器生成的新代码长度居然与旧代码完全相同,根本不用内核模块,直接unpack修改再repack即可。
全部修改只有一条半ARM指令(6字节),是编译器打破C语句范围进行优化的结果:
地址C0655458:mov r2, #0x200改mov r2, #0
地址C0655460:movt r2, #0x20改nop
修改后重新打包测试居然不行。用QEMU和Ida Pro结合分析,原有gzip解压头和我重新打包Image头,地址、arch id等都没发现差异。
时间宝贵,直接用暴力改MTK编译脚本,让MTK环境帮我打包修改过的Image,顺利通过。内核文件产生流程如下:
1、kernel .c -> .o -> vmlinux(ELF)
2、vmlinux(1) -> objcopy -> Image(Binary) 前两步是正常流程,我们没源码只能从M87原版内核剥皮解压得到这个Image
3、Image -> piggy.gz -> piggy.o -> vmlinux(2)(ELF)
4、vmlinux(2) -> zImage -> kernel -> MTK kernel
5、MTK kernel+initrd->MTK boot.img
一个小漏洞又耗费一天,不熟MTK环境是主要原因,好在这种方法将来可以继续修补新漏洞。
刷机包内核已经替换,如果想自己改内核,adb shell执行cat boot.img > /dev/bootimg即可。
八、安装
1、安装Philz Recovery
先下载我修改的M87 Recovery(移动叔叔之前版本不知可否,试过同学反馈)
再线刷Recovery,或上传至手机再从adb shell执行cat recovery.img > /dev/recovery
2、下载卡刷包
下载到TF卡
3、进Recovery
开机按“音量+”进入Recovery界面
4、双清
Cache和Data分区要清空,否则系统肯定不正常
5、安装卡刷
选Install ZIP,从TF卡(sdcard1)选择zip刷机
6、重启,等待大概5分钟进入系统
7、再次用AndroidVTS测试,0已知漏洞。360、Lbe等安全软件也无法再通过漏洞“秒杀”拿到root权限,尝试之前的病毒也不再有所作为。
但是,KingRoot和360一键root经过漫长的云端匹配仍能拿到权限。看来存在其他未知漏洞,日后看到安全公告再慢慢补吧。
九、优化
1、改分辨率
7寸屏1920x1200分辨率纯属浪费,愿意的话可降低分辨率省电加速
1、猛击“关于”中的系统版本,打开开发者选项
2、运行adb shell
3、改分辨率:进adb shell运行
wm size 800x1280 或者 1000x1600
再设置密度
wm density 200 或 260
重启可看到效果。
系统build.prop默认DPI设置280是为了方便降低分辨率(菜单只能显示以默认DPI为中心的前后几组DPI),不改分辨率的同学打开“显示”设置成320即可。
2、设置扩展桌面
进“显示”、“扩展桌面”,设置“对所有程序启用”,可实现原道原有系统“扩展桌面”功能,超过第三方工具效果。
十、结论
测试全部功能,没发现明显问题。盖子传感器要开Smart Cover,一个小功能占据40MB内存,用不用各位自己权衡,不用的话可以用Lbe等阻断自启。
禁用自启后开机内存剩余1500MB(cat /proc/meminfo,累加buffer、cache和free得到),追求极致还可以进一步精简。
root大家可以自行刷SuperSU,或用KingRoot、360一键等搞定。需要Google框架建议刷mtkroms主题贴提供的apk,网上找来的要么不兼容要么带毒。
5.0开始Java VM默认采用ART,优化比4.4时代的ART好了很多(完全用AOT代替JIT优化未必绝对提升效率,估计ART还有JIT)。
耗电方面,飞行模式待机一晚掉电5%左右(这部老机电池鼓包本身掉电就快),有待长期测试。
MT6592官方内核支持720~1700MHz调频,但这个ROM开机时频率范围正常,锁屏后自动将下限改为1100MHz,暂未找到原因。
刷机包链接:pan点baidu.com/s/1geqbkcV
Recovery链接:pan点baidu.com/s/1o7yAE18
gapps链接:pan点baidu.com/s/1jGWsA0I
作者:
忘记月亮
时间:
2016-2-15 10:05
强烈支持楼主ing……
作者:
lifc0
时间:
2016-2-15 10:31
本帖最后由 lifc0 于 2016-2-16 10:30 编辑
刚想过360和KingRoot之所以能拿到权限,该是利用了最后修补的内核ICMP漏洞及adb接口。关掉开发者选项中的adb后所有主流root程序失效。只要存在安全软件可以利用的漏洞,恶意程序同样可以利用,看来修补漏洞+好的使用习惯同样重要。
习惯方面,最好只从可靠市场安装程序(虽然有些野市场程序版本更新,或提供**版),可杜绝大部分伪装应用,同时阻断网络层的apk劫持(例如免费wifi或中毒cdn),因为合格的应用市场软件都会比对软件签名和校验。
另外,关闭adb也很重要。因为通过adb端口,pc可以轻易remount并修改安卓系统,手机应用也能利用adb部分漏洞攻破系统。
再有,禁止各种程序自动升级和推送显示。开发人员水平参差不齐,有些应用下载升级包没有校验直接安装,很可能受网络欺骗而下载伪造升级程序。比如本人使用的某主流输入法,一日突然提示从低版本升级到版本10.0。手动检查升级包发现根本不是真正输入法(所在网络运营商被黑,此次事件在LBE论坛的跟帖bbs.lbesec.com/forum.php?mod=viewthread&tid=36400)。
至于禁用推送,也是为了防范各种多媒体相关漏洞(做过DSP codec,多媒体相关漏洞真的很多)。禁用自动升级后定期手动运行你信任的应用市场升级就好。
作者:
天上有个神
时间:
2016-2-26 14:27
楼主所言极是19550
作者:
Little_Rabbit
时间:
2016-3-16 19:45
标题:
感谢楼主的热心分享
作者:
Little_Rabbit
时间:
2016-3-16 20:19
标题:
无回帖,不论坛,这才是人道。
作者:
Little_Rabbit
时间:
2016-3-19 19:59
标题:
精品资源,强烈推荐!
作者:
Little_Rabbit
时间:
2016-3-23 10:14
标题:
强烈支持楼主ing……
作者:
Little_Rabbit
时间:
2016-3-24 13:06
标题:
太给力啦~楼主V5!
作者:
liubeipeng
时间:
2016-3-25 10:07
标题:
我的沙发我做主,果断支持楼主!
作者:
liubeipeng
时间:
2016-3-25 10:09
标题:
太给力啦~楼主V5!
作者:
raocai
时间:
2016-4-10 10:51
标题:
太给力啦~楼主V5!
作者:
raocai
时间:
2016-4-10 10:51
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
raocai
时间:
2016-4-10 10:51
标题:
太生气了,无法HOLD啦 >_<......
作者:
raocai
时间:
2016-4-10 10:51
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
raocai
时间:
2016-4-10 10:51
标题:
淡定,淡定,淡定……
作者:
raocai
时间:
2016-4-10 10:52
标题:
感谢楼主的热心分享
作者:
raocai
时间:
2016-4-10 10:52
标题:
太生气了,无法HOLD啦 >_<......
作者:
raocai
时间:
2016-4-10 10:52
标题:
太给力啦~楼主V5!
作者:
浪客剑心666
时间:
2016-4-12 21:22
标题:
太生气了,无法HOLD啦 >_<......
作者:
浪客剑心666
时间:
2016-4-12 21:22
标题:
感谢楼主的热心分享
作者:
浪客剑心666
时间:
2016-4-12 21:22
标题:
强烈支持楼主ing……
作者:
浪客剑心666
时间:
2016-4-14 22:04
标题:
精品资源,强烈推荐!
作者:
浪客剑心666
时间:
2016-4-15 06:03
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
闪电蟹
时间:
2016-4-23 07:45
标题:
感谢楼主的热心分享
作者:
zhblove
时间:
2016-4-27 10:30
标题:
我的沙发我做主,果断支持楼主!
作者:
yjnwjm
时间:
2016-5-1 21:45
标题:
我只是路过打酱油的......
作者:
龙溪泉
时间:
2016-5-4 23:34
标题:
精品资源,强烈推荐!
作者:
龙溪泉
时间:
2016-5-4 23:34
标题:
淡定,淡定,淡定……
作者:
龙溪泉
时间:
2016-5-4 23:38
标题:
强烈支持楼主ing……
作者:
龙溪泉
时间:
2016-5-4 23:42
标题:
我只是路过打酱油的......
作者:
龙溪泉
时间:
2016-5-4 23:47
标题:
淡定,淡定,淡定……
作者:
龙溪泉
时间:
2016-5-4 23:47
标题:
我只是路过打酱油的......
作者:
龙溪泉
时间:
2016-5-4 23:52
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
龙溪泉
时间:
2016-5-4 23:52
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
龙溪泉
时间:
2016-5-4 23:52
标题:
我只是路过打酱油的......
作者:
龙溪泉
时间:
2016-5-4 23:52
标题:
精品资源,强烈推荐!
作者:
龙溪泉
时间:
2016-5-4 23:52
标题:
太给力啦~楼主V5!
作者:
龙溪泉
时间:
2016-5-4 23:53
标题:
太生气了,无法HOLD啦 >_<......
作者:
龙溪泉
时间:
2016-5-4 23:53
标题:
淡定,淡定,淡定……
作者:
龙溪泉
时间:
2016-5-4 23:53
标题:
强烈支持楼主ing……
作者:
rencke
时间:
2016-5-9 16:02
标题:
感谢楼主的热心分享
作者:
龙溪泉
时间:
2016-5-11 22:17
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
龙溪泉
时间:
2016-5-11 22:21
强烈支持楼主ing……
作者:
龙溪泉
时间:
2016-5-11 22:21
标题:
感谢楼主的热心分享
作者:
龙溪泉
时间:
2016-5-11 23:39
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
龙溪泉
时间:
2016-5-12 00:09
标题:
楼主加油,我们都看好你哦。fighting!!!
作者:
龙溪泉
时间:
2016-5-12 00:20
标题:
感谢楼主的热心分享
作者:
danny_foong3286
时间:
2016-5-19 16:36
标题:
太生气了,无法HOLD啦 >_<......
作者:
danny_foong3286
时间:
2016-5-19 16:36
标题:
淡定,淡定,淡定……
作者:
mmymq
时间:
2016-6-13 16:27
都是赞,没有白薯感受,看看
作者:
lifc0
时间:
2016-6-14 15:03
标题:
无回帖,不论坛,这才是人道。
作者:
mmymq
时间:
2016-6-16 14:55
刚刷了,用的是置顶的移动叔叔版本,带触屏那个,没问题
作者:
esen_w
时间:
2016-7-12 16:40
标题:
淡定,淡定,淡定……
作者:
esen_w
时间:
2016-7-12 16:40
标题:
强烈支持楼主ing……
作者:
xioayang
时间:
2016-8-17 23:15
标题:
无回帖,不论坛,这才是人道。
作者:
xioayang
时间:
2016-8-17 23:16
标题:
太生气了,无法HOLD啦 >_<......
作者:
xioayang
时间:
2016-8-17 23:35
标题:
感谢楼主的热心分享
欢迎光临 移动叔叔 (http://bbs.ydss.cn/)
Powered by Discuz! X3.2