mcpField
H
hack

hack

github.com/yaklang安全2.6k4.4k 次安装6 周前更新
代码仓库

关于 hack

hack 是面向安全 Agent 的技能,用于经授权的漏洞赏金、Web 和 API 渗透测试、代码审计、源码泄露调查及蓝队工作。它先检查授权与范围,再根据观察到的行为将调查导向相应技术。

主要功能

  1. 01授权、角色与范围检查
  2. 02按应用行为路由调查
  3. 03依据影响和证据安排优先级
  4. 04区分红队与蓝队工作流
  5. 05代码审计和源码泄露指引

适用场景

  1. 01规划经授权的 Web 或 API 渗透测试
  2. 02告警分诊与事件响应
  3. 03审计代码或调查源码泄露

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yaklang/hack-skills --skill hack

安装后在 Claude Code 中输入/hack确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BLUE_TEAM.md
CODE_AUDIT.md
EVIDENCE_REPORT.md
RED_TEAM.md
SOURCE_LEAK.md
TEST_MATRIX.md

详细介绍

HACKING SKILLS / HackSkills

概述

这是经过授权的漏洞赏金、Web/API 安全测试、渗透测试、代码审计、源码泄露调查,以及(蓝队任务时)SOC / 检测 / IR 的主质量门禁与技术路由器。

它不会取代专门技术,而是确保 Agent:

  1. 通过启动门禁(授权、角色、范围、成功标准)
  2. 将精力投入能够触及真实控制的路径
  3. 根据观察到的行为,路由到正确的类别 / 深入主题技能
  4. 优先采用结构化方法,而非依赖基线模型记忆和扫描器输出

本文件是质量门禁,不是能力上限。只要有现场证据,本文件未列出的攻击面也仍可测试。

本文件不是漏洞利用手册。武器化细节位于深入主题技能中,且仅用于经授权的目标。

按需加载:

0. 任务启动门禁

按顺序完成。任何一项缺失都应停止:

  1. 授权:书面授权、RoE、范围、禁止事项、联系人、紧急停止机制。没有授权 → 拒绝。
  2. 角色:红队测试 / 代码审计 / 源码泄露 / 中间件审计 / 蓝队分诊 / 检测工程 / IR。允许并行工作;但只能有一个主要角色。
  3. 范围模式:
    • 用户提供了固定 URL / 系统 / 仓库 → 锁定范围:跟进同一产品的主机、网关、API 域名,以及业务流程自然暴露的同主机额外路径。不要扫描无关的品牌线。
    • 用户提供了组织名称并要求查找边界资产 → 探索范围:先完成当前资产集群,再开始下一个。不要浅尝辄止地搜索大量种子。
  4. 成功标准:明确本任务的“完成”意味着什么。扫描器运行完毕、报告已生成和工单已关闭都不算成功。
  5. 破坏边界:列出绝不能执行的操作。
  6. 测试前的工作目录:assets/(URL、API 清单、脚本摘录)、evidence/(请求、差异、截图)、reports/(仅已确认的问题)。
  7. 问题:如果范围不清楚,只询问 1–3 个技术阻塞点(目标、技术栈、是否有账户)。不要用“要不要继续”来停止工作。缺少第二个账户时 → 根据可测试内容调整测试范围;不要空等账户 B。

不要将测试扩展到未经授权的资产。

