0x01 Gophish 平台介绍
Gophish 是一个开源的钓鱼模拟平台,主要用于测试和评估组织的安全意识。它可以帮助安全团队模拟真实的钓鱼攻击,以识别潜在的漏洞并提高员工的安全意识。
- Gophish官网地址:https://getgophish.com/
- Gophish项目地址:https://github.com/gophish/gophish
- Gophish用户手册地址:https://docs.getgophish.com/user-guide/
主要功能
- 钓鱼邮件模板:支持创建逼真的钓鱼邮件,包括 HTML 格式和动态内容。
- 目标管理:可以导入和管理目标用户列表,支持 CSV 文件导入。
- 钓鱼页面:允许创建仿真的钓鱼页面,用于收集用户输入(如凭证)。
- 发送计划:支持定时发送钓鱼邮件,模拟真实的攻击场景。
- 数据统计:提供详细的报告和分析,包括邮件打开率、点击率和提交率。
- API 支持:通过 API 与其他工具集成,实现自动化操作。
使用场景
- 安全意识培训:通过模拟钓鱼攻击,帮助员工识别和防范钓鱼邮件。
- 安全评估:测试组织的安全防护措施,发现潜在的风险。
- 合规性检查:满足某些行业对安全意识培训的合规要求。
0x02 Gophish 部署环境
搭建 Gophish 平台需要购买云服务器,可以在腾讯云上选择购买境外的 Linux 云服务器,操作系统选择 Ubuntu 24.04 LTS
。
选择境外服务器主要有2个好处:一个是境外服务器如果要绑定域名可以免备案;另一个是境外服务器访问外网资源下载速度不受限制。
0x03 Gophish 搭建教程
登录云服务器使用 root 账号操作,下载 Gophish 安装包并解压文件。
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
apt install unzip
unzip gophish-v0.12.1-linux-64bit.zip -d gophish
在当前目录下会得到Gophish文件夹,赋予其权限。
chmod -R 777 gophish
cd gophish
ll
查看配置文件 vi config.json ,将admin_server的listen_url修改为0.0.0.0,默认端口3333,可以自定义未被其他服务占用的端口。
Gophish默认开启3333端口和80端口,在云服务器控制台的防火墙需要对外开放端口。为了安全起见,可以将Gophish后台地址3333端口设置指定IP访问。
进入Gophish文件夹,运行程序有以下方式:
- 方式一:前台运行
./gophish
- 方式二:挂后台运行
nohup ./gophish
- 方式三:推荐用tmux复用器运行
# 新建一个会话窗口
tmux new -s gophish-test
# 进入Gophish文件夹
cd gophish
# 执行程序
./gophish
# 接着按 Ctrl+b键激活tmux窗口快捷键
# 再按d键切换到主界面会话
# 想重新接入会话,执行如下命令
tmux attach -t gophish-test
# 拓展:查看当前会话
tmux list-session
# 拓展:删除指定会话
tmux kill-session -t gophish-test
首次执行Gophish程序,会打印出账号密码,需记录下来后续登录使用。
访问Gophish后台地址 https://vpsIP:3333
使用初始账号密码登录即可。
首次登录会提示修改密码,修改完即可登录成功。
访问钓鱼地址http://vpsIP/
默认情况下为404空白页面。
至此,Gophish钓鱼平台搭建成功。
0x04 Gophish 使用教程
4.1 Dashboard - 数据面板
Gophish 钓鱼平台主要功能如下:
4.2 Sending Profiles - 邮箱发送配置
各字段解释:
- Name :随意填写,为Profile的名称。
- SMTP From :发送方的邮件地址,邮箱地址必须和下面的Username一致。
- Host:1、服务地址,没有做域名解析,直接填写 IP地址:25;2、做了域名解析的话,如通过http转发的25端口到vps的9999端口,填写domain:9999 。
- Username:发送方的邮件地址。
- Password QQ和163的邮箱授权码,以QQ邮箱为例:登录QQ邮箱网页版,点击账号与安全,点击安全设置,找到并开启SMTP,生成授权码。
- Email Headers: 设置重要性标识 - 可信头,例如QQ邮箱可信头可添加 X-Mailer QQMail 2.x
配置完成后,可以发送测试邮件进行验证。
发送成功,受害者用户邮箱接收邮件。
以上是公共邮箱QQ测试结果。在真实钓鱼演练中,需要去购买一个隐蔽形似的域名,然后搭建邮箱服务器用于发送钓鱼邮件,仿造真实邮箱,提升钓鱼成功概率。
4.3 User & Groups - 受害者用户组
各字段解释:
- Name :随意填写,为受害者组的名称。
- Bulk Import Users:可点击下载旁边的CVS模板文件,批量填写受害者的信息,然后导入Gophish平台。
- FirstName和LastName:受害者名字。
- Email:受害者的邮箱号码。
- Position:受害者的备注信息。
4.4 Email Templates - 邮件模板配置
各字段解释:
- Name:邮件模板的别名,可以自定义。
- Import Mail:支持导入.eml文件格式的邮件。
- Envelope Sender:发件人信息,可以自定义。
- Subject:发送钓鱼邮件的主题名称。
- Text和Html:编辑钓鱼邮件的内容,支持纯文本和Html代码格式,点击编辑器的Source和放大镜图标,可以预览html钓鱼邮件页面情况。注意跳转的地址标签需要更改为指定格式
{{.URL}}
,例如:<a href="{{.URL}}" >备案登记</a>
- Add Tracking Image:需要勾选,钓鱼邮件中插入一张隐藏的图片,以此判断受害者是否点击了该邮件,用来统计数据使用。
- Add Files:可以导入发送钓鱼邮件的附件。
4.5 Landing Pages - 钓鱼页面配置
钓鱼页面一般是仿造某个修改密码或者登录之类的页面,并且配合钓鱼邮件使用,通过发送钓鱼邮件来使受害者点击链接进行精心设计的钓鱼页面,利用钓鱼页面诱导受害者提交敏感信息(如:账号密码),或是诱导受害者下载邮件附件,以此向受害者主机植入病毒木马等。
各字段解释
- Name:钓鱼页面的别名,可以自定义。
- Import Site:爬取你要仿造页面的html文件。
- HTML:自定义设计的钓鱼页面html网页代码,推荐使用整站下载工具克隆网站后导入,钓鱼页面html文件中必须有 form 标签内的属性,且 action 必须为空,否则Gophish平台接收不到受害者的数据。点击HTML编辑器的Source和放大镜图标,可以预览html钓鱼页面的情况。
- Capture Submitted Data:抓取受害者是否点击了提交按钮。
- Capture Passwords:抓取受害者在钓鱼页面提交的账号密码信息。
- Redirect to:受害者在钓鱼页面提交数据后,可以重定向到指定的地址。
4.6 Campaigns - 钓鱼攻击配置
各字段解释:
- Name:钓鱼攻击事件的别名,可以自定义。
- Email Template:选择已创建好的邮件模板。
- Landing Page:选择已创建好的钓鱼页面。
- URL:填写Gophish平台的钓鱼地址,默认为80端口,即
http://vpsIP
,如果绑定域名则是http://domain:port
- Launch Date:设置发送钓鱼邮件的时间,可以选择在什么时间发送。
- Send Emails By (Optional):配合Launch Date使用,Send Emails By代表开始发送时间,Launch Date代表结束发送时间,所有邮件都会在这个时间段按分钟平均发送。假设这个时间段有10分钟,那么100封邮件就平均分成10份发送,每一分钟发10份。通过调整设置发件策略可以防止短时间内因发送大量邮件抵达目标邮箱而被检测为垃圾邮件,设置发件邮箱服务器IP直接被目标邮箱服务器封禁。
- Sending Profile:选择已创建的发件人邮箱配置。
- Groups:选择已创建的受害者用户组。
点击Launch Campaign发送钓鱼邮件,可以看到该钓鱼事件的数据情况。
- Email Sent:发送的钓鱼邮件数量
- Email Opened:受害者用户打开的邮件数
- Clicked Link:受害者用户点击钓鱼链接数量
- Submitted Data: 受害者用户提交数据数量
- Email Reported:邮件报告数量
Gophish平台记录了受害者访问钓鱼邮件各阶段的数据信息。