溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NVIDIA任意文件寫入命令執(zhí)行的分析

發(fā)布時間:2021-11-11 18:23:13 來源:億速云 閱讀:198 作者:柒染 欄目:安全技術(shù)

NVIDIA任意文件寫入命令執(zhí)行的分析,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

漏洞介紹

在這篇文章中,我們將對NVIDIA GeForce Experience(GFE)中的任意文件寫入漏洞(CVE-2019-5674)進(jìn)行深入分析。大家都知道,很多使用了N卡的設(shè)備在安裝NVIDIA GeForce產(chǎn)品時默認(rèn)都會安裝NVIDIA GeForce Experience(GFE),由于存在這個漏洞,攻擊者將能夠強(qiáng)制讓應(yīng)用程序以特權(quán)用戶身份在目標(biāo)系統(tǒng)中寫入任意文件。簡單來說,你可以通過重寫關(guān)鍵系統(tǒng)文件來讓主機(jī)無法正常服務(wù),而且你甚至還可以控制、利用和竊取目標(biāo)系統(tǒng)中的數(shù)據(jù)。

由于GFE在寫入日志文件時使用的是SYSTEM用戶權(quán)限,這種不安全的權(quán)限設(shè)置將導(dǎo)致任意系統(tǒng)文件均可被重寫。除此之外,日志文件中的數(shù)據(jù)也是用戶可控制的,攻擊者將可以向日志文件中注入控制命令,然后將其存儲為batch文件來執(zhí)行并實(shí)現(xiàn)提權(quán)。

NVIDIA任意文件寫入命令執(zhí)行的分析

NVIDIA GeForce Experience

根據(jù)NVIDIA官網(wǎng)的介紹,GeForce Experience GFE不僅可以更新升級顯卡驅(qū)動,并優(yōu)化你的游戲設(shè)置,而且還可以截圖,或跟朋友分享視頻流文件。更重要的是,它可以給N卡用戶提供更多的附加功能。

漏洞發(fā)現(xiàn)

當(dāng)時在分析NVIDIA服務(wù)和應(yīng)用程序時,我先打開的是進(jìn)程監(jiān)控軟件(Procmon),分析后我發(fā)現(xiàn),有兩個跟NVIDIA有關(guān)的進(jìn)程可能會有搞頭:nvcontainer.exe和NVDisplay.Container.exe。接下來,我在Procmon中添加了一個過濾器來查看*container.exe會向那些文件寫入數(shù)據(jù)。

NVIDIA任意文件寫入命令執(zhí)行的分析    

在過濾器的幫助下,我們只需要關(guān)注“寫入文件”的操作即可,大家可以從下圖中看到,這些進(jìn)程會以“NT AUTHORITY\SYSTEM”來向“C:\ProgramData”目錄中寫入多個日志文件(其中還包括普通用戶可以修改的文件)。

NVIDIA任意文件寫入命令執(zhí)行的分析    

檢查這些文件的權(quán)限之后,我們可以看到“Everyone”組中的用戶擁有對這些文件的完整控制權(quán)。

所以,SYSTEM組和Everyone組中的成員均可隨意控制這些文件,包括創(chuàng)建跟其他系統(tǒng)文件的硬鏈接或符號鏈接。如果攻擊者不能以普通用戶身份來修改某個系統(tǒng)文件,那么在創(chuàng)建了跟該文件相關(guān)聯(lián)的鏈接之后,SYSTEM進(jìn)程將搜索這個鏈接(本身就是日志文件,默認(rèn)時可寫入的),并允許向該文件寫入數(shù)據(jù)。受影響的文件將包括關(guān)鍵系統(tǒng)文件,而這些文件一旦被非法修改,將導(dǎo)致應(yīng)用程序或操作系統(tǒng)崩潰。

利用任意文件寫入漏洞

在利用該漏洞前,我們需要使用symboliclink-testing-tools來創(chuàng)建符號鏈接和硬鏈接,因?yàn)樵摴ぞ呖梢詭臀覀円云胀ㄓ脩魴?quán)限創(chuàng)建系統(tǒng)文件的鏈接。在測試過程中,我還使用了Createsymlink工具并創(chuàng)建了一個臨時符號鏈接:“C:\ProgramData\NVIDIACorporation\nvstapisvr\nvstapisvr.log”=>“C:\windows\test.file”,這個test.file文件只有管理員權(quán)限可寫。為了確保符號鏈接創(chuàng)建成功,我們需要讓“C:\ProgramData\NVIDIACorporation\nvstapisvr\”目錄為空,如果該目錄不為空,則會看到如下圖所示的錯誤信息:

