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

修改之后的配置文件如下:

配置完成后直接运行

chmod 777 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字段可以写 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 邮件服务器搭建

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:xx@163.com" "="">xx@163.com 进行测试,进行邮件发送,可成功收到邮件

我们需要尝试伪造发件人信息,在ubuntu新建service账户,adduser service,切换到该账户再次进行发送,可改变发件人信息

5 问题点

简单记录下搭建过程中遇到的问题,网上的搭建资料已经很多了,参考他人的搭建过程,从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>

该登录框是最原始的登录框,在该基础上加入原有页面的、div标签就能成功展示,如下是克隆的freebuf的登录页面

受害者收到邮件后点击点击相关链接调转到登录页面

受害点击后能获取到输入的相关信息

另外还发现除了以邮件形式发送该钓鱼地址,还可进行url群发,这样也能记录登录的信息

尝试了克隆了几个不同的网站,基本都需要进行源码修改,在保留原有网页情况下删除不必要的一些函数或js加载,图中标记处为需要修改的地方,有时候网页调用js脚本进行加密,但是我们需要的是明文的密码,在我们克隆的页面中可找到加密js文件,并删除调用。

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


下面列举几个收集邮箱的网站:
https://intelx.io
https://phonebook.cz/
https://hunter.io/
http://www.skymem.info/
参考文章:
https://mp.weixin.qq.com/s/ZU8LrUENEnCSX9Q9ZxiyyA
https://security.tencent.com/index.php/blog/msg/165
https://xz.aliyun.com/t/11400
文章来源:Tide安全团队
原文链接:https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650543607&idx=3&sn=132d408a81ab8e4ea4ff02cb14f69e58&chksm=83bd7013b4caf9053fb08a223b9b2fe1eece71097e28dd912657ea3a82d9e729904ccdce84a2&scene=132#wechat_redirect