本文主要讲述了对 Brother 品牌的 VC - 500W 标签打印机的安全研究及相关操作,包括初始设置、漏洞利用、文件读取与写入、系统分析等方面,具体内容如下:
- 打印机及初始设置:作者女友在试图驯服一台新的 Brother VC - 500W 打印机,作者起初觉得与自己无关,后又决定深入探究。该打印机安装时暴露了中世纪版本的 CUPS,界面老旧,初始设置通过带有 CGI 胶水的单独 Web 服务器向导完成,过程中发现一些奇怪的长 GET 请求,如连接指定 WiFi 网络的请求,但作者暂时忽略。
- 漏洞利用与文件操作:作者搜索到该设备的相关信息,发现其 CUPS 版本易受任意文件读/写漏洞影响,准备了利用脚本。通过 ErrorLog 和 PageLog 指令尝试获取和修改文件,如 /etc/passwd 等,但发现 /etc/passwd 未包含特别有趣信息,/bin/sh 为古老版本的 busybox。还利用打印机的 CGI 功能进行代码执行,如在自定义 TLS 证书设置中发现可执行代码的输入字段漏洞。
- 系统文件与固件探索:在网上搜索未发现他人对该打印机的攻击尝试,仅找到关于固件存储位置的信息。通过搜索 CUPS 漏洞,了解到作者的版本存在特定漏洞。还获取了打印机的固件文件,发现其为自定义 buildroot 环境,包含 busybox、microperl、OpenSSH、OpenSSL 和 CUPS 等软件,同时了解到打印机的 OEM 为 Zink,Brother 只是贴牌。
- 物理拆解与修复:打印机的用户可维修性不佳,作者通过分析机箱各部分找到 UART 接口,用于后续的修复操作。发现 rootfs 默认以读写模式挂载,这导致一些文件权限被更改,从而破坏了系统。
- 密码认证与数据处理:打印机的管理员密码以未哈希、未加密的形式存储在 /etc/www/config/webconfig.xml 中,且前端验证密码的流程存在严重漏洞,如 checkPassword 检查逻辑错误,导致认证仅在前端为假象,后端从不检查。同时,通过 web 界面暴露的数据处理脚本存在多种安全问题,如 NextPage 易受数据注入攻击等。
- 固件升级流程:作者未深入研究固件升级流程,仅了解到有 microPerl 脚本处理下载和升级操作,旧文件不删除导致更改易于持久化,固件加密密钥硬编码在升级可执行文件中。
- 后续行动与建议:作者认为这些设备虽不安全但云连接有限,可通过获取 root 权限实施一些安全措施,如禁用远程 CUPS 配置编辑和 lighttpd。作者还在制作一个允许从设备本身的 Web 服务器直接打印标签的应用程序。
- 其他相关内容:在文章的校对过程中,Linus 联系作者请求在标签打印机上运行 JavaScript,作者起初以为是玩笑,后来看到了相关成果。文中还包含一些注释和感谢语,以及其他用户关于 Zink hAppy 打印机升级的讨论和经验分享。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。