Web中间件漏洞总结之IIS漏洞
字数 1701 2025-08-26 22:12:01

IIS中间件漏洞全面分析与防御指南

一、PUT漏洞利用与防御

漏洞前提条件

  • IIS 6.0版本
  • 开启了WebDAV功能
  • IIS来宾用户拥有写入权限

漏洞复现步骤

  1. 探测阶段

    • 使用IIS PUT SCANNER工具探测目标IIS是否具有写入权限
    • 确认服务器原有内容结构
  2. 文件上传

    • 使用工具上传一句话Webshell(如test.txt)
    • 通过MOVE或COPY命令将.txt文件改为.asp后缀
  3. 连接Webshell

    • 使用中国菜刀等工具连接上传的Webshell
  4. 提权操作

    • 上传cmd.exe和pr.exe提权工具
    • 执行命令设置终端执行程序:setp "路径cmd.exe"
    • 使用pr.exe进行提权操作:
      pr.exe "net user hack1 123 /add"
      pr.exe "net localgroup administrators hack1 /add"
      
  5. 开启远程桌面

    • 上传并执行3389open.bat脚本开启3389端口
    • 使用新建的管理员账户远程登录

防御措施

  • 关闭WebDAV功能
  • 严格限制IIS来宾用户的写入权限

二、远程代码执行漏洞(CVE-2017-7269)

漏洞前提条件

  • IIS 6.0版本
  • 开启了WebDAV功能

漏洞利用方法

  1. 获取EXP

    • 从GitHub下载CVE-2017-7269漏洞利用代码
    • 放入Metasploit框架的相应目录:/usr/share/metasploit-framework/modules/exploits/windows/iis/
  2. 区分绑定类型

    • 默认绑定:可直接利用
    • 非默认绑定:需要手动输入物理路径长度和端口号
  3. 批量检测工具

    • 使用IIS6_WebDAV_Scanner检测物理路径长度
    • 在MSF中设置正确的PhysicalPathLength参数
  4. 提权与远程桌面开启

    • 通过meterpreter上传pr.exe和3389open.bat
    • 执行提权命令并开启3389端口

防御措施

  • 及时关闭不必要的WebDAV功能
  • 升级到更高版本的IIS

三、解析漏洞

IIS 6.0解析漏洞类型

  1. 目录解析

    • 在.asp目录下的任意文件都会以ASP格式解析执行
    • 示例:/test.asp/test.jpg会被当作ASP执行
  2. 分号截断

    • 文件名中使用分号截断
    • 示例:test.asp;.jpg会被当作ASP执行

IIS 7.0/7.5解析漏洞

  • 在文件路径后添加/xx.php会使文件以PHP格式执行
  • 示例:test.jpg/xx.php会被当作PHP执行

防御措施

  1. 限制上传目录的脚本执行权限
  2. 对新建目录和文件名进行严格过滤
  3. 禁止创建包含特殊字符(如'.')的文件名
  4. 使用ISAPI组件过滤特殊路径

四、短文件猜解漏洞

受影响版本

  • IIS 1.0到IIS 8.5(使用.Net Framework 4以下版本)

短文件名特征

  1. 只显示前6个字符,后续用~1代替
  2. 后缀名最多3位,超出的部分会被截断
  3. 所有字母转换为大写
  4. 以最后一个.作为后缀分隔点
  5. 文件名后缀≥4或总长度≥9才会生成短文件名

漏洞检测方法

  • 使用自动化工具:IIS_shortname_Scanner
  • 原理:存在的短文件名返回404,不存在的返回400

防御措施

  1. 升级到.Net Framework 4.0或更高版本
  2. 修改注册表禁用短文件名功能:
    • 路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    • NtfsDisable8dot3NameCreation值设为1
    • 重启系统生效
  3. 对现有文件进行迁移重建(剪切后粘贴)

五、综合防御建议

  1. 版本升级

    • 尽可能升级到最新版IIS
    • 确保使用.Net Framework 4.0以上版本
  2. 功能限制

    • 关闭不必要的WebDAV功能
    • 严格限制写入权限
  3. 配置加固

    • 修改注册表禁用短文件名
    • 配置ISAPI过滤器
  4. 文件管理

    • 实施严格的文件上传策略
    • 定期检查服务器文件完整性
  5. 监控审计

    • 部署日志监控系统
    • 对可疑活动进行实时告警

