一、前言
近期一直有在负责公司内钓鱼邮件演练的相关项目,钓鱼邮件演练一般是要面向企业的大量员工开展的,需要对演练过程中的一些数据进行统计分析,最终输出报告,因此邮件发送平台的数据跟踪和统计能力就显的十分重要。
最开始一直使用的是SendCloud邮件平台来实施钓鱼邮件,可以实现发件人伪造、邮件开启情况跟踪、邮件连接打开情况跟踪等功能,但缺点就是普通用户只有20条邮件的免费额度,付费包月的扣费机制也并不是很人性化,以至于萌生了自己搭建钓鱼平台的想法,经过了一番资料查找,最终目标锁定了一款开源免费的钓鱼邮件平台——gophish。
二、Docker搭建
拉取镜像
1 | docker pull gophish/gophish:latest |
启动镜像并且把3333和80端口分别映射出来
1 | docker run -p 3333:3333 -p 3334:80 gophish/gophish:latest |
docker logs <容器名称或ID>
查看日志,可以看到如下日志中初始的账号密码为admin
/aaf9ae4e329c1793
1 | time="2023-07-25T06:17:08Z" level=info msg="Please login with the username admin and the password aaf9ae4e329c1793" |
三、gophish搭建
1、源码获取
1 | wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip |
解压到指定目录
1 | unzip gophish-v0.12.1-linux-64bit.zip -d gophish |
2、修改配置文件
将配置文件config.json
中的管理地址和钓鱼地址按下图更改,注意自己服务器是否有端口冲突的情况,自行更改便可,如下图中钓鱼端的默认端口为80
,这里和服务器上的其他服务冲突,改为了89
,配置完成之后记得去修改服务器的防火墙策略,开启3333
和89
这两个端口
3、启动服务
1 | chmod 777 gophish |
2 | ./gophish |
正常启动之后便可查看到管理账号和密码,访问登录管理端3333
端口
如果使用的服务器是centos
,可能会出现Glib
版本报错的情况,解决方法是升级glibc
到2.28
版本
4、Glib版本报错问题解决(如不存在此项报错,跳过此节!)
1 | wget https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz |
2 | |
3 | tar -xf glibc-2.28.tar.xz -C /usr/local/ |
4 | |
5 | cd /usr/local/glibc-2.28/ |
6 | |
7 | mkdir build |
8 | |
9 | cd build/ |
10 | |
11 | ../configure --prefix=/usr/local/glibc-2.28 |
执行完上面命令,如出现以下报错,需升级make
换一个目录升级make
1 | wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz |
2 | tar -xzvf make-4.2.tar.gz |
3 | cd make-4.2 |
4 | sudo ./configure |
5 | sudo make |
6 | sudo make install |
7 | sudo rm -rf /usr/bin/make |
8 | sudo cp ./make /usr/bin/ |
9 | make -v |
再次回到GLIBC目录
1 | cd /usr/local/glibc-2.28/build/ |
2 | yum install -y bison |
3 | ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin |
4 | make //make 运行时间较长 |
5 | make install |
四、gophish使用
1、Users & Groups
先从需要配置的参数开始,第一个Users & Groups
,也就是钓鱼邮件的发送对象
点击+New Groups
新建一个组
此处添加邮箱,可以一个一个手动填写增加,也可以下载模板之后通过导入文件添加
如下图为下载的模板:
2、Email Templates
接下来第二个需要配置的是Email Templates
,也就是最终会发送给对象的邮件模板
点击+New Templates
新建一个模板
这里模板编写可以通过文本格式编写、HTML源码编写以及导入邮件eml格式添加
文本格式编写、HTML源码编写就不再多说了,下图在qq邮箱中把邮件导出为eml
格式
以文本格式打开eml
文件,复制并导入邮件模板,
导入之后可以进一步的在下方编辑器里修改邮件内容,比如点击Add Tracking Image
添加一个图片标签.Tracker
,这个标签在邮件发送之后会默认替换为和收件人身份绑定的一个唯一标识图片,只要这个图片被访问,gophish就会认定邮件已经打开,并记录下来
除了标识图片标签,gophish还有其他的一些动态标签参数可供我们使用,可以自由的添加到html源码中
| ariable | 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 |
| .URL | The phishing URL |
| .BaseURL | The base URL with the path and rid parameter stripped. Useful for making links to static files. |
发件人这里按照格式填写可实现发件人的伪造
格式:发件人<发件人邮箱>
在后面测试邮件发送时发现被退信了,分析因该是对发件人的身份有一些核对
这里我们可以对发信人稍作更改,如果测试邮件没问题,可以正常发送就不用修改了
如图发件人从noreply@steampowered.com
改为了noreply@steampower.com
再次测试发现发送成功,不过需要点击显示图片
,效果如图:
仔细观察,还是能发现有跟官方邮件的不同点
3、Landing Pages
第三步就是钓鱼页面的部署了
点击+New Page
添加钓鱼页面,也即是钓鱼邮件中的超链接导向的页面
这里直接通过点击Import Site
,填写一个想要仿造的连接便可以快速克隆目标页面
不过这里的页面克隆只能面对一些简单的网站,像一些复杂的,存在很多动态资源的网站,效果并不是很好,想要得到最好的效果,在克隆网站源码之后,还需要再下方的html源码编辑器里进行修饰,或者不使用gophish自带的钓鱼页面部署功能,直接自己再服务器上搭建一个服务就可以。
4、Sending Profiles
第四步就是配置邮件服务器,这里就直接使用一些现成的,如qq或者自己企业的邮箱就行,再或者搭建一个自己的邮件服务器,这里推荐一个EwoMail
点击+New Profiles
添加邮件服务器SMTP From
和Username
填自己的邮箱就行,注意这两个参数如果不一样会报错,Host
和Password
分别填自己的smtp地址
和smtp授权码
如果是qq邮箱,smtp地址
填写smtp.qq.com
,smtp授权码
需要如下图开启smtp服务
后获取,在设置完成这些参数之后,可以点击发送测试邮件,确定邮件服务器是否配置成功Email Headers
是自定义邮件头,查看原始邮件时可见邮件头都有哪些参数
比如这里的From
参数,指代了发件人,如下图设置这个参数,可以达到发件人伪造的目的
如图发送测试邮件效果
查看原始邮件,From
字段已修改
5、Campaigns
最后一步就可以创建一个钓鱼项目,发送钓鱼邮件
点击New Campaign
新建一个项目
按照下图配置参数,其中钓鱼端口就是一开始咱们配置的端口,注意如果这个参数不设置,咱们探测邮件是否打开的标签.Tracker
不会生效
发送时间默认的话为瞬发,如果设置周期,就是周期内平均时间发送,比如设置时间周期是10分钟,有10封邮件,那么就是一分钟发一篇
最后点击Launch Campaign
开启项目,通过大屏Dashboard
和Campaigns
都可以查看钓鱼邮件的响应情况
注意这里可能会因为测试邮件发送过多,邮件被屏蔽,尝试换个邮件目标即可
五、钓鱼邮件实施
1、流程分析
在平台配置完成,开始实施钓鱼邮件之前,分析一下接下来的流程:
- 首先要把邮件模板、发件人设置好
- 其次,是要设置好钓鱼页面,这里考虑到gophish自带的网站克隆不好用,我们直接在外部的服务器上搭建一个页面,让gophish的页面跳转过去
- 如果是用外部的服务器搭建页面,那么gophish自带的表单参数捕获就用不了了,咱们自己写个脚本接收一下表单的数据
- 最后邮件发送之后,需要统计数据,利用gophish的跟踪标可以完成邮件打开和点击连接的统计,用户输入的数据就用自己的脚本接收统计
2、邮件模板、发件人设置
这里还用steam这个邮件模板
如图这个邮件模板预览时发现,有一些用户姓名邮箱之类的内容,为了更加逼真,有两个思路,一种是直接删掉,另一种是使用gophish动态标签,如.Email
添加之后再次预览,可以看到相关标识已替换
发送一篇邮件测试一下,可以看到相关的动态参数已经替换上去
发件人这里的话,还是尽可能伪造的和真实发件人接近一些
3、外部钓鱼页面设置
这里按照分析,部署一个外部的钓鱼页面
首先找到需要仿制的网站
接下来两种方法仿制,第一种直接Ctrl+S
把页面资源整体打包下来,第二种方法是使用一些网站克隆的工具,这里推荐一个https://www.toolfk.com/tools/online-website-mirror.html
两种方法灵活使用,哪种方式克隆的页面资源完整用哪个
如下图是直接Ctrl+S
保存的本地页面资源
接下来把页面部署到自己的web服务器中,这里推荐使用宝塔部署,方便快捷,这里部署时的目录分级可以设置的和目标站点相近一些,把默认的html页面改为index.html
访问一下服务测试一下
页面没有问题,接下来就是对源码进行修改,主要是修改表单内容,和增加后端接收代码
把表单的action
设置成本页面,method
设置成post
型传参,等会直接在本页面接收参数,分别设置参数username
和password
后端代码直接用php,如图在代码末尾加入php的处理代码,接收这两个参数并写入一个txt文本,注意这里需要把文件权限设置为777,最后再跳转真实的页面,保存之后,记得把文件后缀改为index.php
再次访问钓鱼页面,并且输入信息测试,查看文本,已经成功接收到
4、gophish钓鱼页面跳转设置
指向部署好的外部钓鱼页面连接
5、发送钓鱼邮件
新建项目并启动钓鱼邮件发送
测试各参数都正常统计
至此,钓鱼邮件的部署实施便已完成,接下来便可以等待周期结束后,统计数据出具报告
六、总结
钓鱼邮件一定要结合不同的环境场景灵活应变,上面的这些实施过程还有很多可以优化的地方:
比如邮件服务器可以自己搭建,注册一个和真实发送者相近的域名;
gophish自带的钓鱼页面连接比较容易被识破,邮件中可以不用自带的,直接超链接到我们自己部署的钓鱼网站上,不过这样就不能使用gophish的连接打开统计功能,这个问题也好解决,我们直接在连接中附带一个动态参数.Email
接收一下就可以了;
还有邮件中的一些风险提示内容可以尝试一下是否可以屏蔽。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1975763359@qq.com