关于 hack
hack 是面向安全 Agent 的技能,用于经授权的漏洞赏金、Web 和 API 渗透测试、代码审计、源码泄露调查及蓝队工作。它先检查授权与范围,再根据观察到的行为将调查导向相应技术。
主要功能
- 01授权、角色与范围检查
- 02按应用行为路由调查
- 03依据影响和证据安排优先级
- 04区分红队与蓝队工作流
- 05代码审计和源码泄露指引
适用场景
- 01规划经授权的 Web 或 API 渗透测试
- 02告警分诊与事件响应
- 03审计代码或调查源码泄露
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yaklang/ hack-skills --skill hack安装后在 Claude Code 中输入/hack确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BLUE_TEAM.mdCODE_AUDIT.mdEVIDENCE_REPORT.mdRED_TEAM.mdSOURCE_LEAK.mdTEST_MATRIX.md详细介绍
HACKING SKILLS / HackSkills
概述
这是经过授权的漏洞赏金、Web/API 安全测试、渗透测试、代码审计、源码泄露调查,以及(蓝队任务时)SOC / 检测 / IR 的主质量门禁与技术路由器。
它不会取代专门技术,而是确保 Agent:
- 通过启动门禁(授权、角色、范围、成功标准)
- 将精力投入能够触及真实控制的路径
- 根据观察到的行为,路由到正确的类别 / 深入主题技能
- 优先采用结构化方法,而非依赖基线模型记忆和扫描器输出
本文件是质量门禁,不是能力上限。只要有现场证据,本文件未列出的攻击面也仍可测试。
本文件不是漏洞利用手册。武器化细节位于深入主题技能中,且仅用于经授权的目标。
按需加载:
- 红队执行 → RED_TEAM.md
- 测试矩阵与投入 → TEST_MATRIX.md
- 蓝队执行 → BLUE_TEAM.md
- 代码审计 → CODE_AUDIT.md
- 源码泄露 → SOURCE_LEAK.md
- 证据与报告 → EVIDENCE_REPORT.md
0. 任务启动门禁
按顺序完成。任何一项缺失都应停止:
- 授权:书面授权、RoE、范围、禁止事项、联系人、紧急停止机制。没有授权 → 拒绝。
- 角色:红队测试 / 代码审计 / 源码泄露 / 中间件审计 / 蓝队分诊 / 检测工程 / IR。允许并行工作;但只能有一个主要角色。
- 范围模式:
- 用户提供了固定 URL / 系统 / 仓库 → 锁定范围:跟进同一产品的主机、网关、API 域名,以及业务流程自然暴露的同主机额外路径。不要扫描无关的品牌线。
- 用户提供了组织名称并要求查找边界资产 → 探索范围:先完成当前资产集群,再开始下一个。不要浅尝辄止地搜索大量种子。
- 成功标准:明确本任务的“完成”意味着什么。扫描器运行完毕、报告已生成和工单已关闭都不算成功。
- 破坏边界:列出绝不能执行的操作。
- 测试前的工作目录:
assets/(URL、API 清单、脚本摘录)、evidence/(请求、差异、截图)、reports/(仅已确认的问题)。 - 问题:如果范围不清楚,只询问 1–3 个技术阻塞点(目标、技术栈、是否有账户)。不要用“要不要继续”来停止工作。缺少第二个账户时 → 根据可测试内容调整测试范围;不要空等账户 B。
不要将测试扩展到未经授权的资产。
1. 严格约束
- 不得超出范围。发现超范围线索时,记录下来,然后请求扩大范围。不得擅自扩大范围。
- 不得进行破坏性测试或破坏性遏制:删除他人的业务数据、执行 DROP/TRUNCATE、大规模更改配置、实施加密或类似勒索的操作、发动无上限的 DoS、清除日志、清除镜像。
- 用于证明访问权限的写操作:只能创建可识别的测试对象,并立即删除该对象。不得更改他人的订单、地址、密码、角色或绑定。不得收费、清空库存或锁定账户。
- 不得注销、撤销或停用用户提供的会话。如果必须更改密码或绑定才能证明影响,请立即恢复;如果无法恢复,则停止操作并作出回应,不得导致账户无法使用。
- 不得通过造成不可逆损害来证明漏洞。优先采用只读、复制或低权限的证明方式。
- 证据必须可读且可复现。没有复现步骤的结论只是一个假设。
- 不得伪造 PoC、日志或漏洞利用链。如果路径、文件、查询和截图彼此不符,应降低结论的置信度或撤回结论。
- 复制的机密信息在通过有效性验证前都只是线索:生产环境接受真实值(拒绝假值),且一次只读调用能够返回身份信息或对象列表。
- 通过会话发现的问题不属于“匿名未授权”。只有在漏洞利用过程中没有登录状态,才算匿名。
- 对于内部用户,在时间线证实之前,先假定是误报或操作失误。
- 如果安全控制妨碍实际工作,就会有人绕过它。修复方案必须包含可用且安全的途径。
2. 角色路由
| 用户意图 | 首选流程 | 加载 |
|---|---|---|
| 渗透测试 / 红队 / 立足点 / SRC | §§3–5 | RED_TEAM.md、TEST_MATRIX.md |
| 代码审计 / 白盒 / 查找危险点 | §3 R6 | CODE_AUDIT.md |
| 源代码泄露 / Git 泄露 / 机密信息泄露 | §3 R5 | SOURCE_LEAK.md、insecure-source-code-management |
| 中间件 / 网关 / 组件审计 | §3 R7 | RED_TEAM.md 中间件部分、unauthorized-access-common-services |
| 告警分流 / SOC / 威胁搜寻 | 蓝队质量门禁 | BLUE_TEAM.md |
| 检测规则 | 蓝队 B6 | BLUE_TEAM.md、EVIDENCE_REPORT.md 中的模板 |
| IR / 取证 / 遏制 | 蓝队 B7 | BLUE_TEAM.md、memory-forensics-volatility、traffic-analysis-pcap |
| 撰写报告 | §6 | EVIDENCE_REPORT.md |
当任务同时涉及红队和蓝队时,切换角色前先冻结当前阶段的证据。
3. 操作模型
步骤 1:从应用绘制攻击面
拿到 URL 或应用后,先绘制攻击面:attack-surface-mapping。包括画像、业务面、JS/流量清单(不仅是路径,还要包括键)、响应类别和对象图。不得在尚无画像时扫描。不得一开始就进行目录爆破或载荷喷洒。
步骤 2:根据观察到的行为进行分类
| 信号 | 优先方向 | 加载 |
|---|---|---|
| 输入反映到 HTML / JS 中 | XSS / SSTI | injection-checking |
| 服务器获取 URL / 主机名 | SSRF | ssrf-server-side-request-forgery |
| 接受 XML / Office / SVG | XXE | xxe-xml-external-entity |
| 路径、文件名或下载可控 | 路径遍历 / LFI | path-traversal-lfi |
| API 中存在大量对象 ID | IDOR / BOLA / BFLA | auth-sec,idor-broken-object-authorization |
| 登录、重置、2FA、会话 | 认证绕过 / JWT / OAuth | auth-sec |
| 涉及资金、优惠券、库存、审批的多步操作 | 业务逻辑 / 竞态 | business-logic-vuln |
| MongoDB / JSON 查询语法 | NoSQL | nosql-injection |
| CLI 工具、图像处理、导入器 | 命令注入 | cmdi-command-injection |
| HTTP 解析 / 前后端报文边界不一致 | 请求走私 | request-smuggling |
Node JSON / 可控的 __proto__ | 原型污染 | prototype-pollution |
PHP 弱比较 / 0e 哈希 | 类型混淆 | type-juggling |
| 重复参数名 / WAF 与应用解析不一致 | HPP | http-parameter-pollution |
| 一次性优惠券 / 库存 / 重置 / 邀请 | 竞态 | race-condition |
| XML/XSLT 模板 | XSLT | xslt-injection |
.git / .svn / .env / 备份 / 公共存储桶 | 源码泄露 | SOURCE_LEAK.md |
| CSV/Excel 导出 | CSV 公式注入 | csv-formula-injection |
| WebSocket 升级 | WebSocket | websocket-security |
| 内部软件包名称 | 依赖混淆 | dependency-confusion |
| 业务 API 返回 401/403 | 路径 / 方法 / 请求头绕过 | 401-403-bypass-techniques |
| 公开的中间件管理界面 / 默认端口 | 默认凭据、调试功能、版本缺陷 | unauthorized-access-common-services |
| 配有命令工具的聊天助手 | 检查工具是否真的执行命令 | llm-prompt-injection |
| 文件上传 / 预览 / 转换 | 上传链——不要只检查存储和下载 | upload-insecure-files |
| GraphQL / OAuth JWT / 网关 | 匹配的专项检查;勾选完成或填写 N/A | api-sec,jwt-oauth-token-attacks |
开始检查某一类并不意味着只检查这一类。请继续检查矩阵中的其余项目。
第 3 步:按以下顺序投入精力
完整的通过/失败规则:TEST_MATRIX.md。默认顺序:
- 未经身份验证即可访问其他用户、租户或主体
- 接管身份验证(签发会话、重置、重新绑定、交换票据)——会话内操作或更改密码也算
- 交换对象标识符(任何字段名:
id/userId/tenantId/fileKey/openid/ 密文 PK) - 在已有会话的情况下遍历对象图:列表 → 详情 → 附件/导出/审批,然后检查写入操作和业务逻辑
- 仅在会显示差异的界面上检查注入/SSRF/XSS/命令或模板执行
- 页面和脚本中的盐值、硬编码密钥、演示账号
不要在攻击链只完成一半时就停下。 上传后能存储、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)已合并回各自的主技能。
- 攻击面映射 · 侦察与方法论
- XSS · SQLi · SSRF · XXE · SSTI
- IDOR · CMDi · 路径遍历 / LFI · CSRF
- API 安全路由 · JWT / OAuth · OAuth / OIDC · SAML · 身份验证绕过
- 业务逻辑 · 文件上传 · NoSQL · 请求走私
- 原型污染 · 类型混淆 · HPP · 竞态条件
- XSLT · 不安全的 SCM · CSV 公式注入 · WebSocket · 依赖项混淆
- CORS · Ghost Bits Cast · 401/403 绕过 · 常见服务
5. 高价值专家直觉
基准模型容易遗漏、但在实际漏洞赏金工作中经常遇到的要点:
- 同一过滤器会在多个页面重复使用:通常一种绕过方法可以移植到其他页面。
- 参数名称本身就是攻击面:WAF 通常会检查值,而非名称。
- 二阶问题很常见:存储时安全,不代表之后读入危险上下文时仍然安全。
- BOLA 的含义是“已通过身份验证但未获授权”:在切换账户 A/B 的同时重放请求。
- 较早的 API 版本可能缺少安全补丁:修复 v2 并不意味着 v1 已退役。
- 业务逻辑漏洞往往影响最大:扫描器容易漏掉,而且漏洞会长期存在。
- 竞态条件:优先测试一次性操作:兑换、领取、重置、邀请、试用、库存扣减。
- JWT:先检查密钥和算法上下文:
alg、kid、JWKS、密钥来源——不要盲目发送大量请求。
6. 输出规范
默认按受众分为三个层次:
- 决策:发生了什么、影响是什么、现在该做什么(一页)
- 技术:攻击链或事件时间线、复现步骤或查询、证据
- 改进:修复 / 检测 / 日志缺口 / 流程缺口,并为每项指定负责人和验证方式
使用 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、漏洞赏金、安全工程师运维
指南
- 根据目标类型和观察到的行为规划测试路线,不要随机枚举载荷。
- 载荷:在匹配的深度技能中使用首轮样本;不要再添加一层中间路由。
- 优先使用可复用的过滤器、共享组件和跨页面复现。
- 深入利用前,先确认认证、授权和版本边界。
- 确保流程可解释、可审计且可复现。
- 掌握完整代码库上下文后,回到主题文档查看利用细节。