找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2285

积分

0

好友

302

主题
发表于 7 小时前 | 查看: 1| 回复: 0

概述

在传统的渗透测试或安全审计中,分析海量 HTTP 流量以寻找泄露的敏感信息(如API密钥、数据库连接字符串等)是一项繁重且易出错的手动任务。HaE MCP (Model Context Protocol) 集成工具应运而生,它作为 Burp Suite HaE 扩展的智能伴侣,旨在将这一过程自动化、智能化。

简单来说,它通过 MCP 协议,为你的 AI 助手(如 Claude Code)打开了一扇访问 Burp Suite 已捕获流量中敏感信息的窗口,从而实现由 AI 驱动的自动化分析与复核。

核心功能

敏感信息提取与分析

HaE MCP 的核心能力来源于底层的 HaE 扩展,它能够从流经 Burp Suite 的 HTTP 流量中,基于预定义的正则规则,精准提取各类敏感信息。这包括但不限于 API 密钥、访问令牌、数据库连接字符串、邮箱地址、电话号码等。通过与 AI 助手的集成,你可以直接命令 AI 对这些提取出的“可疑数据”进行真实性验证、风险评级和上下文关联分析。

增量分析机制

为了避免每次分析都从头开始,工具设计了基于时间戳的增量分析机制。它能智能识别自上次分析以来新出现的敏感信息,让你只关注“变化”的部分,极大地提升了持续监控或周期性审计的效率。所有分析状态都会持久化保存,确保工作连续性。

上下文关联分析

工具不会只给你一个孤立的字符串。它提供发现该敏感信息时完整的 HTTP 请求和响应上下文。这使得 AI 助手能够深入理解该信息出现的场景(例如,是在登录请求的响应中,还是在某个 API 的调试参数里),从而做出更准确的风险判断。

工具列表

HaE MCP 为 AI 助手提供了一系列结构化的工具(函数),你可以通过自然语言指令调用它们。

基础查询工具

list_domains

  • 功能:列出所有包含敏感信息的域名。
  • 输出:域名列表及每个域名对应的敏感信息数量统计。
  • 用途:快速获取目标全景,帮助确定需要优先分析的“重灾区”。

get_sensitive_data

  • 功能:获取指定域名的详细敏感信息列表。
  • 参数
    • domain(必需):目标域名。
    • limit(可选):返回结果数量限制,默认值为 50。
  • 输出:包含规则名称、匹配到的具体值、所属域名等信息的列表。
  • 用途:对特定目标进行深入的风险剖析。

get_request_response

  • 功能:获取完整的 HTTP 请求和响应原始消息,用于深度分析。
  • 参数
    • domain(必需):目标域名。
    • path(可选):用于过滤 URL 路径。
    • limit(可选):返回结果数量限制,默认值为 10。
  • 输出:包含请求头、请求体、响应头、响应体等完整上下文的详细数据。
  • 用途:当需要对某个高危发现进行根因分析时,获取最原始的证据材料。关于如何有效利用此类上下文进行安全分析,可以参考社区的最佳实践。

增量分析工具

get_new_sensitive_data

  • 功能:获取自上次标记分析完成以来,新发现的敏感信息。这是增量工作的核心。
  • 参数
    • domain(可选):按域名过滤。
    • limit(可选):返回结果数量限制,默认值为 50。
    • include_all(可选):是否忽略时间戳,包含所有历史数据(用于首次全量分析),默认值为 false
  • 输出:带时间戳的新发现信息列表,以及本次增量数据的统计摘要。
  • 用途:实现高效的日常巡检或持续监控。

mark_analysis_complete

  • 功能:标记当前分析会话完成,为下一次增量分析建立新的基准点。
  • 参数
    • notes(可选):为本次分析添加备注信息。
  • 用途:维护分析状态,是增量工作流的关键一步。

get_analysis_stats

  • 功能:获取整个分析系统的统计概览。
  • 输出:会话ID、最后分析时间、处理的请求/响应数量、覆盖的域名数量等。
  • 用途:监控分析进度和系统覆盖范围。

