IIS渗透
字数 2403 2025-08-10 08:28:13

IIS渗透技术全面解析与防御指南

一、IIS 6.X渗透技术

1. IIS写权限漏洞

漏洞原理

  • 由开启WebDAV引起的写权限漏洞,允许攻击者通过PUT方法上传任意文件
  • 攻击者可上传恶意文件如ASP一句话木马

实操步骤

  1. 确认目标服务器开启WebDAV和写入权限
  2. 使用PUT方法上传文本文件(如1.txt)包含ASP代码:<%eval request("a001")%>
  3. 在服务器上重命名文件为.asp扩展名(如shell.asp)
  4. 确保IIS开启ASP解析功能
  5. 使用蚁剑等工具连接木马

防御措施

  • 关闭WebDAV服务
  • 关闭目录写入权限
  • 限制上传文件类型

2. IIS解析漏洞

文件解析漏洞

原理

  • 畸形文件名如*.asp;.xxx会被IIS当作ASP文件执行,忽略分号后内容

利用方法

  1. 上传文件如a001.asp;.jpg
  2. IIS实际解析执行的是a001.asp部分

目录解析漏洞

原理

  • .asp命名的文件夹中的所有文件都会被当作ASP文件执行

利用方法

  1. 创建1.asp目录
  2. 将文本文件(含ASP代码)放入该目录
  3. 访问该目录下文件时会被当作ASP执行

防御措施

  • 禁止新建目录权限
  • 上传文件强制重命名(时间戳+随机数+扩展名)
  • 严格限制可执行目录

3. IIS短文件漏洞

漏洞原理

  • 攻击者可以利用~字符猜解或遍历服务器中的文件名
  • 产生条件:
    • 后缀<4时:文件名前缀长度≥9
    • 后缀≥4时:无前缀长度限制

检测方法

  • 使用工具如tilde_enumIIS-ShortName-Scanner
  • 支持HTTP方法:DEBUG、OPTIONS、GET、POST、HEAD、TRACE

修复建议

  1. 关闭NTFS 8.3文件格式支持:
    • Win2003: fsutil behavior set disable8dot3 1
    • Win2008: fsutil 8dot3name set 1
  2. 修改注册表:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    • 设置NtfsDisable8dot3NameCreation值为1

局限性

  • 文件名太短无法猜解
  • 只能确定前6个字符
  • 不支持中文文件名

4. RCE漏洞(CVE-2017-7269)

影响范围

  • Windows Server 2003 R2 + IIS6.0 + 开启WebDAV

漏洞原理

  • WebDAV服务中ScStoragePathFromUrl函数的缓冲区溢出
  • 通过特制PROPFIND请求执行任意代码

复现步骤

  1. 使用公开exp(如GitHub上的exploit.py)
  2. 修改目标IP和端口
  3. 执行后验证(如出现calc.exe进程)

MSF利用

  1. 将.rb exp放入/usr/share/metasploit-framework/modules/exploits/windows/iis/
  2. 使用模块:use exploit/windows/iis/cve_2017_7269
  3. 可能需要调整PhysicalPathLength参数

防御措施

  • 关闭WebDAV服务
  • 安装补丁KB4014661
  • 使用防护设备

二、IIS7.x渗透技术

1. 解析漏洞

原理

  • Fast-CGI模式下,任意文件后加/php会被解析为php文件
  • 如:a001.jpg/php会解析执行jpg中的PHP代码

复现条件

  • 需正确配置PHP-CGI
  • 确保cgi.fix_pathinfo=1(默认值)

防御措施

  • 设置cgi.fix_pathinfo=0
  • 重启php-cgi服务

2. HTTP.SYS远程代码执行(MS15-034)

影响范围

  • IIS7.5、IIS8.0、IIS8.5
  • Windows Server 2008 R2/2012/2012 R2
  • Windows 7/8/8.1

验证方法

  • 发送包含特殊Range头的请求:
    Range: bytes=0-18446744073709551615
    
  • 返回416状态码表示存在漏洞

修复建议

  • 安装补丁KB3042553
  • 更新系统补丁

3. 认证绕过漏洞

三种绕过方式

  1. IIS6.0+PHP认证绕过

    • 访问路径:/admin::$INDEX_ALLOCATION/index.php
  2. IIS7.5经典ASP认证绕过

    • 访问路径:/admin:$i30:$INDEX_ALLOCATION/index.asp
  3. IIS7.5 .NET源代码泄露

    • 访问路径:/admin:$i30:$INDEX_ALLOCATION/admin.php

防御措施

  • 严格验证输入路径
  • 禁用不必要的HTTP方法
  • 更新IIS补丁

4. 组合漏洞利用

场景

  • 目标限制上传和访问php文件
  • 利用解析漏洞+认证绕过执行恶意代码

利用步骤

  1. 上传aspx文件(含PHP代码)
  2. 通过认证绕过访问:http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx
  3. 添加解析后缀:http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx/.php

三、通用防御建议

  1. 最小权限原则

    • 严格限制目录写入权限
    • 禁用不必要的WebDAV服务
  2. 输入验证

    • 对所有用户输入进行严格过滤
    • 禁止特殊字符和路径穿越
  3. 补丁管理

    • 及时安装IIS和Windows安全更新
    • 定期检查已知漏洞修复情况
  4. 配置加固

    • 关闭不必要的HTTP方法
    • 禁用NTFS 8.3短文件名
    • 设置适当的MIME类型
  5. 监控审计

    • 记录异常访问日志
    • 监控可疑文件上传行为

