加入安世加交流群,与安全技术大佬共同探讨邮件钓鱼演练技巧

加入安世加交流群 和大佬们一起交流安全技术

加入安世加交流群,与安全技术大佬共同探讨邮件钓鱼演练技巧

前言

一个下午天气风和日丽,和平常一样,先审审漏洞,接着逛逛其他相关的安全论坛,再翻看其他大佬们的漏洞挖掘思路,一天就这么过去了。当准备下班时,发现微信一直响个不停,心里想着完了(下班无望),看来又有新项目要开始了。于是打开微信,果然如自己所料。

听到“邮件钓鱼演练”这几个词语,我一脸茫然,心中疑惑:“what???”因为之前的工作主要是进行 web 挖洞,突然让我搞邮件钓鱼,这可让我犯难了。既然是领导安排的工作,即便有些困难,我也得硬着头皮去做,那就开始行动吧,说干就干。

心里想着,既然要进行邮件钓鱼,那首先得了解什么是邮件钓鱼。接着要知道怎么在项目中迅速搭建起邮件钓鱼的环境。最后还要完成钓鱼邮件的相关工作。

背景:

目前在越来越多的红蓝对抗中,钓鱼邮件攻击愈发频繁,它是一种较为高效的打点方式。常见的钓鱼邮件攻击有两种,一种是直接通过二维码、内嵌链接或直接索要敏感信息等方式来钓运维人员、内部人员相关的管理账号密码;另一种是通过携带 exe、execl、word 等附件(附件中要么包含恶意宏代码,要么是远控 exe)的方式,诱导运维人员、内部员工点击相关附件,从而达到控制运维人员或内部员工电脑权限的目的。一般项目的实施周期较短,同时还需要进行数据统计等工作。所以,本次主要是介绍怎样借助 Gophish 和 EwoMail 快速搭建邮件钓鱼平台,以及介绍一次实战钓鱼邮件的场景。

概念性的内容已经介绍完毕,接下来就开始为准备相关邮件钓鱼所需的环境而着手行动吧。

准备的环境和工具

具体搭建过程

Gophish搭建

建议在 centos7 中进行操作。在 windows 中搭建 gophish 比较方便,然而如果购买的 vps 不是高配版,就不建议在 windows 中搭建 gophish,因为经测试,在这种情况下会太卡。可以在 github 上根据不同操作系统下载对应版本,本次下载的版本如下。

gophish-v0.9.0-linux-64bit.zip
https://github.com/gophish/gophish/releases

解压并启动。

mkdir -p /app/gophish
unzip gophish-v0.9.0-linux-64bit.zip 会被解压到 /app/gophish/ 目录下,并且执行相关操作。
cd /app/gophish/

此时需要对 config.json 进行修改。本次已经修改完成的内容如下:之前的配置是 127.0.0.1:3333。

80 端口是钓鱼网站所开放的端口;后台管理页面开放的端口为 3333,其默认的账号是 admin,默认的密码是 gophish。

后台直接运行,目前环境即搭建完成。

./gophish &

进行测试 首先访问钓鱼页面端口是否正常,直接访问如下地址

后台管理系统如下:

https://x.x.x.x:3333/

Gophish搭建完成。

EwoMail搭建

官网直接下载开源的项目。

https://gitee.com/laowu5/EwoMail

此处可直接依据官方文档逐步进行搭建,同时配置域名。前期需先购买好相关且类似的域名。

http://doc.ewomail.com/docs/ewomail/install

碰到的坑有:在购买域名以及搭建 EwoMail 的 vps 时,建议选择国外厂商。因为国内存在种种限制,可能会导致出现莫名其妙的问题。最终搭建的效果如下所示:

http://域名:8010

新建相关的发件邮件地址即可。

