久久天天躁狠狠躁夜夜av,国产脚交足免费视频,亚洲小说乱欧美另类,五月天国产亚洲av麻豆

918搏天堂

?
產(chǎn)品咨詢:4000 258 365 | 申請產(chǎn)品演示 | 渠道合作 | English
您當(dāng)前的位置 : 首頁 > 技術(shù)博客 > 數(shù)據(jù)安全
內(nèi)容中心
按關(guān)鍵字查找
CVE-2019-2444漏洞利用及相關(guān)攻擊鏈介紹
作者:918搏天堂 發(fā)布時間:2019-04-10

Oracle 12c及Oracle 18c組件jssu程序存在漏洞,易受符號鏈接攻擊影響,攻擊者可利用此漏洞獲得服務(wù)器root權(quán)限,此漏洞由918搏天堂公司安全實(shí)驗(yàn)室發(fā)現(xiàn),CVE編號為CVE-2019-2444。本文將詳細(xì)說明漏洞涉及的技術(shù)細(xì)節(jié),并介紹與此漏洞相關(guān)的攻擊手段。

漏洞點(diǎn)

程序jssu是為Oracle Scheduler提供服務(wù)的組件,保存于Oracle主安裝目錄的bin文件夾下。在使用了credential的情況下,Scheduler會使用jssu程序來登錄系統(tǒng)進(jìn)行操作。不過,jssu程序之所以會受到符號攻擊影響,原因與其功能關(guān)系不大,而是以下幾個方面:

首先是jssu程序本身的屬主及權(quán)限。默認(rèn)情況下,程序所屬用戶是root,而用戶組是oinstall,與oralce用戶的用戶組相同。程序權(quán)限為4750,即所屬用戶組可讀可執(zhí)行,且設(shè)置了suid位。

其次,jssu程序運(yùn)行時會在工作目錄下生成一個日志文件,并向其中寫入內(nèi)容。該文件由程序的進(jìn)程ID命名,具有固定的格式,即已知進(jìn)程ID,就可推測出日志文件的文件名。生成的日志文件,其所屬用戶和用戶組與jssu程序相同,且其權(quán)限可被實(shí)際登錄用戶當(dāng)前設(shè)置的umask控制。

總結(jié)這兩點(diǎn),我們現(xiàn)在擁有一個以oracle用戶即可執(zhí)行,所屬用戶為root,設(shè)置了suid位,且可向當(dāng)前工作目錄輸出文件的程序。由此,產(chǎn)生了一個符號鏈接攻擊思路。

作為攻擊者,我們以oracle用戶登錄,并啟動jssu。如果能在jssu寫入日志前,將輸出文件定義成一個指向我們所需位置的符號鏈接,由于jssu程序運(yùn)行時具有root用戶權(quán)限,這樣我們就得了向任意位置寫入文件的能力。且此文件所屬用戶為root,用戶組為oinstall,讀寫權(quán)限可控。也就是說,得到的文件可以被oracle用戶修改。由此延伸,將符號鏈接指向/etc/ld.so.preload,文件產(chǎn)生后,我們就可以用oracle用戶修改這個文件。/etc/ld.so.preload文件可以控制系統(tǒng)中所有進(jìn)程啟動時預(yù)先加載的動態(tài)鏈接庫,正常情況下只有root用戶可以修改。而攻擊成功后,oracle用戶就可以修改這個文件,指定一個由我們控制的動態(tài)鏈接庫文件,我們就可以通過這個動態(tài)鏈接庫拿一個root用戶的shell,更詳細(xì)的說明請見下一節(jié)。

攻擊流程

1.作為準(zhǔn)備,復(fù)制一個shell程序(/bin/bash)作為備份,在后面步驟中將會修改這個備份的權(quán)限,使執(zhí)行者可以拿一個root用戶權(quán)限的shell。

2.構(gòu)建一個動態(tài)鏈接庫,即“攻擊思路”中提到的將要通過/etc/ld.so.preload加載到所有進(jìn)程中的動態(tài)鏈接庫。使用我們定義的函數(shù)”覆蓋“默認(rèn)的geteuid函數(shù),新函數(shù)的邏輯非常簡單,判斷當(dāng)前進(jìn)程的有效用戶是否為root,如果是則修改之前準(zhǔn)備好的shell程序備份的權(quán)限為04777(所有用戶可讀寫,suid位已設(shè)置),修改所屬用戶和用戶組為root。

3.構(gòu)建一個可執(zhí)行程序,完成調(diào)用jssu和制作符號鏈接的工作。程序主體首先設(shè)置umask為0000,然后使用fork創(chuàng)建一個子進(jìn)程。子進(jìn)程啟動jssu程序;父進(jìn)程則通過子進(jìn)程ID,構(gòu)造出jssu將要寫入的日志文件名,提前使用這個文件名生成一個指向/etc/ld.so.preload的符號鏈接。父進(jìn)程等待一段時間(保證jssu有輸出),殺掉子進(jìn)程。如一切順利,此時/etc/ld.so.preload已經(jīng)被創(chuàng)建,所屬用戶root,所屬用戶組oinstall,權(quán)限0666,內(nèi)容為jssu的輸出日志。

4.修改/etc/ld.so.preload,將已準(zhǔn)備好的動態(tài)鏈接庫路徑寫入,覆蓋所有jssu的輸出。

