声明:
1.香港服务器(必须)
2.域名
3.cloudflare
4.EwoMail邮件服务器
5.gophish
一:服务器准备
二:域名
我这里买的阿里云的,我们购买成功以后就可以看到我们的域名,这里暂时先不管,我们进行下一步操作。
三:cloudflare搭建
3.1添加域名站点
https://dash.cloudflare.com/
(1) 选免费 -> 继续 -> 确认
(2) 左边点 DNS-> 记录 -> 添加记录
(3) 添加两条
这里说明一下,类型我们都选择A记录,然后名称就是主域名前面的名称,比如我们申请的域名是bittbi.com这个域名,那么名称我们就可以填写www,那么整个域名就是www.bittbi.com。内容填写我们前面提到的服务器也就是我们的vps。
3.2域名dns更改
这里需要修改域名的dns解析值,查看上图我们会发现cloudflare有一个NS类型的值,这里我们需要在域名里面把值修改为cloudflare中NS类型的值,这样你ping域名的时候就会解析到cloudflare的cdn,这里我们以阿里云为例子,回到刚刚阿里云那个界面点击全部域名那个"1"按钮就会跳转到如下:
点击管理:
选择修改dns,填写我们刚刚cloudflare中NS类型的值,阿里云需要等待48小时dns服务器才会更改生效,如果不着急的话可以选择阿里云,很着急的话选择国外的也行。
3.3cloudflare ssl配置:
(1) 改为灵活,因为完全在国内会非常慢
(2) 点客户端证书 -> 创建
(3) 选择 ECC-> 创建证书
(4) 左边缓存 -> 配置 -> 开发者勾上
(5) 左边规则 -> 添加两个规则 -> 选择缓存级别 -> 选择绕过 -> 保存
这里“url/说明”填写我们之前申请的主域名
*.bittle.com/*
bittle.com/*
*号必须要有,速通符
四:EwoMail邮件服务器
4.1关于25端口
4.2搭建步骤
4.2.1:检查selinux
vi /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
4.2.2:git安装
yum -y install git
cd /root
git clone https://gitee.com/laowu5/EwoMail.git
cd /root/EwoMail/install #需要输入一个邮箱域名,不需要前缀,列如下面的bittbi.com
sh ./start.sh bittbi.com // 注意安装时更改为自己的主域名
4.2.3:host替换
vim /etc/hosts
127.0.0.1 mail.bittbi.com smtp.bittbi.com imap.bittbi.com
4.2.4:创建邮箱账号
登录邮箱管理后台:http://IP:8010 (默认账号admin,密码ewomail123),进行账号创建
注意添加邮箱账号时,需要更换为自己的主域名,也就是sh ./start.sh bittbi.com
命令执行时候的域名,我以示例域名bittbi.com为例那么就是[email protected]。
4.2.5:邮箱登录
使用浏览器打开http://IP:8000,例如:[email protected]进行登录
这里可以发送邮件,我们可以自行测试一下邮件能否发送,发送一封测试就行。
4.2.6:注意事项
如果想要重新安装的话只能通过重装系统才能解决,默认后台运行不需要每次都启动脚本,启动一次即可。
五:gophish搭建
5.1:安装gophish
安装包下载:https://github.com/gophish/gophish/releases,这里我建议本机开代理下载下来然后传到服务器上面进行解压使用,如果服务器网速很好可以使用wget进行下载
wget https://github.com/gophish/gophish/releases/download/v0.10.1/gophish-v0.10.1-linux-64bit.zip
注意这是64位的
下载以后解压
unzip gophish-v0.10.1-linux-64bit.zip -d ./gophish
进入gophish修改配置文件,因为我们服务器是在公网所以要改一个配置
vi config.json
改为0.0.0.0,即为全部用户可访问
5.2:gophish使用详情
chmod +x gophish
nohup ./gophish > gophish.log 2>&1 &
访问https://ip:3333/
(注意使用https协议)尽量登录后在功能面板Account Settings
处修改高强度密码(admin/gophish)
如果依旧访问不到后台管理系统,有可能是服务器未对外开放3333端口,可查看防火墙策略、配置iptables 等方式自检
5.3:功能介绍
进入后台后,左边的栏目即代表各个功能,分别是Dashboard仪表板
、Campaigns钓鱼事件
、Users & Groups用户和组
、Email Templates邮件模板
、Landing Pages钓鱼页面
、Sending Profiles发件策略
六大功能,接下来逐一介绍此功能。
5.3.1:Sending Profiles 发件策略
说白了就是绑定一个发钓鱼邮件的邮箱账号
Name:这里建议选择邮箱名字,做到见名知其意
From:就是发送到对方邮件后想显示的效果,比如你想模仿网易安全中心那么就是“网易安全中心[email protected]”,这里的域名要自行替换哦
UserName:就是刚刚邮件服务器创建的邮箱名字
PassWord:邮箱密码
Email Headers:这个需要自己改,如果用默认的直接会被拦截掉,如何去找这个?可以自行百度该字段的意义然后里面会有很多,或者自己先用网易发一封正常的邮件然后导出为eml格式的文件用txt打开找到这个字段复制下来就好了,这里给大家一个例子:
X-Mailer:Foxmail 6, 15, 201, 21 [cn]
这里可以发送一封测试邮件进行测试,如果有收到说明就没问题。
5.3.2:Landing Pages 钓鱼页面
这里有几个点需要注意,重点说一下
Name:还是跟之前一样的,命名规范
Import Site:要克隆的页面,输入域名就可以克隆页面,但是这个里面有很多的坑,要么就是捕捉不到数据要么就是乱码,所以接下里给大家讲讲如何避免这种情况
必看)经验之谈 · 注意事项
在导入真实网站来作为钓鱼页面时,绝大多数情况下并非仅通过Import就能够达到理想下的克隆,通过多次实践,总结出以下几点注意事项
【捕获不到提交的数据】导入后要在HTML编辑框的非Source模式下观察源码解析情况,如果明显发现存在许多地方未加载,则有可能导入的源码并非页面完全加载后的前端代码,而是一个半成品,需要通过浏览器二次解析,渲染未加载的DOM。这种情况下,除非能够直接爬取页面完全加载后的前端代码,否则无法利用gophish进行钓鱼,造成的原因是不满足第2点。
【捕获不到提交的数据】导入的前端源码,必须存在严格存在<form method="post" ···><input name="aaa" ··· /> ··· <input type="submit" ··· />结构,即表单(POST方式)— Input标签(具有name属性)Input标签(submit类型)— 表单闭合的结构,如果不满足则无法捕获到提交的数据
【捕获不到提交的数据】在满足第2点的结构的情况下,还需要求<form method="post" ···>在浏览器解析渲染后(即预览情况下)不能包含action属性,或者action属性的值为空。否则将会把表单数据提交给action指定的页面,而导致无法被捕获到
【捕获数据不齐全】对于需要被捕获的表单数据,除了input标签需要被包含在<form>中,还需满足该<input>存在name属性。例如<input name="username">,否则会因为没有字段名而导致value被忽略
【密码被加密】针对https页面的import,通常密码会进行加密处理,这时需要通过审计导入的前端代码,找到加密的JavaScript函数(多数情况存在于单独的js文件中,通过src引入),将其在gophish的HTML编辑框中删除,阻止表单数据被加密
所以我们在构造钓鱼页面的时候也是最复杂的,这里页面需要大家自己构造,因为不同的场景构造的钓鱼页面也是不一样的,这里我放模板出来也没有意义,如果后面有需要的话我后面在补充。
5.3.3:Email Templates 钓鱼邮件模板
这里给一个做好的模板照片,导入.eml格式的目的是为了套用格式使其看起来更加真实,如下图是我做的一个:
5.3.4:Users & Groups 用户和组
要么Add单独添加,如果量少的话。批量添加的话就是Download CSV Template点击这个下载模板,然后按照格式填入进去在点击旁边红色的按钮导入即可。
5.3.5:Campaigns 钓鱼事件
Campaigns 的作用是将上述四个功能Sending Profiles
、Email Templates
、Landing Pages
、Users & Groups
联系起来,并创建钓鱼事件
这个模块就是把之前的全部添加进去,这里需要将的就是URL这一个和Launch Date、Send Emails By (Optional)
url:填入我们之前cloudflare里面设置的域名
https://bittbi.com
这样我们点击跳转以后就会跳转到https这个页面,同时也使用的是https,浏览器也不会报错看起来更真实,而且我们使用了cdn让蓝方队员难以溯源。
Launch Date:
Launch Date 即钓鱼事件的实施日期,通常如果仅发送少量的邮箱,该项不需要修改。如果需要发送大量的邮箱,则配合旁边的Send Emails By
效果更佳。Launch Date
作为起始发件时间,Send Emails By
作为完成发件时间,而它们之间的时间将被所有邮件以分钟为单位平分。例如,Launch Date
的值为2023.06.22,09:00
,Send Emails By
的值为2023.06.22,09:04
,如果我们需要发送50封邮件,那么每分钟发送的邮件就是:邮件总数/分钟数,50/5=10,也就是每分钟发送10封。这样的好处在于,当需要发送大量的钓鱼邮件,而发件邮箱服务器并未限制每分钟的发件数,那么通过该设定可以限制钓鱼邮件不受约束的发出,从而防止因短时间大量邮件抵达目标邮箱而导致的垃圾邮件检测,甚至发件邮箱服务器IP被目标邮箱服务器封禁。
5.3.6:Dashboard 仪表板
当创建了钓鱼事件后,Dashboard 会自动开始统计数据。统计的数据项包括当创建了钓鱼事件后,Dashboard 会自动开始统计数据。统计的数据项包括邮件发送成功的数量及比率,邮件被打开的数量及比率,钓鱼链接被点击的数量及比率,账密数据被提交的数量和比率,以及收到电子邮件报告的数量和比率。另外,还有时间轴记录了每个行为发生的时间点。另外,还有时间轴记录了每个行为发生的时间点
六:总结
整个钓鱼邮件就搭建好了,这里和以往其他文章不一样的地方在于新增了https协议让其看起来更真实,使用了cdn让蓝队增加溯源难度,更加贴合红队以及常见钓鱼攻击者的攻击手法。其次就是在构建域名的时候我们用了https证书和cdn网易邮箱或者qq邮箱在识别我们链接的时候不会拉黑和提示垃圾邮件,因为我们整个域名处于白名单状态,可以饶过网易邮箱的策略。最后唯一需要注意的就是在邮箱构建模块和网页构建这两个部分需要投入很多的精力去伪造,伪造的越好钓的鱼就越多,识别是否钓鱼邮件的最稳的方法就是查看域名,通过查看域名的方式来判断无疑是最合适的方法。在最后再次声明,本次教学分享只为知识探讨和学习,利用钓鱼网站骗取银行卡或信用卡账号、密码等私人资料属于非法行为,请不要进行任何非授权的网络攻击,由于传播、利用本文所提供的信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
加下方wx,拉你一起进群学习
原文始发于微信公众号(红队蓝军):【2023】无痕制作钓鱼邮件
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论