1. 严格约束

  • 不得超出范围。发现超范围线索时,记录下来,然后请求扩大范围。不得擅自扩大范围。
  • 不得进行破坏性测试或破坏性遏制:删除他人的业务数据、执行 DROP/TRUNCATE、大规模更改配置、实施加密或类似勒索的操作、发动无上限的 DoS、清除日志、清除镜像。
  • 用于证明访问权限的写操作:只能创建可识别的测试对象,并立即删除该对象。不得更改他人的订单、地址、密码、角色或绑定。不得收费、清空库存或锁定账户。
  • 不得注销、撤销或停用用户提供的会话。如果必须更改密码或绑定才能证明影响,请立即恢复;如果无法恢复,则停止操作并作出回应,不得导致账户无法使用。
  • 不得通过造成不可逆损害来证明漏洞。优先采用只读、复制或低权限的证明方式。
  • 证据必须可读且可复现。没有复现步骤的结论只是一个假设。
  • 不得伪造 PoC、日志或漏洞利用链。如果路径、文件、查询和截图彼此不符,应降低结论的置信度或撤回结论。
  • 复制的机密信息在通过有效性验证前都只是线索:生产环境接受真实值(拒绝假值),且一次只读调用能够返回身份信息或对象列表。
  • 通过会话发现的问题不属于“匿名未授权”。只有在漏洞利用过程中没有登录状态,才算匿名。
  • 对于内部用户,在时间线证实之前,先假定是误报或操作失误。
  • 如果安全控制妨碍实际工作,就会有人绕过它。修复方案必须包含可用且安全的途径。

2. 角色路由

用户意图首选流程加载
渗透测试 / 红队 / 立足点 / SRC§§3–5RED_TEAM.md、TEST_MATRIX.md
代码审计 / 白盒 / 查找危险点§3 R6CODE_AUDIT.md
源代码泄露 / Git 泄露 / 机密信息泄露§3 R5SOURCE_LEAK.md、insecure-source-code-management
中间件 / 网关 / 组件审计§3 R7RED_TEAM.md 中间件部分、unauthorized-access-common-services
告警分流 / SOC / 威胁搜寻蓝队质量门禁BLUE_TEAM.md
检测规则蓝队 B6BLUE_TEAM.md、EVIDENCE_REPORT.md 中的模板
IR / 取证 / 遏制蓝队 B7BLUE_TEAM.md、memory-forensics-volatility、traffic-analysis-pcap
撰写报告§6EVIDENCE_REPORT.md

当任务同时涉及红队和蓝队时,切换角色前先冻结当前阶段的证据。

3. 操作模型

步骤 1:从应用绘制攻击面

拿到 URL 或应用后,先绘制攻击面:attack-surface-mapping。包括画像、业务面、JS/流量清单(不仅是路径,还要包括键)、响应类别和对象图。不得在尚无画像时扫描。不得一开始就进行目录爆破或载荷喷洒。

步骤 2:根据观察到的行为进行分类
信号优先方向加载
输入反映到 HTML / JS 中XSS / SSTIinjection-checking
服务器获取 URL / 主机名SSRFssrf-server-side-request-forgery
接受 XML / Office / SVGXXExxe-xml-external-entity
路径、文件名或下载可控路径遍历 / LFIpath-traversal-lfi
API 中存在大量对象 IDIDOR / BOLA / BFLAauth-sec,idor-broken-object-authorization
登录、重置、2FA、会话认证绕过 / JWT / OAuthauth-sec
涉及资金、优惠券、库存、审批的多步操作业务逻辑 / 竞态business-logic-vuln
MongoDB / JSON 查询语法NoSQLnosql-injection
CLI 工具、图像处理、导入器命令注入cmdi-command-injection
HTTP 解析 / 前后端报文边界不一致请求走私request-smuggling
Node JSON / 可控的 __proto__原型污染prototype-pollution
PHP 弱比较 / 0e 哈希类型混淆type-juggling
重复参数名 / WAF 与应用解析不一致HPPhttp-parameter-pollution
一次性优惠券 / 库存 / 重置 / 邀请竞态race-condition
XML/XSLT 模板XSLTxslt-injection
.git / .svn / .env / 备份 / 公共存储桶源码泄露SOURCE_LEAK.md
CSV/Excel 导出CSV 公式注入csv-formula-injection
WebSocket 升级WebSocketwebsocket-security
内部软件包名称依赖混淆dependency-confusion
业务 API 返回 401/403路径 / 方法 / 请求头绕过401-403-bypass-techniques
公开的中间件管理界面 / 默认端口默认凭据、调试功能、版本缺陷unauthorized-access-common-services
配有命令工具的聊天助手检查工具是否真的执行命令llm-prompt-injection
文件上传 / 预览 / 转换上传链——不要只检查存储和下载upload-insecure-files
GraphQL / OAuth JWT / 网关匹配的专项检查;勾选完成或填写 N/Aapi-sec,jwt-oauth-token-attacks

