這篇文章給大家介紹怎么實(shí)現(xiàn)ghostscript沙箱繞過命令執(zhí)行漏洞預(yù)警,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為醴陵企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站設(shè)計(jì),醴陵網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
2019年1月23日晚,Artifex官方在ghostscriptf的master分支上提交合并了多達(dá)6處的修復(fù)。旨在修復(fù) CVE-2019-6116 漏洞,該漏洞由 Google 安全研究員 taviso 于2018年12月3日提交。該漏洞可以直接繞過 ghostscript 的安全沙箱,導(dǎo)致攻擊者可以執(zhí)行任意命令/讀取任意文件。
ghostscript應(yīng)用廣泛,ImageMagick、python-matplotlib、libmagick 等圖像處理應(yīng)用均有引用。
在之前的漏洞中 ghostscript 吸取經(jīng)驗(yàn),針對(duì)一些特殊并且具有強(qiáng)大功能的函數(shù)做了一層封裝。
這層封裝就是executeonly這個(gè)標(biāo)記, 以及odef這個(gè)偽運(yùn)算符。
附帶executeonly這個(gè)標(biāo)記的效果是 PostScript 將不會(huì)允許引用該受保護(hù)的函數(shù)。
附帶odef這個(gè)運(yùn)算符的效果是 PostScript 錯(cuò)誤處理程序不會(huì)從這個(gè)運(yùn)算往上繼續(xù)檢索堆棧。
如果當(dāng)前運(yùn)算符(或偽運(yùn)算符)遇到異?;蛘叱鲥e(cuò)停止,就不會(huì)暴露任何棧上內(nèi)容。
但是 taviso 依舊通過發(fā)現(xiàn)在這些函數(shù)中,如果存在像判斷這樣的狀態(tài),那么上面的保護(hù)將失去應(yīng)有的效果。
導(dǎo)致 ghostscript 可以像以往一樣從棧中獲得危險(xiǎn)的函數(shù)以及引用他們而造成漏洞。
taviso 給出了一處可以利用的代碼片段
http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/pdf_draw.ps;h=79733df451c1ecc0a71b08d10e5412ac3e243a9e;hb=gs926#l1123
1123 {
1124 currentglobal pdfdict gcheck .setglobal
1125 pdfdict /.Qqwarning_issued //true .forceput
1126 .setglobal
1127 pdfformaterror
1128 } ifelse
然后通過堆棧上的構(gòu)造即可實(shí)現(xiàn)任意命令執(zhí)行/文件讀取。
$ gs -dSAFER -f ghostscript-926-forceput.ps
GPL Ghostscript 9.26 (2018-11-20)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Stage 0: PDFfile
Stage 1: q
Stage 3: oget
Stage 4: pdfemptycount
Stage 5: gput
Stage 6: resolvestream
Stage 7: pdfopdict
Stage 8: .pdfruncontext
Stage 9: pdfdict
Stage 10: /typecheck #1
Stage 10: /typecheck #2
Stage 11: Exploitation...
Should now have complete control over ghostscript, attempting to read
/etc/passwd...
(root:x:0:0:root:/root:/bin/bash)
Attempting to execute a shell command...
uid=1000(taviso) gid=1000(primarygroup)
groups=1000(primarygroup),4(adm),20(dialout),24(cdrom),25(floppy),44(video),46(plugdev),999(logindev)
360CERT 判斷該漏洞危害嚴(yán)重,影響面廣。建議用戶及及時(shí)進(jìn)行版本升級(jí),同時(shí)對(duì)線上涉及圖像、pdf等格式的處理的服務(wù)進(jìn)行版本自查。
ghostscript 尚無 release 版本發(fā)布
commit c47512e5e638d903d69925f7ebab4de2aa3f481f 之前的版本均受到影響
ghostscript作為圖像處理格式轉(zhuǎn)換的底層應(yīng)用。
漏洞導(dǎo)致所有引用ghostscript的上游應(yīng)用受到影響。 涉及但不限于:
imagemagick
libmagick
graphicsmagick
gimp
python-matplotlib
texlive-core
texmacs
latex2html
latex2rtf
等
建議更新到
(c47512e5e638d903d69925f7ebab4de2aa3f481f)之后的版本,或者直接重新拉取master
分支進(jìn)行更新
若無法更新可先嘗試禁用使用gs解析ps文件
使用ImageMagick,建議修改policy文件(默認(rèn)位置:/etc/ImageMagick/policy.xml),在
但 taviso 提到 policy 是十分寬松的,可能會(huì)存在一些沒有提及的格式存在繞過。
360CERT 建議用戶及及時(shí)進(jìn)行版本升級(jí),同時(shí)對(duì)線上涉及圖像、pdf等格式的處理的服務(wù)進(jìn)行版本自查。
關(guān)于怎么實(shí)現(xiàn)ghostscript沙箱繞過命令執(zhí)行漏洞預(yù)警就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。