尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
网络打印机安全风险剖析:从PJL/PostScript渗透到内网防护实践
1. 项目概述当打印机成为内网的“后门”在大多数人的认知里打印机就是个安安静静放在角落负责把电子文档变成纸质文件的工具。然而在网络安全从业者眼中一台接入内网的网络打印机其潜在风险可能远超一台普通的办公电脑。这个项目源于一次常规的内网安全评估目标是一台常见的惠普激光打印机。我们并非要破解它的打印队列而是利用一个名为PRETPrinter Exploitation Toolkit的工具深入探索其内置的打印语言解释器如PJL、PCL、PostScript尝试进行命令执行和信息窃取。这听起来或许有些“科幻”但原理并不复杂现代网络打印机本质上是一台运行着精简版操作系统的嵌入式计算机它通过网络协议如9100端口接收并解析打印任务。如果这些解析引擎存在漏洞或者配置不当它就可能成为攻击者进入内网的一个跳板或数据泄露点。本次研究的目的就是通过实战演示揭示这种常被忽视的风险并探讨相应的防护思路。2. 核心原理与攻击面剖析2.1 打印机语言不止是打印指令要理解渗透的可能首先要明白打印机是如何工作的。当我们点击“打印”时电脑上的驱动程序会将文档数据转换成打印机能够理解的“语言”通过网络或USB发送过去。常见的打印机语言有PCL (Printer Command Language)惠普公司开发广泛应用于激光打印机指令集相对简单。PostScriptAdobe公司开发是一种强大的页面描述语言功能复杂甚至可以看作一种编程语言。PJL (Printer Job Language)它更像一个“信封”或“管理者”包裹在PCL或PostScript作业之外用于在打印作业之间传递控制信息如切换打印语言、设置份数、查询状态等。PRET工具的核心就是与这些语言解释器进行“对话”。它通过打印机的9100端口Raw Printing Port建立TCP连接然后直接发送符合语法的命令字符串。如果打印机固件存在命令注入、目录遍历或未授权访问等漏洞攻击者就能利用这些命令执行超出打印范畴的操作。2.2 攻击路径与潜在危害利用PRET攻击者可能实现以下几种攻击路径信息泄露通过PJL的INFO命令或PostScript的status命令获取打印机型号、固件版本、配置信息、网络设置如IP、DNS甚至内存使用情况。文件系统访问某些打印机允许通过PJL或PostScript访问其内置的文件系统如用于存储字体、临时作业、配置文件的区域。攻击者可以列出目录、读取敏感文件如包含网络凭据的配置文件或写入恶意文件。命令执行这是最危险的情况。例如通过PostScript语言强大的功能理论上可以执行系统命令。更常见的是利用PJL的FSDIR、FSUPLOAD等命令进行文件操作如果过滤不严可能实现命令注入。持久化后门将恶意PostScript脚本上传到打印机的文件系统并设置为开机或定时执行从而使打印机成为内网中一个隐蔽的持久化据点。拒绝服务发送大量复杂的PostScript作业或畸形PJL命令耗尽打印机内存或导致固件崩溃使其无法提供正常的打印服务。注意这些攻击的成功率高度依赖于打印机型号、固件版本和厂商的安全配置。较新的固件可能已经修复了已知的严重漏洞。本研究的目的是教育防御而非提供攻击脚本。3. 环境搭建与PRET工具初探3.1 测试环境准备为了安全、合法地进行研究搭建一个隔离的测试环境至关重要。目标设备一台旧款惠普激光打印机如HP LaserJet P1102、M1212nf等这些型号在过往的安全研究中曝光过较多问题。务必确保该打印机处于与生产网络完全隔离的实验室网络中。攻击机安装Kali Linux或任何带有Python环境的Linux发行版。网络连接将攻击机和打印机连接到同一个独立的交换机或路由器下确保网络可达。记录打印机的IP地址。3.2 PRET的安装与基本使用PRET是一个用Python 2/3编写的工具可以从GitHub获取。# 克隆仓库 git clone https://github.com/RUB-NDS/PRET.git cd PRET # 安装依赖 (部分系统可能需要) pip install coloramaPRET的使用语法非常直观./pret.py 打印机IP 打印机语言支持的打印机语言包括pjl,ps(PostScript),pcl。例如连接一台IP为192.168.1.100的打印机并尝试PJL语言./pret.py 192.168.1.100 pjl如果连接成功你会看到一个交互式命令行提示符例如192.168.1.100:9100 $这意味着你已经与打印机的PJL解释器建立了会话。3.3 初次连接与信息收集连接成功后首要任务是进行“侦查”。# 在PRET的PJL交互会话中输入help查看可用命令 192.168.1.100:9100 $ help # 使用INFO命令获取打印机基本信息 192.168.1.100:9100 $ info # 尝试列出文件目录如果支持 192.168.1.100:9100 $ ls 192.168.1.100:9100 $ dirINFO命令的返回结果通常包含设备型号、序列号、固件版本、内存大小等。这些信息是后续查找已知漏洞的关键。如果ls或dir命令有回显则表明文件系统访问可能被开启这是一个危险信号。4. 深度渗透测试实操记录4.1 利用PJL进行文件系统遍历在确认打印机支持PJL且文件系统可访问后可以进行更深入的探索。PJL提供了一系列文件操作命令。# 改变当前目录假设支持 192.168.1.100:9100 $ cd \: 192.168.1.100:9100 $ cd POSTSCRIPT # 列出特定目录下的文件 192.168.1.100:9100 $ ls # 读取一个文件的内容例如一个配置文件 192.168.1.100:9100 $ cat .\config.txt实操心得不同型号的惠普打印机其文件系统路径和结构差异很大。常见的潜在敏感目录包括:RAM:内存盘、:FLASH:闪存、POSTSCRIPT、PCL等。有时需要反复尝试cd和ls来摸索结构。读取config.txt、setup.txt或任何包含password、pass、cred关键字的文件可能会有意外收获。4.2 PostScript语言的强大与危险切换到PostScript模式我们面对的是一个图灵完备的语言解释器。# 重新连接使用PostScript语言 ./pret.py 192.168.1.100 ps在PostScript会话中我们可以执行更复杂的操作# 简单的状态查询 192.168.1.100:9100 $ status # 尝试执行系统命令通常被严格限制但可测试 # 例如尝试调用文件操作符 (../..) file 更高级的攻击可能涉及上传一个恶意的PostScript脚本。PRET提供了put和get命令来上传下载文件。# 将一个本地PostScript脚本上传到打印机 192.168.1.100:9100 $ put /path/to/malicious.ps evil.ps # 执行该脚本 192.168.1.100:9100 $ exec evil.ps注意事项exec命令并非所有打印机都支持且恶意PostScript脚本可能导致打印机锁死或需要硬重启。在测试环境中可以先上传一个无害的脚本如仅打印一行文本的脚本来验证功能。4.3 捕获打印作业与敏感信息窃取模拟打印机内存或硬盘中可能会暂存打印作业。如果配置不当这些作业可能被未授权读取。PRET可以模拟这种场景。一种方法是利用打印机可能支持的“作业存储”功能。另一种更通用的方法是进行“网络嗅探”但由于我们直接连接9100端口更直接的方式是尝试访问作业队列或临时文件目录。# 在PJL模式下尝试访问可能存储作业的目录 192.168.1.100:9100 $ cd \:JOB 192.168.1.100:9100 $ ls # 如果看到文件尝试用cat或download命令读取核心技巧在实际渗透测试中如果发现打印机开启了9100端口且未做访问控制攻击者可以编写一个简单的Python脚本持续监听或连接该端口尝试窃取流经的打印作业数据。这突显了网络隔离和访问控制列表ACL的重要性。5. 常见问题、防御措施与排查实录5.1 测试过程中常见问题与解决问题现象可能原因排查与解决思路连接被拒绝打印机未开机/网络不通/9100端口被防火墙阻止检查打印机电源与网络线缆使用ping测试连通性使用nmap -p 9100 IP扫描端口状态。PRET连接后无响应或立即断开打印机型号不支持该语言/固件已修复漏洞/需要特定触发条件尝试切换pjl,ps,pcl三种语言查阅该型号打印机的历史安全公告尝试发送\x1b%-12345XPJL INFO STATUS\x0d\x0a等原始PJL字符串进行探测。ls,dir等命令返回错误文件系统访问被禁用或路径不对尝试根目录\:或常用目录这可能说明该配置相对安全。执行命令导致打印机无响应发送了不兼容或耗资源的复杂指令立即关闭PRET会话重启打印机。在测试复杂命令前务必在隔离环境进行。5.2 企业内网打印机安全加固建议基于本次研究给系统管理员提供以下几点切实可操作的防御建议网络隔离与分段将打印机部署在独立的VLAN中并通过防火墙策略严格限制访问。仅允许打印服务器或特定网段的用户IP访问打印机的9100打印、631IPP、80/443Web管理等端口。禁用不必要的服务和协议在打印机管理后台检查并关闭不需要的服务如FTP、Telnet、SNMP如果不用来监控、Web服务如果无需远程管理。对于必须的9100端口尝试配置IP白名单。强化管理凭证修改默认的Web管理界面、SNMP社区字等密码使用强密码。定期更新。及时更新固件定期访问打印机厂商如惠普的安全公告及时为打印机更新固件修复已知漏洞。启用作业加密如果打印机和驱动程序支持启用SSL/TLS加密打印通道如IPPS防止打印数据在传输中被窃听。关闭文件系统访问在打印机设置中寻找并禁用“PJL文件系统支持”、“PostScript文件系统访问”等选项。安全审计与监控在网络中部署IDS/IPS设置规则监控对打印机9100等端口的异常流量如非来自打印服务器的连接尝试、大量PJL/PS命令请求。5.3 渗透测试者的思考延伸这次针对打印机的渗透测试给我带来的最大启发是安全边界需要重新审视。传统上安全防护重心都在服务器、PC和网络设备上像打印机、摄像头、智能电视这类IoT设备往往成为盲点。它们数量庞大、管理松散、更新困难一旦被攻破就可能成为内网横向移动的支点。在更广泛的物联网IoT安全测试中方法论是相通的识别与发现使用nmap,masscan等工具扫描内网识别所有IP设备特别注意非常用端口。服务探测对发现的设备进行端口和服务深度探测。漏洞关联根据探测到的设备型号、服务版本搜索公开漏洞Exploit-DB, NVD。工具利用使用PRET这类针对特定协议或设备的利用工具进行测试。权限提升与持久化如果获得初始访问权限尝试向设备写入后门或利用其作为跳板。打印机渗透只是物联网安全冰山一角。作为防御方必须建立覆盖所有联网设备的资产清单和安全基线作为攻击方白帽子则需要不断拓宽自己的武器库和知识面将每一个看似“愚蠢”的设备都当作潜在的攻击面来严肃对待。最后记住所有测试必须在授权范围内进行我们的目标是让网络变得更安全而非相反。
RELATED

