ret2shell/ret2shell

GitHub: ret2shell/ret2shell

一个基于 Rust 和 Solid.js 构建的功能丰富的 CTF 竞赛平台,以单一二进制文件交付,部署灵活高效。

Stars: 165 | Forks: 10

Ret2Shell

A feature-riches CTF challenge platform

[![MSRV 1.95.0+](https://img.shields.io/badge/MSRV-1.95.0+-blue)](https://releases.rs/docs/1.95.0/) [![Solid.js 1.9+](https://img.shields.io/badge/Solid.js-1.9+-orange)](https://www.solidjs.com/)
## 支持 QQ 群:1104642385 Telegram:https://t.me/ret2shell ## 部署 Ret2Shell 是单一二进制文件,需要 `redis/valkey 8+`、`postgres 18+`、`nats 2+`,以及可选的 `VictoriaLog` 和 `registry`。 所有组件可以部署在任何地方,因此您可以按照自己的喜好部署 ret2shell。 ## 开发 ### 1. 安装工具链 #### 为后端安装 Rust ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` 然后使用 `rustup` 安装最新的稳定版工具链。 ``` rustup install stable ``` 后端开发环境配置完成。 #### 为前端安装 Node.js 和 Pnpm ``` curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash - ``` 然后安装 pnpm ``` corepack enable pnpm ``` ### 2. 搭建开发环境 #### 许可证说明 Ret2Shell 在 GPL-3.0 衍生的自定义 copyleft 许可证下分发,该许可证在附录 A 中纳入了 GPL-3.0,并增加了面向用户的商业化限制。具有法律效力的许可证文本请参见 [LICENSE](LICENSE),通俗指导请参见 [COMMERCIAL_POLICY.md](COMMERCIAL_POLICY.md)。 #### 配置前端 前端文件位于 [web/](web/) 目录中。进入该目录,或在 `pnpm` 命令后添加 `--prefix=web` 选项。 安装前端依赖: ``` pnpm install ``` #### 配置其他服务 参见 [deploy/nginx-module/ret2shell.dev.conf](deploy/nginx-module/ret2shell.dev.conf)。您可以将其放入您的 nginx 配置目录中,例如 `/etc/nginx/sites-enabled/`。 您可能需要配置其他服务,如 database、redis,请参考 [deploy/docker-compose.dev.yml](deploy/compose/docker-compose.dev.yml)。 将 [config/config.sample.toml](config/config.sample.toml) 复制到 `config/config.toml`,并进行修改以适应您的环境。 对于其他部署方式,请参见 [deploy/](deploy/)。 ### 3. 启动 #### 前端 要在 [web/](web/) 上下文中启动开发服务器,请运行以下命令: ``` pnpm dev --host ``` 或者在根目录下运行 `pnpm --prefix=web dev --host`。 ### 后端 运行以下命令启动后端服务器: ``` cargo run --bin r2s-server ``` ## 构建 请确保您已安装工具链。 构建前端文件: ``` pnpm build ``` 构建的文件将生成在 `web/dist` 目录中。 构建后端服务器二进制文件: ``` # 如果你想使用 systemd 托管它 cargo build --release --bin r2s-server # 或者你想在较旧的 Linux 发行版中托管它 cargo build --release --bin r2s-server --target x86_64-unknown-linux-musl ``` 构建的二进制文件将生成在 `target/release/` 目录中, musl 二进制文件将生成在 `target/x86_64-unknown-linux-musl/release/` 目录中。 您也可以构建 Docker 镜像: ``` # 如果你使用 fish ./release-image.fish # 或者使用 bash 运行 ./release-image.sh ``` ## 许可证 Ret2Shell 基于以下许可证授权: - [LICENSE](LICENSE):具有法律效力的许可证文本。 - [COMMERCIAL_POLICY.md](COMMERCIAL_POLICY.md):英文指导和解释说明。 - [COMMERCIAL_POLICY.zh-cn.md](COMMERCIAL_POLICY.zh-cn.md):政策指南的简体中文翻译。
标签:DNS解析, Docker, Docker Compose, GNU通用公共许可证, GPL协议, Linux部署, MITM代理, NATS, Nginx, Node.js, Pnpm, PostgreSQL, Redis, Rust, Solid.js, Valkey, VictoriaLog, 可视化界面, 安全防御评估, 开源项目, 搜索引擎查询, 测试用例, 竞赛平台, 网络安全, 网络流量审计, 请求拦截, 通知系统, 隐私保护, 靶场平台, 靶机环境