Ubuntu漏洞復現

2021-10-10 13:24:15 字數 2793 閱讀 9552

官方緊急修復

ubuntu最新爆出的漏洞:無需系統密碼,就能新增新的sudo使用者、獲取root許可權,事後還能刪除不留痕跡。

github安全研究員kevin backhouse發現的乙個ubuntu系統大漏洞。

這種攻擊方法非常簡單,backhouse在官方部落格中寫道:「使用終端中的一些簡單命令,並單擊幾次滑鼠,標準使用者就可以為自己建立乙個管理員帳戶。」

目前還在維護的ubuntu作業系統均受到影響,包括20.10以及20.04、18.04、16.04三個lts版。

環境:ubuntu 20.04

當前使用者為普通使用者許可權,沒有sudo許可權

在使用者主目錄建立乙個軟連線

ln -s /dev/zero .pam_environment
(注:如果以上命令無法執行,說明已經存在名為.pam_environment的檔案,請把這個檔案重新命名做好備份!)

接下來,在系統設定中開啟**「區域和語言」**,然後嘗試更改語言。

該對話方塊會凍結,只需忽略它,然後返回到終端即可。

此時,乙個名為accounts-daemon的程式正在消耗100%的cpu核心,因此你的計算機可能會變慢並開始變熱。

在終端中,刪除軟鏈結。否則,你可能無法使用自己的帳戶!

rm .pam_environment

下一步是將sigstop訊號傳送到accounts-daemon,阻止它破壞該cpu核心。但是要做到這一點,首先需要知道accounts-daemon的pid。

你可以通過執行top來找到pid。由於accounts-daemon被卡在乙個無限迴圈中,因此它很快進入top列表的頂部。

或者使用pidof命令來查詢pid:

$ pidof accounts-daemon

495

接著用kill命令殺死sigstop訊號:

kill -sigstop 495
然後登出帳戶,但首先需要設定乙個計時器,保證在登出後重置accounts-daemon。否則,前面的努力都將白費。

nohup

bash -c 「sleep 30s;

kill -sigse** 495;

kill -sigcont 495」 &

登出後等待幾秒鐘,讓sigse**起效。如果漏洞利用成功,則會顯示一系列對話方塊,讓你建立乙個新的使用者帳戶。這個新帳戶具有管理員許可權,可以執行sudo命令。

該漏洞利用了ubuntu系統中的兩個錯誤:

accounts-daemon漏洞

accountsservice守護程式(accounts-daemon)是一項系統服務,可以執行諸如建立新使用者帳戶或更改使用者密碼的操作,但也可以執行對安全性較不敏感的操作,例如更改使用者的圖示或首選語言。

ubuntu使用了經過修改的accountservice服務版本,新增了乙個名為is_in_pam_environment的函式,該函式會在使用者的主目錄中查詢乙個名為.pam_environment的檔案並進行讀取。

將.pam_environment鏈結到/dev/zero可以讓accountservice服務被拒絕。

因為/dev/zero實際上是磁碟上不存在的特殊檔案。它由作業系統提供,其行為就像乙個無限長的檔案,其中每個位元組均為0。

當is_in_pam_environment嘗試讀取.pam_environment時,它會通過軟鏈結重定向到/dev/zero,然後由於/dev/zero無限長而陷入無限迴圈。

如此操作會讓accounts-daemon喪失其root許可權,轉而採用使用者的較低特權。然後將sigse**傳送給帳戶守護程式使其崩潰。

gnome漏洞

gnome顯示管理器(gdm3)是ubuntu使用者介面的基本元件。它可以處理使用者登入和登出時啟動和停止使用者會話之類的事情,還管理登入螢幕。

當使用者進行新系統的初始設定時,會啟動乙個對話方塊,它其實是乙個單獨的應用程式,稱為gnome-initial-setup。

當gdm3查詢到使用者數量為0時,會啟動這個程式。那麼gdm3如何檢查系統上有多少使用者?通過詢問accounts-daemon!

不幸的是,accounts-daemon已經被我們前面的操作整崩潰了,所以gdm3在檢查超時後認為帳戶數量為0,並啟動gnome-initial-setup。

而初始化設定的使用者必須有管理員許可權。

backhouse於10月17日向ubuntu和gnome維護人員報告了這些錯誤,官方已經最新**中提供了修復程式。建議所有ubuntu使用者都盡快安裝更新。

不過,該漏洞僅對桌面版ubuntu有效。如果使用的是命令列介面,或者是gnome之外的其他桌面環境,則暫時不受影響。

網友討論:

漏洞復現 CVE 2020 1938漏洞復現

tomcat connector 是 tomcat 與外界連線的通道,使得它與 catalina 能夠接收外部的請求,傳遞給對應的 web 應用程式處理,並返回對應的請求結果。http connector就是用來提供經常用到的http web服務,而ajp connector使用的ajp協議 apa...

漏洞復現 Winrar目錄穿越漏洞復現

該漏洞是由於 winrar 所使用的乙個陳舊的動態鏈結庫unacev2.dll所造成的,該動態鏈結庫在 2006 年被編譯,沒有任何的基礎保護機制 aslr,dep 等 動態鏈結庫的作用是處理 ace 格式檔案。而winrar解壓ace檔案時,由於沒有對檔名進行充分過濾,導致其可實現目錄穿越,將惡意...

Redis RCE漏洞復現

一 簡介 redis remote dictionary server redis 是乙個由salvatore sanfilippo寫的key value儲存系統。redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提...