mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 08:30:57 +00:00
68 lines
5.1 KiB
Markdown
68 lines
5.1 KiB
Markdown
<details>
|
||
|
||
<summary><strong>零基础学习AWS黑客攻击直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||
|
||
支持HackTricks的其他方式:
|
||
|
||
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||
|
||
</details>
|
||
|
||
|
||
# 内容覆盖
|
||
|
||
一种简单的操纵打印输出外观的方法是**使用**覆盖层。\
|
||
[**PCL**](./#pcl) 有一个记录功能,可以在文档上方放置**覆盖宏**。不幸的是,此功能**仅限于当前打印作业**,无法做到永久性。\
|
||
[**PostScript**](./#postscript-ps) 默认情况下不提供此功能,但可以通过**重新定义showpage**操作符来编程实现,该操作符包含在每个PostScript文档中以打印当前页面。攻击者可以在那里**挂钩**,执行她自己的代码,然后调用操作符的原始版本。\
|
||
因此,她可以用自定义的EPS文件覆盖所有要打印的页面。此黑客技术可用于**向文档的硬拷贝添加任意图形或字体**(通过覆盖空白页面然后添加自定义内容,可以完全改变文档的外观)。\
|
||
显然,这种方法只有在使用PostScript作为打印机驱动程序且没有设置`StartJobPassword`时才能成功。
|
||
|
||
![](http://hacking-printers.net/wiki/images/thumb/9/93/Overlay.jpg/300px-Overlay.jpg)
|
||
|
||
**如何测试此攻击?**
|
||
|
||
在ps模式下使用[**PRET**](https://github.com/RUB-NDS/PRET)的`cross`或`overlay`命令,然后断开连接并打印任意文档:
|
||
```
|
||
./pret.py -q printer ps
|
||
Connection to printer established
|
||
|
||
Welcome to the pret shell. Type help or ? to list commands.
|
||
printer:/> overlay overlays/smiley.eps
|
||
printer:/> cross whoa "HACKED"
|
||
printer:/> exit
|
||
```
|
||
# 内容替换
|
||
|
||
即使攻击者可以在现有文档上覆盖一个图层,除非她知道原始文档的确切结构,否则她将无法**更改特定值**。有时候,人们不仅想要添加自定义内容,还想要**解析并替换**现有文档的部分内容。\
|
||
替换PostScript文件中的文本问题可以归结为**从渲染文档中提取字符串**的问题。这并非易事,因为字符串可能由PostScript程序本身动态构建。因此,简单地在文档源代码中进行解析和替换并不可行。\
|
||
你可以使用**重新定义的`show`操作符**。show操作符接受一个字符串作为输入,在当前页面的某个位置绘制该字符串。通过重新定义操作符,可以优雅地**提取**文本。这种方法也可以用于在字符串被**绘制**之**前**,针对性地进行**搜索和替换**。\
|
||
这种方法对于直接发送到打印机的基于**LaTeX**的PostScript文档是**成功的**,但对于由**GIMP**生成的PostScript文件则**失败**,因为它不是使用字符串,而是**创建栅格图形**来表示它们。对于任何文档格式——甚至是PostScript本身——当通过CUPS处理时也会出现同样的问题。理论上,这样的语言结构也可以被解析,应该是进一步研究的对象。
|
||
|
||
**如何测试这种攻击?**
|
||
|
||
使用[**PRET**](https://github.com/RUB-NDS/PRET)的`replace`命令在ps模式下,然后断开连接并打印包含‘DEF’的PostScript文档:
|
||
```
|
||
./pret.py -q printer ps
|
||
Connection to printer established
|
||
|
||
Welcome to the pret shell. Type help or ? to list commands.
|
||
printer:/> replace "ABC" "DEF"
|
||
printer:/> exit
|
||
```
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客攻击直到成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
支持HackTricks的其他方式:
|
||
|
||
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||
|
||
</details>
|