隐藏了十年的Sudo漏洞爆出:无需密码就能获取root权限
Sudo,想必但凡接觸過Linux或Unix操作系統(tǒng)的開發(fā)者都知道這個可以"為所欲為"的應(yīng)用程序,系統(tǒng)管理員可通過Sudo讓普通用戶執(zhí)行部分或全部的root命令。
而就在 1 月 26 日,云安全和合規(guī)解決方案公司 Qualys 披露了?Sudo?中存在的一個嚴(yán)重漏洞(漏洞編號為 CVE-2021-3156,Qualys?將其命名為 Baron Samedit):任何本地用戶,無需密碼驗(yàn)證就可以獲取root權(quán)限!
隱藏了十年的漏洞
 ?
Qualys 安全研究人員指出,該漏洞是基于堆的緩沖區(qū)溢出,Sudo作者也在1 月 26 日的報(bào)告中簡述了這個漏洞的由來:
通常,在shell模式下運(yùn)行sudo -s 或 sudo -i 命令時,Sudo 會在命令參數(shù)中使用反斜杠轉(zhuǎn)義特殊字符。 但運(yùn)行sudoedit時同樣可能會用到-s或-i,并設(shè)置啟用 shell 模式的標(biāo)志,那么由于此時實(shí)際上并沒有運(yùn)行命令,Sudo 并不會去轉(zhuǎn)義特殊字符。最終,決定是否刪除轉(zhuǎn)義字符的代碼就不會去檢查命令實(shí)際上是否正在運(yùn)行,只是設(shè)置了 shell 標(biāo)志。這就可能導(dǎo)致可被利用的基于堆的緩沖區(qū)溢出。?
Qualys 研究小組約兩周前發(fā)現(xiàn)該漏洞,并且十分驚人的是,該漏洞已經(jīng)隱藏了將近十年無人發(fā)現(xiàn)!它于 2011 年 7 月由 8255ed69 這個 commit 引入,因此過去十年中?Sudo?發(fā)布的所有版本在默認(rèn)配置下都存在這一漏洞,包括從?1.8.2 到 1.8.31p2 的所有舊版本及?1.9.0 到 1.9.5p1 的所有穩(wěn)定版本。
鑒于絕大多數(shù)?Linux 和 Unix?系統(tǒng)中都安裝了 Sudo,Qualys 研究人員利用該漏洞對多個?Linux 發(fā)行版進(jìn)行了測試,最終都成功獲得了完整的?root 權(quán)限,包括 Debian 10(sudo 1.8.27),Ubuntu 20.04(sudo 1.8.31)和 Fedora 33(sudo 1.9.2)。
因此 Qualys 認(rèn)為,攻擊者也很可能在 Sudo 支持的其他操作系統(tǒng)和 Linux 發(fā)行版中利用該漏洞。所以在確認(rèn)該漏洞后,Qualys?及時與 Sudo 作者和開源發(fā)行版進(jìn)行協(xié)作并于 1 月 26 日宣布漏洞的存在。
當(dāng)然,披露漏洞并不是為了讓攻擊者趁虛而入,Sudo?在?Qualys?公布之前就已正式修復(fù)了這個漏洞,并給出了解決方案:Sudo 更新至版本 1.9.5p2 或更高版本即可。
?
兩年發(fā)現(xiàn)三個漏洞
?
這并不是 Sudo 第一次被發(fā)現(xiàn)存在漏洞,這次的 CVE-2021-3156,是這兩年來 Sudo 被曝出的第三個安全漏洞了。
2019 年 10 月公布的編號 CVE-2019-14287 、被稱為?-1 UID bug 的漏洞,與 2020 年 2 月公布的編號?CVE-2019-18634、被稱為pwfeedback bug 的漏洞,都可以使受限制的用戶運(yùn)行?root 命令,不過慶幸的是,這兩種漏洞很難被利用,因?yàn)樗鼈冃枰獜?fù)雜且非標(biāo)準(zhǔn)的 Sudo 設(shè)置。
而此次曝出的這個漏洞隱藏已久并易于利用,與前兩個漏洞相比危險(xiǎn)性最高。
有國外開發(fā)者對該漏洞成功蟄伏十年表示詫異,因此嘗試對 Sudo 采用模糊測試來發(fā)現(xiàn)漏洞。最后發(fā)現(xiàn),2 小時的 CPU 時間就能在 setuid(Sudo 是 setuid 二進(jìn)制文件)實(shí)用程序中找到嚴(yán)重的安全漏洞。因此該開發(fā)者建議,可以快速使用模糊測試來發(fā)現(xiàn)廣泛使用的實(shí)用程序中隱藏的嚴(yán)重漏洞。
被廣泛利用的可能性不大
?
慶幸的是,易于利用不代表這個漏洞可以被廣泛利用。來自 Linux 基金會的 David A. Wheeler 稱:“該漏洞不可遠(yuǎn)程利用,攻擊者只有在易受攻擊的計(jì)算機(jī)上才能利用此漏洞。”
Kenna Security 安全研究主管 Jerry Gamblin?對此也表示贊同:“該漏洞的利用需要預(yù)先存在一定級別的訪問權(quán)限,因此廣泛利用它的可能性不大。”即該漏洞雖然危險(xiǎn),由此受到廣泛攻擊的可能性卻很小。
話雖如此,但對于已經(jīng)擁有 Linux 環(huán)境初始訪問權(quán)限的惡意內(nèi)部人員或攻擊者來說,這個漏洞的存在還是很大的隱患。僵尸網(wǎng)絡(luò)這個攻擊媒介更是不能忽視,前一陣?FreakOut 惡意軟件攻擊 Linux設(shè)備的事件就是前車之鑒。
一周前,據(jù)安全公司 Check Point Software 研究人員稱,一種新的惡意軟件,即?FreakOut,利用了最近披露的在 Linux 系統(tǒng)上運(yùn)行的網(wǎng)絡(luò)連接存儲(NAS)設(shè)備中的漏洞,將計(jì)算機(jī)加入 IRC 僵尸網(wǎng)絡(luò),以發(fā)起分布式拒絕服務(wù)(DDoS),攻擊并挖掘 Monero 加密貨幣。
因此,Qualys 也表示,如果僵尸網(wǎng)絡(luò)運(yùn)營商暴力破解低級服務(wù)帳戶,那么該漏洞可能在攻擊的第二階段就被濫用,入侵者將輕松獲得 root 權(quán)限,并完全控制被入侵的服務(wù)器。
除版本更新別無他法
?
那么現(xiàn)在的你應(yīng)該怎么做呢?
首先,先用以下命令檢測你的 Sudo 版本是否存在漏洞;
?
sudoedit -s '\' `perl -e 'print "A" x 65536'`如果你收到的是usage或錯誤消息,那么恭喜,你的Sudo版本不會受到攻擊;如果結(jié)果是Segmentation Fault,很遺憾,你的Sudo存在該漏洞。
然后接下來,
你就只能升級到 Sudo 1.9.5p2 版本或更高版本了,畢竟 Sudo 自己都說了:除了更新版本,其他解決方法是“None”。
Sudo 1.9.5p2?下載地址為:https://www.sudo.ws/stable.html,大家盡快更新吧!
參考鏈接:
https://www.sudo.ws/alerts/unescape_overflow.html
https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit
https://milek7.pl/howlongsudofuzz/
總結(jié)
以上是生活随笔為你收集整理的隐藏了十年的Sudo漏洞爆出:无需密码就能获取root权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: XSS实战攻击思路总结
- 下一篇: python编译后的pyd爆破
