🎣Gophish钓鱼平台不完全指北

项目地址:https://github.com/gophish/user-guide/

用户指南:https://docs.getgophish.com/user-guide/

接口文档:https://docs.getgophish.com/api-documentation/

一、🔧Gophish平台搭建与配置

1、Gophish搭建

项目地址

1、下载压缩包,并解压

#1、下载压缩包
wget https://github.com/gophish/gophish/releases/download/v0.11.0/gophish-v0.11.0-linux-64bit.zip
#2、解压
unzip gophish-v0.11.0-linux-64bit.zip

2、配置远程访问

将红框处改为0.0.0.0,否则无法远程访问管理后台(此处浪费了我两小时)

img

3、添加执行权限并运行

#1、添加可执行权限
chmod +x ./gophish
#2、启动
./gophish

启动后会再终端生成一个初始密码

img

访问https://xx.xx.xx.xx:3333,使用默认账户admin登录系统

img

2、配置文件

###修改配置文件
vim ./config.json
###

{
        "admin_server": {
                "listen_url": "0.0.0.0:8088",     //修改默认端口   
                "use_tls": true,
                "cert_path": "gophish_admin.crt",
                "key_path": "gophish_admin.key"
        },
        "phish_server": {
                "listen_url": "0.0.0.0:443",     //https开启443端口
                "use_tls": true,
                "cert_path": "access.a.com.crt",  //修改证书
                "key_path": "access.a.com.key"    //修改证书
        },
        "db_name": "sqlite3",                     //数据库支持MySQL
        "db_path": "gophish.db",
        "migrations_prefix": "db/db_",
        "contact_address": "",
        "logging": {
                "filename": "/var/log/gophish/gophish.log",  //日志记录,需要先创建目录和文件,否则无法运行
                "level": ""
        }
}

3、钓鱼页面启用HTTPS

申请免费SSl证书

安装ssl证书(letsencrypt):
# 你的gophish目录
cd /gophish              
#安装certbot
sudo apt install certbot
#关闭gophish
sudo kill $(pidof gophish) 
#生成证书,多域名可用逗号隔开
sudo certbot certonly -d access.a.com --standalone 
#建立软连接
ln -s /etc/letsencrypt/live/xxxx.com/privkey.pem xxxx.key
ln -s /etc/letsencrypt/live/xxxx.com/fullchain.pem xxxx.crt

打开gophish配置文件config.json

img

访问我们的钓鱼页面,浏览器就不会显示不安全的站点

img

4、启用日志功能

需要先创建目录和文件,否则无法运行

"logging": {
                "filename": "/var/log/gophish/gophish.log",
                "level": ""
}

img

二、⌛Gophish平台使用

1、配置发送策略(Sending Profiles)

首先需要配置邮件发送策略

  • Interface Type:接口类型,默认为smtp且不可更改,因此发送邮件的邮箱需要开启SMTP服务。

  • Host: SMTP服务器地址

  • Username: SMTP服务器认证的用户名

  • Password: SMTP服务器认证的口令

  • Email Headers:自定义邮件头部信息,可按需填写。

img

HeaderValue
X-MailerCoremail Webmail Server Version XT5.0.13 build 20201231(b63a4d0a)

配置完成后,可使用Send Eest EMail功能发送测试邮件

img

填写好相应信息后,可通过**********Send Test Email**********发送测试邮件,确认发件邮箱能否正常发送邮件:

img

2、制作钓鱼页面(Landing Pages)

配置好发送策略后,就可以开始编写钓鱼页面了。

Gophish提供了两种钓鱼页面设置方式,一是直接克隆,二是使用内置编辑框编辑钓鱼页面。通常使用克隆功能并不能完美克隆一个钓鱼页面,因此绝大多数情况下需要两种方法共同使用。编写过程中,可使用预览功能查看页面,直至满意为止。

img

页面调试完毕后,记得勾选Capture Submitted DataCapture Passwords,否则无法捕获用户提交数据。

最后,Gophish还提供了一个重定向功能。为了使整个钓鱼过程形成一个完整的闭环,通常需要在用户提交数据后,将页面跳转至一个可信的、真实的页面,以降低被发现的风险。所以,在这个重定向链接中,最好是一个带有报错参数的原始页面的URL。

问题一:页面无法克隆或克隆页面部分内容缺失

目标网站使用了前端框架的话(例如vue)会导致克隆失败,页面无法显示,需要自己保存网站页面并修改HTML代码,VUE框架由于使用js来触发form动作,需要注释并自己添加from代码。

<form action="" autocomplete="off" class="ivu-form ivu-form-label-right" enctype="application/x-www-form-urlencoded" method="post">

若无法使用克隆功能克隆页面,可以使用浏览器访问页面,等页面完全加载后,F12审查元素,将所有代码复制到编辑框中,再手动修改至与原页面一致。

若导入后要在HTML编辑框的非Source模式下观察源码解析情况,如果明显发现存在许多地方未加载,则有可能导入的源码并非页面完全加载后的前端代码,则可先使用克隆功能克隆页面,再使用浏览器F12审查元素,找到缺失的部分代码,手动复制到模板相应位置。

问题二:无法捕获用户提交数据或捕获数据不完整

