渗透测试之地基服务篇:服务攻防之中间件IIS(上)
字数 1725 2025-08-13 21:33:27

IIS中间件渗透测试技术详解

一、IIS中间件概述

中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

IIS(Internet Information Services)是微软提供的Web服务器软件,作为关键中间件:

  • 连接网络和系统,接触大量关键数据
  • 通常连接数据库,存储重要敏感信息
  • 一旦被攻破可能导致信息泄露、篡改,造成经济损失或影响企业形象

二、IIS 7.x环境搭建

安装IIS 7.5步骤

  1. 在Windows 7系统中打开控制面板
  2. 进入"程序和功能"→"打开或关闭Windows功能"
  3. 勾选"Internet信息服务"下的所有选项
  4. 等待安装完成(约1-2分钟)
  5. 安装完成后打开Internet信息服务(IIS)管理器
  6. 删除默认网站(Default Web Site)

配置PHP支持

  1. 下载并安装phpStudy工具
  2. 选择IIS+PHP版本
  3. 验证安装:访问phpinfo.php页面确认配置成功

手动配置PHP支持

  1. 编辑"ISAPI和CGI限制"
  2. 添加php-cgi.exe路径
  3. 在"处理程序映射"中添加FastCGI映射

三、IIS 7.x渗透测试技术

1. 解析漏洞

漏洞原理
IIS 7.x在Fast-CGI运行模式下,在任意文件(如.jpg/.png)后加上/.php,会将文件解析为php执行。

复现步骤

  1. 创建包含php代码的图片文件(如dayu.png)
  2. 访问dayu.png/.php
  3. 若未解析,检查处理程序映射中的FastCGI设置
  4. 取消"仅当请求映射至以下内容时才调用处理程序"选项
  5. 再次访问dayu.png/.php验证解析成功

修复建议

  • 配置php.ini中的cgi.fix_pathinfo=0
  • 重启php-cgi程序

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

漏洞描述
HTTP协议堆栈(HTTP.sys)未正确分析特殊设计的HTTP请求,导致远程代码执行。

影响版本

  • IIS 7.5、IIS 8.0、IIS 8.5
  • Windows 7/8/8.1、Server 2008 R2/2012/2012 R2

检测方法

  1. 发送HTTP请求
  2. 添加请求头:Range: bytes=0-18446744073709551615
  3. 若返回416状态码(Requested Range Not Satisfiable),则存在漏洞

修复建议
安装微软补丁KB3042553

3. 认证绕过漏洞

3.1 安装了PHP的IIS 6.0认证绕过

漏洞利用
在受保护目录后附加::$INDEX_ALLOCATION可绕过认证

示例:

/admin::$INDEX_ALLOCATION/index.php

3.2 IIS 7.5经典ASP认证绕过

漏洞利用
在受保护目录后附加:$i30:$INDEX_ALLOCATION可绕过ASP文件访问限制

示例:

/admin:$i30:$INDEX_ALLOCATION/index.asp

3.3 IIS 7.5 .NET源代码泄露和认证绕过

漏洞利用

http://<target>/admin:$i30:$INDEX_ALLOCATION/admin.php

复现步骤(IIS 7.5):

  1. 创建需要认证的admin目录
  2. 配置目录访问需要认证
  3. 正常访问返回401未授权
  4. 使用绕过技术访问敏感信息

组合利用技巧:

结合解析漏洞和认证绕过漏洞:

/admin:$i30:$INDEX_ALLOCATION/index.aspx/.php

防护措施

  1. 配置.NET Framework 2.0可防止经典ASP认证绕过
  2. 限制攻击者获取受保护目录信息

四、WebDAV配置与测试

  1. 安装WebDAV功能
  2. 启用WebDAV
  3. 使用扫描工具检测PUT方法等漏洞
  4. 可利用360网站安全检测等工具辅助检测

五、总结与加固建议

关键安全措施:

  1. 及时安装安全补丁
  2. 合理配置PHP和FastCGI设置
  3. 禁用不必要的HTTP方法(如PUT)
  4. 对敏感目录实施多重认证机制
  5. 使用最新版本的IIS和组件

