马上注册,让你轻松玩转程序园
您需要 登录 才可以下载或查看,没有账号?立即注册
x
项目地址:https://github.com/yaklang/hack-skills
仓库 Banner
hack-skills 不是教你怎么用某款漏洞扫描工具,也不是又一个 payload 字典。它的定位更底层一些——给 AI 提供一套结构化的安全知识,让 Agent 在面对真实目标时,能像一个有经验的测试员那样思考和行动。
设计思路:不是字典,是"路由表" 跑一个 SQLi payload 列表谁都会,但测试员真正的价值在于知道什么时候该测什么。 hack-skills 采用三层结构来解决这个问题: Master Entry(总入口)
└── Category Entries(六个类别入口)
└── Deep Topic Skills(100+ 专题技能)
每个技能文件固定放在 skills/{semantic-identifier}/SKILL.md,格式统一、可被 Agent 检索。 这种设计背后有个很具体的考虑:LLM 在做安全测试时,最容易犯的错不是"知识不够",而是面对一个新目标不知道先做什么、测到一半没有路由到合适的攻击面。所以主入口 (skills/hack/SKILL.md) 的核心功能其实是一张"路由表"。 [td]观察到的现象 | 路由到的攻击方向 | 输入反射到 HTML/JS | XSS / SSTI | 服务端主动访问 URL | SSRF | 接收 XML / Office / SVG | XXE | 路径、文件名下载接口可控 | Path Traversal / LFI | API 中大量对象 ID | IDOR / BOLA / BFLA | 登录、找回密码、2FA | Auth Bypass / JWT / OAuth | 多步骤交易、优惠券、库存 | Business Logic | 命令行工具、图像处理、导入器 | Command Injection | Node.js __proto__ 可控 | Prototype Pollution | 一次性操作(优惠券/重置) | Race Condition | .git/.svn/.env 路径可访问 | Insecure SCM |
Agent 先用这张表确定当前场景最相关的攻击面,再按需加载对应的深层专题技能——而不是一次性把所有 payload 都倒进来。
覆盖范围:14 个安全领域,100+ 专题 说技能数量没什么意义,列几个具体的专题更直观: Web 与 API 安全(高频) 覆盖了 XSS、SQLi、SSRF、SSTI、XXE、命令注入、反序列化、JNDI 注入、CRLF 注入、HTTP Request Smuggling、Prototype Pollution、HTTP 参数污染……基本把 OWASP Top 10 及延伸场景都跑了一遍。 认证与授权 JWT/OAuth 攻击、SAML SSO 断言伪造、IDOR/BOLA、OAuth/OIDC 错误配置——这几个在实际漏洞赏金里高频出现,且经常被扫描器漏掉的点都在里面。 基础设施与提权 - Linux/Windows/macOS 权限提升
- Active Directory:Kerberoasting、ACL 滥用、证书服务(AD CS / ESC1~ESC8)、NTLM Relay
- 容器逃逸与 Kubernetes 渗透
- 横向移动技术
二进制与逆向 Stack Overflow + ROP、堆利用、格式字符串、内核漏洞利用、V8 浏览器漏洞利用、沙箱逃逸、反调试技术、符号执行。 密码学攻击 RSA 攻击(共模、低公钥指数、Coppersmith 等)、对称加密缺陷、格密码分析、哈希攻击。 新兴领域 LLM Prompt Injection、AI/ML 安全、智能合约安全与 DeFi 攻击模式也有专题覆盖。
知识来源与"蒸馏"原则 仓库 README 里明确列了参考来源: - swisskyrepo/PayloadsAllTheThings
- PentesterSpecialDict
- Hello-CTF / ctf-wiki
- hacktricks
但这里有个关键区别:它不是上面这些资料的镜像,而是做了二次加工。
具体来说,把大量payload列表、字典、原始案例,压缩成"可路由、可组合、可审查"的安全技能条目。砍掉了直接的字典复制,保留了分类框架、边界条件描述和攻击链路逻辑。
这个取舍是为了Agent工作效率考虑的——LLM上下文窗口有限,一次性把PayloadsAllTheThings全文丢进去反而会降低推理质量,不如给它一个"先想清楚在哪个方向,再按需取用"的框架。
快速上手
方式一:通过skills CLI安装
npx skills add yaklang/hack-skills
安装后,直接用hack这个frontmatter name在支持的工具里引用主入口。
方式二:直接拉取主入口SKILL文件
curl-fsSL https://raw.githubusercontent.co...kills/hack/SKILL.md
方式三:本地克隆作为知识库使用
git clone https://github.com/yaklang/hack-skills.git
cd hack-skills
推荐的阅读顺序:主入口→六个类别入口→按需深入专题。别一上来就直接看深层的专题文件,会没有上下文。
六个类别入口分别是:
recon-for-sec:侦察与方法论
api-sec:API安全
auth-sec:认证与授权
injection-checking:注入攻击
file-access-vuln:文件与路径攻击
business-logic-vuln:业务逻辑与会话
主入口的raw URL:https://raw.githubusercontent.co...kills/hack/SKILL.md
几个实际使用场景
场景一:漏洞赏金新目标
接手一个新目标,拿出主入口hack让Agent加载,按Step 1(Recon上下文确认)→Step 2(按现象路由)→Step 3(优先测试顺序)走一遍。比让Agent自由发挥要稳定得多,不会跳过一些高价值但不在"常识"里的测试点,比如HTTP/2特有攻击面或CSP绕过。
场景二:CTF比赛中的Pwn/Crypto题
Pwn方向,从stack-overflow-and-rop→heap-exploitation→kernel-exploitation依次展开;Crypto方向,从rsa-attack-techniques或lattice-crypto-attacks进入。每个专题里都有具体的攻击思路和边界条件,不是泛泛的概念描述。
场景三:让Agent做初步Web渗透自动化
把hack主入口加上xss-cross-site-scripting、sqli-sql-injection、ssrf-server-side-request-forgery一起喂给Agent,让它配合Burp/nuclei做初步的测试点识别。Agent会参考路由逻辑决定优先级,而不是对着每个参数无脑扫一遍。
场景四:Active Directory渗透路径规划
内网里拿到低权限,用active-directory-kerberos-attacks+ntlm-relay-coercion+active-directory-certificate-services三个专题串联,帮Agent梳理从低权限到域管的可能路径。AD CS的ESC系列漏洞路径在里面有明确覆盖。
和直接让ChatGPT写payload有什么区别
这个问题值得单说一下。
直接问LLM"帮我测试SSRF",它会给你一个通用答案,基于训练数据里的平均水平。而训练数据里,很多边界条件(比如DNS rebinding绕过SSRF防护、HTTP/2 multiplexing攻击面)的覆盖是稀疏的,容易被忽略。
hack-skills的思路是给Agent一套结构化的方法论上下文,而不是单纯依赖模型权重里的隐式知识。这在面对不常见的漏洞类型或者需要组合多个技术点的场景时,差距比较明显。
另外,安全测试里有很多"对的顺序"问题——同样的技术,测试顺序不对就错过了。这种顺序性的判断,放在结构化的技能文件里比让模型自己推断要可靠。
|