5.等待一個root權(quán)限進(jìn)程調(diào)用geteuid函數(shù),觸發(fā)我們準(zhǔn)備的動態(tài)鏈接庫中的代碼。這一步我們可以直接在命令行運(yùn)行“sudo 2>/dev/null >/dev/null”,這個程序滿足我們的需求,結(jié)束后動態(tài)鏈接庫中的代碼已經(jīng)被執(zhí)行,我們準(zhǔn)備的shell程序備份的運(yùn)行權(quán)限和所屬用戶已經(jīng)按我們的需求做了修改。此時,任意用戶都可以通過在命令行運(yùn)行這個shell備份獲得一個root權(quán)限的shell。

6.運(yùn)行已經(jīng)修改好的shell程序備份,拿到root權(quán)限shell。

完整的攻擊鏈

總結(jié)CVE-2019-2444漏洞技術(shù)細(xì)節(jié),其實(shí)現(xiàn)的是在本地將oracle用戶權(quán)限提升為root用戶權(quán)限。在現(xiàn)實(shí)環(huán)境中,運(yùn)行Oracle數(shù)據(jù)庫的服務(wù)器上,oracle用戶也是一個很高權(quán)限用戶,并不會輕易泄露,那這個漏洞利用是不是就沒有價值了呢?

并非如此,CVE-2019-2444漏洞的利用只是完成了一個攻擊鏈的最后一步,即拿到root權(quán)限,達(dá)到完全控制。實(shí)際上,在相同版本的Oracle數(shù)據(jù)庫中還存在著的其他的漏洞,可以與CVE-2019-2444配合,組成一個完整的攻擊鏈。例如:cve-2018-3004,此漏洞利用可通過Java反序列化向量繞過Oracle JVM內(nèi)置的安全機(jī)制,達(dá)到提升用戶權(quán)限的目的。在漏洞細(xì)節(jié)已在互聯(lián)網(wǎng)公布,本文只梳理其關(guān)鍵技術(shù)點(diǎn),具體細(xì)節(jié)可參考以下鏈接:

http://obtruse.syfrtext.com/2018/07/oracle-privilege-escalation-via.html

關(guān)于CVE-2018-3004

Oracle內(nèi)置了Java虛擬機(jī),用戶可以使用Java語言來構(gòu)建存儲過程,但出于安全原因,Oracle JVM會嚴(yán)格限制低權(quán)限用戶對于文件系統(tǒng)的使用,例如使用java執(zhí)行本地程序,訪問本地文件等。而CVE-2018-3004漏洞,借助Java的XML反序列化方法,繞過了Oracle JVM的限制,從而可以直接訪問數(shù)據(jù)庫本地文件系統(tǒng) 。

Java的序列化和反序列化的作用是將JVM運(yùn)行時存在于內(nèi)存中的Object轉(zhuǎn)化成能夠長期保存的字節(jié)流,在將來所需時,可以將字節(jié)流重新組裝得到原先的Object。序列化和反序列化可以將Java的Object“持久”化,擺脫JVM生存周期的限制 ,也可以用來在主機(jī)間進(jìn)行傳輸。XML反序列化就是一種以XML格式來保存Java Object的標(biāo)準(zhǔn),相關(guān)描述可見如下鏈接:

https://www.oracle.com/technetwork/java/persistence3-139471.html

XML反序列化,可以描述一個Java Object,以及用來構(gòu)建Object時所需要調(diào)用的方法和相關(guān)參數(shù)。在Oracle中,使用XMLDecoder類重新組裝XML序列化后的對象,而在組裝過程中所調(diào)用的對象方法,沒有被Oracle JVM限制權(quán)限。因此,可以使用XML反序列化構(gòu)建一個FileWriter對象,并調(diào)用其write方法,就可以實(shí)現(xiàn)文件寫入操作。

文件寫入就是CVE-2018-3004的核心,利用此漏洞,低權(quán)限用戶可以任意寫入、追加或者覆蓋oracle用戶擁有寫入權(quán)限的文件。在ssh服務(wù)已經(jīng)開啟的服務(wù)器上,如果向oracle用戶ssh配置中authorized_key文件中寫入一個由攻擊者構(gòu)造的公鑰,此時,攻擊者就可以直接ssh登錄服務(wù)器的oracle用戶。

總結(jié)

CVE-2019-2444是一個使用符號鏈接攻擊手段,達(dá)到本地提權(quán)效果的漏洞,攻擊者可由oracle用戶權(quán)限提升至root用戶權(quán)限 ;CVE-2018-3004是一個使用Java反序列化攻擊手段達(dá)到遠(yuǎn)程提權(quán)登錄效果的漏洞,擁有數(shù)據(jù)庫普通用戶權(quán)限且可遠(yuǎn)程登錄的攻擊者可借由此漏洞ssh遠(yuǎn)程連接數(shù)據(jù)庫服務(wù)器,并以oracle用戶登錄。兩個漏洞結(jié)合起來,就可以讓一個普通的數(shù)據(jù)庫使用者獲得數(shù)據(jù)庫所在服務(wù)器的root權(quán)限。

?
918搏天堂 ©2021 版權(quán)所有 京ICP備10053980號-1