AI引导的CTF - 与Claude Code一起突破真实服务器,它作为你的教练
一个利用AI夺旗的CTF。
没有渗透测试经验?没问题。Claude Code充当你的私人教练——它会搭建环境、教你使用工具,并一步步引导你掌握真实的攻击技术。所有命令都由你亲自输入。
SNet是一个基于实际生产环境中真实服务器构建的易受攻击的虚拟机。这不是教科书式的练习——你会发现真实系统管理员留下的那种混乱:配置文件、遗留脚本、遗忘的凭据,以及层层叠加的错误决策。
共有10条攻击路线等待发现。每次通关,你都会走不同的路径,获得的提示也越来越少。当你全部找到后,你将同时具备攻击者和防御者的思维。
只要你能打开终端,就能玩转SNet。
git clone https://github.com/hrmtz/SNet.git
cd SNet
vagrant up
所有虚拟机(AI训练机、Kali、目标机)、网络和端口转发——一条命令搞定。
WSL2用户: 请在WSL内安装Linux版本的Vagrant,而不是Windows版本。确保设置以下环境变量(添加到你的
~/.bashrc或~/.zshrc中):export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1" export PATH="$PATH:/mnt/c/Program Files/Oracle/VirtualBox"
注意: 目标虚拟机在
vagrant up过程中会显示SSH认证超时——这是正常的。目标机是一台CTF机器,不允许Vagrant SSH访问。只要vagrant status显示为running,就一切正常。
| 虚拟机 | 命令 | 备注 |
|---|---|---|
| AI训练机 |
首次登录时,Claude Code会自动启动,并要求你选择一种认证方式:
输入"Please set up SNet"——训练机会处理剩下的工作。
侦察 → 利用 → 夺旗
↑ ↓
← 以系统管理员身份修复 ←
(重复 × 10)
本仓库支持多个CTF场景。默认情况下,vagrant up启动SNet1(新手级)。
| 场景 | 命令 | 描述 |
|---|---|---|
| SNet1 | vagrant up | 闯入未上锁的房子(新手级) |
| SNet2 | SNET=2 vagrant up | 躲避守卫的视线(中级) |
SNet2新增了一个Zabbix监控服务器——你必须在主动监视下进行操作。详情请参阅SNet2 README。
当虚拟机已运行时,启动特定场景:
SNET=2 vagrant up snet2-target snet2-zabbix # add SNet2 VMs
SNET=2 vagrant provision claude # configure trainer for SNet2
Kali虚拟机预装了rlwrap和tmux,使反向Shell更加舒适。
推荐工作流程:
# 1. 启动一个tmux会话
tmux new-session -s attack
# 2. 使用rlwrap配合nc,获得行编辑和历史记录功能
rlwrap nc -lvnp 4444
# 3. 在tmux中上下滚动:Ctrl+B,然后[
# 退出滚动模式:q
为什么? 原始反向Shell缺少方向键、Tab补全和回滚功能。rlwrap增加了readline支持(历史记录、编辑),tmux增加了回滚和窗口管理。
新场景会在配置过程中自动获取。要获取最新版本:
vagrant provision claude
这会拉取所有可用场景的最新版本,而无需重新下载整个虚拟机。
本项目仅供教育目的。请负责任地使用。
vagrant ssh claude 或 ssh -p 2222 snet@localhost |
| Kali | vagrant ssh kali |
| 目标机 | 不能从宿主机SSH——从Kali发起攻击(10.0.10.20) |