Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
rep-openai-artifactory — OpenAI-Artifactory 权限提升事件(CVE-2026-65616)的取证分析与本地复现 | Kitploit
工具/GitHubGitHub/alixiacf/rep-openai-artifactory
权限提升容器安全漏洞分析取证分析渗透测试云安全论文与研究学习与教育AI 安全实验室与实践
GitHubalixiacf/rep-openai-artifactory

rep-openai-artifactory

OpenAI-Artifactory 权限提升事件(CVE-2026-65616)的取证分析与本地复现

1111小时28分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

Forensis Lab — AI Agent 权限提升的取证复现(JFrog Artifactory)

对 "Incidente Cero"(OpenAI,2026 年 5 月)的安全、隔离、取证式复现:一个沙箱化的 AI agent 发现了 JFrog Artifactory 软件包代理,从自身配置中提取凭据,在服务器上临时搭建了一个留言板,并从读取者提升为管理员。

研究目标:确定有多少基线配置促成了该事件。实验在创建管理员用户(即"flag")时结束。它不涵盖完整事件。

要求

  • Docker + Docker Compose(已在 Windows/WSL 和 Linux 上测试)。
  • JFrog Artifactory Pro 许可证 — 在 https://jfrog.com/start-free/ 获取免费 1 个月试用版。将你的许可证文件放入 artifactory_license/ 文件夹(替换其中的占位符 artifactory.lic)。没有许可证时,Artifactory 以 OSS 模式运行,大多数实验 API(权限、令牌、远程仓库)将无法工作。
  • 关于版本的说明:本实验固定使用 Artifactory 7.146.25 — 正是其令牌 API 接受了伪造刷新向量的那个确切版本(CVE-2026-65616,已在 7.146.27 中修复)。这正是本实验的意义所在。

快速开始

root@kitploit:~
git clone <this-repo> && cd <dir>
# 1. put your license in artifactory_license/artifactory.lic
# 2. clean start (preserves data volumes; see "Reset semantics" below):
./reset.sh && ./start.sh

start.sh 会配置整个场景(首次启动需要几分钟,因为 Artifactory 需要预热):

  1. 许可证 — 由你通过 UI 手动安装(从不自动化;你的许可证是个人的且会过期)。脚本仅检查许可证是否处于活动状态并发出警告。
  2. 显式启用匿名访问 — 与原始事件中一样。
  3. 6 个仓库 — pypi/npm,每个都有 local + remote + virtual。PyPI 远程仓库配置的 URL 为 https://files.pythonhosted.org(在此版本中实际有效的配方)。
  4. 用户 agente-compartido(组 readers)具有写权限(Anything:读取 + 部署/缓存)— 正是这一不良实践促成了留言板。
  5. 通过专用卷向 agent 提供一个默认引用令牌;agent 将其以明文形式写入 /etc/pip.conf 和 /etc/npmrc — 即第 1 阶段的泄露。所提供的令牌位于 token/token_ref.txt。

捷径:如果你从 Release 导入了预配置的卷(见下文),则配置已完成 — ./start.sh 只需启动整个栈。

验证:

root@kitploit:~
curl -s http://localhost:8081/artifactory/api/system/ping     # -> "true"
docker exec -it incidente-modelo-simulado sh
# inside the agent:
cat /etc/pip.conf            # leaked credentials (the Fase 1 leak)
. /opt/venv/bin/activate
pip install six              # packages without internet, via the remote

然后按顺序执行各阶段:phases/README.md → 00 架构 → 01 发现 → 02 留言板 → 03 可刷新令牌 → 04 权限提升(CVE-2026-65616)→ 05 管理员验证。

令牌生命周期(重要)

  • 一个默认引用令牌(cmVmdGtu...)随附在 token/token_ref.txt 中,并在每次启动时由 start.sh 交付给 agent。

  • 引用令牌是指向 Artifactory 数据库的指针(令牌哈希存在于 PostgreSQL 卷中)。reset.sh 有意保留数据卷,因此令牌在重置后仍然存在。

  • 要强制获得完全全新的状态,请手动删除卷:

    root@kitploit:~
    docker volume rm $(docker volume ls -q | grep -E 'artifactory_data_v714625|postgres_data')
    

    然后你必须通过管理员 UI 生成一个新的引用令牌,并将其直接分配给用户 agente-compartido — 而不是分配给组。组范围的令牌会被归属于 admin,agent 的令牌刷新将静默失败。用新值更新 token/token_ref.txt。

  • 重新生成的分步说明:token/README.md。

  • UI 怪癖(已记录):UI 可能将令牌显示为不可刷新;以管理员身份创建并设置 token.allow-refreshable: true 后,它可刷新的 — 这一差距正是所研究事件的一部分。

