paranoid:对自己的应用做真实渗透测试
应用在被证明安全之前一律视为有罪——/hack-me 攻破你本地运行的应用,用真实请求证明漏洞,修补并复验。
- Star 数
- ★ 48
- 最近更新
- 12 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 41/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 开始前需要
- 典型场景
- 正在用 Claude Code、Codex 或 Cursor 做 Vibe Coding 的开发者,应用已在本地跑起来,想让 Agent 真正攻击一遍再交付。
- 主要局限
- 仍处于 v0.1 活跃开发阶段,能力边界由当前版本的 24 类漏洞与 12 种框架决定,未覆盖的情况没有保证。
- 源码审查
- 41/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
paranoid 是一个 Markdown 形式的 Agent Skill,核心命令是 /hack-me。它在你授权的前提下,针对本地正在运行的应用执行「发现 → 证明 → 修补 → 复验」四步循环:先对运行中的应用做探测,再用一条真实 HTTP 请求证明漏洞成立,随后做最小化的行为保持型修复,最后重放同一条利用请求确认其失效,并扫描未被探测到的路径上是否存在同类模式。它内置 12 种技术栈(Next.js、FastAPI、Express、Django、Rails、Flask、Spring Boot、Laravel、Phoenix、Go、NestJS、ASP.NET Core)的路由与鉴权定位参考,以及一份 24 类漏洞的可复现基准测试框架。仓库还包含配套的编码期参考文档与 7 项提交前检查清单。整个工具无依赖、无网络调用、无遥测,安装方式是在 Claude Code 中通过 plugin marketplace 安装,或通过 npx skills add 安装。
执行 /hack-me 时,它先映射你正在运行的应用并挑选其暴露的风险类别,然后对每一类发起一条只在漏洞真实存在时才会成功的构造请求。每个发现都用实际的请求/响应作为证据,不以推理代替验证。确认后它修补根因,采用最小且不改变行为的修复方式,随后重放同一条利用请求复验——只有该请求失败,发现才算关闭。最后它还会扫描未被探测到的路径(同级分支、同一资源的不同方法、/v1 副本、触达同一 sink 的定时任务),排查同一漏洞类别是否仍然存在。它附带技能参考文档:vibe-top-10、auth-access、secrets-config、injection、apis-webhooks、frameworks,以及一份 7 点 pre-commit 检查清单。仓库还包含 benchmark/ 基准框架,包含 24 个漏洞类别,每类配中性规格说明、功能检查与真实利用检查。
- 正在用 Claude Code、Codex 或 Cursor 做 Vibe Coding 的开发者,应用已在本地跑起来,想让 Agent 真正攻击一遍再交付。
- 后端工程师接手一个自己没写过的 API(例如 OWASP VAmPI 这类第三方靶场),只有 URL,想知道存在哪些可被利用的漏洞。
- 团队在合并前需要一次面向运行中应用的黑盒检查,而不是静态审阅代码,希望每条结论都有可复现的请求证据。
- 安全工程师要验证某个修复是否真的封堵了某个利用路径,而不是只看代码改动,需要一键重放原利用请求。
- 教学或演练场景:在本地靶场(DVWA、VulnShop、ledgerlite)上演示越权、SQLi、批量赋值等漏洞如何被证明与修复。
- 使用 12 种受支持技术栈之一的团队,希望 Agent 尽快定位路由与鉴权代码所在位置,缩短排查时间。
如何安装或部署这个 Agent?
Claude Code 用户通过 plugin marketplace 安装,会同时获得技能与渗透循环:
/plugin marketplace add kulchankas/paranoid
/plugin install paranoid@paranoidCodex、Cursor 或任何能读取 skills 的 Agent:
npx skills add kulchankas/paranoid/skills/paranoid然后还需要把 commands/hack-me.md 复制到你的 Agent 的命令目录(例如 .claude/commands/),这样命令才是普通的 /hack-me。该工具本身无依赖、无网络调用、无遥测,就是 Agent 读取的 Markdown。
如何使用这个 Agent?
先把你自己的应用在本地跑起来,然后用 /hack-me 指向它。以 Claude Code 为例,plugin 技能带命名空间,因此是 /paranoid:hack-me:
python3 my_app.py # your app, running locally
/paranoid:hack-me # → http://localhost:<port>仓库自带的示例应用可以这样复现:
python3 examples/ledgerlite/app.py跑完后查看报告,例如 examples/ledgerlite/HACKME_REPORT.md、examples/vampi/HACKME_REPORT.md、examples/vulnshop/HACKME_REPORT.md,里面包含确切的请求与修复差异。使用范围仅限获得授权的目标、仅限 localhost、非破坏性证明。
这个 Agent 有哪些优点和局限?
- 以真实 HTTP 请求作为漏洞证明,未复现的发现不会被称为 bug,修复未让原利用失效就不算关闭。
- 修补后增加了第 6 步「扫描同类模式」:DVWA 演练中曾出现同一文件另一数据库后端分支仍存在相同 SQL 注入的情况,因此该步骤被显式加入流程。
- 发布了可复现的 24 类漏洞基准框架,并如实公布了负面结果:在 22 类盲测任务上,使用技能前后的利用率为 0% 对 0%,即对孤立函数而言安全建议没有增益。
- 包含第三方独立目标的实证:OWASP VAmPI 上发现、修复并复验 6 个真实漏洞,其自带 secure mode 只关闭了其中 4 个,关键密码泄露仍存在。
- 覆盖 12 种技术栈的路由与鉴权定位参考(Next.js、FastAPI、Express、Django、Rails、Flask、Spring Boot、Laravel、Phoenix、Go、NestJS、ASP.NET Core),减少跨栈排查成本。
- 仍处于 v0.1 活跃开发阶段,能力边界由当前版本的 24 类漏洞与 12 种框架决定,未覆盖的情况没有保证。
- 仅支持本地已运行的应用、仅限 localhost 且需授权,无法用于线上或第三方系统,使用范围受到明确限制。
- 输出质量依赖宿主 Agent 与模型,仓库未提供脱离 Agent 的独立 CLI 或可单独运行的服务端组件。
- 对无法用请求触达但被同模式扫描修复的问题,只能标记为「same pattern, fixed, not separately proven」,不能算作已复验。
- 仓库自述仍未完成「完全不发布任何漏洞清单的目标」的验证,VulnShop 的上游 README 依然列出了漏洞类别。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| paranoid:对自己的应用做真实渗透测试 当前 | 41 · 缺口较多 | — | ★ 48 | 12 天前 | Python | Codex · Claude Code |
| JoySafeter | 59 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 313 | 5 个月前 | Python | — |
| OpenClaw 大师技能库 | 12 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 2.2k | 2 个月前 | Python | — |
| CyberStrike — 开源AI渗透测试与红队平台 | 43 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.1k | 今天 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 与 SECURITY.md 明确声明仅限本地、经授权的自有应用,非破坏性验证,并声明会拒绝越界请求;CI 工作流使用 contents: read 最小权限、actions 固定到 commit SHA、persist-credentials: false,这些是可见的加分项。但仓库中未提供 skills/paranoid 的实际指令文件、commands/hack-me.md 或 references 内容,因此无法核实“拒绝越界”“非破坏性”“补丁最小化”等承诺是否在指令层真正实现;补丁会直接修改用户代码,却未见任何回滚/备份/差异确认机制;数据流与敏感数据处理(如证明过程中抓取到的密码、token)没有说明如何处置。故各项仅给 1,属于“有声明但缺少可核验实现”。
README 描述了 find→prove→patch→re-verify→sweep 的闭环,并诚实披露了 DVWA 运行中 sweep 漏掉同类注入的失败案例,自洽性有正面证据;但技能本体文件缺失,无法确认流程描述与实现一致。依赖方面声称“无依赖、无网络调用”,但 benchmark/harness/run.py 会导入并执行被指向的解决方案代码,SECURITY.md 也承认这一点,属于未在 README 主叙述中充分提示的执行风险。失败信息与错误处理路径在可见文件中没有体现。故均给 1。
受众与场景描述清晰:面向使用 Claude Code / Codex / Cursor 的开发者,覆盖 12 种框架、24 类漏洞,并给出三类独立目标(VAmPI、DVWA、VulnShop)的适用性说明,这部分达到 2。能力边界也有明确声明(仅本地、仅自有应用、不针对第三方、不生成恶意软件),给 2。但触发精度只能依赖 README 中的 /paranoid:hack-me 与 /hack-me 示例,commands/hack-me.md 未提供,无法判断触发条件、参数与前置检查;环境适配(端口探测、应用启动方式、非 HTTP 场景)也缺少可核验细节,故各给 1。
信息架构良好:README 结构完整,含 Quickstart、Receipts、Scope & ethics、Roadmap、Contributing、License,并链接到 references、checklists、benchmark、examples 等子目录,给 2。安装说明具体(plugin marketplace 与 npx skills 两条路径),给 2。示例与 FAQ 层面有大量表格化案例与复现命令,给 2。已知局限写得诚实(v0.1、两个任务类尚未跑模型、VulnShop 上游 README 已列出漏洞类别、sweep 曾漏检),给 2。LICENSE 为完整 MIT 文本,给 2。但命名稳定性无法评估(技能文件缺失,无法判断命令/路径是否稳定);版本管理仅有“v0.1”一句,无 CHANGELOG;维护责任仅指向 issues/PR 与 Security Advisory,无维护者承诺或响应时限,故各给 1。
输出可用性方面,README 展示了报告样例与修复前后状态表,但真正的 HACKME_REPORT.md 与技能输出模板未在证据中,无法确认输出格式是否可直接用于工程流程,给 1。边际价值有罕见的诚实证据:作者公开了基准测试的负面结果(对能力较强的模型,安全建议在孤立函数上零增益),并据此转向运行时攻击,这提升了可信度;但该结论本身也说明在部分场景下边际价值有限,且缺少独立第三方复现,给 1。成本收益方面,声称无依赖、纯 Markdown,成本低;但补丁会改动用户代码、需要本地运行应用并可能触发破坏性请求,收益与风险权衡未量化,给 1。
README 中的关键主张(VAmPI 6 个漏洞、ledgerlite 4 个、VulnShop 5 个、基准 22/24 类)都指向仓库内文件,具备可追溯的意图,但被引用的 examples/*/HACKME_REPORT.md、benchmark/ 结果与技能文件均未出现在本次证据中,无法交叉核对,故 claim_traceability 与 cross_source_corroboration 各给 1。事实与推断的分离做得较好:作者明确区分“已证明”“同一模式已修复但未单独证明”“尚未跑模型的任务类”,这是加分点,但同样缺少可核验的原始记录支撑,故仍给 1。
- 本次证据仅含 README、LICENSE、SECURITY.md 与一个 CI 工作流;技能本体(skills/paranoid)、commands/hack-me.md、references、examples 报告与 benchmark 结果均未提供,所有关于实际行为的主张都无法在静态层面核实。
- 该工具会直接修改用户应用代码以修复漏洞,但可见材料未描述备份、差异确认或回滚机制;在真实项目上使用前应确保版本控制干净并人工审阅每一处补丁。
- README 声称“无依赖、无网络调用”,但 benchmark/harness/run.py 会导入并执行被指向的解决方案代码(SECURITY.md 已承认);不要对不受信任的代码运行该 harness。
- 证明过程会抓取并展示真实凭据(如密码转储、会话令牌),材料未说明这些敏感数据如何存储或清理,需自行控制日志与报告留存。
- 发布者身份未经 FollowAgents 验证,安装前应自行审查技能指令内容,尤其是其“拒绝越界请求”的承诺是否在指令层真正实现。