Brillar0101/cyberrangetz

GitHub: Brillar0101/cyberrangetz

面向坦桑尼亚教育场景的浏览器端网络靶场平台,用 Docker 容器替代虚拟机,让学生无需高配电脑即可在浏览器中进行动手安全实验。

Stars: 0 | Forks: 0

# CyberRange TZ 一个为坦桑尼亚开发的基于浏览器的网络靶场。学生可以在一次性 container 中获得真实的 Linux shell,完成实践安全实验,并获取 flag。无需下载 VM,无需配置实验环境,也无需安装任何软件。 该项目旨在解决的痛点:该地区的安全培训大多以 PPT 为主,因为运行实验环境意味着每个学生都需要一台能够承载虚拟机的计算机。Containers 将这部分成本转移到了服务器端。 ## 状态 目前公开的网站包含候补名单和管理控制台。实验 runtime 通过 Docker Compose 在本地运行,尚未对外公开。 | 部分 | 状态 | |---|---| | 候补名单网站和邮件收集 | 已部署 | | 管理员候补名单控制台 | 已部署 | | 实验 container | 本地运行中,已构建 6 个实验 | | 浏览器内终端 | 本地通过 WebSocket 运行 | | 认证、会话、进度追踪 | 后端已实现 | ## 实验 | 实验 | 教学内容 | |---|---| | `linux-fundamentals` | Shell 导航、权限、进程 | | `red` | 进攻型工具和枚举 | | `blue` | 针对 syslog 来源的日志分析 | | `recon-ping-sweep` | 针对活跃和受过滤目标的 host 发现 | | `recon-detect-icmp` | 从防御者角度检测探测扫描 | 侦察实验是一对很有意思的组合。`recon-ping-sweep` 为学生提供了一个攻击者 container 和两个目标:一个会响应 ICMP,另一个位于过滤器之后。因此,课程旨在说明“无回复”并不等于“无主机”。`recon-detect-icmp` 则让学生处于相同流量的另一侧。 每个实验都包含一个 `Dockerfile` 和一个用于初始化文件系统的 `setup.sh`,以及一个供评分程序检查的 `flag.txt`。 ## 架构 ``` React + Vite client xterm.js terminal ──WebSocket──┐ │ Express server ───────────────────┤ spawns / attaches JWT auth, rate limiting │ helmet, sanitize-html ▼ PostgreSQL ◄────────── per-student lab container ``` **Client** 采用 React、React Router 和 Tailwind 构建,路由在 Suspense boundary 之后进行 lazy-loaded,并包裹在 error boundary 中。终端使用 `@xterm/xterm` 及其 fit addon。 **Server** 是基于 PostgreSQL 的 Express。Access token 和 refresh token 是独立的密钥,密码使用 bcrypt 进行哈希处理,`helmet` 负责设置安全标头,`express-rate-limit` 负责保护 auth 路由,所有用户提供的 HTML 在存储前都会经过 `sanitize-html` 处理。 **Labs** 是普通的 container 镜像,每个练习对应一个,在开发环境中由 Compose 进行编排。 ## 本地运行 ``` cp .env.example .env # 首先填写每一个 CHANGE_ME 值: # openssl rand -hex 32 docker compose up --build ``` 该 compose 文件会启动 Postgres、后端、前端以及实验镜像。未提交任何密钥;`.env.example` 仅包含占位符。 ## 布局 ``` client/ React + Vite frontend server/ Express API, WebSocket terminal bridge, Postgres access labs/ One directory per lab: Dockerfile, setup.sh, flag scripts/ Deck and content build helpers docker-compose.yml render.yaml Deployment config ``` ## 注意事项 这是一个早期阶段的项目,实验 container 的安全模型仍在不断完善中。请勿在您重视的主机上运行实验 runtime,并且在其当前形态下,请勿将其暴露给不受信任的用户。
标签:Docker, WebShell, 安全培训, 安全防御评估, 插件系统, 测试用例, 版权保护, 网络安全, 自定义脚本, 请求拦截, 隐私保护, 靶场平台