开始检查某一类并不意味着只检查这一类。请继续检查矩阵中的其余项目。

第 3 步:按以下顺序投入精力

完整的通过/失败规则:TEST_MATRIX.md。默认顺序:

  1. 未经身份验证即可访问其他用户、租户或主体
  2. 接管身份验证(签发会话、重置、重新绑定、交换票据)——会话内操作或更改密码也算
  3. 交换对象标识符(任何字段名:id / userId / tenantId / fileKey / openid / 密文 PK)
  4. 在已有会话的情况下遍历对象图:列表 → 详情 → 附件/导出/审批,然后检查写入操作和业务逻辑
  5. 仅在会显示差异的界面上检查注入/SSRF/XSS/命令或模板执行
  6. 页面和脚本中的盐值、硬编码密钥、演示账号

不要在攻击链只完成一半时就停下。 上传后能存储、OTP 能发送,或只是复制到一段密钥字符串,都不算完成。确认某个对象存在中危问题后,应继续追踪其是否能导致写入/跨用户访问/接管,再切换目标。

如果页面完整显示“请登录”,且没有业务字段,就不属于注入面。空列表、错误和超时都不等于“请登录”。

完成当前资产集群后,再扩大范围。

R1. 关注影响,而非合规

优先寻找能最快取得高影响控制权的路径。对每个候选问题,都要问:攻击者现在能否伤害真实用户或系统?报告正文应描述攻击链;CVSS 只是附录。如果问题可触及平台管理员、其他租户或其他用户,那么即使租户管理员权限在角色内“被允许”,仍然属于安全发现。按照 RED_TEAM.md 中的影响等级排列发现;第 7 层(纯合规问题)仅放入附录。

R5. 源码泄露:把线索追查到底

不要止步于“.git 暴露”或“仓库是公开的”。参阅 SOURCE_LEAK.md:获取完整目录树及历史记录 → 清点密钥和隐藏攻击面 → 使用最少的只读调用验证密钥是否仍然有效 → 将泄露内容视为新的攻击面清单。

R6. 代码审计:从汇到源,或从源向前追踪

参阅 CODE_AUDIT.md。如果没有完整的数据流路径,或已证明净化措施有效,就不要将问题作为已确认问题提交。

R7. 中间件审计必须以文档为依据

查阅对应主版本的官方文档,制定检查清单,并为每项留下记录。没有对照表的中间件结论尚未完成。

蓝队质量门槛(主要角色为蓝队时)

成功的标志是缩短驻留时间,而非提高结案率。详情见:BLUE_TEAM.md。

  • B1. 首先判断现在是否会导致数据丢失、权限提升或业务受损。一条高置信度事件记录加上时间线,胜过一百条缺乏上下文的告警。
  • B2. 告警疲劳是主要风险。告警给人工处理前应先补充上下文;每条规则都必须有负责人、误报特征、回溯窗口和退役条件。静默六个月 → 先检查日志来源。
  • B3. 遏制措施默认应可逆。先保留证据,再遏制,最后清除。清除日志不属于遏制。
  • B4. 结论必须包含可复现的查询、时区、资产/用户/源 IP、原始摘录以及标签(TP / benign TP / FP / insufficient evidence)。
  • B5. 在时间窗口内扩展检查同一用户、主机、IP、令牌和哈希。进入案件的情报、IOC 和泄露样本,按源代码泄露严重级别处理。
  • B6. 检测工程应从必须捕获的行为反向推导。先制定严格的高置信度规则。质量门槛见 BLUE_TEAM.md。
  • B7. 事件响应应遵循已批准的操作手册。新日志来源在规则上线前,必须具备字段字典、覆盖范围图、已知误报、负责人和退役门槛。

4. 核心技能图谱

如果有完整仓库,优先结合使用这些技能。之前单独拆分的 mini 技能(payload-selection、brute-selection)已合并回各自的主技能。

5. 高价值专家直觉

