返回首页

GoPhish钓鱼演练完整教程:从部署到邮件模板定制

钓鱼演练完整教程:从部署到邮件模板定制

前言

安全意识培训是企业信息安全体系的重要组成部分。钓鱼攻击至今仍是最有效的初始入侵手段,定期开展钓鱼演练能够显著提升员工的安全意识。商业方案如Lucy 年费$1,500起,对于中小企业来说成本不低。

GoPhish是一款功能完整的开源钓鱼演练框架,完全免费且社区活跃。本文将从零开始带你完成GoPhish的部署、配置、邮件模板定制和演练报告生成的全流程。

一、付费工具定价对比

工具 定价模式 价格范围 核心优势
Lucy Security 年付 $1,500+/年 丰富培训内容、合规报告
GoPhish Support 年付 $5,000+/年 商业技术支持、SLA保障
King Phisher 开源 免费 灵活定制、模板系统
GoPhish(社区版) 开源 免费 Web界面、完整

GoPhish和King Phisher都是完全免费的开源工具,仅在需要商业技术支持时才产生费用。对于内部安全培训,社区版GoPhish已经足够强大。

二、免费替代方案介绍

2.1 GoPhish

GoPhish是最流行的开源钓鱼演练平台,提供直观的Web管理界面,支持邮件模板编辑、登录页面克隆、点击追踪和详细报告。语言编写,单文件部署,跨平台支持。

: https://github.com/gophish/gophish

2.2 King Phisher

King Phisher是另一款优秀的钓鱼邮件工具,编写,支持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   && sudo apt  -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--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,端口3333
  • phish_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  
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管理界面中:

  1. 进入 Sending Profiles Profile
  2. 配置SMTP参数:
参数 示例值
Name 公司IT部门
From [email protected]
Host smtp.company.com:587
Username [email protected]
Password ******
隐患忽略 选中(自签证书时)

4.2 创建钓鱼邮件模板

进入 Email TemplatesNew 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 PagesNew Page

  1. 输入页面名称:如"公司邮箱登录"
  2. 点击 Import Site 导入目标网站
  3. 输入公司邮箱登录页URL,GoPhish会自动抓取页面
  4. 中确认表单的action属性已修改为 {{.URL}}
  5. 勾选 Capture Submitted 记录填写数据
  6. 勾选 Capture Passwords 记录密码(需要告知参与者)
  7. 设置重定向URL,如跳转到真实登录页面

4.4 配置用户组

进入 Users & GroupsNew Group

使用CSV批量导入:

First Name,Last Name,Email,Position,Department
张,三,[email protected],工程师,研发部
李,四,[email protected],经理,市场部
王,五,[email protected],主管,财务部

建议按部门分组,便于后续生成部门级别的安全意识报告。

4.5 发起钓鱼演练

进入 CampaignsNew Campaign

配置项 说明
Name 2024Q3钓鱼演练-全员
Template 选择已创建的邮件模板
Landing Page 选择登录页面
URL 钓鱼域名(需提前配置
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界面 客户端
邮件模板 可视化编辑 丰富模板库 手动编写 预设模板
登录页克隆 自动抓取 自动抓取 手动配置 自动抓取
用户管理 CSV导入 LDAP/AD CSV导入
实时追踪
报告生成 自动 高级报告 基础 基础
培训课程 内置
API接口 完整REST API 有限
多语言支持 中文 多语言 英文 英文
部署难度

七、安全注意事项

  1. 合法授权: 钓鱼演练必须获得公司管理层书面授权
  2. 事先通知: 建议提前告知全员将开展安全培训,但不透露具体时间
  3. 数据保护: 收集的密码数据必须加密存储,演练结束后立即销毁
  4. 合规要求: 遵守当地法律法规,个人信息保护法相关要求
  5. 正面引导: 演练目的是提升安全意识,不应用于惩罚员工
  6. 邮件安全: 确保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在核心功能上不相上下,非常适合中小企业和预算有限的安全团队使用。

评论