Chromium漏洞复现代理

一个自动化安全研究工具,用于解析Chromium问题跟踪器,下载特定易受攻击的二进制快照,并在受控的无头Docker环境中重现高严重性漏洞(CVE)。

  • by kansaludhav0
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kansaludhav0/Automated-Chromium-Vulnerability-Reproduction-Agent-MCP-Tool

使用说明

铬脆弱性再生剂

一种自动化的安全研究工具,旨在解析Chromium问题跟踪器,下载特定的易受攻击的二进制快照,并在受控的无头Docker环境中再现高严重性漏洞(CVE)。

📂 存储库结构

  • agent.py:主要协调人。处理版本映射、二进制下载、PoC包装(转译)和执行逻辑。
  • scraper.js:一个基于Puppeter的scraper,处理Google Issue Tracker上的延迟加载,以提取元数据和附件。
  • Dockerfile:使用运行旧Chromium版本所需的特定遗留库定义强化的Linux环境。
  • package.json / package-lock.json:scraper的Node.js依赖关系。
  • requirements.txt:Python依赖关系。

🚀 先决条件

  • Docker 桌面版 (或Linux上的Docker引擎)。
  • Git.

🛠️ 安装和设置

  1. 克隆存储库:

    git clone https://github.com/kansaludhav0/Automated-Chromium-Vulnerability-Reproduction-Agent-MCP-Tool.git
    cd Automated-Chromium-Vulnerability-Reproduction-Agent-MCP-Tool
    
  2. 创建本地存储目录: 为确保保存报告并缓存二进制文件(这样您就不会每次都下载它们),请在主机上创建以下文件夹:

    mkdir results
    mkdir chromiums
    
  3. 构建Docker镜像: 使用以下命令构建容器。我们使用主机网络来避免在获取依赖关系时出现DNS问题。

    docker build --no-cache -t chromium-agent .
    

💻 用法

要针对特定的Chromium Issue URL运行代理,请使用以下Docker命令。

指挥部

docker run --rm --security-opt seccomp=unconfined -v $(pwd)/results:/app/results chromium-agent "<ISSUE_URL>"

标志说明

  • --rm:脚本完成后自动删除容器。
  • --security-opt seccomp=unconfined: 关键。 禁用默认的Docker安全过滤器。这允许V8漏洞(JIT/TurboFan漏洞)触发崩溃/分段错误,否则这些崩溃/分段故障将被容器内核阻止。
  • -v .../results:将容器的输出文件夹映射到本地 results 文件夹,以便您可以查看报告。

示例运行

测试 CVE-2018-17463 (V8涡轮风扇优化错误):

docker run --rm --security-opt seccomp=unconfined -v $(pwd)/results:/app/results chromium-agent "https://issues.chromium.org/issues/40092548"

📊 输出和结果

执行后,检查 results/ 主机上的文件夹:

  1. report.json:一个结构化的JSON文件,包含问题标题、检测到的版本、执行日志和最终判决(成功/失败)。
  2. poc.html:由代理执行的最终包装的概念验证HTML文件。

⚙️ 工作原理(内部)

  1. 解析: 代理程序启动一个无头浏览器来抓取问题页面,处理动态滚动以查找隐藏的附件或内联代码注释。
  2. 选择: 它识别潜在的PoC文件,优先考虑Zip存档和JavaScript文件。它会自动过滤掉未被利用的文件(图像、PDF)。
  3. 转换: 为编写的原始漏洞 d8 开发人员shell会自动包装在HTML工具中。代理垫片的功能如下 print(), quit(),以及 alert() 因此,它们在标准浏览器中可见地运行。
  4. 执行: Chromium的特定易受攻击版本是从谷歌的Snapshot存储中获取的。PoC是使用以下标志执行的 --js-flags=--allow-natives-syntax 以启用漏洞利用原语。
  5. 验证: 代理程序监视以下进程:
    • 退出代码139: 分段故障(碰撞确认)。
    • 控制台日志: 关键词如“脆弱”、“成功”或“泄露”。
    • 超时: 通过堆喷洒成功拒绝服务(DoS)。

⚠️ 免责声明

此工具用于 仅用于教育和安全研究目的。它下载易受攻击的浏览器二进制文件,并执行公共问题跟踪器上的任意代码。始终在提供的Docker容器中运行此工具,以确保主机系统隔离。

视频PoC

视频PoC