本篇內容介紹了“sudo漏洞實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
大部分開發運維對這個命令都非常熟悉,不過考慮到有效讀者不了解我還是簡單介紹下。
sudo 指“超級用戶”。作為一個系統命令,其允許其它非 root 用戶以特殊權限來運行程序或命令,而無需切換使用環境。舉個例子:
我下面已一個普通用戶在 /usr/local/ 目錄下新建一個目錄,直接運行會報沒有權限的錯誤,
user1@user1:/usr/local$ mkdir test
mkdir: cannot create directory ‘test’: Permission denied 必須要這樣才可以,
user1@user1:/usr/local$ sudo mkdir test
user1@user1:/usr/local$ ls
bin etc games include lib man sbin share src test 一個普通用戶要想使用sudo,必須有管理員(root)配置 sudoers 文件,對用戶的權限進行定義。類似下面這樣:
# User privilege specification
user2 ALL=(ALL:ALL) ALL 上述命令中:
user2 表示用戶名
第一個 ALL 指示允許從任何終端、機器訪問 sudo
第二個 (ALL:ALL) 指示 sudo 命令被允許以任何用戶身份執行,后面那個ALL是用戶所在的群組
第三個 ALL 表示所有命令都可以作為 root 執行
如果沒有加這個配置,執行的時候會報如下的錯誤:
user2@pony:/home$ sudo mkdir test2
[sudo] password for user2:
user2 is not in the sudoers file. This incident will be reported.
我使用的linux版本是 Ubuntu 18.04.3 LTS 。
首先我配置用戶 user2 的權限,
# User privilege specification
user2 ALL=(ALL,!root) /bin/bash 這個配置的意思是,user2用戶可以用任何用戶(除了root)執行 /bin/bash 命令。
然后我試著執行,
user2@pony:~$ sudo -u#-1 /bin/bash
sudo: unknown user: #-1
sudo: unable to initialize policy plugin 什么鬼,好像沒有啥問題啊,直接報錯了,并沒有切換到 root 用戶,再試著執行,
user2@pony:~$ sudo -u#-1 id -u
sudo: unknown user: #-1
sudo: unable to initialize policy plugin也沒有任何問題啊,那這個漏洞究竟該怎么復現呢??
按照上面文章的說法,之所以會產生這個漏洞,是因為將用戶 ID 轉換為用戶名的函數會將 -1(或無效等效的 4294967295)誤認為是 0,而這正好是 root 的用戶 ID 。
“sudo漏洞實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。