通过全面了解这些IIS漏洞原理和利用方式,安全人员可以更有针对性地进行防御部署,有效保护Web服务器安全。

IIS渗透技术全面解析与防御指南 一、IIS 6.X渗透技术 1. IIS写权限漏洞 漏洞原理 : 由开启WebDAV引起的写权限漏洞,允许攻击者通过PUT方法上传任意文件 攻击者可上传恶意文件如ASP一句话木马 实操步骤 : 确认目标服务器开启WebDAV和写入权限 使用PUT方法上传文本文件(如1.txt)包含ASP代码: <%eval request("a001")%> 在服务器上重命名文件为.asp扩展名(如shell.asp) 确保IIS开启ASP解析功能 使用蚁剑等工具连接木马 防御措施 : 关闭WebDAV服务 关闭目录写入权限 限制上传文件类型 2. IIS解析漏洞 文件解析漏洞 原理 : 畸形文件名如 *.asp;.xxx 会被IIS当作ASP文件执行,忽略分号后内容 利用方法 : 上传文件如 a001.asp;.jpg IIS实际解析执行的是 a001.asp 部分 目录解析漏洞 原理 : 以 .asp 命名的文件夹中的所有文件都会被当作ASP文件执行 利用方法 : 创建 1.asp 目录 将文本文件(含ASP代码)放入该目录 访问该目录下文件时会被当作ASP执行 防御措施 : 禁止新建目录权限 上传文件强制重命名(时间戳+随机数+扩展名) 严格限制可执行目录 3. IIS短文件漏洞 漏洞原理 : 攻击者可以利用 ~ 字符猜解或遍历服务器中的文件名 产生条件: 后缀 <4时:文件名前缀长度≥9 后缀≥4时:无前缀长度限制 检测方法 : 使用工具如 tilde_enum 或 IIS-ShortName-Scanner 支持HTTP方法:DEBUG、OPTIONS、GET、POST、HEAD、TRACE 修复建议 : 关闭NTFS 8.3文件格式支持: Win2003: fsutil behavior set disable8dot3 1 Win2008: fsutil 8dot3name set 1 修改注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 设置 NtfsDisable8dot3NameCreation 值为1 局限性 : 文件名太短无法猜解 只能确定前6个字符 不支持中文文件名 4. RCE漏洞(CVE-2017-7269) 影响范围 : Windows Server 2003 R2 + IIS6.0 + 开启WebDAV 漏洞原理 : WebDAV服务中ScStoragePathFromUrl函数的缓冲区溢出 通过特制PROPFIND请求执行任意代码 复现步骤 : 使用公开exp(如GitHub上的exploit.py) 修改目标IP和端口 执行后验证(如出现calc.exe进程) MSF利用 : 将.rb exp放入 /usr/share/metasploit-framework/modules/exploits/windows/iis/ 使用模块: use exploit/windows/iis/cve_2017_7269 可能需要调整PhysicalPathLength参数 防御措施 : 关闭WebDAV服务 安装补丁KB4014661 使用防护设备 二、IIS7.x渗透技术 1. 解析漏洞 原理 : Fast-CGI模式下,任意文件后加 /php 会被解析为php文件 如: a001.jpg/php 会解析执行jpg中的PHP代码 复现条件 : 需正确配置PHP-CGI 确保 cgi.fix_pathinfo=1 (默认值) 防御措施 : 设置 cgi.fix_pathinfo=0 重启php-cgi服务 2. HTTP.SYS远程代码执行(MS15-034) 影响范围 : IIS7.5、IIS8.0、IIS8.5 Windows Server 2008 R2/2012/2012 R2 Windows 7/8/8.1 验证方法 : 发送包含特殊Range头的请求: 返回416状态码表示存在漏洞 修复建议 : 安装补丁KB3042553 更新系统补丁 3. 认证绕过漏洞 三种绕过方式 : IIS6.0+PHP认证绕过 : 访问路径: /admin::$INDEX_ALLOCATION/index.php IIS7.5经典ASP认证绕过 : 访问路径: /admin:$i30:$INDEX_ALLOCATION/index.asp IIS7.5 .NET源代码泄露 : 访问路径: /admin:$i30:$INDEX_ALLOCATION/admin.php 防御措施 : 严格验证输入路径 禁用不必要的HTTP方法 更新IIS补丁 4. 组合漏洞利用 场景 : 目标限制上传和访问php文件 利用解析漏洞+认证绕过执行恶意代码 利用步骤 : 上传aspx文件(含PHP代码) 通过认证绕过访问: http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx 添加解析后缀: http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx/.php 三、通用防御建议 最小权限原则 : 严格限制目录写入权限 禁用不必要的WebDAV服务 输入验证 : 对所有用户输入进行严格过滤 禁止特殊字符和路径穿越 补丁管理 : 及时安装IIS和Windows安全更新 定期检查已知漏洞修复情况 配置加固 : 关闭不必要的HTTP方法 禁用NTFS 8.3短文件名 设置适当的MIME类型 监控审计 : 记录异常访问日志 监控可疑文件上传行为 通过全面了解这些IIS漏洞原理和利用方式,安全人员可以更有针对性地进行防御部署,有效保护Web服务器安全。