Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pfsense-api-acb-userkey — pfSense Plus MIM API 工具包 b4acd7ca - 高危 - 远程 - IDOR - ACB userkey 能力 URL | Kitploit
工具/GitHubGitHub/abraxas/pfsense-api-acb-userkey
漏洞分析漏洞利用Web应用程序漏洞利用数据泄露信息收集渗透测试论文与研究红队API 安全实验室与实践
GitHubabraxas/pfsense-api-acb-userkey

pfsense-api-acb-userkey

11天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

pfSense Plus MIM API 工具包 b4acd7ca - 高危 - 远程 - IDOR - ACB userkey 能力 URL

查看仓库
分享

Abraxas Labs - pfsense-api-acb-userkey

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-api-acb-userkey

pfsense-api-acb-userkey

类别: IDOR 可达性: 远程

pfSense Plus MIM API(Netgate/pfsense-api b4acd7ca)- Netgate

GET /services/acb 和 GET /services/acb/bkp 将 userkey 作为无约束的查询参数。生成的 Python 客户端将该密钥放在查询字符串上。YAML 中没有 securitySchemes。持有 Auto Config Backup 设备密钥即为校验。那是一个能力 URL。

被盗或泄露的 ACB userkey 会列出该设备托管的备份并获取修订版本正文。完整配置就在那些 blob 中。 如果密钥泄露,与 CE ACB 密钥 CVE-2024-57273 / SA-25_03 属于同一类别。那个 CVE 是 SSH-banner 派生。这个遗留问题是 Plus MIM API 查询参数的同类问题。我不会重新提交 banner 派生问题。

这是 pfSense Plus Nexus 多实例管理(控制器在 :8443)的公开 OpenAPI + 生成客户端。它不是 CE REST 包(jaredhendrickson/pfsense-api / pfrest.org)。服务器仅限 Plus(付费)。我没有执行 pfSense Plus。

ID暂无 CVE
类别IDOR(能力 URL)
可达性远程
CWECWE-639
CVSS高:7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N,如果那些 GET 请求在不将 JWT 绑定到设备的情况下接受 userkey
产品Netgate/pfsense-api(pfSense Plus MIM OpenAPI + 生成客户端)
受影响固定 b4acd7ca21dbca739a530403a1f62a7440f7726f(2026-05-25)。无标签。
认证规范:无(securitySchemes 缺失)。userkey 是查询密钥。Plus JWT/RBAC 未执行。
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1:19171。无 Plus 镜像。

系列中心:pfsense-api-nexus-mim(这是第 7 部分)。

攻击者能做什么

需要被盗或泄露的 ACB userkey(规范:“十六进制编码的 32 字节随机字节”,64 个十六进制字符)。规范未将该密钥绑定到 JWT 或调用者的设备。G11 类 GET /services/acb/config 返回实时的 userkey。G9 示例设置 verify_ssl=False,因此对 :8443 的 MITM 可以在线路上看到该密钥。这些是泄露路径。这个遗留问题就是密钥一旦泄露后所能换取的东西。

侦察

方法汇聚点权限
GET /services/acb?userkey=<stolen>GetACBList(pfapi_openapi.yml)。生成的 get_acb_list.py params["userkey"]。实验室验证(模拟): 列出该设备托管的备份。见证位于 backups[].reason。
GET /services/acb/bkp?userkey=<stolen>&revision=GetACB -> RetrievedBackup.backup。生成的 get_acb.py params["userkey"] + params["revision"]。实验室验证(模拟): 获取修订版本正文。见证位于 backup。
在实时控制器上使用相同的备份字符串托管的 ACB blob推断: 一旦可读,即可获取完整的 config.xml(用户、密钥、软件包)。模拟返回了明文见证 XML。我并未与 acb.netgate.com 通信,也未解密实时 blob。
GET /services/acb/configACBConfigInfo.userkey、ACBConfig.encryption_password规范,非本实验室: 实时能力密钥和解密密码。G11 的 GET 上暴露机密类。未实际测试。

完整性

方法汇聚点权限
POST /services/acb/restoreRestoreACB 正文 { timestamp }相邻已关闭: 样本仍发送 JWT。非此遗留问题。未执行。
POST /services/acb/config 替换 userkeySaveACBConfig相邻已关闭: 不是 GET 能力 URL。未执行。

可用性