相关推荐

真实实物礼品代发

真实实物礼品代发

在电商竞争日益激烈的当下,真实实物礼品代发对于电商商家而言愈发重要。选对礼品代发平台,不仅能提升客户体验,还能有效降低运营成本。而阿里小仓,作为一个值得信赖的平台,在真实实物礼品代发领域有着诸多显著优势。下…

📅 2026/9/16 8:48:56
用电脑声卡自制简易示波器:原理、软件配置与安全实践

用电脑声卡自制简易示波器:原理、软件配置与安全实践

1. 项目概述:从“听”到“看”的奇妙转换如果你手头没有一台示波器,但又急需观察一个音频信号、传感器输出的微弱电压,或者只是想捣鼓点电子小实验,是不是感觉寸步难行?别急,你可能已经拥有了一台被严重低估…

📅 2026/9/16 19:26:16
自动化工程师如何转型工业互联网?2026年最新进阶指南

自动化工程师如何转型工业互联网?2026年最新进阶指南

作为一名自动化工程师,你对PLC编程、SCADA系统、工业网络通信早已驾轻就熟。然而,当工业互联网的浪潮席卷而来,你是否感到既兴奋又迷茫? 从熟悉的车间现场,迈向云端与数据交织的新世界,这条路该怎么走&…

📅 2026/9/20 10:52:24
MORE NEWS

