gophish钓鱼平台搭建

一、背景
近期需要组织个应急演练,其中有个科目就是邮件钓鱼,为了这个科目进行相关环境搭建,主要利用Gophish搭建钓鱼平台,由于是使用ubuntu所以使用
Postfix+mailutils搭建邮件服务器
如果vps是centos,有更好用的平台EwoMail搭建,参考官方文档进行一步步搭建http://doc.ewomail.com/docs/ewomail/install
具体搭建过程如下:
wget -c https://down.ewomail.com/install-03.sh && sh install-03.sh accesscorproate.com.cn

Gophish搭建钓鱼平台

Gophish 是一个功能强大的开源网络钓鱼框架。
Github 地址:https://github.com/gophish/gophish
在github上查找合适的版本,本次的搭建的vps是ubuntu,Gophish版本为gophish-v0.11.0
解压并启动
mkdir gophish;cd 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
修改config.json:
后台管理页面开放的端口:admin_server 把 127.0.0.1 改为 0.0.0.0,外网直接访问就要0.0.0.0
钓鱼网站开放的端口:listen_url也要是0.0.0.0:89,由于默认80端口被占用了,所以修改为89
修改之后的配置文件如下:
# nano 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": ""
        }
}
配置完成后直接运行
chmod +x gophish
./gophish
开启后admin密码会在启动信息中显示  782c98bef445ec6a
登录管理后台地址,端口为3333,利用获取的登录账号密码,admin,782c98bef445ec6a
到此钓鱼平台搭建完成。

3 Gophish功能介绍

安装完成后页面如下:
图片[1]-gophish钓鱼平台搭建-Happy峰
官方指导手册地址:https://docs.getgophish.com/user-guide/

2.1 Groups

该功能主要是设置要进行钓鱼攻击的邮箱地址,可进行单个添加
点击Download CSV Template下载导入模板
编辑导入表格
点击Bulk import Users导入用户
2.2 Email Templates
“模板”是发送到目标的电子邮件的内容。它们可以从现有电子邮件中导入,也可以从头开始创建。他们还支持发送附件。
此处尝试导入现有电子邮件,将要保存的邮件另存为eml格式,然后粘贴导入
在点击“Import”之前需要勾选上“Change Links to Point to Landing Page”,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的URL。
模板常用变量

Variable

Description