GET list / GET bkp 不会删除。DELETE /services/acb/bkp/{timestamp} 是另一个操作。未实际测试。

错误的 userkey 和缺失的 userkey 未返回见证(实验室验证)。

实验室验证 vs 推断: 窃取的密钥 list 和 bkp 返回了见证。错误密钥和缺失密钥则没有。Plus 未执行。实时 config.xml 内容和解密是从公开 schema 推断的(RetrievedBackup.backup 是字符串;encryption_password 位于 ACBConfig 上)。

前提条件: 到 MIM 控制器 ACB GET 的网络路径,以及窃取/泄露的 userkey。如果这些 GET 在不将 JWT 绑定到设备的情况下认可查询密钥,则 CVSS 7.5。诚实地说:此包在回环上证明了公开规范对该契约的建模。

保持关闭的相邻攻击面

攻击面原因
pfSense Plus 控制器未执行。此包中没有 Plus 镜像。
CE REST 包不同的服务器(jaredhendrickson/pfsense-api / pfrest.org)。
SSH-banner ACB 密钥派生CVE-2024-57273 / SA-25_03。请勿重复提交。
POST /services/acb/restore 作为此发现样本仍发送 JWT。
来自省略的 OAS security 的未认证 php/shell文档遗留问题。模拟并非无 JWT 返回 200 的服务器证明。
缺失 userkey实验室 403,无见证。
错误 userkey实验室 list 为空 / bkp 403,无见证。
生成的库 verify_ssl默认为 True。G9 是样本将其关闭,而非包默认值。

我是如何发现的

我固定了 Netgate/pfsense-api main b4acd7ca(2026-05-25,“Add Snort-3 API definitions”)。围绕登录/JWT、诊断、MIM 注册、客户端 TLS、用户/证书、软件包、VPN/防火墙、OpenAPI 安全、设备 IDOR、git/固件/源,以及每个生成操作的环回模拟,进行了十二次搜寻。

先列跳过清单:CE WebGUI 遗留问题已邮件报告(QinQ 父接口、OpenVPN 向导 CRLF、CARP VHID、限制器编号、IPsec 登录横幅)。诊断 PHP/shell 属于预期的管理员权限。第三方 CE REST 包。CVE-2024-57273 横幅派生。

我阅读了 GetACBList 和 GetACB。userkey 是一个查询参数,而不是绑定的设备 ID。生成的 Python 将其复制到查询字符串上。YAML 中没有 securitySchemes。ACBConfigInfo.userkey 是“十六进制编码的 32 字节随机字节”。GET /services/acb/config 返回该密钥。G9 样本禁用了 TLS 验证,因此中间人攻击者可以泄露它。G11 是 GET 转储。这个遗留物就是该转储所提供的能力 URL。

错误方向:将缺失的 OAS 安全机制视为未认证的 php/shell;重新提交 CVE-2024-57273;声称存在实时 Plus 转储。表演:一个 Plus 控制器。预言机是公开规范加上回环模拟。

实验室

python3 pfsense-api-acb-userkey-Abraxas-Labs.py

或

cd lab
./run.sh

仅回环:http://127.0.0.1:19171。Compose 项目 pfsense-api-acb-userkey。见证 PFSENSE-API-ACB-USERKEY-WITNESS。Docker。无 Plus 镜像。

预期最后一行:

SUCCESS pfsense-api-acb-userkey capability-url stolen-key-returns-witness wrong-key-does-not plus-not-executed public-spec-models-acb-userkey-capability-url PFSENSE-API-ACB-USERKEY-WITNESS

诚实:Plus 未执行。被盗密钥返回了见证。错误密钥没有。公开规范将 ACB userkey 建模为能力 URL。

修复

在 ACB GET 上要求 JWT。不要将 userkey 视为能力 URL。将列表和检索绑定到已认证设备的密钥。不要接受来自外部调用者的另一台设备的密钥。停止向任何非设备所有者的角色在 GET 配置时返回实时 userkey 和 encryption_password。

参考

  • github.com/Netgate/pfsense-api b4acd7ca21dbca739a530403a1f62a7440f7726f
  • pfapi_openapi.yml GetACBList / GetACB
  • get_acb_list.py · get_acb.py
  • CWE-639
  • CVE-2024-57273 / SA-25_03(CE ACB 密钥类;未重新提交)
  • 系列:pfsense-api-nexus-mim

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验室。无担保。

下载工具