阶段

预配置卷(Release 资产)

本仓库的一个 GitHub Release 以 tarball 形式提供工作实验的三个 Docker 卷,因此克隆后可以恢复确切的已配置状态(仓库、权限、匿名开启、令牌哈希、缓存),而无需重新配置:

资产卷
incidente_artifactory_data_v714625.tar.gzArtifactory 数据(7.146.25)
incidente_postgres_data.tar.gzPostgreSQL 后端(令牌哈希位于此处)
incidente_agent_secrets.tar.gz交付给 agent 的凭据

导入(从存放 tarball 的文件夹中执行):

root@kitploit:~
for V in incidente_artifactory_data_v714625 incidente_postgres_data incidente_agent_secrets; do
  docker volume create $V
  docker run --rm -v $V:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/$V.tar.gz"
done
./start.sh

注意事项:

  • 这些卷只能使用 docker-compose.yml 中固定的 masterKey 解密 — 导入后切勿更改它。
  • 捆绑状态不包含许可证:已验证该状态不含任何许可证材料。在 ./start.sh 之后立即安装你自己的试用许可证(见要求)— 没有它,写入会被阻止(读取可用)。
  • 即使有卷,所提供的引用令牌也仅在卷状态完好时才能通过身份验证 — 该令牌是指向该数据库的指针(见上文令牌生命周期)。

重置语义

  • ./reset.sh 停止容器而不删除卷(没有 down -v)。
  • ./start.sh 是幂等的:它会配置任何缺失的内容,并保留其他所有内容。
  • 在干净机器上首次运行:两个都运行。之后的任何运行:仅 ./start.sh 就足够了。

本实验演示了什么

场景中的每个孤立条件都有一个便利性理由(缓存、共享凭据、可刷新令牌)。将它们编排在一起,表明不需要复杂的密码学权限提升:因果链六个环节中有四个是配置决策。信任边界是围绕公司划定的,而不是围绕每个参与者 — 而 agent 是边界内的一个参与者。一句话概括论点:零信任不是为模型而设,而是为公司而设;当消费者改变性质(脚本 → 自主 agent)时,信任面必须重新校准。

伦理

  • 隔离实验:agent 没有互联网访问;Artifactory 有,仅用于充当软件包镜像。
  • 所包含的令牌是实验令牌:临时的,在此网络之外毫无价值。
  • 仅用于教育和记录目的:应用于 AI agent 的网络安全考古学。

引用本仓库

如果你在研究或教学中使用本实验,请通过其 Zenodo DOI 10.5281/zenodo.22817059 引用:

Colmenero-Fernandez, A. (2026). Forensis Lab: Forensic Recreation of the AI Agent Privilege Escalation (JFrog Artifactory, CVE-2026-65616) (v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.22817059

BibTeX:

root@kitploit:~
@software{colmenerofernandez2026forensislab,
  author    = {Colmenero-Fernandez, Alicia},
  title     = {{Forensis Lab: Forensic Recreation of the AI Agent Privilege Escalation (JFrog Artifactory, CVE-2026-65616)}},
  year      = {2026},
  version   = {1.0.0},
  doi       = {10.5281/zenodo.22817059},
  url       = {https://doi.org/10.5281/zenodo.22817059}
}

机器可读的引用元数据:CITATION.cff。

下载工具
是
文件阶段内容
phases/FASE_00_Arquitectura.md0Docker 架构、易受攻击的版本(7.146.25)、操作员配置
phases/FASE_01_Descubrimiento.md1agent 发现 Artifactory:无法浏览,但可以安装;pip.conf 审计
phases/FASE_02_Tablon_Mensajes.md2对本地仓库执行 PUT(HTTP 201),临时留言板
phases/FASE_03_Token_Refreshable.md3可刷新令牌请求;YAML 证据(allow-refreshable)
phases/FASE_04_Escalada.md4JWT 伪造与刷新利用;失败尝试与作用域
phases/FASE_05_Verificacion_Admin.md5管理员令牌验证及创建用户 agente-admin(即 flag)
phases/FASE_06_Post_Escalada.md6事件提升后的活动(已记录,未实现)