目前已经搭建完毕。搭建成功后的 Gophish 是英文平台,而我的英文水平比较差,所以花费了不少时间才熟悉了 Gophish 的基本使用。先简单介绍一下具体的使用吧,一是为了巩固自己的知识,二是方便后续其他遇到相同项目的同事能够快速上手搭建钓鱼邮件平台并展开钓鱼邮件测试。

实战钓鱼攻击

在进行实战钓鱼测试的时候,要提前把 Gophish 配置好。Gophish 具有以下几个功能,这些功能都需要进行配置。

功能简述

Dashboard

仪表板,查看整体测试情况

Campaigns

每次攻击前需要配置一次

Users & Groups

用户和用户组(添加需要进行钓鱼的邮箱和相关基础信息)

Email Templates

电子邮件模板

Landing Pages

需要伪造的钓鱼页面

Sending Profiles

钓鱼邮箱发送配置

Sending Profiles-邮箱配置

填写刚才新建的发送邮箱地址和用户名。

配置完成后,要测试是否能正常发送邮件,可使用如下自带的测试功能,即 Send Test Email。

如下是我的QQ邮箱收到的测试邮件。

此处需注意 Host 处,不能使用 smtp 默认的 25 端口。因为多数云厂商出于监管要求,为防止邮件泛滥,已禁用 25 端口。所以可采用带有 SSL 的 SMTP 服务的 465 端口。

Users& Groups-邮件用户和组

此时可以进行下一步配置。需要设置要进行钓鱼攻击的邮箱地址,即“Users&Groups”。

一般项目中需要批量发送邮件时,或者在真实测试中需要批量发送邮件时,就可以通过上传 CVS 文件来进行批量添加。

Email Templates-钓鱼邮件模板

创建钓鱼邮件模板,此模板既可以直接进行编辑,又能够导入其他邮箱的模板。

方式一:自己编辑。

为了后续记录邮件是否被打开,我们可以勾选 AddTrackingImage。它会在发送的每份邮件源码中插入一个唯一特定的隐藏图片。当邮件被打开时,这个隐藏图片也会被请求。通过这种方式,我们可以检测该邮件是否被打开。而 AddFiles 是用于给邮件添加附件的。以下是官方提供的其他可以使用的参数。

ariableDescription