{{.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.

2.3  Landing Pages

登陆页面是用户点击收到的钓鱼链接时返回给用户的实际 HTML 页面。登录页面支持模板化、捕获凭据以及在用户提交凭据后将其重定向到另一个网站。选择导入一个网站

注意,目标网站使用了前端框架的话(例如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">
手工编写HTML
实例代码
<html>
<head>
    <title></title>
</head>
<body>
<form action="" method="post" name="form"><label>用户名:</label> <input name="username" type="text" /><br />
<label>密码:</label> <input name="password" type="password" /><br />
<input id="login" name="login" type="submit" value="修改密码" /> </form>
</body>
</html>
Capture Submitted Data
Gophish 可以轻松地从登录页面捕获凭据。要捕获凭据,只需选中“捕获提交的数据”复选框。
Redirect to:
为了防止怀疑。为了防止用户在输入凭据后变得可疑,您可能希望将他们重定向到原始 URL。
Gophish 可以在用户提交凭据后轻松重定向用户。要重定向用户,请在选中“捕获提交的数据”复选框后出现的“重定向到:”文本字段中输入 URL。

2.4  Sending Profiles

要发送电子邮件,Gophish 要求您配置称为“发送配置文件”的 SMTP 中继详细信息。要设置发送配置文件,请单击侧栏中的“发送配置文件”导航条目,然后单击“新建配置文件”按钮。我的邮件服务器和钓鱼网站部署在一台机器上,所以设置127.0.0.1
Name:Name字段是为新建的发件策略进行命名,不会影响到钓鱼的实施,建议以发件邮箱为名字,例如使用qq邮箱来发送钓鱼邮件,则Name字段可以写 xxxx@qq.com。
Password:Password 是SMTP服务认证的密码,例如qq邮箱,需要在登录qq邮箱后,依次点击 “设置”—>“账户”—>“开启SMPT服务”—>“生成授权码”来获取SMTP服务授权码,Password的值则填写我们收到的授权码。由于本次测试是用的我的vps搭建的邮件服务器,所以host地址写127.0.0.1,username和password为空。
配置完成后可进行邮件发送测试
2.5  Campaigns
开始钓鱼
Campaigns 的作用是将上述四个功能Sending Profiles 、Email Templates 、Landing Pages 、Users & Groups联系起来,并创建钓鱼事件。在Campaigns中,可以新建钓鱼事件,并选择编辑好的钓鱼邮件模板,钓鱼页面,通过配置好的发件邮箱,将钓鱼邮件发送给目标用户组内的所有用户。点击“New Campaign”新建一个钓鱼事件:
Name:Name 是为新建的钓鱼事件进行命名。
Email Template:Email Template 即钓鱼邮件模板。
Landing Page:Landing Page 即钓鱼页面。
URL(重点):URL 是用来替换选定钓鱼邮件模板中超链接的值,该值指向部署了选定钓鱼页面的url地址。简单来说,这里的URL需要填写当前运行Gophish脚本主机的IP。因为启动Gophish后,Gophish默认监听了3333端口和80端口(我们这配置的是81端口),其中3333端口是后台管理系统,而89端口就是用来部署钓鱼页面的。当URL填写了http://主机IP/,并成功创建了当前的钓鱼事件后,Gophish会在主机的81端口部署当前钓鱼事件所选定的钓鱼页面,并在发送的钓鱼邮件里,将其中所有的超链接都替换成部署在81端口的钓鱼页面的url。所以,这里的URL填写我本地当前运行Gophish的vps主机IP和端口,即我这里是 http://47.xxx.xxx.72:81/。
Launch Date:Launch Date 即钓鱼事件的实施日期,通常如果仅发送少量的邮箱,该项不需要修改。如果需要发送大量的邮箱,则配合旁边的“Send Emails By”效果更佳。
Send Emails By(可选):Send Emails By 配合Launch Date使用,可以理解为当前钓鱼事件下所有钓鱼邮件发送完成的时间。Launch Date作为起始发件时间,Send Emails By 作为完成发件时间,而它们之间的时间将被所有邮件以分钟为单位平分。例如,Launch Date的值为 2020.07.22,09:00,Send Emails By的值为 2020.07.22,09:04,该钓鱼事件需要发送50封钓鱼邮件。那么经过以上设定,从9:00到9:04共有5个发件点,这5个发件点被50封邮件平分,即每个发件点将发送10封,也就是每分钟仅发送10封。这样的好处在于,当需要发送大量的钓鱼邮件,而发件邮箱服务器并未限制每分钟的发件数,那么通过该设定可以限制钓鱼邮件不受约束的发出,从而防止因短时间大量邮件抵达目标邮箱而导致的垃圾邮件检测,甚至发件邮箱服务器IP被目标邮箱服务器封禁。
Sending Profile:Sending Profile 即上文中我们配置的发件邮箱策略,这里选择刚刚编辑好的名为 发件策略profile。
Groups:Groups 即接收钓鱼邮件的目标用户组,这里选择刚刚编辑好的名为ceshi。
填写完以上字段,点击“Launch Campaign”后将会创建本次钓鱼事件(注意:如果未修改“Launch Date”,则默认在创建钓鱼事件后就立即开始发送钓鱼邮件):
钓鱼成功
钓鱼成功过后可查看钓鱼详情:
登录邮箱查看邮件
输入账号密码
在查询大盘
查看详细记录

4配置mysql数据库

Using MySQL

The default database in Gophish is SQLite. This is perfectly functional, but some environments may benefit from leveraging a more robust database such as MySQL.
Support for Mysql has been added as of 0.3-dev. To setup Gophish for Mysql, a couple extra steps are needed.
Update config.json
First, change the entries in config.json to match your deployment:
Example:
"db_name" : "mysql",
"db_path" : "root:@(:3306)/gophish?charset=utf8&parseTime=True&loc=UTC",
db_path条目的格式是username:password@(host:port)/database?charset=utf8&parseTime=True&loc=UTC.
更新mysql配置文件

Gophish 使用与 MySQL >= 5.7 不兼容的日期时间格式。要解决此问题,请将以下行添加到底部/etc/mysql/mysql.cnf
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
以上设置是 MySQL 的默认模式,但删除了 NO_ZERO_IN_DATE 和 NO_ZERO_DATE。
创建数据库
要利用 Mysql,您需要做的最后一步是创建gophish数据库。为此,请登录 mysql 并运行命令
CREATE DATABASE gophish CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;.

问题点

简单记录下搭建过程中遇到的问题,网上的搭建资料已经很多了,参考他人的搭建过程,从gophish搭建到邮箱服务器搭建都比较顺利,最后出现的两个问题都在Landing Pages搭建钓鱼页面,第一、无法获取受害者输入的数据;第二、无法点击登录按钮,这里确实很坑,找了很多资料才发现导入网站的数据必须要有form表单,需要自己修改,顿时觉得为啥别人知道我不知道,继续翻它的官方文档才发现人家的Q&A给出了答案
上面也提到过了Landing Pages有个比较方便的功能就是直接克隆目标url地址,所以需要在修改source中修改源码,修改为form结构,其实也比较好修改,直接调用该代码本身就能生成一个登录框如下图
<form action="" method="POST">    
    <input name="username" type="text" placeholder="username" />    
    <input name="password" type="password" placeholder="password" />    
    <input type="submit" value="Submit" />
</form>

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容