raginx/gophish-ng
GitHub: raginx/gophish-ng
Gophish-NG 是开源钓鱼模拟工具包 Gophish 的活跃维护分支,在保留原有功能的基础上完成了依赖现代化升级并修复了多个安全漏洞。
Stars: 2 | Forks: 0
Gophish-NG
Gophish 的一个积极维护的分支,这是一个开源的网络钓鱼工具包。
## 为什么创建这个分支? [Gophish](https://github.com/gophish/gophish) 是一个被广泛使用、久经沙场的工具包,用于运行网络钓鱼模拟和安全意识培训。 遗憾的是,**上游的 `gophish/gophish` 自 2024 年 9 月以来就没有任何代码提交了**,`go.mod` 仍然要求使用 Go 1.13,并且其几个核心依赖项带有已知的 CVE 漏洞 —— 这对于一个由安全团队在他们自己的网络中运行的工具来说并不妙。 创建这个分支的目的是在不改变 Gophish 原有功能的情况下,保持这个坚实的基础稳固。到目前为止,这意味着: - **依赖项和工具链的现代化**:从 Go 1.13 升级到 1.25+,完全从早已废弃的 `jinzhu/gorm` (v1) 迁移到 `gorm.io/gorm` (v2),将无人维护的 `bitbucket.org/liamstask/goose` 替换为积极维护的 `pressly/goose`,并将所有依赖项都更新到最新版本。`govulncheck` 扫描出的可利用漏洞从 47 个减少到了仅剩的 1 个(目前上游还没有提供修复程序)。 - **在此过程中发现并验证的真实安全修复**:包括在活动删除对话框中的一个存储型 XSS 漏洞,一个可能导致整个进程崩溃(而不仅仅是一个请求失败)的问题,一个与 SSRF 相关的 Bug(配置 `allowed_internal_hosts` 会静默阻止*所有*外部流量,而不是仅仅拦截内部 IP 段),以及一个越权漏洞(允许被锁定的用户通过其仍然有效的 API key 自行解锁账户)。 - **重构后的极简前端工具链**:使用单个 `esbuild` 脚本取代了 Gulp + Webpack(18 个 npm 包,两个构建系统相互冲突)。 - **能够真正发现问题的 CI 机制**:加入了 `govulncheck`、代码 Linting 以及自动化的依赖项更新,而这些在上游版本中全都没有。 这里的每一项更改都已经在运行中的实例上进行了测试和验证,而不仅仅是“看起来正确”。有关此分支的维护方式,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md);有关报告漏洞的信息,请参阅 [SECURITY.md](SECURITY.md)。 ## 目录 - [什么是 Gophish?](#what-is-gophish) - [安装说明](#install) - [从源码构建](#building-from-source) - [Docker](#docker) - [设置说明](#setup) - [文档说明](#documentation) - [问题反馈](#issues) - [联系方式](#contact) - [开源许可证](#license) ## 什么是 Gophish? Gophish 是一个开源的网络钓鱼工具包,专为企业单位和渗透测试人员设计。它能够快速、轻松地建立和执行网络钓鱼演练及安全意识培训 —— 包括登录页面、邮件模板、目标群体、发送配置文件以及针对每个收件人的跟踪,所有这些都通过一个单一的 Web UI 完成。 ## 安装说明 此分支的预编译二进制文件可在 [releases 页面](https://github.com/raginx/gophish-ng/releases) 获取。或者,您也可以从源码构建(见下文)。如果您正在寻找官方的上游二进制文件,请查看 [上游 releases 页面](https://github.com/gophish/gophish/releases/)。 ## 从源码构建 **需要 Go 1.25 或更高版本。** ``` git clone https://github.com/raginx/gophish-ng.git cd gophish-ng go build ``` 执行完此操作后,您应该会在当前目录下得到一个名为 `gophish` 的二进制文件。 构建好的前端资源文件(`static/js/dist/`、`static/css/dist/`)已提交至 git 中,因此对于常规构建来说这就足够了。如果您修改了 `static/js/src/` 或 `static/css/` 下的任何内容,请使用以下命令重新构建它们: ``` npm install npm run build ``` ## Docker 您也可以通过 [此处](https://hub.docker.com/r/gophish/gophish/) 的官方 Docker 容器来使用上游版本的 Gophish。此分支目前不发布自己的 Docker 镜像。 ## 设置说明 运行 Gophish 的二进制文件后,在浏览器中打开 `https://localhost:3333` 并使用日志输出中打印的默认用户名和密码登录,例如: ``` time="2020-07-29T01:24:08Z" level=info msg="Please login with the username admin and the password 4304d5255378177d" ``` ## 文档说明 完整的用户指南可在 **[raginx.github.io/gophish-ng](https://raginx.github.io/gophish-ng/)** 获取。 由于此分支紧跟上游 Gophish 的步伐,因此 [上游文档](http://getgophish.com/documentation) 基本上也同样适用。 ## 问题反馈 发现了特定于此分支的 Bug?请在此处 [提交一个 issue](https://github.com/raginx/gophish-ng/issues/new)。对于同样影响上游 Gophish 的问题,建议您也去查看一下 [上游的 issue 追踪系统](https://github.com/gophish/gophish/issues)。 ## 联系方式 reinhard [at] westerholt [dot] me ## 开源许可证 采用 MIT 许可证,与上游 Gophish 保持一致 —— 完整文本请参见 [LICENSE](LICENSE)。标签:ESC8, EVTX分析, Go, Ruby工具, 安全测试, 开源安全工具, 攻击性安全, 日志审计, 暗色界面, 社会工程学, 请求拦截, 逆向工程平台