1 背景

近期需要组织个应急演练,其中有个科目就是邮件钓鱼,为了这个科目进行相关环境搭建,主要利用Gophish搭建钓鱼平台,由于是使用ubuntu所以使用

Postfix+mailutils搭建邮件服务器
如果vps是centos,有更好用的平台EwoMail搭建,参考官方文档进行一步步搭建http://doc.ewomail.com/docs/ewomail/install
具体搭建过程如下:

2 Gophish搭建钓鱼平台

Gophish 是一个功能强大的开源网络钓鱼框架。
Github 地址:https://github.com/gophish/gophish
在github上查找合适的版本,本次的搭建的vps是ubuntu,Gophish版本为gophish-v0.11.0
解压并启动
wget https://github.com/gophish/gophish/releases/download/v0.11.0/gophish-v0.11.0-linux-64bit.zip unzip gophish-v0.11.0-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
修改之后的配置文件如下:
配置完成后直接运行
chmod777 gophish./gophish
开启后admin密码会在启动信息中显示  2a1774145a66fbfc
登录管理后台地址,端口为3333,利用获取的登录账号密码,admin,2a1774145a66fbfc

到此钓鱼平台搭建完成。

3 Gophish功能介绍

安装完成后页面如下:
官方指导手册地址:https://docs.getgophish.com/user-guide/

2.1 Groups

该功能主要是设置要进行钓鱼攻击的邮箱地址,可进行单个添加
也支持表格导入,下载模板,
批量导入

2.2 Email Templates

“模板”是发送到目标的电子邮件的内容。它们可以从现有电子邮件中导入,也可以从头开始创建。他们还支持发送附件。
此处尝试导入现有电子邮件,将要保存的邮件另存为eml格式,然后粘贴导入
在点击“Import”之前需要勾选上“Change Links to Point to Landing Page”,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的URL。

2.3  Landing Pages

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

Gophish 可以轻松地从登录页面捕获凭据。要捕获凭据,只需选中“捕获提交的数据”复选框。

Redirect to:

为了防止怀疑。为了防止用户在输入凭据后变得可疑,您可能希望将他们重定向到原始 URL。

Gophish 可以在用户提交凭据后轻松重定向用户。要重定向用户,请在选中“捕获提交的数据”复选框后出现的“重定向到:”文本字段中输入 URL。

2.4  Sending Profiles

要发送电子邮件,Gophish 要求您配置称为“发送配置文件”的 SMTP 中继详细信息。要设置发送配置文件,请单击侧栏中的“发送配置文件”导航条目,然后单击“新建配置文件”按钮。我的邮件服务器和钓鱼网站部署在一台机器上,所以设置127.0.0.1
Name:Name字段是为新建的发件策略进行命名,不会影响到钓鱼的实施,建议以发件邮箱为名字,例如使用qq邮箱来发送钓鱼邮件,则Name字段可以写 [email protected]

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  邮件服务器搭建

1、安装   postfix
apt-get install postfix,安装过程只需对这一步进行配置,inernet site填写注册的域名
开启   postfix
service  postfix  start
2、安装  mailx
apt-get install mailutils
安装完成后,利用echo “I am a monster” | mail -s “test” <a href="mailto:[email protected]" "="">[email protected] 进行测试,进行邮件发送,可成功收到邮件
我们需要尝试伪造发件人信息,在ubuntu新建service账户,adduser service,切换到该账户再次进行发送,可改变发件人信息


5 问题点

简单记录下搭建过程中遇到的问题,网上的搭建资料已经很多了,参考他人的搭建过程,从gophish搭建到邮箱服务器搭建都比较顺利,最后出现的两个问题都在Landing Pages搭建钓鱼页面,第一、无法获取受害者输入的数据;第二、无法点击登录按钮,这里确实很坑,找了很多资料才发现导入网站的数据必须要有form表单,需要自己修改,顿时觉得为啥别人知道我不知道,继续翻它的官方文档才发现人家的Q&A给出了答案
上面也提到过了Landing Pages有个比较方便的功能就是直接克隆目标url地址,所以需要在修改source中修改源码,修改为form结构,其实也比较好修改,直接调用该代码本身就能生成一个登录框如下图
<formaction=""method="POST"><inputname="username"type="text"placeholder="username" /><inputname="password"type="password"placeholder="password" /><inputtype="submit"value="Submit" /></form>
该登录框是最原始的登录框,在该基础上加入原有页面的、div标签就能成功展示,如下是克隆的freebuf的登录页面
受害者收到邮件后点击点击相关链接调转到登录页面
受害点击后能获取到输入的相关信息
另外还发现除了以邮件形式发送该钓鱼地址,还可进行url群发,这样也能记录登录的信息
尝试了克隆了几个不同的网站,基本都需要进行源码修改,在保留原有网页情况下删除不必要的一些函数或js加载,图中标记处为需要修改的地方,有时候网页调用js脚本进行加密,但是我们需要的是明文的密码,在我们克隆的页面中可找到加密js文件,并删除调用。

也有时候会存在网页克隆后,页面资源打不开,这时候可把页面资源全部打包下载,放在自己的vps上,新建一个网站,然后再利用Landing Pages进行导入。

下面列举几个收集邮箱的网站:https://intelx.iohttps://phonebook.cz/https://hunter.io/http://www.skymem.info/
参考文章:https://mp.weixin.qq.com/s/ZU8LrUENEnCSX9Q9ZxiyyAhttps://security.tencent.com/index.php/blog/msg/165https://xz.aliyun.com/t/11400
E
N
D
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章400余篇,自研平台达到31个,目有18个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们
继续阅读
阅读原文