通过全面了解这些IIS漏洞的原理、利用方法和防御措施,可以有效提升Web服务器的安全性,防止攻击者利用这些漏洞获取系统权限。

IIS中间件漏洞全面分析与防御指南 一、PUT漏洞利用与防御 漏洞前提条件 IIS 6.0版本 开启了WebDAV功能 IIS来宾用户拥有写入权限 漏洞复现步骤 探测阶段 : 使用IIS PUT SCANNER工具探测目标IIS是否具有写入权限 确认服务器原有内容结构 文件上传 : 使用工具上传一句话Webshell(如test.txt) 通过MOVE或COPY命令将.txt文件改为.asp后缀 连接Webshell : 使用中国菜刀等工具连接上传的Webshell 提权操作 : 上传cmd.exe和pr.exe提权工具 执行命令设置终端执行程序: setp "路径cmd.exe" 使用pr.exe进行提权操作: 开启远程桌面 : 上传并执行3389open.bat脚本开启3389端口 使用新建的管理员账户远程登录 防御措施 关闭WebDAV功能 严格限制IIS来宾用户的写入权限 二、远程代码执行漏洞(CVE-2017-7269) 漏洞前提条件 IIS 6.0版本 开启了WebDAV功能 漏洞利用方法 获取EXP : 从GitHub下载CVE-2017-7269漏洞利用代码 放入Metasploit框架的相应目录: /usr/share/metasploit-framework/modules/exploits/windows/iis/ 区分绑定类型 : 默认绑定 :可直接利用 非默认绑定 :需要手动输入物理路径长度和端口号 批量检测工具 : 使用IIS6_ WebDAV_ Scanner检测物理路径长度 在MSF中设置正确的PhysicalPathLength参数 提权与远程桌面开启 : 通过meterpreter上传pr.exe和3389open.bat 执行提权命令并开启3389端口 防御措施 及时关闭不必要的WebDAV功能 升级到更高版本的IIS 三、解析漏洞 IIS 6.0解析漏洞类型 目录解析 : 在.asp目录下的任意文件都会以ASP格式解析执行 示例: /test.asp/test.jpg 会被当作ASP执行 分号截断 : 文件名中使用分号截断 示例: test.asp;.jpg 会被当作ASP执行 IIS 7.0/7.5解析漏洞 在文件路径后添加 /xx.php 会使文件以PHP格式执行 示例: test.jpg/xx.php 会被当作PHP执行 防御措施 限制上传目录的脚本执行权限 对新建目录和文件名进行严格过滤 禁止创建包含特殊字符(如'.')的文件名 使用ISAPI组件过滤特殊路径 四、短文件猜解漏洞 受影响版本 IIS 1.0到IIS 8.5(使用.Net Framework 4以下版本) 短文件名特征 只显示前6个字符,后续用 ~1 代替 后缀名最多3位,超出的部分会被截断 所有字母转换为大写 以最后一个 . 作为后缀分隔点 文件名后缀≥4或总长度≥9才会生成短文件名 漏洞检测方法 使用自动化工具: IIS_shortname_Scanner 原理:存在的短文件名返回404,不存在的返回400 防御措施 升级到.Net Framework 4.0或更高版本 修改注册表禁用短文件名功能: 路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 将 NtfsDisable8dot3NameCreation 值设为1 重启系统生效 对现有文件进行迁移重建(剪切后粘贴) 五、综合防御建议 版本升级 : 尽可能升级到最新版IIS 确保使用.Net Framework 4.0以上版本 功能限制 : 关闭不必要的WebDAV功能 严格限制写入权限 配置加固 : 修改注册表禁用短文件名 配置ISAPI过滤器 文件管理 : 实施严格的文件上传策略 定期检查服务器文件完整性 监控审计 : 部署日志监控系统 对可疑活动进行实时告警 通过全面了解这些IIS漏洞的原理、利用方法和防御措施,可以有效提升Web服务器的安全性,防止攻击者利用这些漏洞获取系统权限。