更多资讯

📰

云智变AI开题报告:为什么你的开题答辩像一场“审讯”,而别人的像一场“讨论”?

云智变AI官网:www.yunzhibian.cn | 微信公众号搜一搜:云智变AI学术 开题答辩现场有两种人。 第一种人站上去,PPT翻到第三页,评委开始皱眉:“你这个研究问题到底是什么?”“你说的这个变量怎么…

📰

快速做网站详情页还怕没流量?这份保姆级建站教程救急

快速做网站详情页还怕没流量?这份保姆级建站教程救急 网站做好了没人访问,是不是让你头大如斗?别慌,很多前端新手都卡在这一步。其实不是代码写得不够炫,而是没懂搜索引擎怎么“看”你的页面。今天这篇保姆级建站教程,专门教你怎么快速做网站详情页,让…

📰

ROS2 Humble Nav2 从零搭建:A* 全局规划与 DWA 局部避障实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

3步搞定家乡网页模板,保姆级建站教程让流量翻倍

3步搞定家乡网页模板,保姆级建站教程让流量翻倍 网站做好了没人访问,是不是你的常态?别慌,我见过太多人花几千块做个“家乡网页模板”,上线后日UV只有个位数。今天这篇保姆级建站教程,不聊虚的,直接教你怎么从0到1,把一个冷清的家乡主题站,变成…

📰

树莓派OV5647摄像头CSI排线连接与配置避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

融合AI辅助MBTI性格测试的个性化健身小程序(DeepSeek AI 健身计划、AI 饮食方案、MBTI 四维性格测评、体征与营养记录、训练打卡日历、个人健身数据分析、AI方案人工审核、EChar)

融合 AI 辅助 MBTI 性格测试的个性化健身小程序(UniApp Spring Boot DeepSeek) 做这套系统起因挺实在。我自己健身走过不少弯路:跟着别人的计划练,两天就膝盖不舒服;换成随便搜的减脂攻略,又跟自己想增肌…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