NVIDIA任意文件寫入命令執(zhí)行的分析    

接下來,當(dāng)NVIDIA特權(quán)進(jìn)程向日志文件“C:\ProgramData\NVIDIACorporation\nvstapisvr\nvstapisvr.log”中寫入數(shù)據(jù)時,該進(jìn)程實(shí)際上是在向“C:\windows\test.file”寫入數(shù)據(jù)。

NVIDIA任意文件寫入命令執(zhí)行的分析    

這就表明,該漏洞可以允許我們重寫任意系統(tǒng)文件。但這樣還遠(yuǎn)遠(yuǎn)不夠,因?yàn)槲覀冞€無法讓某些文件崩潰或讓系統(tǒng)拒絕服務(wù)。這是因?yàn)樘囟ㄈ罩疚募械臄?shù)據(jù)目前仍是不可控制的,它只會寫入所有本該記錄的日志數(shù)據(jù)。

因此,我們需要控制寫入到日志文件中的數(shù)據(jù)。經(jīng)過分析之后,我發(fā)現(xiàn)“C:\ProgramData\NVIDIACorporation\nvstreamsvc\nvstreamsvcCurrent.log”中包含一些有趣的字符串,而且當(dāng)GeForce Experience的“GameStream”開關(guān)打開或關(guān)閉時,“C:\ProgramData\NVIDIA Corporation\NvStreamSrv\settings.txt”中包含的某些變量會寫入到nvstreamsvcCurren日志文件中。

NVIDIA任意文件寫入命令執(zhí)行的分析    

點(diǎn)擊這個開關(guān),可以讓“C:\ProgramData\NVIDIACorporation\nvstreamsvc\nvstreamsvcCurrent.log”記錄settings.txt文件中包含的URL地址:

NVIDIA任意文件寫入命令執(zhí)行的分析    

接下來,我嘗試向這些變量值后面添加一些命令來修改日志文件:

NVIDIA任意文件寫入命令執(zhí)行的分析    

果然成功了:

NVIDIA任意文件寫入命令執(zhí)行的分析    

雖然這里有一堆其他的日志數(shù)據(jù),但我們注入的命令最終還是會在.bat文件中執(zhí)行的。再加上現(xiàn)在我可以向任意目錄中寫入文件,那么我就可以向存在漏洞的文件中注入有效命令,然后把文件寫入到系統(tǒng)啟動目錄中,然后執(zhí)行注入的命令,最終實(shí)現(xiàn)提權(quán)。

但這里還是有一個問題,也就是創(chuàng)建符號鏈接的目錄必須為空,但現(xiàn)在的目錄包含NVIDIA服務(wù)需要使用的文件,而且我還刪不掉。但是,這個問題進(jìn)入安全模式就解決了。

總結(jié)一下:

1、將需要執(zhí)行的命令添加到“C:\ProgramData\NVIDIACorporation\NvStreamSrv\settings.txt”;

2、 清空“C:\ProgramData\NVIDIACorporation\nvstreamsvc\”目錄;

3、 創(chuàng)建符號鏈接:“C:\ProgramData\NVIDIACorporation\nvstreamsvc\nvstreamsvcCurrent.log”=>“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\cmd.bat”

創(chuàng)建符號鏈接:

NVIDIA任意文件寫入命令執(zhí)行的分析    

切換“GameStream”服務(wù)的開關(guān),然后系統(tǒng)啟動目錄中就會有我們的cmd.bat文件了:

NVIDIA任意文件寫入命令執(zhí)行的分析    

完整提權(quán)

NVIDIA本身帶有很多batch文件,這些文件可以在“C:\Windows”目錄中找到:

NVIDIA任意文件寫入命令執(zhí)行的分析    

當(dāng)“NVIDIA Display Container”或“NVIDIA TelemetryContainer”服務(wù)崩潰了兩次以上時,這些文件就會以SYSTEM權(quán)限運(yùn)行,這也是NVIDIA服務(wù)的恢復(fù)機(jī)制:

NVIDIA任意文件寫入命令執(zhí)行的分析    

這些文件同樣是我們可以利用的,我們只需要讓NVIDIA服務(wù)崩潰三次,就可以強(qiáng)制讓BAT文件執(zhí)行,并實(shí)現(xiàn)提權(quán)。

所受影響版本

GeForce Experience <= 3.18

 

看完上述內(nèi)容,你們掌握NVIDIA任意文件寫入命令執(zhí)行的分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI