joaovarelas/GitRunner-C2
GitHub: joaovarelas/GitRunner-C2
一个滥用自托管 GitLab Runner 作为 C2 植入物的概念验证框架,利用 GitLab CI 体系实现无需自建后服务器的端点管理。
Stars: 26 | Forks: 6
# GitRunner C2
一个基于 GitLab CI 构建的**无后端** endpoint 管理平台。作为一个 Vue SPA,它直接与 GitLab REST API 通信 —— GitLab 充当了任务队列、日志存储和数据库。无需自定义服务器,除了 `gitlab-runner.exe` 之外也无需任何其他 agent。
- Endpoint 是自托管的 GitLab Runner(每个具有一个唯一的标签)
- 操作以 CI 任务的形式运行,通过标签路由到相应的 runner
- 一个轻量级的 NGINX/Vite 代理负责处理 CORS —— 服务端不运行任何其他内容

## 前置条件
**操作员:** 拥有一个 GitLab 账户(云端或自托管),以及一个具有 `api` scope 的 Personal Access Token。
**Endpoint:** Windows(Server 或桌面版),可访问您的 GitLab 实例的网络连接,以及用于将 `gitlab-runner` 安装为服务的管理员权限。
## 工作原理
1. 在 UI 中创建一个项目。
2. 注册一个 endpoint —— UI 会创建一个 runner,并为您提供一行 PowerShell 命令,用于将 `gitlab-runner` 安装并注册为 Windows 服务。
3. 打开该 endpoint。每个操作都会在该 runner 上触发一个 CI 任务;输出结果将通过任务 trace 读回。`GIT_STRATEGY: none` 意味着 endpoint 上不需要 `git.exe`。
文件上传(驱动程序、任意文件)会通过 GitLab Generic Package Registry 进行暂存,并由 runner 通过 `CI_JOB_TOKEN` 拉取 —— 无需额外的凭证。
## 功能
| 标签页 | 您可以获得的功能 |
|-----|-------------|
| **概览** | 主机信息,一目了然的 CPU/内存/磁盘状态 |
| **系统** | 服务、用户、用户组、命名管道、驱动程序、任务计划程序、任务管理器 —— 全部支持逐行操作 |
| **硬件** | BIOS、主板、CPU、内存、磁盘、网络适配器 |
| **软件** | 已安装的程序,支持一键卸载 |
| **安全** | AV/EDR 检测(支持 30 多款产品、服务 + 命名管道)、防火墙配置文件、BitLocker |
| **事件** | 应用程序、安全和系统事件日志 —— 点击任意行即可展开完整信息 |
| **文件管理器** | 浏览文件系统,上传和下载文件 |
| **终端** | 远程 PowerShell 和 CMD shell |
**操作菜单:** 重启、关机,或将某个 endpoint 从项目中取消注册。
数据会按 endpoint 进行缓存 —— 首次加载后,切换标签页是瞬间完成的。
## 运行
**开发环境**
```
npm install
npm run dev # http://localhost:5173
```
**Docker**
```
docker compose up --build # http://localhost:8080
```
对于自托管的 GitLab 实例,请在运行前将 `.env.example` 复制到 `.env` 并设置 `GITLAB_URL`。
## 代码结构
```
src/
api/gitlab.ts GitLab REST client + managed CI pipeline
lib/jobs.ts Trigger, poll, and parse job output
lib/tabs.ts Declarative tab/subview definitions
lib/av.ts AV/EDR product database (client-side detection)
lib/inventory.ps1 One-shot endpoint inventory collector
components/endpoint/ Endpoint UI (DataTab, Drivers, TaskScheduler, …)
```
## 未来计划
- 支持其他 CI 平台(GitHub Actions、Azure DevOps)
- 支持 Linux runner
- 自定义传输后端(将 `gitlab.ts` 替换为轻量级的自定义服务器)
## 免责声明
本工具仅供在经授权的 endpoint 上使用。对于因使用本软件而产生的任何误用、未经授权的访问、数据丢失、系统不稳定或其他任何损害,作者概不负责。使用风险由您自行承担。
标签:AI合规, C2框架, GitLab CI, HTTP工具, Vue 3, 安全学习资源, 网络安全, 网络安全审计, 请求拦截, 负责任AI, 远程管理, 隐私保护