基准模型容易遗漏、但在实际漏洞赏金工作中经常遇到的要点:

  1. 同一过滤器会在多个页面重复使用:通常一种绕过方法可以移植到其他页面。
  2. 参数名称本身就是攻击面:WAF 通常会检查值,而非名称。
  3. 二阶问题很常见:存储时安全,不代表之后读入危险上下文时仍然安全。
  4. BOLA 的含义是“已通过身份验证但未获授权”:在切换账户 A/B 的同时重放请求。
  5. 较早的 API 版本可能缺少安全补丁:修复 v2 并不意味着 v1 已退役。
  6. 业务逻辑漏洞往往影响最大:扫描器容易漏掉,而且漏洞会长期存在。
  7. 竞态条件:优先测试一次性操作:兑换、领取、重置、邀请、试用、库存扣减。
  8. JWT:先检查密钥和算法上下文:alg、kid、JWKS、密钥来源——不要盲目发送大量请求。

6. 输出规范

默认按受众分为三个层次:

  1. 决策:发生了什么、影响是什么、现在该做什么(一页)
  2. 技术:攻击链或事件时间线、复现步骤或查询、证据
  3. 改进:修复 / 检测 / 日志缺口 / 流程缺口,并为每项指定负责人和验证方式

使用 EVIDENCE_REPORT.md 中的模板。中等及以上严重程度:立即写入磁盘。严重问题:立即通知授权联系人。

确认发现前,需通过以下两个关卡:

  • 会话归属关卡:如果导致问题的请求携带了会话信息,应写为 IDOR/身份验证问题,而非“匿名未授权访问”。
  • 密钥有效性关卡:伪造的密钥遭拒 + 真实密钥获接受,且一次只读调用能返回身份信息或列表。否则只能算线索。

7. 反模式

  • 将扫描器输出当作渗透测试报告;用 CVSS 代替业务影响;为凑数量而提交无法利用的理论问题
  • 将 .git 或秘密字符串仅报告为信息泄露;代码审计只列出危险函数名,却不追踪 source→sink
  • 凭记忆得出中间件结论,不与官方文档对照
  • 未阅读锁定策略就喷洒密码;每条路径只测一个引号就称“注入测试完成”
  • 在上传文件存储、发送 OTP 或复制出秘密后就停止
  • 将会话问题写成匿名未授权访问
  • 使用空白画像进行扫描,或运行只提取了路径的脚本
  • 将整张矩阵一股脑塞进同一个“请登录”响应
  • 用关闭率衡量蓝队;将证据不足的告警标记为误报后便遗忘;上线从未用真实日志测试过的规则;在遏制期间抹掉唯一的证据
  • 设计无人能用的“安全”流程,迫使用户转向影子 IT
  • 假装未列出的字段攻击面不存在
  • 将本文件未提及的任何事项都视为禁止事项

建议提示词

  • “我只有这个 URL;请在测试前从应用入手梳理攻击面。”
  • “请使用漏洞赏金方法,为这个目标规划测试路线,并优先考虑影响。”
  • “这是一个 REST API;请优先检查 BOLA、BFLA、批量赋值和 JWT。”
  • “这个参数会触发服务器端请求;请列出 SSRF 验证点。”
  • “支付 / 优惠券 / 库存流程:优先检查业务逻辑和竞争条件。”
  • “我只看到登录和密码重置:检查认证绕过 + OAuth/JWT + CSRF。”
  • “请审计这个代码库中的 sink-to-source;没有污点路径就不要报告问题。”
  • “.git 已暴露:挖掘历史记录并在线验证秘密,然后将其视为新的攻击面清单。”

安装说明

推荐技能名称:hack

搜索关键词:HackSkills、HACKING SKILLS、漏洞赏金、安全工程师运维

指南

  • 根据目标类型和观察到的行为规划测试路线,不要随机枚举载荷。
  • 载荷:在匹配的深度技能中使用首轮样本;不要再添加一层中间路由。
  • 优先使用可复用的过滤器、共享组件和跨页面复现。
  • 深入利用前,先确认认证、授权和版本边界。
  • 确保流程可解释、可审计且可复现。
  • 掌握完整代码库上下文后,回到主题文档查看利用细节。

评论

支持 Markdown