kali 切换root权限_Ubuntu 被曝严重漏洞:切换系统语言 + 输入几行命令,就能获取 root 权限...
公眾號關(guān)注?“GitHubDaily”
設(shè)為 “星標(biāo)”,帶你了解技術(shù)圈內(nèi)新鮮事!
來自量子位
無需系統(tǒng)密碼,就能添加新的 sudo 用戶、獲取 root 權(quán)限,事后還能刪除不留痕跡。
這是 GitHub 安全研究員 Kevin Backhouse 發(fā)現(xiàn)的一個?Ubuntu?系統(tǒng)大漏洞。
這種攻擊方法非常簡單,Backhouse 在官方博客中寫道:“使用終端中的一些簡單命令,并單擊幾次鼠標(biāo),標(biāo)準(zhǔn)用戶就可以為自己創(chuàng)建一個管理員帳戶。”
目前還在維護(hù)的 Ubuntu 操作系統(tǒng)均受到影響,包括?20.10?以及?20.04、18.04、16.04?三個 LTS 版。
Backhouse 是如何操作的?我們接著往下看。
攻擊方法
首先打開終端,在你的主目錄下創(chuàng)建一個軟鏈接:
ln?-s?/dev/zero?.pam_environment
(注:如果以上命令無法運(yùn)行,說明已經(jīng)存在名為.pam_environment 的文件,請把這個文件重命名做好備份!)
接下來,在系統(tǒng)設(shè)置中打開?“區(qū)域和語言”,然后嘗試更改語言。
該對話框會凍結(jié),只需忽略它,然后返回到終端即可。
此時(shí),一個名為?accounts-daemon?的程序正在消耗 100%的 CPU 內(nèi)核,因此你的計(jì)算機(jī)可能會變慢并開始變熱。
在終端中,刪除軟鏈接。否則,你可能無法使用自己的帳戶!
rm?.pam_environment
下一步是將?SIGSTOP?信號發(fā)送到 accounts-daemon,阻止它破壞該 CPU 內(nèi)核。但是要做到這一點(diǎn),首先需要知道 accounts-daemon 的 PID。
你可以通過運(yùn)行?top?來找到 PID。由于 accounts-daemon 被卡在一個無限循環(huán)中,因此它很快進(jìn)入 top 列表的頂部。
或者使用 pidof 命令來查找 PID:
$?pidof?accounts-daemon
597
接著用 kill 命令殺死 SIGSTOP 信號:
kill?-SIGSTOP?597
然后注銷帳戶,但首先需要設(shè)置一個計(jì)時(shí)器,保證在注銷后重置 accounts-daemon。否則,前面的努力都將白費(fèi)。
nohup?bash?-c?“sleep?30s;?kill?-SIGSEGV?597;?kill?-SIGCONT?597”
注銷后等待幾秒鐘,讓 SIGSEGV 起效。如果漏洞利用成功,則會顯示一系列對話框,讓你創(chuàng)建一個新的用戶帳戶。這個新帳戶具有管理員權(quán)限,可以運(yùn)行 sudo 命令。
Backhouse 將整個過程錄成了 2 分多鐘的視頻,不明白操作方法的可以前去觀看:
攻擊原理
該漏洞利用了 Ubuntu 系統(tǒng)中的兩個錯誤:
第一個是?accountservice,它是管理計(jì)算機(jī)上用戶帳戶的服務(wù)。
第二個是?GNOME 顯示管理器(gdm3),它可以處理登錄屏幕。
accounts-daemon 漏洞
accountsservice 守護(hù)程序(accounts-daemon)是一項(xiàng)系統(tǒng)服務(wù),可以執(zhí)行諸如創(chuàng)建新用戶帳戶或更改用戶密碼的操作,但也可以執(zhí)行對安全性較不敏感的操作,例如更改用戶的圖標(biāo)或首選語言。
Ubuntu 使用了經(jīng)過修改的 accountservice 服務(wù)版本,添加了一個名為 is_in_pam_environment 的函數(shù),該函數(shù)會在用戶的主目錄中查找一個名為.pam_environment 的文件并進(jìn)行讀取。
將.pam_environment 鏈接到 /dev/zero 可以讓 accountservice 服務(wù)被拒絕。
因?yàn)?/dev/zero 實(shí)際上是磁盤上不存在的特殊文件。它由操作系統(tǒng)提供,其行為就像一個無限長的文件,其中每個字節(jié)均為 0。
當(dāng) is_in_pam_environment 嘗試讀取.pam_environment 時(shí),它會通過軟鏈接重定向到 /dev/zero,然后由于 /dev/zero 無限長而陷入無限循環(huán)。
如此操作會讓 accounts-daemon 喪失其 root 權(quán)限,轉(zhuǎn)而采用用戶的較低特權(quán)。然后將 SIGSEGV 發(fā)送給帳戶守護(hù)程序使其崩潰。
GNOME 漏洞
GNOME 顯示管理器(gdm3)是 Ubuntu 用戶界面的基本組件。它可以處理用戶登錄和注銷時(shí)啟動和停止用戶會話之類的事情,還管理登錄屏幕。
當(dāng)用戶進(jìn)行新系統(tǒng)的初始設(shè)置時(shí),會啟動一個對話框,它其實(shí)是一個單獨(dú)的應(yīng)用程序,稱為 gnome-initial-setup。
當(dāng) gdm3 查詢到用戶數(shù)量為 0 時(shí),會啟動這個程序。那么 gdm3 如何檢查系統(tǒng)上有多少用戶?通過詢問 accounts-daemon!
不幸的是,accounts-daemon 已經(jīng)被我們前面的操作整崩潰了,所以 gdm3 在檢查超時(shí)后認(rèn)為帳戶數(shù)量為 0,并啟動 gnome-initial-setup。
而初始化設(shè)置的用戶必須有管理員權(quán)限。
官方緊急修復(fù)
Backhouse 于 10 月 17 日向 Ubuntu 和 GNOME 維護(hù)人員報(bào)告了這些錯誤,官方已經(jīng)最新代碼中提供了修復(fù)程序。建議所有 Ubuntu 用戶都盡快安裝更新。
不過,該漏洞僅對桌面版 Ubuntu 有效。如果使用的是命令行界面,或者是 GNOME 之外的其他桌面環(huán)境,則暫時(shí)不受影響。
博客地址:
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE
網(wǎng)友討論:https://news.ycombinator.com/item?id=25053238
總結(jié)
以上是生活随笔為你收集整理的kali 切换root权限_Ubuntu 被曝严重漏洞:切换系统语言 + 输入几行命令,就能获取 root 权限...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何形容卤肉卷饼好吃的句子?
- 下一篇: Ubuntu18.0.1 安装 anac