GoPhish钓鱼演练完整教程:从部署到邮件模板定制
前言
安全意识培训是企业信息安全体系的重要组成部分。钓鱼攻击至今仍是最有效的初始入侵手段,定期开展钓鱼演练能够显著提升员工的安全意识。商业方案如Lucy Security年费$1,500起,对于中小企业来说成本不低。
GoPhish是一款功能完整的开源钓鱼演练框架,完全免费且社区活跃。本文将从零开始带你完成GoPhish的部署、配置、邮件模板定制和演练报告生成的全流程。
一、付费工具定价对比
| 工具 | 定价模式 | 价格范围 | 核心优势 |
|---|---|---|---|
| Lucy Security | 年付 | $1,500+/年 | 丰富培训内容、合规报告 |
| GoPhish Enterprise Support | 年付 | $5,000+/年 | 商业技术支持、SLA保障 |
| King Phisher | 开源 | 免费 | 灵活定制、模板系统 |
| GoPhish(社区版) | 开源 | 免费 | Web界面、完整API |
GoPhish和King Phisher都是完全免费的开源工具,仅在需要商业技术支持时才产生费用。对于内部安全培训,社区版GoPhish已经足够强大。
二、免费替代方案介绍
2.1 GoPhish
GoPhish是最流行的开源钓鱼演练平台,提供直观的Web管理界面,支持邮件模板编辑、登录页面克隆、点击追踪和详细报告。Go语言编写,单文件部署,跨平台支持。
GitHub: https://github.com/gophish/gophish
2.2 King Phisher
King Phisher是另一款优秀的钓鱼邮件工具,Python编写,支持SMTP邮件发送、KML地理定位和自定义模板。
GitHub: https://github.com/rsmusllp/king-phisher
2.3 Evilginx2
Evishinx2是高级中间人钓鱼框架,支持绕过双因素认证,主要用于红队评估。需要更高的技术门槛和使用责任。
2.4 SET(Social Engineering Toolkit)
SET是TrustedSec开发的社工攻击工具集,包含钓鱼邮件生成、网站克隆、U盘攻击等多种模块。
三、GoPhish完整安装步骤
3.1 服务器环境准备
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装必要工具
sudo apt install -y curl wget unzip mailutils postfix
# 创建专用用户
sudo useradd -r -s /bin/false gophish
sudo mkdir -p /opt/gophish
3.2 安装GoPhish
# 下载最新版本(以v0.12.1为例,请检查GitHub获取最新版)
cd /opt/gophish
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
# 解压
unzip gophish-v0.12.1-linux-64bit.zip
chmod +x gophish
# 设置权限
sudo chown -R gophish:gophish /opt/gophish
3.3 配置GoPhish
编辑 config.json:
{
"admin_server": {
"listen_url": "0.0.0.0:3333",
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key"
},
"phish_server": {
"listen_url": "0.0.0.0:80",
"use_tls": false
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "gophish.log",
"level": "info"
}
}
关键配置说明:
admin_server: 管理后台,建议启用TLS,端口3333phish_server: 钓鱼页面服务,端口80或443- 生产环境建议phish_server也启用TLS
3.4 配置SSL证书
# 生成自签名证书(管理后台用)
openssl req -newkey rsa:2048 -nodes -keyout gophish_admin.key -x509 -days 365 -out gophish_admin.crt -subj "/CN=gophish-admin"
# Let's Encrypt证书(钓鱼页面用,需要域名)
sudo apt install -y certbot
sudo certbot certonly --standalone -d phish.example.com
3.5 创建Systemd服务
cat > /etc/systemd/system/gophish.service << 'EOF'
[Unit]
Description=GoPhish Phishing Framework
After=network.target
[Service]
Type=simple
User=gophish
Group=gophish
WorkingDirectory=/opt/gophish
ExecStart=/opt/gophish/gophish
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable gophish
sudo systemctl start gophish
# 查看初始密码(首次启动日志中)
sudo journalctl -u gophish -f | head -20
3.6 首次登录
# 访问管理后台
# https://your-server-ip:3333
# 默认用户名:admin
# 首次启动日志中会显示随机密码
# 登录后立即修改密码
四、邮件模板定制
4.1 配置发送账户
在GoPhish管理界面中:
- 进入 Sending Profiles → New Profile
- 配置SMTP参数:
| 参数 | 示例值 |
|---|---|
| Name | 公司IT部门 |
| From | [email protected] |
| Host | smtp.company.com:587 |
| Username | [email protected] |
| Password | ****** |
| 隐患忽略 | 选中(自签证书时) |
4.2 创建钓鱼邮件模板
进入 Email Templates → New Template:
模板一:IT系统升级通知
发件人:IT支持中心 <[email protected]>
主题:[重要] 邮箱系统升级 - 请验证您的账户
尊敬的 {{.FirstName}}:
为提升邮件系统安全性,IT部门将于本周五进行系统升级。请在升级前完成账户验证,以免影响正常使用。
验证链接:{{.URL}}
此链接将在24小时后失效。如有疑问请联系IT服务台。
此致
IT支持中心
模板二:薪酬调整确认
发件人:人力资源部 <[email protected]>
主题:Q3薪酬调整确认 - {{.FirstName}}
{{.FirstName}} {{.LastName}} 您好:
2024年Q3薪酬调整方案已审批通过。请登录HR系统确认您的调整详情。
查看详情:{{.URL}}
人力资源部
GoPhish模板变量说明:
{{.FirstName}}- 名字{{.LastName}}- 姓氏{{.Email}}- 邮箱地址{{.Position}}- 职位{{.URL}}- 钓鱼链接(自动生成,包含追踪ID){{.TrackingPixel}}- 邮件打开追踪像素
4.3 创建登录页面
进入 Landing Pages → New Page:
- 输入页面名称:如"公司邮箱登录"
- 点击 Import Site 导入目标网站
- 输入公司邮箱登录页URL,GoPhish会自动抓取页面
- 在HTML中确认表单的action属性已修改为
{{.URL}} - 勾选 Capture Submitted Data 记录填写数据
- 勾选 Capture Passwords 记录密码(需要告知参与者)
- 设置重定向URL,如跳转到真实登录页面
4.4 配置用户组
进入 Users & Groups → New Group:
使用CSV批量导入:
First Name,Last Name,Email,Position,Department
张,三,[email protected],工程师,研发部
李,四,[email protected],经理,市场部
王,五,[email protected],主管,财务部
建议按部门分组,便于后续生成部门级别的安全意识报告。
4.5 发起钓鱼演练
进入 Campaigns → New Campaign:
| 配置项 | 说明 |
|---|---|
| Name | 2024Q3钓鱼演练-全员 |
| Template | 选择已创建的邮件模板 |
| Landing Page | 选择登录页面 |
| URL | 钓鱼域名(需提前配置DNS) |
| Launch Date | 设置启动时间 |
| Send Emails By | 邮件发送完成时间(避免集中发送) |
| Groups | 选择目标用户组 |
重要提示:
- 钓鱼域名应与公司域名有一定相似性但不完全一致
- DNS需要提前配置好指向GoPhish服务器
- 邮件发送间隔建议设置为30-60分钟,避免触发反垃圾邮件机制
五、演练结果与报告
5.1 实时监控
演练开始后,Campaigns页面会实时显示:
- 邮件已发送: 成功发出的邮件数量
- 邮件已打开: 打开邮件的人数
- 链接已点击: 点击钓鱼链接的人数
- 数据已提交: 输入凭证的人数
- 邮件已报告: 标记为钓鱼邮件的人数
5.2 生成报告
点击Campaign详情页的 Export 按钮,可以导出:
- CSV格式的详细数据
- HTML格式的可视化报告
报告内容包括每个用户的详细行为时间线,以及整体的统计数据。
5.3 自动化报告脚本
#!/bin/bash
# 利用GoPhish API自动导出报告
API_URL="https://localhost:3333"
API_KEY="your-api-key"
# 获取所有Campaign
campaigns=$(curl -k -s -H "Authorization: Bearer $API_KEY" "$API_URL/api/campaigns/")
# 导出每个Campaign的CSV
echo "$campaigns" | python3 -c "
import json, sys
data = json.load(sys.stdin)
for c in data['campaigns']:
print(f"Campaign: {c['name']} - ID: {c['id']}")
"
六、功能对比表
| 功能 | GoPhish | Lucy Security | King Phisher | SET |
|---|---|---|---|---|
| 价格 | 免费 | $1,500+/年 | 免费 | 免费 |
| Web界面 | 有 | 有 | GUI客户端 | CLI |
| 邮件模板 | 可视化编辑 | 丰富模板库 | 手动编写 | 预设模板 |
| 登录页克隆 | 自动抓取 | 自动抓取 | 手动配置 | 自动抓取 |
| 用户管理 | CSV导入 | LDAP/AD | CSV导入 | 无 |
| 实时追踪 | 有 | 有 | 有 | 无 |
| 报告生成 | 自动 | 高级报告 | 基础 | 基础 |
| 培训课程 | 无 | 内置 | 无 | 无 |
| API接口 | 完整REST API | 有 | 有限 | 无 |
| 多语言支持 | 中文 | 多语言 | 英文 | 英文 |
| 部署难度 | 低 | 中 | 中 | 低 |
七、安全注意事项
- 合法授权: 钓鱼演练必须获得公司管理层书面授权
- 事先通知: 建议提前告知全员将开展安全培训,但不透露具体时间
- 数据保护: 收集的密码数据必须加密存储,演练结束后立即销毁
- 合规要求: 遵守当地法律法规,个人信息保护法相关要求
- 正面引导: 演练目的是提升安全意识,不应用于惩罚员工
- 邮件安全: 确保GoPhish服务器配置SPF/DKIM,避免影响公司邮件域名信誉
八、进阶配置
8.1 配合Evilginx2使用
对于需要评估双因素认证绕过风险的高级演练场景,可以结合Evilginx2:
# 安装Evilginx2
go install github.com/kgretzky/evilginx2@latest
# 启动
evilginx2
# 配置钓鱼域名和证书
config domain phish.example.com
config ipv4 your-server-ip
注意:Evilginx2的使用需要更加谨慎,仅限于已授权的红队评估。
8.2 自定义培训页面
在GoPhish Landing Page中添加培训提示:
当用户提交数据后,重定向到一个自定义培训页面,包含:
- 识别钓鱼邮件的关键技巧
- 本次演练中发现的钓鱼特征
- 报告可疑邮件的正确流程
总结
GoPhish作为免费开源的钓鱼演练平台,功能完整且易于上手。通过本文的部署和配置教程,你可以在数小时内搭建一套专业的钓鱼演练环境。定期开展钓鱼演练配合安全培训,是提升企业整体安全意识的最有效手段。相比Lucy Security等商业方案,GoPhish在核心功能上不相上下,非常适合中小企业和预算有限的安全团队使用。
评论