目前越来越多的红蓝对抗中,钓鱼邮件攻击使用的越来越频繁,也是比较高效打点的一种方式,常见的钓鱼邮件攻击一种是直接通过二维码,内嵌链接、直接索要敏感信息等方式钓运维人员、内部人员相关的管理账号密码,另一种通过携带exe、execl、word等附件(附件中要么包含恶意代码、宏代码、要么是远控exe)的方式,诱导运维人员、内部员工点击相关的附件,以达到控制运维人员或者内部员工电脑的权限。但是一般项目中实施周期较短,并且需要进行数据统计等,因此本次主要介绍如何通过Gophish快速搭建邮件钓鱼平台。
Gophish官网地址:https://getgophish.com/
Gophish项目地址:
(1)首先,我们将适合自己系统的Gophish包下载到我们的vps上:
mkdir gophish
cd gophish
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
(2)然后修改配置文件config.json:
(3)现在,我们就可以启动gophish了:
chmod 777 gophish
nohup ./gophish &
成功启动后,在命令行输出的初始账户密码可以用来登录控制台:
(4)然后,访问 https://your-ip:3333/ 即可登录管理后台(注意使用https协议):
首次登录会强制你修改密码,要求八位以上字符,登陆进入页面如下:
至此,Gophish平台搭建完成。
该Gophish平台具有如下几个功能,均需要进行配置。
功能 | 简述 |
---|---|
Dashboard | 仪表板,查看整体测试情况 |
Campaigns | 每次攻击前需要配置一次 |
Users & Groups | 用户和用户组(添加需要进行钓鱼的邮箱和相关基础信息) |
Email Templates | 电子邮件模板 |
Landing Pages | 需要伪造的钓鱼页面 |
Sending Profiles | 钓鱼邮箱发送配置 |
Sending Profiles的主要作用是将用来发送钓鱼邮件的邮箱配置到Gophish。点击 “New Profile” 新建一个策略,依次来填写各个字段:
xxxxxx@qq.com
。test<xxxxxx@qq.com>
。smtp.example.com:25
,例如qq邮箱的smtp服务器地址为 smtp.qq.com
。但这里要注意,如果搭建Gophish平台用的vps是阿里云的话,是不能使用25端口的,因为阿里云禁用25端口,你可以通过提工单解封,但申请通过的难度很大。所以,我们这里可以把25端口改为465端口,即填写 smtp.qq.com:465
,这样就可以成功发送邮件了。xxxx@qq.com
。X-Mailer
字段,若不修改此字段的值,通过gophish发出的邮件,其邮件头的X-Mailer的值默认为gophish。设置好以上字段,可以点击 “Send Test Email” 来给自己发送一个测试邮件,以检测SMTP服务器是否认证通过。如下,成功收到测试邮件,说明SMTP服务器是否认证通过:
至此,发件邮箱的配置已经完成。当然,在实际钓鱼中,不可能使用自己的qq邮箱去发送钓鱼邮件。一是因为很容易暴露自身身份,而且邮件真实性低,二是qq邮箱这类第三方邮箱对每个用户每日发件数存在限制,对钓鱼有检测、会被封的,所以我们还是得自己搭建邮件服务器,这个我们后文会讲到。
因此,如果需要大批量去发送钓鱼邮件,最好的方式是使用自己搭建的邮件服务器,申请近似域名,搭建邮件服务器来发件。
完成了邮箱配置之后,就可以使用gophish发送邮件了。所以,接下来需要去“Email Templates”中编写钓鱼邮件的内容。点击“New Template”新建钓鱼邮件模板,依次介绍填写各个字段:
Text
和 HTML
两种模式来编写邮件内容,使用方式与正常的编辑器无异。其中HTML模式下的“预览”功能比较常用到,在编辑好内容后,点击预览,就可以清晰看到邮件呈现的具体内容以及格式。当填写完以上字段后,点击“Save Template”,就能保存当前编辑好的钓鱼邮件模板。如下图,我们创建了一个带有office宏病毒的word附件的邮件模板:
完成钓鱼邮件的编写后,下一步则需要在Landing Pages中设计由邮件中超链接指向的钓鱼网页,点击 “New Page” 新建页面:
https://www.xxxxxxx.com/backend/account/login.html
:
然后点击 Import即可,如下图所示,成功伪造目标网站:
Redirectto
中,最好根据目标网站情况填写带出错参数的URL,以显得更真实)因此,令此处的Redirect to的值可以为 https://www.xxxxxxx.com/backend/account/login.html?class=form-validation&name=loginform
:
填写好以上参数,点击 “Save Page”,即可保存编辑好的钓鱼页面。
当完成上面三个功能的内容编辑,钓鱼准备工作就已经完成了80%, Users&Groups
的作用是将钓鱼的目标邮箱导入Gophish中准备发送。点击“New Group”新建一个钓鱼的目标用户组:
编辑好目标用户的邮箱后,点击“Save Changes”即可保存编辑好的一组目标邮箱保存在Gophish中。
Campaigns 的作用是将上述四个功能Sending Profiles 、Email Templates 、Landing Pages 、Users & Groups联系起来,并创建钓鱼事件。在Campaigns中,可以新建钓鱼事件,并选择编辑好的钓鱼邮件模板,钓鱼页面,通过配置好的发件邮箱,将钓鱼邮件发送给目标用户组内的所有用户。点击“New Campaign”新建一个钓鱼事件:
2020.07.22,09:00
,Send Emails By的值为 2020.07.22,09:04
,该钓鱼事件需要发送50封钓鱼邮件。那么经过以上设定,从9:00到9:04共有5个发件点,这5个发件点被50封邮件平分,即每个发件点将发送10封,也就是每分钟仅发送10封。这样的好处在于,当需要发送大量的钓鱼邮件,而发件邮箱服务器并未限制每分钟的发件数,那么通过该设定可以限制钓鱼邮件不受约束的发出,从而防止因短时间大量邮件抵达目标邮箱而导致的垃圾邮件检测,甚至发件邮箱服务器IP被目标邮箱服务器封禁。xxxxxx@qq.com
的发件策略。填写完以上字段,点击“Launch Campaign”后将会创建本次钓鱼事件(注意:如果未修改“Launch Date”,则默认在创建钓鱼事件后就立即开始发送钓鱼邮件):
当创建了钓鱼事件后,Dashboard 会自动开始统计数据。统计的数据项包括邮件发送成功的数量及比率,邮件被打开的数量及比率,钓鱼链接被点击的数量及比率,账密数据被提交的数量和比率,以及收到电子邮件报告的数量和比率。另外,还有时间轴记录了每个行为发生的时间点:
需要注意的是,Dashboard 统计的是所有钓鱼事件的数据,而非单个钓鱼事件的数据,如果仅需要查看单个钓鱼事件的统计数据,可以在Campaigns中找到该钓鱼事件,点击View Results按钮查看:
至此,一次在gophish发起的钓鱼事件所需实施步骤就已经全部完成,接下来就等着鱼儿上钩了。
此时,受害者已经收到了我们发送的钓鱼邮件:
受害人点击超链接即可跳转到部署好的钓鱼页面,如下图发现与真实的XX大学邮箱登录界面无差别:
但是在网站的URL处可以看到钓鱼邮件中的超链接指向的就是之前在新建 Campaigns
的表单中填写的 URL
,只不过后面多了一个 rid
参数。这里的 ?rid=eVtEBmB
具有唯一性,即唯一指向打开的这封钓鱼邮件,换句话说 eVtEBmB
是为这封邮件的收件人唯一分配的,以此来区别不同的收件人。
当受害人输入用户名和密码并提交后,部署的钓鱼页面重定向到了真实的网站登录页面,且添加上了出错参数 ?class=form-validation&name=loginform
,使账号或密码错误的提示显示出来,达到迷惑受害用户的作用:
在仪表板的Details中可以查看Gophish捕获的数据:
如上图,可以展开查看到每个人在钓鱼页面提交的账密信息。
当受害人下载钓鱼邮件中的附件并打开时,受害人的主机成功上线cobalt strike:
在实际使用中,钓鱼邮件的发送一般需要进行近似域名伪造,以增强钓鱼右键的真实性。比如说我想对一个叫 whoami 的公司钓鱼,他们公司的邮件格式是:xxx@whoami.com。那么为了发钓鱼邮件,我们就得门去购买了一个近似域名 whoaml.com,这样的话后面我们就可以以 admin@whoaml.com 为发件人去发送一些钓鱼邮件。
这里可以去 GoDaddy 去申请购买近似域名:
然后在此近似域名的DNS管理页面里增加两条记录即可:
在实际钓鱼中,我们不可能使用自己的qq邮箱去发送钓鱼邮件。一是因为很容易暴露自身身份,而且邮件真实性低,二是qq邮箱这类第三方邮箱对每个用户每日发件数存在限制,对钓鱼有检测、会被封的,所以我们还是得自己搭建邮件服务器,常见的邮件服务器软件有:
下面,我们使用 postfix+mailutils 在搭建 Gophish 的同一台 VPS 上开始搭建邮件服务器:
apt-get install postfix
vim /etc/postfix/main.cf
主要由以下几个配置:
# 设置myhostname
myhostname = mail.whoaml.com
# 设置域名
mydomain = whoaml.com
# 设置myorigin
myorigin = $mydomain
# 默认是localhost,修改成all
inet_interfaces = all
# 推荐ipv4,如果支持ipv6,则可以为all
inet_protocols = ipv4
# 设置mydestination
mydestination =
m
y
h
o
s
t
n
a
m
e
,
l
o
c
a
l
h
o
s
t
.
mydomain, localhost,
# 指定内网和本地的IP地址范围
mynetworks = 192.168.0.0/16,127.0.0.0/8
# 邮件保存目录
home_mailbox = Maildir/
# 设置banner
smtpd_banner = $myhostname ESMTP
apt-get install mailutils
systemctl start postfix
echo "email content" | mail -s "title" 6572*****@qq.com
邮件服务器搭建完成后,我们便可以用自己的邮件服务器来发送钓鱼邮件了,即在Sending Profiles的钓鱼邮箱发送配置的host里面将smtp服务器的地址为指定为 127.0.0.1:25 即可。
参考: https://blog.csdn.net/qq_42939527/article/details/107485116 http://blog.leanote.com/post/snowming/a6b66097bccd https://www.jianshu.com/p/8f5c5ef25db9
原创投稿作者:Mr.Anonymous
博客:whoamianony.top