若未捕获到数据,请检查Form表单格式,需严格包含如下内容:

<form method="post" ···><input name="aaa" ··· /> ··· <input type="submit" ··· /></form>
  • 表单提交方式为POST,<input>标签是submit类型。

  • 在浏览器解析后不能action属性,或者action属性为空。否则将会把表单数据提交给action指定的页面,而导致无法被捕获到。

  • <input>标签需存在name属性,例如<input name="username">,否则会因为没有字段名而导致value被忽略,导致提交数据不完整。

示例代码:

<form action="" method="POST">
<input name="username" type="text" placeholder="username" />
<input name="password" type="password" placeholder="password" />
<input type="submit" value="Submit" />
</form>

3、编写钓鱼邮件(Email Templates)

完成了钓鱼页面编写之后,接下来需要去编写钓鱼邮件的内容,点击New Template新建钓鱼邮件模板。具体功能如下图所示:

img

使用Import Email功能导入邮件,首先我们需要在自己的邮箱中编辑好钓鱼邮件,然后将邮件导出为eml格式的文件,然后将内容复制到gophish的Import Email中。

img

勾选Change Links to Point to Landing Page后,gophish会将邮件中的超链接的值替换为{{.URL}}{{.URL}}是一个模板变量,变量值可在Campaigns创建钓鱼任务时设置,会将邮件中的超链接转变为钓鱼网站的URL。

勾选Add Tracking Image后,gophish会在邮件原文末尾加入一个跟踪图像:{{.Tracker}},用来跟踪收件人是否打开邮件。

<img alt='' style='display:none' src='http://example.com/track?ri=
d=3DzJrDrkG'/>

当收件人打开邮件时,浏览器就会请求这个图像,当gophish收到请求后,根据请求链接中的rid参数就可以对应到哪个收件人打开了钓鱼邮件。

可以使用Add Files功能向邮件内添加附件,可以配合免杀木马诱导受害用户下载并打开。

img

模板变量参考

如下模板变量可在Email TemplatesLanding Pages中使用,模板使用要严格区分大小写。

用户名处插入变量:{{.FirstName}},程序发送邮件的时候会自动插入对应的用户名。

VariableDescription
{{.RId}}The target’s unique ID
{{.FirstName}}The target’s first name
{{.LastName}}The target’s last name
{{.Position}}The target’s position
{{.Email}}The target’s email address
{{.From}}The spoofed sender
{{.TrackingURL}}The URL to the tracking handler
{{.Tracker}}An alias for <img src="{{.TrackingURL}}"/>
{{.URL}}The phishing URL
{{.BaseURL}}The base URL with the path and rid parameter stripped. Useful for making links to static files.

4、设置目标人群(Users & Groups)

如上工作全部完毕后,就可以使用Users & Groups功能将目标人群添加至Gophish中。

我们可以使用Bulk Import Users功能批量导入邮箱,首先需要使用Download CSV Template下载邮箱模板。还可以使用Add逐个添加目标。

img

邮箱模板如下所示:

名字我只用FirstName,后面邮件内容模板可能用到这个变量FirstName。

导入的邮箱不能存在空格,并且需要保证是正确的邮箱地址,否则会出现乱码,影响后续邮件发送。

img

5、发送钓鱼邮件(Campaigns)

完成以上步骤,就可以开始快乐的捕鱼了。最后一步,我们需要使用Campsigns下发一个发件任务。

img

URL后的文件路径是可以任意设置的,不管文件路径是什么都会指向我们的钓鱼页面。

gophish默认监听了333380端口,其中3333端口是后台管理系统,而80端口就是用来部署钓鱼页面的。创建了钓鱼事件后,gophish会在主机的80端口部署当前钓鱼事件的钓鱼页面。这里将URL设置为我们钓鱼链接的地址(收件人可以访问),程序会在每封邮件内容中替换{{.URL}}变量,并创建一个唯一的rid,用于区分目标。

设置邮件发送速率,发送速率尽可能低,这样有利于绕过垃圾邮件频率检测(同域最多600封/小时)。

当大量发送邮件时,我们需要设置Launch DateSend Emails ByLaunch Date作为起始发件时间,Send Emails By 作为完成发件时间。设置按日期发送电子邮件会告诉 Gophish 在开始日期和截至日期之间均匀发送电子邮件。

这样的好处在于,当需要发送大量的钓鱼邮件,而发件邮箱服务器并未限制每分钟的发件数,那么通过该设定可以限制钓鱼邮件发送速率,从而防止因短时间大量邮件抵达目标邮箱而导致的垃圾邮件检测,甚至发件邮箱服务器IP被目标邮箱服务器封禁

6、查看钓鱼结果(Dashboard)

Dashboard中可以看到所有钓鱼任务的结果。

img

可以点击上图中的按钮,单独查看每个钓鱼任务的结果。

img

查看捕获的数据

img

整个结果可以通过Export CSV导出

  • Results–>查看、点击、提交结果统计

  • Raw Events–>捕获的数据

img

二维码

https://tool.oschina.net/action/qrcode/generate?data={{.URL}}&output=image%2Fgif&error=L&type=0&margin=0&size=4

img

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