furkan-enes-polatoglu/phishforge

GitHub: furkan-enes-polatoglu/phishforge

PhishForge 是一个可自托管的开源授权钓鱼模拟与安全意识培训平台,旨在以更现代的架构和工作流替代 GoPhish。

Stars: 0 | Forks: 0

# 🎣 PhishForge [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Go](https://img.shields.io/badge/Go-1.26-00ADD8?logo=go)](https://go.dev) [![React](https://img.shields.io/badge/React-TS-61DAFB?logo=react)](https://react.dev) [![Docker](https://img.shields.io/badge/Docker-compose-2496ED?logo=docker)](https://docs.docker.com/compose/) 一个先进的、可自托管的**开源网络钓鱼模拟与安全意识** 平台 —— 一个现代化、功能更强大的 GoPhish 替代品。专为**授权的**红队和 安全意识演练而构建:衡量用户行为,培训人员,并报告结果。 **只需一条命令即可运行:** ``` git clone https://github.com/furkan-enes-polatoglu/phishforge.git cd phishforge && ./scripts/quickstart.sh ``` 就这样 —— 脚本会生成强密钥,打印您的管理员登录信息,并使用 Docker 启动 一切。打开 。(详情见下文。) ## 为什么选择 PhishForge(对比 GoPhish) 完整分析请参阅 [`docs/gophish-analysis.md`](docs/gophish-analysis.md)。 核心亮点: | 领域 | GoPhish | PhishForge | |------|---------|------------| | 数据存储 | SQLite 单体架构 | PostgreSQL + Redis,API/worker 分离 | | 编辑器 | 手写 HTML | 代码编辑器 + 实时预览,合并标签 | | 可达性 | 无 | SPF/DKIM/DMARC,RBL,SpamAssassin 评分,HTML lint | | 数据分析 | 基础计数器 | 漏斗模型 + 实时时间线 | | 发送机制 | 简单邮件发送程序 | 速率受限的 worker,范围复核 | | 多租户 / RBAC | 无 | 组织 + 管理员/操作员/查看者 | | 授权机制 | 操作员自行处理 | 演练记录 + 允许列表 + 审计日志 | | 安全意识培训 | 无 | 提交后自动重定向至培训 | 架构详情:[`docs/architecture.md`](docs/architecture.md)。 ## 技术栈 - **后端:** Go 1.26 + Chi(单一二进制文件;包含 `api` / `worker` / `migrate` 模式) - **前端:** React + TypeScript + Vite + Tailwind - **数据库:** PostgreSQL 16 · **队列/缓存:** Redis 7 ## 系统要求 - **Docker** + **Docker Compose v2** 插件。无需其他任何组件 —— 运行时不需要 Go 或 Node。 安装 Docker: ## 快速开始(推荐) ``` git clone https://github.com/furkan-enes-polatoglu/phishforge.git cd phishforge ./scripts/quickstart.sh ``` 该脚本将: 1. 创建包含强随机 `JWT_SECRET` / `RID_SECRET` 的 `.env` 文件, 2. 生成并**打印您的管理员邮箱和密码**, 3. 构建镜像并启动整个技术栈。 然后打开 **** 并使用打印的凭据登录。 ## 手动启动(如果你喜欢的话) ``` cp .env.example .env make seed-secrets # prints JWT_SECRET and RID_SECRET to paste into .env # 还需要在 .env 中设置 BOOTSTRAP_ADMIN_EMAIL / BOOTSTRAP_ADMIN_PASSWORD docker compose up -d --build ``` 服务端口: - 管理 UI + API: - 钓鱼 / 追踪服务器: - 健康检查: 首次运行会自动创建组织和管理员;数据库迁移会在启动时自动执行。 ## 服务管理 ``` docker compose logs -f api worker # live logs docker compose ps # status docker compose down # stop (keeps data) docker compose down -v # stop and wipe all data ``` ### 各项服务 `docker compose` 会启动:`postgres`、`redis`、一次性的 `migrate`、`api` (提供已构建的 SPA + 管理 API + 钓鱼服务器),以及 `worker` (从 Redis 队列发送演练活动)。 ## 典型工作流 1. **创建演练** —— 客户名称、**授权凭证**(例如签署的 SoW),以及开始/结束时间窗口。 2. **定义范围(允许列表)** —— 域名(`acme.com`)和/或邮件通配符 (`vip-*@acme.com`)。至少需要一条规则才能激活。 3. **激活**演练(只能在范围和时间窗口内进行)。 4. **导入目标** —— 不在范围内的地址会被自动拒绝。 5. **构建资产** —— 邮件模板(合并标签:`{{.FirstName}}`、`{{.TrackURL}}`、 `{{.TrackPixel}}`、`{{.ReportURL}}`)和登录页面(表单提交至 `{{.SubmitURL}}`;数值会被丢弃,用户将被重定向至安全意识培训)。 6. **创建发送配置** —— SMTP 主机/凭据、发件人地址、STARTTLS。 7. **运行可达性检查** —— 验证 SPF/DKIM/DMARC、黑名单、HTML lint。 与客户的邮件网关协调设置允许列表。 8. **创建并启动活动** —— worker 会按照您配置的速率发送,并在发送时重新验证范围。 9. **查看报告** —— 已发送 → 已打开 → 已点击 → 已提交 → 已报告的漏斗模型,以及 实时事件时间线。 ## 合法的邮件可达性 可达性模块可通过正确的邮件基础设施帮助授权的测试邮件**到达收件箱** —— SPF/DKIM/DMARC 验证、黑名单检查、SpamAssassin 评分、HTML lint,以及与客户协调的允许列表。它**不是**垃圾邮件过滤器规避工具,也不包含任何过滤器欺骗技术。 ## 数据最小化 当目标提交登录页面表单时,PhishForge 只会记录一个 `submit` **事件** —— 绝不会记录提交的值。作为可选功能(针对特定登录页面),它可以记录已填写的**字段名称集合**,但依然绝不记录任何值。密码永远不会被存储、哈希或记录。 ## 本地开发 ``` # Backend(需要 Postgres + Redis + 一个 .env) make migrate && make run # Frontend(将 /api 代理到 :8080) cd web && npm install && npm run dev # http://localhost:5173 make test && make vet ``` ## 生产环境注意事项 - 将这两个端口置于 TLS 之后。Caddy 示例: admin.example.com { reverse_proxy 127.0.0.1:8080 } links.example.com { reverse_proxy 127.0.0.1:8081 } 请相应地设置 `ADMIN_BASE_URL`、`PHISH_BASE_URL` 和 `CORS_ORIGINS`。 - 保持 `JWT_SECRET` 和 `RID_SECRET` 的机密性与稳定性(轮换 `RID_SECRET` 会使进行中的跟踪链接失效)。 - 备份 `postgres` 卷。 ## 许可证 MIT —— 详见 [`LICENSE`](LICENSE)。本工具仅供授权的安全测试和 安全意识培训使用。您需对合法及经同意的使用负责。
标签:Docker, EVTX分析, Go, React, Ruby工具, Syscalls, 安全防御评估, 搜索引擎查询, 日志审计, 测试用例, 版权保护, 请求拦截