not-narleeek/ctf-skills

GitHub: not-narleeek/ctf-skills

一套基于 pi agent 的 CTF 竞赛技能集合,通过渐进式披露机制将调度器与十个赛题类别专家按需加载,为 AI agent 提供覆盖主流 CTF 领域的深度解题知识。

Stars: 0 | Forks: 0

# ctf-skills `ctf-skills` 是一个包含 [Agent Skills](https://agentskills.io/) 的 [pi package](https://pi.dev/packages)。每个技能都是一个包含 `SKILL.md` 和按需参考文档的目录。在启动时,只有简短的描述存在于 agent 的上下文中;当任务匹配时才会加载完整的实战手册——这样你就能获得深入且针对特定类别的专业知识,而无需在每一轮对话中都付出成本。 ## 目录 - [技能](#the-skills) - [工作原理](#how-it-works) - [工具集成](#tool-integrations) - [要求](#requirements) - [安装](#install) - [仓库结构](#repository-layout) - [许可证](#license) ## 技能 | 技能 | 调用 | agent 何时加载它 | |-------|--------|-------------------------| | **solve-challenge** | `/skill:solve-challenge` | **调度器**。初步分类、类别路由以及侦察工作流。当类别不明显时从这里开始。 | | **ctf-web** | `/skill:ctf-web` | HTTP 应用、API、浏览器、模板引擎、认证流程 —— XSS、SQLi、SSTI、SSRF、XXE、JWT、文件上传、走私、OAuth/SAML、原型链污染。 | | **ctf-pwn** | `/skill:ctf-pwn` | 在理解漏洞后的二进制利用 —— 缓冲区溢出、格式化字符串、堆漏洞、ROP、ret2libc、shellcode、内核、seccomp/sandbox 旁路。 | | **ctf-reverse** | `/skill:ctf-reverse` | 在利用之前理解已编译/混淆/加壳/VM 目标 —— 二进制文件、APK、WASM、固件、自定义 VM、反调试。 | | **ctf-crypto** | `/skill:ctf-crypto` | 密码分析 —— RSA、AES、ECC、lattices/LWE、CVP、Coppersmith、Wiener、填充预言、GCM、KDF、PRNG、ZKP。 | | **ctf-forensics** | `/skill:ctf-forensics` | 磁盘镜像、内存转储、事件日志、PCAP、隐写术、注册表、Volatility、DTMF/侧信道、已删除文件恢复。 | | **ctf-malware** | `/skill:ctf-malware` | 混淆脚本、自定义加密协议、C2 流量、PE/.NET、RC4/AES 通信、YARA、shellcode、反分析、IOC 提取。 | | **ctf-misc** | `/skill:ctf-misc` | 跨类别谜题的后备方案 —— 编码、pyjails/bashjails、RF/SDR、DNS 异常、unicode、深奥编程语言、QR/音频、约束求解。 | | **ctf-osint** | `/skill:ctf-osint` | 开源情报 —— 社交媒体、地理定位、DNS、用户名枚举、反向图片搜索、dorking、Wayback、识别未知数据。 | | **ctf-ai-ml** | `/skill:ctf-ai-ml` | ML 攻击 —— 对抗样本、模型提取、prompt 注入、成员推理、训练数据投毒、LLM 越狱。 | | **ctf-writeup** | `/skill:ctf-writeup` | 在解题后(步骤、工具、经验教训)生成标准化的提交风格的 writeup。 | 各个专家技能包含数十个按需参考文档(例如 `ctf-crypto/rsa-attacks.md`、`ctf-pwn/heap-techniques.md`、 `ctf-forensics/steganography.md`、`solve-challenge/caido.md`),agent 仅在需要该技术时才会使用 `read` 读取它们。 ## 工作原理 这些是标准的 **Agent Skills**: 1. 在启动时,pi 会扫描 `skills/`,提取每个技能的 `name` + `description`, 并在系统提示词中列出它们(渐进式披露)。 2. 当任务与描述匹配时,agent 会 `read` 完整的 `SKILL.md`。 3. 然后它会遵循实战手册,按需加载同级参考文档, 并调用该技能的 `allowed-tools` 中列出的工具。 你也可以使用其命令强制调用技能,例如 `/skill:ctf-web`。 `solve-challenge` 调度器是自然的入口点——它进行分类并路由到合适的专家技能。 ## 工具集成 这些技能旨在安装后**驱动配套的 pi package**。它们 是可选的——技能会优雅降级(例如,如果 Caido 不存在,则回退到 `curl`)——但它们共同构成了一个完整的 CTF 工具链: | 配套 package | 技能的用途 | 安装 | |-------------------|----------------------------|---------| | **[pi-caido](https://github.com/not-narleeek/pi-caido)** | 捕获/重放/搜索 web 流量。`ctf-web` + `solve-challenge` 更倾向于使用 `caido_request` 而不是纯粹的 `curl`,通过 `caido_proxy` 路由扫描器,并使用 `caido_search` grep 历史记录。 | `pi install git:github.com/not-narleeek/pi-caido` | | **[pi-ghidra](https://github.com/not-narleeek/pi-ghidra)** | Headless 反编译/反汇编。`solve-challenge` + `ctf-reverse` 调用 `ghidra_analyze`,然后调用 `ghidra_decompile`/`ghidra_strings`/`ghidra_xrefs`。 | `pi install git:github.com/not-narleeek/pi-ghidra` | | **[pi-vpn](https://github.com/not-narleeek/pi-vpn)** | 用于访问实验室的 OpenVPN。`solve-challenge` 有一个明确的“首先连接到实验室 VPN”的侦察步骤(`vpn_list` → `vpn_connect`)。 | `pi install git:github.com/not-narleeek/pi-vpn` | 相关的工具名称已在每个技能的 `allowed-tools` 中预先批准。 ## 要求 - **pi** —— 加载技能的 agent(`npm i -g @earendil-works/pi-coding-agent`)。 - **基于文件系统的 agent 环境**,具备 bash、Python 3 和互联网 访问权限(用于安装 CTF 工具)。各个技能会在 `compatibility` frontmatter 中声明它们的需求。 - CTF 工具本身(Ghidra、Caido、openvpn、pwntools、volatility 等)—— 每个技能的 `## Environment Setup` 涵盖了安装步骤。 ## 安装 `pi install` 默认写入用户设置(`~/.pi/agent/settings.json`); 添加 `-l` 可指定为项目本地设置。 ### 1. 从 git 安装(推荐) ``` pi install git:github.com/not-narleeek/ctf-skills ``` 锁定 tag/commit 以保证可复现性: ``` pi install git:github.com/not-narleeek/ctf-skills@v0.1.0 ``` ### 2. 从 npm 安装(一旦发布) ``` pi install npm:ctf-skills ``` ### 3. 从本地 clone 安装(用于开发) ``` git clone https://github.com/not-narleeek/ctf-skills cd ctf-skills pi install . ``` 验证技能是否已加载: ``` pi list # ctf-skills should appear under packages /skill:solve-challenge # inside a pi session ``` ### 从手动复制的 `~/.agents/skills/` 迁移 如果你之前将这些技能保留在 `~/.agents/skills/`(全局、 非版本控制的位置)中,安装此 package 将创建一个 **重复项** —— pi 会在名称冲突时发出警告,并保留找到的第一个。要使 该 package 成为唯一事实来源: ``` # 在执行 `pi install git:github.com/not-narleeek/ctf-skills` 之后: rm -rf ~/.agents/skills/ctf-* ~/.agents/skills/solve-challenge ``` 现在 `pi update --extensions` 会保持技能与仓库同步,并且你的 编辑将在此处(受版本控制)进行,而不是在全局目录中。 ## 仓库结构 ``` ctf-skills/ ├── skills/ # auto-discovered by pi (the package payload) │ ├── solve-challenge/ # dispatcher: triage + routing + recon workflow │ │ ├── SKILL.md │ │ └── caido.md # Caido web-proxy workflow reference │ ├── ctf-web/ # + 18 reference docs (auth, ssti, sqli, deser, …) │ ├── ctf-pwn/ # + 16 reference docs (rop, heap, kernel, …) │ ├── ctf-reverse/ # + 15 reference docs (anti-analysis, platforms, …) │ ├── ctf-crypto/ # + 17 reference docs (rsa, ecc, lattices, …) │ ├── ctf-forensics/ # + 13 reference docs (disk, network, stego, …) │ ├── ctf-malware/ # + 3 reference docs │ ├── ctf-misc/ # + 11 reference docs (jails, encodings, …) │ ├── ctf-osint/ # + 3 reference docs │ ├── ctf-ai-ml/ # + 3 reference docs │ └── ctf-writeup/ # SKILL.md only ├── package.json # pi package manifest ├── README.md ├── CHANGELOG.md ├── LICENSE └── .gitignore ``` 每个技能都是自包含且可移植的 —— 将任何单个目录复制出来并 放入 `~/.agents/skills/`(或 `.pi/skills/`),pi 就会发现它。 ## 许可证 [MIT](LICENSE) — 可免费使用、修改和分发。感谢署名,但非必须。
标签:AI代理, DNS 反向解析, IP 地址批量处理, Web报告查看器, 云资产清单, 域环境安全, 密码学, 应用安全, 手动系统调用, 电子取证, 逆向工程