Windows 和 Linux 操作系統中存在的漏洞
隨著操作系統和應用程序變得更難破解,成功的攻擊通常需要兩個或更多漏洞。此次發現的兩個新漏洞,一個允許攻擊者訪問低特權的操作系統資源,在這些資源中可以執行代碼或讀取敏感數據。另一方面讓攻擊者能執行惡意代碼或進行文件操作,這會使系統密碼泄露或方便攻擊者執行其他敏感操作。因此,近年來權限提升漏洞在網絡安全領域越發重要。
Windows
當Windows漏洞曝光后,研究人員發現在即將推出的Windows 11的版本中,安全帳號管理數據庫可以被有系統權限的用戶讀取。會導致本地用戶可以直接將權限提升到 Windows 中的最高級別 System。
研究員 Jonas Lykkegaard 指出:“我還不知道這個事件的細節,但我認為問題很多;只是沒有人懷疑這意味著什么,因為即使是沙盒應用程序,它也是系統的 EOP。”
回應 Lykkegaard 的人指出,該漏洞不是 Windows 11 特有的。相反,最新版本的 Windows 10 中存在相同的漏洞。美國計算機應急準備小組表示 ,該漏洞存在于 Volume Shadow復制服務——允許操作系統或應用程序在不鎖定文件系統的情況下,可以打開在Windows上用于拍攝整個磁盤的“時間快照”的功能。
如果系統驅動器的 VSS 快照可用,則非特權用戶可以對這些文件進行訪問,造成較嚴重的影響,包括但不限于:
- 提取和利用賬戶密碼
- 獲取 Windows原始的安裝密碼
- 獲取可用于解密其他計算機私鑰的密鑰
- 獲取電腦賬號以用于白銀票據(Silver Ticket)攻擊
請注意,在某些配置中可能無法使用 VSS 快照;但是,只需擁有一個大于 128GB 的系統驅動器,然后執行 Windows 更新或安裝 MSI,即可確保自動創建VSS 快照。要檢查系統是否有可用的 VSS 快照,可以從特權命令提示符運行以下命令:vssadmin list shadows
一位微軟代表表示,目前沒有可用的補丁,公司安全人員正在調查該漏洞,并將根據需要采取適當的行動。同時該漏洞被跟蹤為 CVE-2021-36934,微軟認為,在公網漏洞更為普遍。
Linux
與此同時,大多數版本的 Linux 正在分發針對周二披露的漏洞的修復程序。隨著對漏洞的跟蹤發現,漏洞(CVE-2021-33909)允許不受信任的用戶通過創建、掛載和刪除總路徑長度超過1GB的深層目錄結構這樣的方式,來打開和讀取/proc/self/mountinfo文件來獲得不受約束的系統權限。
發現該漏洞的安全公司 Qualys 的研究人員表示:“我們成功地利用了這種不受控制的越界寫入,并獲得了默認安裝的 Ubuntu 20.04、Ubuntu 20.10、Ubuntu 21.04、Debian 11 和 Fedora 34 Workstation 的完全 “root 權限”,并創建了利用它的POC。
Qualys表示該漏洞的利用需要巨大的開銷,特別是大約 100 萬個嵌套目錄。攻擊還需要大約 5GB 的內存和 100 萬個inode。盡管存在障礙,但 Qualys 的一位代表將 POC 描述為“極其可靠”,并表示大約需要三分鐘就能完成。
以下漏洞利用的概述:
1、我們 mkdir() 一個總路徑長度超過 1GB 的深層目錄結構(大約 1M 嵌套目錄),我們將它綁定掛載到一個非特權用戶命名空間,然后 rmdir() 它。
2、然后創建了一個線程,它 vmalloc() 訪問一個小的 eBPF 程序(通過 BPF_PROG_LOAD),并且我們在eBPF程序被 JIT 編譯之前,且被內核 eBPF 驗證器驗證之后,進行線程阻塞(通過內核中的userfaultfd 或 FUSE)從而將字符串“//deleted”在 vmalloc() 化緩沖區的開頭下方寫入-2GB-10B 的偏移量 。
3、在我們的非特權用戶命名空間中 open() /proc/self/mountinfo 并開始 read() 我們的綁定掛載目錄的長路徑,從而將字符串“//deleted”在 vmalloc() 化緩沖區的開頭下方寫入-2GB-10B 的偏移量 。
4、把這個“//deleted”字符串覆蓋我們經過驗證的 eBPF 程序的一條指令(從而使內核 eBPF 驗證器的安全檢查無效)并將這個不受控制的越界寫入轉換為信息披露和有限但受控的越界寫入。
5、我們通過重用 Manfred Paul 的 btf 和 map_push_elem 技術,將這個有限的越界寫入轉換為內核內存的任意讀寫:
https://www.thezdi.com/blog/2020/4/8/cve-2020-8835-linux-kernel-privilege-escalation-via-improper-ebpf-program-verification