PhishOps 是一款 Gophish 自动化部署工具,可基于 CI/CD 流一键部署增强版 GophishModified 平台,解决搭建繁琐痛点,大幅提升成本利用率。
💡 关于 GophishModified
本项目部署的是 GophishModified 二开版本,包含以下增强功能:
- QR 码生成功能(灵感来自 EvilGophish)
- 更多自定义功能...
- 🚀 一键部署 - 全自动基础设施配置和应用部署,3 分钟内完成
- ☁️ 腾讯云优化 - 完整测试并优化的腾讯云部署方案(香港、广州等节点)
- 🔄 GitOps 工作流 - 从 GitHub 仓库持续交付,支持分支切换
- 🎨 功能增强 - 基于 GophishModified 的二开功能
- 📮 邮件链路补全 - 支持 EwoMail 云端一键部署,也支持已有服务器独立安装
- 🔒 安全优先 - 自动防火墙配置、HTTPS 支持、密码自动生成
- 💾 智能备份 - 资源销毁前自动备份数据库到本地
- 🧠 运维友好 - 自动检测 SSH 密钥,销毁时可自动推断地域
- 📊 成本透明 - 实时资源监控和成本估算
- 安全意识培训 - 企业员工钓鱼邮件识别培训
- 攻防演练 - 红蓝对抗、应急响应演练
- 渗透测试 - 社会工程学测试场景
- 安全研究 - 钓鱼技术研究和防御机制验证
获取腾讯云 API 访问密钥:
- 腾讯云控制台: API 密钥管理
- 推荐地域:
ap-hongkong- 香港(国际)ap-guangzhou- 广州(国内)ap-shanghai- 上海(国内)
💡 实验性支持
本项目已完整测试腾讯云 Gophish 部署流程。阿里云、华为云以及 EwoMail 自动化能力已补齐脚本和 Terraform 模板,如需用于生产环境,建议先在测试环境验证。
使用 Chocolatey 一键安装(推荐)
-
以管理员身份打开 PowerShell
-
安装 Chocolatey(如果尚未安装):
Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
-
一键安装所有依赖:
choco install python terraform git openssh -y -
验证安装:
python --version # 应显示 Python 3.8+ terraform -v # 应显示 Terraform 1.0+ git --version # 应显示 Git 版本 ssh -V # 应显示 OpenSSH 版本
git clone https://github.com/25smoking/PhishOps.git
cd PhishOps# 复制配置模板
copy configs\.env.example configs\.env
# 编辑配置文件
notepad configs\.env配置示例:
# 腾讯云
TENCENT_CLOUD_SECRET_ID=your_secret_id
TENCENT_CLOUD_SECRET_KEY=your_secret_key
# 可选:指定可用区(如果遇到资源不足问题)
# TENCENT_CLOUD_AVAILABILITY_ZONE=ap-hongkong-3
# 可选:自定义 SSH 密钥路径(默认会自动检测 ~/.ssh/id_ed25519、id_rsa 等)
# SSH_KEY_PATH=$HOME/.ssh/id_ed25519
⚠️ Windows 用户注意
在 Windows 上,路径中的$HOME会自动展开为你的用户目录(例如C:\Users\YourName)
部署到腾讯云(香港)
python scripts/deploy.py -p tencent -r ap-hongkong部署到腾讯云(广州)
python scripts/deploy.py -p tencent -r ap-guangzhou部署指定 GitHub 分支
python scripts/deploy.py -p tencent -r ap-hongkong -b master💡 其他云平台
如需部署到阿里云或华为云,请参考代码中的配置示例并自行测试:# 阿里云(实验性) python scripts/deploy.py -p alibaba -r cn-shanghai # 华为云(实验性) python scripts/deploy.py -p huawei -r cn-north-1
脚本会自动完成以下操作(约 3-5 分钟):
- ✅ 创建云基础设施(VPC、安全组、云服务器)
- ✅ 等待 SSH 服务就绪
- ✅ 安装 Docker 和 Go 环境
- ✅ 从 GitHub 拉取源码并编译
- ✅ 配置外网访问(监听 0.0.0.0)
- ✅ 启动 Gophish 服务
部署成功后显示:
========================================================
🎉 Gophish 部署成功!
========================================================
📍 访问信息:
管理后台: https://1.2.3.4:3333
钓鱼页面: http://1.2.3.4
🔑 管理员登录:
用户名: admin
密码: a1b2c3d4e5f6
🖥️ SSH 登录:
命令: ssh -i <你的私钥路径> root@1.2.3.4
💰 预估成本: ¥0.15/小时 (约 ¥108/月)
========================================================
┌─────────────────────────────────────────┐
│ 互联网 (Internet) │
└────────────┬────────────────────────────┘
│
│ HTTPS:3333 (管理后台)
│ HTTP:80 (钓鱼页面)
│ SSH:22 (远程管理)
│
┌────────────▼────────────────────────────┐
│ 安全组 (Security Group) │
│ - 开放 22/80/3333 端口 │
└────────────┬────────────────────────────┘
│
┌────────────▼────────────────────────────┐
│ VPC 私有网络 (172.16.0.0/16) │
│ │
│ ┌─────────────────────────────────┐ │
│ │ 云服务器 (2核4G, Ubuntu 22.04) │ │
│ │ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ Gophish Application │ │ │
│ │ │ - 管理后台 :3333 │ │ │
│ │ │ - 钓鱼服务 :80 │ │ │
│ │ │ - SQLite 数据库 │ │ │
│ │ └───────────────────────────┘ │ │
│ │ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ Runtime Environment │ │ │
│ │ │ - Docker 24.0+ │ │ │
│ │ │ - Go 1.21+ │ │ │
│ │ └───────────────────────────┘ │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
python scripts/check-resources.py输出示例:
当前云平台: Tencent Cloud (ap-hongkong)
服务器状态: Running
公网 IP: 43.xxx.xxx.xxx
运行时间: 2小时15分钟
预估费用: ¥0.32
# 使用自动生成的密钥登录
ssh -i <你的私钥路径> root@<服务器IP>
# 查看 Gophish 日志
journalctl -u gophish -fsystemctl restart gophish适合需要为 Gophish 搭配发信环境的场景。脚本会先创建云主机,再自动安装 EwoMail。
python scripts/deploy_ewomail.py -p tencent -r ap-hongkong -d mail.example.com部署完成后,可访问:
WebMail: http://<服务器IP>:8000
后台管理: http://<服务器IP>:8010
默认账号: admin
默认密码: ewomail123
SMTP 端口: 587
⚠️ 注意
EwoMail 对系统环境要求较高,建议优先在 CentOS 7/8 服务器上测试。
如果你的邮件服务器已经创建好,可以直接执行软件安装脚本:
python scripts/install_ewomail_only.py -i <服务器IP> -d mail.example.com检查清单:
- ✅ 确认安全组已开放 3333 端口(Terraform 默认已配置)
- ✅ 确认 Gophish 服务正在运行:
systemctl status gophish - ✅ 检查服务器监听地址:
netstat -tlnp | grep 3333
解决方法:
# 手动修改配置
cd /root/gophish
nano config.json # 确保 admin_server.listen_url 为 "0.0.0.0:3333"
systemctl restart gophish这通常是因为 GitHub 仓库中的静态文件路径与模板引用不一致。
检查路径:
ls -la /root/gophish/static/css/dist/
ls -la /root/gophish/static/js/dist/同步文件:
确保本地仓库的 static/ 目录结构与线上一致后,重新推送到 GitHub,然后重新部署。
腾讯云可能需要指定可用区:
# 在 configs/.env 中添加
TENCENT_CLOUD_AVAILABILITY_ZONE=ap-hongkong-3python scripts/destroy.py -p tencent如果部署记录缺少地域信息,建议显式带上地域参数:
python scripts/destroy.py -p tencent -r ap-hongkong执行流程:
- 提示确认销毁操作
- 自动备份数据库到
backups/目录 - 销毁所有云资源(服务器、VPC、安全组)
- 清理本地 Terraform 状态文件
python scripts/destroy.py -p tencent --force如果你部署的是 EwoMail 专用实例,可使用对应脚本直接回收云资源:
python scripts/destroy_ewomail.py -p tencent销毁可能卡死的解决方案
如果terraform destroy命令长时间无响应或卡死:
- 按
Ctrl+C中断脚本- 前往云控制台手动删除资源:
- 腾讯云:云服务器控制台
- 删除顺序:实例 → 安全组 → VPC
- 清理本地状态:
cd terraform/tencent rm -rf .terraform terraform.tfstate*
| 云平台 | 实例规格 | 小时费用 | 月费用(720小时) |
|---|---|---|---|
| 腾讯云 | SA2.MEDIUM4 (2核4G) | ¥0.15/小时 | ¥108/月 |
💡 省钱技巧: 演练结束后立即销毁资源,按实际使用时长计费(例如使用 2 小时仅需 ¥0.30)
phishops/
├── assets/ # 文档图片资源
├── configs/ # 配置文件
│ ├── .env.example # 配置模板
│ └── .env # 实际配置
├── scripts/ # 自动化脚本
│ ├── deploy.py # Gophish 云部署脚本
│ ├── destroy.py # Gophish 云销毁脚本
│ ├── check-resources.py # 云资源检查脚本
│ ├── deploy_ewomail.py # EwoMail 云部署脚本
│ ├── destroy_ewomail.py # EwoMail 云销毁脚本
│ ├── install_ewomail_only.py # 已有服务器安装 EwoMail
│ ├── install_ewomail.sh # EwoMail 服务器安装脚本
│ └── ssh_utils.py # SSH 密钥解析工具
├── terraform/ # Terraform 配置
│ ├── alibaba/ # 阿里云 Gophish 配置
│ ├── tencent/ # 腾讯云 Gophish 配置
│ ├── huawei/ # 华为云 Gophish 配置
│ ├── ewomail_alibaba/ # 阿里云 EwoMail 配置
│ ├── ewomail_tencent/ # 腾讯云 EwoMail 配置
│ └── ewomail_huawei/ # 华为云 EwoMail 配置
├── backups/ # 数据库备份目录
└── README.md # 本文档
编辑对应云平台的 Terraform 配置文件:
# terraform/tencent/main.tf
resource "tencentcloud_instance" "gophish" {
instance_type = "SA2.LARGE8" # 改为 4核8G
# ...
}- 在 DNS 提供商处添加 A 记录指向服务器 IP
- 修改 Gophish 配置文件中的
phish_server.listen_url - 配置 SSL 证书(可使用 Let's Encrypt)
本工具仅用于授权的安全测试和教育目的。使用本工具的用户需:
- ✅ 获得目标系统所有者的明确书面授权
- ✅ 遵守所在国家/地区的法律法规
- ✅ 不得用于任何非法或恶意活动
- ✅ 对自己的行为及其后果承担全部责任
未经授权的钓鱼攻击是违法行为,作者不对滥用行为承担任何责任。
本项目采用 MIT License 许可证。
欢迎提交 Issue 和 Pull Request!
- Star 本项目
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/new-feature) - 提交更改 (
git commit -m 'Add new feature') - 推送到分支 (
git push origin feature/new-feature) - 开启 Pull Request
- 项目主页: https://github.com/25smoking/PhishOps
- 问题反馈: GitHub Issues
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!
Made with ❤️ by Security Researchers