reset_analysis_state

  • 功能:将分析状态完全重置到初始状态。
  • 参数
    • confirm(必需):确认重置操作,必须设置为 true
  • 用途:当需要重新开始一轮全新的全量分析时使用。

技术架构

协议支持

工具基于 Model Context Protocol (2024-11-05 版本) 实现,确保了与 Claude、Cursor 等主流支持 MCP 的 AI 助手的良好兼容性。

数据持久化

分析状态(如最后分析时间戳)以 JSON 格式保存在用户主目录下的 ~/.hae-mcp-state.json 文件中,保证了即使重启工具,工作进度也不会丢失。

代理架构

采用轻量级的 stdio 代理设计。MCP 代理进程通过 HTTP 接口与运行在 Burp Suite 内的 HaE 扩展通信,这种设计降低了模块间的耦合度,使得架构更清晰、更稳定。

应用场景

  • 渗透测试:在测试过程中,让 AI 助手作为你的副驾驶,自动复核所有拦截流量中的敏感数据泄露,提高测试效率和深度。
  • 安全审计:对 Web 应用进行系统性审计时,快速梳理和验证所有接口中敏感信息的处理方式是否符合安全规范。
  • 持续监控:在生产环境或测试环境的持续监控中,定期运行增量分析,第一时间发现新引入的敏感信息泄露风险。
  • 合规检查:辅助检查应用是否存在违反 GDPR、个人信息保护法等法规的敏感数据明文传输或不当泄露行为。

系统要求

软件依赖

  • Burp Suite Professional 或 Community Edition
  • Java Runtime Environment (JRE) 17 或更高版本
  • 支持 MCP 协议的 AI 助手(如 Claude Desktop, Cursor 等)

硬件要求

  • 最低内存:512MB 可用内存
  • 存储空间:50MB 可用磁盘空间
  • 网络:需要正常的 HTTP/HTTPS 通信能力

使用方法

环境准备

构建工具

首先,你需要从源码构建必要的 JAR 文件。在项目根目录下执行:

cd src/HaENet
export JAVA_HOME=/path/to/java17  # 请替换为你的Java 17主目录
./gradlew buildAll

构建成功后,你会在 build/libs/ 目录下得到两个关键文件:

  • HaE.jar: Burp Suite 扩展文件
  • hae-mcp-proxy.jar: MCP 协议代理程序

Burp Suite 配置

  1. 启动你的 Burp Suite (Professional 或 Community 版均可)。
  2. 导航到 Extender 标签页下的 Extensions
  3. 点击 Add 按钮,在弹出的文件选择器中,找到并选择刚才生成的 build/libs/HaE.jar 文件。
  4. 加载成功后,Burp 主界面会出现一个新的 HaE 标签页。
  5. 切换到 HaE 标签页下的 MCP 子标签。
  6. 设置一个监听端口(默认及建议为 9891)。
  7. 点击 Start 按钮,启动 MCP 服务器。

AI 助手配置

你需要配置你的 AI 助手,让它知道如何连接我们刚刚启动的 MCP 服务器。

对于 Claude Desktop
你可以在其配置文件中添加设置。在项目根目录创建(或修改)文件 .claude/settings/mcp.json,内容如下:

{
  "mcpServers": {
    "hae": {
      "command": "/path/to/java17/bin/java",
      "args": [
        "-jar",
        "/absolute/path/to/hae-mcp-proxy.jar",
        "--url",
        "http://127.0.0.1:9891/message"
      ]
    }
  }
}

请注意

  • 请将 /path/to/java17/bin/java/absolute/path/to/hae-mcp-proxy.jar 替换为你机器上的绝对路径
  • 端口 9891 需与 Burp Suite 中 MCP 服务器设置的端口保持一致。
  • 配置完成后,需要重启 Claude Desktop 应用。

基础操作流程

