gophish
Gophish 使用指南:基础与高级用法
基础用法
1. 安装与启动
# 下载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
cd gophish-v0.12.1-linux-64bit# 启动Gophish
./gophish
2. 登录管理界面
- 默认地址:
https://localhost:3333
- 默认用户名:
admin
- 首次登录后修改密码
3. 创建钓鱼活动基本流程
3.1 创建目标用户组
- 导航至 “Users & Groups” → “Groups”
- 点击 “New Group”
- 输入组名
- 添加目标用户(姓名、邮箱)
- 保存
3.2 创建钓鱼邮件模板
- 导航至 “Email Templates”
- 点击 “New Template”
- 输入模板名称
- 编辑邮件内容(支持HTML)
- 可添加附件
- 保存
3.3 创建钓鱼页面
- 导航至 “Landing Pages”
- 点击 “New Page”
- 输入页面名称
- 编辑HTML内容或导入现有页面
- 可选择捕获提交的数据
- 保存
3.4 创建发送配置
- 导航至 “Sending Profiles”
- 点击 “New Profile”
- 配置SMTP服务器信息
- 测试连接
- 保存
3.5 启动钓鱼活动
- 导航至 “Campaigns”
- 点击 “New Campaign”
- 选择之前创建的用户组、邮件模板、钓鱼页面和发送配置
- 设置活动时间
- 启动活动
高级用法
1. 高级钓鱼技术
1.1 动态内容替换
在邮件和页面中使用 {{.}}
语法插入动态内容:
{{.FirstName}}
- 用户名字{{.LastName}}
- 用户姓氏{{.Position}}
- 用户职位(如果在用户数据中定义){{.Email}}
- 用户邮箱
1.2 时间延迟发送
在创建活动时:
- 设置 “Launch Date” 为未来时间
- 使用 “Send Emails By” 控制发送速度
1.3 多阶段钓鱼
- 创建多个连续活动
- 使用第一个活动收集信息
- 基于收集的数据定制后续活动
2. API集成
2.1 使用Gophish API
Gophish提供REST API用于自动化操作:
# 获取所有活动示例
curl -k -H "Authorization: YOUR_API_KEY" https://localhost:3333/api/campaigns/
2.2 自动化用户导入
通过API批量导入用户:
import requests
import jsonurl = "https://localhost:3333/api/import/group"
headers = {"Authorization": "YOUR_API_KEY","Content-Type": "application/json"
}
data = {"name": "Imported Group","targets": [{"email": "user1@example.com", "first_name": "John", "last_name": "Doe"},{"email": "user2@example.com", "first_name": "Jane", "last_name": "Smith"}]
}response = requests.post(url, headers=headers, data=json.dumps(data))
3. 高级配置
3.1 自定义SSL证书
-
准备证书和密钥文件
-
修改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} }
3.2 数据库迁移
- 备份现有数据库
- 修改config.json中的db_path
- 使用SQLite命令处理数据库
4. 分析与报告
4.1 导出结果
- 导航至活动详情页
- 点击 “Export Results”
- 选择CSV或JSON格式
4.2 自定义报告
使用API获取数据并生成自定义报告:
import requests
import pandas as pdurl = "https://localhost:3333/api/campaigns/1/results"
headers = {"Authorization": "YOUR_API_KEY"}response = requests.get(url, headers=headers)
data = response.json()df = pd.DataFrame(data)
df.to_excel("campaign_report.xlsx")
5. 规避检测技术
5.1 邮件头修改
在发送配置中自定义邮件头:
X-Mailer: Microsoft Outlook 16.0
X-Priority: 3
5.2 URL混淆技术
- 使用URL重定向服务
- 部署多个钓鱼服务器
- 定期轮换域名
5.3 反沙箱技术
- 在页面中添加JavaScript检测虚拟机环境
- 根据用户代理显示不同内容