{{.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 for the tracking handler. // 用于追踪处理程序的 URL。

{{.Tracker}}

An alias for

{{.URL}}

The phishing URL

{{.BaseURL}}

针对如上提供的参数进行测试。

如下是收到的邮件结果。

可以依据实际的钓鱼场景来选用恰当的参数,以此提升钓鱼邮件内容的真实性。

方式二:导入其他邮箱已有的模板。首先,把原有的邮件导出成 eml 格式。

然后通过notepad++打开,复制所有的内容。

默认会选择把图中链接替换成钓鱼页面链接,即将 Change Links to Point to Landing Page 进行替换,然后点击 import,这样就可以成功导入。

注意点:

如果要统计哪些人点开了钓鱼邮件,哪些人打开了钓鱼页面,就需要在钓鱼邮件模板的 html 里进行更改和添加,并且在 Text 中进行操作,不然后续就无法正常进行记录。

AddTrackingImage 功能的记录不是很准确,仅供参考。因为有部分邮件软件会把邮件中插入的隐藏图片识别为恶意代码,从而不允许显示该图片。不过经过实际测试,大部分的邮件软件是不会进行拦截的。

Landing Pages-伪造钓鱼页面

配置好钓鱼邮件之后,能够利用 LandingPages 模块去新建钓鱼网站页面。这里既可以手写 html 文件,又可以通过导入网站功能,对目标网页进行克隆,克隆的是如下的登陆页面。

点击Import Site。

效果如下所示。

选择 CaptureSubmitted Data 和 CapturePasswords 这两个功能,能够记录受害者输入的账号和密码。

引导至填写该页面真实的地址,以便受害者在点击完提交按钮之后,能够自动跳转至真正的网站。

Campaigns-钓鱼测试

配置 Campaigns 时,需要填写 Name,要选择钓鱼邮件模板,还要选择钓鱼网站模板,接着填写钓鱼网站 URL,之后填写发件邮箱,最后选择受害者邮件组。

钓鱼网站 URL 需根据实际钓鱼邮件测试情况填写对应的地址。本次因使用的是 Gophish 默认的钓鱼页面,所以填写的是本服务器的地址。在真实进行钓鱼时,也可绑定类似的域名地址,建议使用国外的域名和云 vps。本次搭建环境时,使用的是阿里云的服务器和域名,且该域名未进行备案,导致绑定该钓鱼页面后,阿里云直接识别并提示需要备案后,钓鱼网站才可正常使用,所以本次是通过 IP 直接进行访问。

点击 Launch Campaign 就能够发起一次钓鱼邮件攻击测试并取得成功。

Dashboard-仪表板

通过如下查看钓鱼邮件测试的实际情况。

点开邮件后,查看 gophish 平台,会发现已经有相关的打开记录,即“Email Opened”。

当点击如下地址时,则会直接跳转至钓鱼的页面。

类似于这样的地址:

http://x.x.x.x/?rid=tSdIyGl

此时查看 gophish 平台,已经有“Clicked Link”这样的相关记录。

输入完相关的账号和密码后,会跳转至设置好的跳转真实地址,这样做是为了让受害者更加相信此地址是真实的地址,如下所示:

此时查看gophish平台,已经记录了相关的账号和密码。

可通过Export CSV功能将目前的钓鱼情况结果导出来。

导出的钓鱼测试结果如下所示:

至此已经完成相关简单钓鱼邮件测试的需求。

小记:此平台能够完成一些简单的钓鱼邮件场景,并且还可以与其他平台结合使用。

如果 gophish 的伪造钓鱼页面功能不能满足需求,那么可以自己搭建一个钓鱼页面服务器。之后,在 Campaigns 功能中的 URL 处填写自己构建的钓鱼页面地址就可以了。

常见基础钓鱼使用场景

场景一

模仿领导邮件,以钓取运维人员、内部人员相关的个人账号以及身份证等敏感信息。

场景二

以最近的一段时间所发生的最新时事来展开钓鱼行为。例如:前段时间的新冠肺炎疫情,能够将其作为一个钓鱼的点,发送与之相关的钓鱼邮件,以此来获取员工的相关账号和密码,亦或是员工的个人敏感信息,像姓名、身份证号、家庭住址以及家庭情况等这类敏感信息。

例1:

例2:

其中附件可以是 word 格式。在 word 中携带有恶意宏代码,这些代码会诱导用户进行点击操作,其目的是控制个人的 PC 机。

场景三

依据最新爆发的漏洞,接着以伪造公司安全运维管理部门的钓鱼邮箱向全体员工发送关于防范最新漏洞的通知。现已通过邮件附件形式发放最新漏洞补丁,要求大家下载附件中的最新漏洞补丁(其中包含免杀的远控木马等,如:)。

场景四

伪造公司服务器被攻击等理由进行邮件钓鱼攻击。

如:

此处提前构造相类似的邮件平台。

场景五

构造出钓鱼二维码,然后诱导员工去扫描这个二维码,目的是钓取员工相关的账号和密码。

扫描完成后,会跳转至钓鱼页面,本次只是嵌入 baidu.com 搜索页面来进行验证。

邮件钓鱼演练实战

既然已经介绍了诸多基础知识,那就开始进行实战钓鱼邮件的演练吧。首先,依据上述的钓鱼场景,构造了一个模仿领导的邮件,目的是钓取运维人员、内部人员的相关个人账号或者身份证等敏感信息。

通过Gophish发送成功后,那就静静的等鱼儿上钩呗。

等了很久,差不多等了 1 个小时,却没有看到任何反应。这表明员工的安全意识还是比较好的。第一份邮件最终以失败而结束。

这种类型的邮件发送不出去,所以就换种类型。接着又弄了一个附件邮件的形式,这次采用的是 exe 后缀的木马。为了方便,直接通过 CS 生成了一个 exe 的木马,过程如下:

首先进行反弹shell监听。

然后生成相应的exe。

利用钓鱼场景三进行邮件钓鱼,最终的钓鱼邮件形式如下所示:

然后利用 gophish 平台进行批量发送,这次应该可以了吧。以下是发送成功的截图。然而,一直没有用户邮箱打开邮件。最终询问企业内部管理员后得知,是反垃圾邮件安全网关将所有携带 exe 附件的邮件都进行了拦截,所以邮件根本没有发送到用户的邮箱。

既然不能携带附件,那么直接在邮件内容中嵌入一个下载链接就可以了。之后继续制作相应的钓鱼邮件样本。

接着制作一个钓鱼页面,其作用在于:用户访问这个地址时,就会直接对该木马进行下载。

然后进行一次批量发送。过了一会儿,发现有许多用户收到了这种钓鱼邮件,并且打开了钓鱼邮件。这表明该反垃圾邮件安全网关只是拦截了带有附件的 exe 文件,然而却没有拦截邮件正文中嵌入链接的钓鱼邮件。

继续等待观察,应该会有不少员工点击这个钓鱼链接并下载木马。果然,有几个安全意识不强的员工下载了该 exe 木马。

在真实环境下的邮件钓鱼中,只要能够钓到一个内部员工的相关信息,危害就是不可控制的;只要能够控制该员工的终端,危害也是不可控制的。

既然有员工点击了,那就会有员工点击并下载 exe 木马。查看 CS 后,发现有两台主机已上线。

客户未允许进行内网渗透,所以没有进一步深入利用,这样第一个邮件钓鱼就顺利完成了。

想着可以休息了,然而任务要求是发送 2 到 3 个钓鱼邮件模板,所以继续制作新类型的模板并进行测试。

接下来这个钓鱼模板不再采用携带附件木马的方式。通过前期的信息收集,得知他们内部使用的是某个 OA 系统。于是伪造一个他们内部的 OA 系统页面,以此来钓取内部员工的 OA 账号。

使用带有链接的钓鱼模板,估计他们内部能够识别出来。那么就伪造一个钓鱼二维码,用以钓取内部员工的 OA 账号,邮件模板如下所示。

然后将其直接批量发送出去。过了大概半个多小时后,发现终于有员工点击了。打开钓鱼邮件的员工人数不在少数。

然后等待一段时间,之后终于有员工遭遇了,输入了自己的 OA 账号以及密码。

因为已经获得了 OA 的账号和密码,所以可以直接使用账号密码进行登录。具体操作如下:登录成功。

已经登到了后台,所以肯定要拿 shell。因为已经知道该 OA 的类型,所以可以直接通过已有的 exp 进行攻击。此处的后台存在任意文件上传的漏洞,能够直接上传 webshell。测试过程如下:

首先选择电子邮箱。

写邮件处,添加图片,如下所示。

首先上传一个正常的图片,抓取到如下的POST请求包。

正常情况下,直接修改 png 后缀为 php 是不能进行上传的。在这里,可以把 png 改成 php,从而绕过限制。真实存储到服务器的文件名不符合 windows 命名规范,系统会自动去掉最后的点号。

Webshell的地址为:,冰蝎成功连接。

最高权限:

至此,钓鱼工作顺利完成了。

结尾

本文主要介绍以下内容:搭建邮件钓鱼平台,包括 Gophish 和 EwoMail,也可使用其他平台;进行具体的实战演练;简单介绍常规的钓鱼邮件场景;以及真实的一次钓鱼实战。

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

49阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

41阅读

php一句话木马,一句话木马ctf

2026年10月05日

44阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

45阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

43阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

39阅读