前言

最近和师傅们参与了一些众测项目,发现师傅们提交了很多关于HTTP.sys远程代码执行的漏洞,于是在网上搜集了些资料进行学习

一、漏洞概述

1、HTTP.sys简介

HTTP.sysMicrosoft Windows处理HTTP请求的内核驱动程序,为了优化IIS服务器性能,从IIS6.0引入,IIS服务进程依赖HTTP.sysHTTP.sys远程代码执行漏洞实质是HTTP.sys整数溢出漏洞

我们通过给IIS服务器发送这样格式的HTTP请求,就可以触发(检测)这个漏洞:

GET / HTTP/1.1
Host: stuff
Range: bytes=0-18446744073709551615

若IIS服务器返回“Requested Range Not Satisfiable”,则是存在漏洞,否则如果返回“The request has an invalid header name”,则说明漏洞已经修补。

2、漏洞成因

远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当HTTP.sys未正确分析经特殊设计的 HTTP 请求时会导致此漏洞

3、漏洞危害

攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。

4、影响版本

任何安装了微软IIS 6.0以上的的Windows 7Windows Server 2008 R2Windows Server 2012 R2Windows Server 2012Windows 8.2Windows 8.1 系统

二、漏洞环境部署

环境部署:windows7下安装IIS服务

img

如果发现安装完成后,机子上仍没有IIS服务,建议查看以下win7的版本(桌面的计算机单击右键属性,即可查看),旗舰版、企业版和专业版有IIS功能,家庭版和简易版是没有的。需要将家庭版升级为旗舰版即可。

升级办法可参考:http://jingyan.baidu.com/article/08b6a591ed82d314a809228d.html

img

安装成功!启动即可,不作任何设置。

img

访问下当前IP地址,查看IIS版本

img

三、漏洞验证

靶机Win7:192.168.43.155 攻击机Kali:192.168.43.167

1、使用curl、wget命令进行测试

curl http://192.168.43.155 -H "Host: 192.168.43.155" -H "Range: bytes=0-18446744073709551615"

或者
wget 192.168.43.155 -–debug -–header="Range: bytes=0-18446744073709551615"

img

返回416,说明该系统存在漏洞,其中Range字段值18446744073709551615表示:转为十六进制是 0xFFFFFFFFFFFFFFFF(16个F),是64位无符号整型所能表达的最大整数,整数溢出往往和这个超大整数有关。

2、使用Python脚本验证:CVE-2015-1635 POC

POC链接:https://github.com/w01ke/CVE-2015-1635-POC

3、burpsuite抓包测试

img

四、漏洞利用

1、ms15_034内存读取

打开msfconsole,搜索ms15_034

img

利用ms15_034漏洞读取服务器内存数据:不知道为什么没有显示内存数据……

img

2、ms15_034 ddos攻击

img

攻击成功:windows7蓝屏,蓝屏后会自动重启

img

五、漏洞防御

禁用IIS的内核缓存:可能导致IIS性能降低

img

img

缓解方案:https://technet.microsoft.com/en-us/library/cc731903(v=ws.10).aspx

升级补丁:https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2015/ms15-034?redirectedfrom=MSDN

双击输出缓存中的办法:https://blog.csdn.net/u010082526/article/details/84955085

六、参考链接

https://blog.csdn.net/qq_41210745/article/details/103437683