致命组合拳:Ivanti Sentry 两个10分漏洞允许未认证拿下企业移动网关
原创
威胁情报中心
威胁情报中心
奇安信威胁情报中心
2026年6月11日 11:24
北京
在小说阅读器读本章
去阅读
2026年6月9日,Ivanti 发布安全公告,披露了两个影响其内联网关产品 Sentry 的严重漏洞:CVE-2026-10520(预认证 OS 命令注入,CVSS 10.0)和 CVE-2026-10523(身份验证绕过,CVSS 9.9)。两枚漏洞均可远程未授权触发,组合使用后能将一个公网暴露的 Sentry 设备变成攻击者直通内网的跳板。以下是奇安信威胁情报中心对漏洞细节和攻击链路的分析。
两个漏洞,一个入口
Ivanti Sentry(前身 MobileIron Sentry)部署在企业网络边缘,通常串联在移动设备与 Microsoft Exchange、ActiveSync 等后端资源之间,负责流量加密、设备合规性检查和访问控制。它与 Ivanti Endpoint Manager Mobile (EPMM) 协同工作,只有合规的已注册设备才能通过 Sentry 访问内部服务。
CVE-2026-10520 和 CVE-2026-10523 的 CVSS 评分分别为 10.0 和 9.9,都属于\"无需认证远程利用\"的极端级别。前者允许攻击者在 OS 层以 root 权限执行任意命令,后者允许创建任意管理员账户。两者结合,攻击者可以完全接管 Sentry 设备,再横向移动到背后保护的内部系统。
攻击链路拆解:从 /mics/login.jsp 到 root shell
攻击链起点是 Ivanti Sentry 的 Tomcat 应用路径 /mics。攻击者向 /mics/api/v2/sentry/mics-config/handleMessage 发送特制 POST 请求即可触发命令注入。我们通过对比补丁前后的 mics-core-*.jar,还原了完整利用路径。
第一步:认证绕过(CVE-2026-10523)
Sentry 的管理接口未对 /mics 下部分 API 做认证检查。攻击者利用 CVE-2026-10523(CWE-288)可直接创建一个具备完全管理员权限的本地账户。具体绕过方式没有公开,结合我们此前对 Ivanti EPMM 系列产品的分析经验判断,多半是会话校验缺失或硬编码 token 这类低级问题。
不过这一步其实可有可无。拿到合法管理员会话后,攻击者确实多了一条路,但后续的命令注入根本不需要认证,绕过这一步对最终拿下设备没影响。
第二步:命令注入(CVE-2026-10520)
/mics/api/v2/sentry/mics-config/handleMessage 接收一个 message 参数,传入 ConfigServiceController.handleMessage()。在 ConfigServiceHandler 中,字符串被分词器按空格分割,提取出 command、module、xpath、value 四部分。支持的 command 包括 set、get、delete、execute 等 12 种操作。
当 command 为 execute 时,执行流进入 ConfigRequestProcessor.handleExecute(xpath, value)。这个方法做了三件事:
- 用用户提供的
xpath从配置文件中检索 XML 对象。 - 反射调用
CommonUtilities.executeNativeCommand()。 executeNativeCommand()依次反射获取 XML 对象上的getExecutemethod、getClassname、getBeanclass,拿到目标类的全限定名和方法名后,通过ReflectionUtilities.excuteModuleMethod()动态执行。
第三步:从反射到 root
核心问题在于:xpath 和 value 完全由攻击者控制。构造一个指向 java.lang.Runtime.getRuntime().exec() 的 XML 配置对象,就能突破 Java 沙箱触发 OS 命令执行。Sentry 以 root 权限运行,shell 也是 root。
攻击者发送的 message 字符串形如:
execute <module> <xpath> <value>
<value> 中携带恶意 XML 片段,定义目标类和方法。系统执行后直接拿到 root shell。
代码层验证
我们对比了补丁前后两个版本的 mics-core JAR,变化集中在 ConfigServiceController.handleMessage()。补丁版本移除了对 execute、test、export 等高危 command 的未认证解析,或要求调用时附带有效管理员会话。未修复版本中,攻击者只需发送:
POST /mics/api/v2/sentry/mics-config/handleMessage HTTP/1.1
Content-Type: application/x-www-form-urlencoded
message=execute+<module>+<xpath>+<encoded_xml_value>
WatchTowr 实验室已发布完整技术分析(见参考来源),确认整条攻击链无需认证,也不受常规 WAF 规则干扰。
防御与检测建议
即时修复
- 升级至 R10.5.2、R10.6.2 或 R10.7.1。补丁版本已移除
execute等危险命令的未认证调用路径。 - 无法立刻升级的话,在前端 WAF 或反向代理加规则:拦截
handleMessage路径,且message参数中包含execute、test、import等关键词的请求直接拒掉。
检测日志
- 重点关注
/mics/api/v2/sentry/mics-config/handleMessage的 POST 请求,请求体里出现execute、cmd、Runtime的需要溯源。 - 监控 Sentry 设备上的异常进程创建,比如
curl、wget、nc、id这类非业务命令,以及 root 权限的 shell 活动。
攻击面收敛
- 管理接口限制在内部网络或 VPN 内,不要直接暴露公网。
- 必须对外暴露的场景,启用 IP 白名单并强制 MFA。
技术附录
MITRE ATT&CK 映射
| 技术名称 | 编号 |
|---|---|
| 命令与脚本解释器 | T1059 |
| 利用面向公众的应用程序 | T1190 |
| 创建账户 | T1078 |
| 横向移动 | T1021 |
IOC
目前没有公开的利用 IP 或域名,检测以基线日志为主。后续若发现利用工具或 C2 指标会补充。
参考来源
- https://labs.watchtowr.com/more-evidence-that-words-dont-mean-what-we-thought-they-meant-ivanti-sentry-pre-auth-os-command-injection-cve-2026-10520/
- https://hub.ivanti.com/s/article/Security-Advisory-Ivanti-Sentry-CVE-2026-10520-CVE-2026-10523?language=en\_US
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论