joshbrunty/CTF-training
GitHub: joshbrunty/CTF-training
一套涵盖密码学、Web 漏洞利用、数字取证、逆向工程等方向的十模块 CTF 实战课程,帮助学员从零基础到具备团队竞赛能力。
Stars: 7 | Forks: 0
# CTF 培训
这是一套注重实战的、**分为 8 个部分的夺旗赛 (CTF) 课程**,旨在带领参与者从了解*“什么是 flag?”*开始,直到能够在限时压力下进行团队竞技。本课程专为**美国与马歇尔大学网络战队 (United States & Marshall University Cyber Team)** 打造,并作为一项暑期强化班在**普里什蒂纳大学 (University of Prishtina, 科索沃)** 授课。每个模块都将通俗易懂的课程与独立且经过验证的挑战结合在一起——让你在学习一项技术后能立即投入使用。
本课程培养的技能足以在 **[National Cyber League (NCL)](https://nationalcyberleague.org)**、**[US Cyber Games](https://www.uscybergames.com)** 以及各类大学 CTF 比赛中名列前茅——这些同样是你在比赛日以及未来从事数字取证和应急响应工作中会用到的实用技术。
## 课程大纲
共十个模块,每天一个。每个文件夹都包含一个**既是课程教程也是实验指南的独立 README**,以及相关的挑战文件。
| 天数 | 模块 | 你将学到什么 | 实战内容 |
|---|---|---|---|
| 1 | [CTF 简介](./01-Introduction-to-CTFs/) | 比赛形式、计分方式、flag 类型以及 CTF 思维方式 | 编码热身练习 |
| 2 | [Linux 与命令行](./02-Linux-and-Command-Line/) | 文件导航、管道符、`grep`、权限管理、脚本编写 | CLI 谜题 |
| 3 | [密码学基础](./03-Cryptography-Essentials/) | 哈希、编码、古典密码、XOR | 4 个密码学挑战 |
| 4 | [Web 漏洞利用](./04-Web-Exploitation/) | SQL injection、XSS、信息侦查、token (JWT) | 源码、token 及实战实验室挑战 |
| 5 | [网络与数据包分析](./05-Networking-and-Packet-Analysis/) | Wireshark 与 `tcpdump`、追踪流、识别数据外发 | 3 个数据包捕获文件 |
| 6 | [数字取证](./06-Forensics/) | 元数据、文件雕刻、**Autopsy / The Sleuth Kit**、已删除文件恢复 | 4 个取证对象(包含磁盘镜像) |
| 7 | [逆向工程](./07-Reverse-Engineering/) | `file`/`strings`/`objdump`、Ghidra、XOR 混淆 | **Vault** 二进制文件 |
| 8 | [练习与引导式实验](./08-Team-Strategy-and-Practice/) | 共同完成涵盖所有类别的挑战题 | 跨类别综合练习 |
| 9 | [团队策略与最终备考](./08-Team-Strategy-and-Practice/) | 计分策略、任务分发、团队分工、协作与耐力培养 | CTF 模拟赛 |
| 10 | 最终 CTF 与总结 | 举办正式的实战比赛,随后进行复盘与后续步骤展望 | 完整时长的团队 CTF |
## 各模块运作方式
- **每个文件夹一个 README** —— 阅读第 1 部分(课程教程),然后完成第 2 部分(实验练习)。
- **挑战文件**(二进制文件、捕获文件、磁盘镜像)就存放在 README 旁边;点击文件即可下载并在你的 VM 中进行分析。
- **难度循序渐进** —— 每个模块都从简单易懂的热身题开始,逐渐过渡到能激发高水平选手潜力的进阶挑战,确保不同技能水平的团队成员都能保持参与热情。
- **知识融会贯通** —— 第 3 天学到的编码知识会在第 7 天的二进制文件中重现;取证过程中培养的“阅读所有输出内容”的习惯将在各个领域发挥作用。
## 工具与环境
各项挑战专为 **[Kali Linux](https://www.kali.org/)** 设计。在整个课程中,你将使用以下行业标准工具:
| 领域 | 工具 |
|---|---|
| **侦查 / CLI** | `file`, `strings`, `xxd`, `grep`, `bash` |
| **密码学** | `base64`, `hashcat` / `john`, [CyberChef](https://gchq.github.io/CyberChef/), `python3` |
| **Web** | 浏览器 DevTools, [Burp Suite](https://portswigger.net/burp), `curl`, `sqlmap` |
| **网络** | [Wireshark](https://www.wireshark.org), `tcpdump`, `tshark` |
| **取证** | `exiftool`, `binwalk`, `foremost`, [Autopsy](https://www.autopsy.com/), [The Sleuth Kit](https://www.sleuthkit.org/) |
| **逆向工程** | `objdump`, [Ghidra](https://ghidra-sre.org), `gdb`, `python3` |
## Flag 格式
所有挑战均使用 **`CTF{...}`** 格式。
请完全按照原样提交 flag,包含外层包装 —— 评分系统采用精确匹配,因此如果 `CTF{...}` 中混入了多余的空格或换行符将不予计分。
## 仓库结构
```
CTF-training/
├── README.md
├── 01-Introduction-to-CTFs/
│ └── README.md
├── 02-Linux-and-Command-Line/
│ └── README.md
├── 03-Cryptography-Essentials/
│ └── README.md
├── 04-Web-Exploitation/
│ └── README.md
├── 05-Networking-and-Packet-Analysis/
│ ├── README.md
│ ├── creds.pcap
│ ├── download.pcap
│ └── icmp.pcap
├── 06-Forensics/
│ ├── README.md
│ ├── briefing.jpg
│ ├── evidence.jpg
│ ├── case001.dd
│ └── memory.raw
├── 07-Reverse-Engineering/
│ ├── README.md
│ └── vault
└── 08-Team-Strategy-and-Practice/
└── README.md
```
## 关于本系列
这些教材资料由马歇尔大学 ([Marshall University](https://www.marshall.edu/cyber)) 网络取证与安全教授、同时也是美国网络战队 ([US Cyber Team](https://www.uscyberteam.com)) 主教练的 **Josh Brunty 博士** 编写。它们架起了课堂理论与竞赛实战之间的桥梁,重点关注那些在实际的数字取证和应急响应中同样适用的技术——这些内容也曾作为暑期强化班在科索沃普里什蒂纳大学进行过海外授课。
## 讲师权限
公开的 README 中不包含答案。**讲师解题指南、答案密钥以及挑战源文件**均维护在另一个独立的私有仓库中。如果您是讲师且需要获取访问权限,请联系 [josh.brunty@marshall.edu](mailto:josh.brunty@marshall.edu)。
## 参与贡献
有挑战题目创意或想要贡献一份解题指南?欢迎提交 issue 或直接通过 [josh.brunty@marshall.edu](mailto:josh.brunty@marshall.edu) | [coachbrunty@uscybergames.org](mailto:coachbrunty@uscybergames.org) 联系我们。
标签:CISA项目, DNS 反向解析, HTTP工具, Web安全, 云资产清单, 安全培训, 密码学, 应用安全, 手动系统调用, 数字取证, 网络安全, 自动化脚本, 蓝队分析, 逆向工程, 隐私保护