数据收集阶段

  1. 在 Burp Suite 中配置好代理(例如 127.0.0.1:8080)。
  2. 让你的浏览器或目标应用流量经过 Burp Suite 代理。
  3. 正常访问或测试你的目标 Web 应用,确保流量被 Burp 成功捕获。
  4. 此时,你可以先在 HaE 标签页的 Databoard 子标签中,确认敏感信息已被成功提取出来。

初始分析(建立基线)

一切就绪后,你就可以在 AI 助手的对话窗口中,开始使用自然语言指挥它工作了。首次全量分析推荐流程:

  1. 查看系统状态

    查看分析统计信息
  2. 获取目标域名概览

    列出所有有敏感信息的域名
  3. 执行首次全量分析 (使用 include_all 参数)

    获取新发现的敏感信息,包含所有历史数据
  4. 建立分析基线 (标记本次分析完成,后续将基于此进行增量分析)

    标记分析完成,备注:建立初始分析基线

增量分析工作流

在日常或后续的测试中,你可以采用更高效的增量分析流程:

  1. 检查是否有新数据

    查看分析统计信息
  2. 只分析新增的敏感信息

    只分析新增的敏感信息
  3. 对高风险目标进行深度下钻

    查看 example.com 域名的敏感信息详情
  4. 获取详细上下文进行研判

    获取 example.com 域名的完整请求响应信息
  5. 完成本轮分析,更新状态

    标记分析完成,备注:完成第X轮增量分析

高级使用场景

你可以组合工具,实现更复杂的分析任务,充分释放 AI 的分析能力:

  • 批量域名分析

    分析所有域名的敏感信息,按风险等级分类整理,并生成一份摘要报告。
  • 敏感信息验证

    验证在 api.example.com 中发现的 API 密钥是否为真实有效的凭据。
  • 关联性分析

    检查 user.example.com 域名中的用户名和密码是否在同一请求或响应中出现,判断是否为凭证对泄露。
  • 合规性检查

    检查所有域名中是否包含电子邮件、手机号等个人身份信息(PII),并评估其传输是否加密,是否符合隐私保护要求。

状态管理与故障排除

状态管理

分析状态文件位于 ~/.hae-mcp-state.json。你可以手动备份、恢复或删除它(删除等价于重置状态)。

若需通过工具重置状态,请确认后执行:

重置分析状态,确认重新开始分析

故障排除

  • 连接问题:首先确认 Burp Suite 中的 MCP 服务器是否显示为“运行中”。可以通过一个简单的命令测试连通性:

    curl http://127.0.0.1:9891/health

    正常应返回包含 "status":"ok" 的 JSON 信息。

  • 数据不同步:如果发现 AI 助手看到的数据与 Burp Suite 中 HaE 面板显示的不一致,可以尝试以下步骤:

    1. 在 Burp 的 HaE MCP 标签页点击 Stop,然后重新 Start 服务器。
    2. 在 Burp Extender 标签页,临时禁用再重新启用 HaE 扩展。
    3. 重启你的 AI 助手应用。

项目地址

HaE MCP 是一个开源项目,你可以在 GitHub 上找到其源码、参与讨论或报告问题:
https://github.com/Zacarx/HaE_mcp

通过将 Burp Suite 强大的流量捕获与敏感信息提取能力,与 AI 助手的自动化分析和推理能力相结合,HaE MCP 为我们提供了一种全新的安全渗透测试工作流。它并不能替代安全工程师的判断,但却是一个不知疲倦的、高效的“初级分析师”,能帮你从重复的体力劳动中解放出来,更专注于逻辑复杂的高阶安全分析与漏洞挖掘。希望这份技术文档能帮助你在云栈社区和更多场景中,更高效地开展安全相关工作。




上一篇:BitLocker加密被破解?FBI通过微软云端恢复密钥解锁笔记本真相
下一篇:Linux UVC驱动优化:如何让单个UVC设备仅生成一个/dev/video节点
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-27 17:07 , Processed in 0.313524 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表