渗透测试流程建议:

  1. 信息收集:识别IIS版本和配置
  2. 漏洞扫描:检测已知漏洞(如MS15-034)
  3. 权限测试:验证认证绕过可能性
  4. 解析测试:检查文件解析逻辑缺陷
  5. 组合利用:尝试多种漏洞组合攻击

通过全面了解IIS中间件的安全特性和常见漏洞,安全人员可以更有效地评估和保护基于IIS的Web应用安全。

IIS中间件渗透测试技术详解 一、IIS中间件概述 中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。 IIS(Internet Information Services)是微软提供的Web服务器软件,作为关键中间件: 连接网络和系统,接触大量关键数据 通常连接数据库,存储重要敏感信息 一旦被攻破可能导致信息泄露、篡改,造成经济损失或影响企业形象 二、IIS 7.x环境搭建 安装IIS 7.5步骤 在Windows 7系统中打开控制面板 进入"程序和功能"→"打开或关闭Windows功能" 勾选"Internet信息服务"下的所有选项 等待安装完成(约1-2分钟) 安装完成后打开Internet信息服务(IIS)管理器 删除默认网站(Default Web Site) 配置PHP支持 下载并安装phpStudy工具 选择IIS+PHP版本 验证安装:访问phpinfo.php页面确认配置成功 手动配置PHP支持 编辑"ISAPI和CGI限制" 添加php-cgi.exe路径 在"处理程序映射"中添加FastCGI映射 三、IIS 7.x渗透测试技术 1. 解析漏洞 漏洞原理 : IIS 7.x在Fast-CGI运行模式下,在任意文件(如.jpg/.png)后加上/.php,会将文件解析为php执行。 复现步骤 : 创建包含php代码的图片文件(如dayu.png) 访问dayu.png/.php 若未解析,检查处理程序映射中的FastCGI设置 取消"仅当请求映射至以下内容时才调用处理程序"选项 再次访问dayu.png/.php验证解析成功 修复建议 : 配置php.ini中的cgi.fix_ pathinfo=0 重启php-cgi程序 2. HTTP.SYS远程代码执行(MS15-034) 漏洞描述 : HTTP协议堆栈(HTTP.sys)未正确分析特殊设计的HTTP请求,导致远程代码执行。 影响版本 : IIS 7.5、IIS 8.0、IIS 8.5 Windows 7/8/8.1、Server 2008 R2/2012/2012 R2 检测方法 : 发送HTTP请求 添加请求头: Range: bytes=0-18446744073709551615 若返回416状态码(Requested Range Not Satisfiable),则存在漏洞 修复建议 : 安装微软补丁KB3042553 3. 认证绕过漏洞 3.1 安装了PHP的IIS 6.0认证绕过 漏洞利用 : 在受保护目录后附加 ::$INDEX_ALLOCATION 可绕过认证 示例: 3.2 IIS 7.5经典ASP认证绕过 漏洞利用 : 在受保护目录后附加 :$i30:$INDEX_ALLOCATION 可绕过ASP文件访问限制 示例: 3.3 IIS 7.5 .NET源代码泄露和认证绕过 漏洞利用 : 复现步骤(IIS 7.5): 创建需要认证的admin目录 配置目录访问需要认证 正常访问返回401未授权 使用绕过技术访问敏感信息 组合利用技巧: 结合解析漏洞和认证绕过漏洞: 防护措施 : 配置.NET Framework 2.0可防止经典ASP认证绕过 限制攻击者获取受保护目录信息 四、WebDAV配置与测试 安装WebDAV功能 启用WebDAV 使用扫描工具检测PUT方法等漏洞 可利用360网站安全检测等工具辅助检测 五、总结与加固建议 关键安全措施: 及时安装安全补丁 合理配置PHP和FastCGI设置 禁用不必要的HTTP方法(如PUT) 对敏感目录实施多重认证机制 使用最新版本的IIS和组件 渗透测试流程建议: 信息收集:识别IIS版本和配置 漏洞扫描:检测已知漏洞(如MS15-034) 权限测试:验证认证绕过可能性 解析测试:检查文件解析逻辑缺陷 组合利用:尝试多种漏洞组合攻击 通过全面了解IIS中间件的安全特性和常见漏洞,安全人员可以更有效地评估和保护基于IIS的Web应用安全。