文章总结: 本文详解邮件钓鱼流程。先利用企查查及EmailCollect等工具收集目标邮箱画像。接着通过Docker搭建Gophish,演示导入目标、编写邮件模板、克隆钓鱼页面及配置SMTP发件策略。文章还针对SPF限制提出了域名混淆建议,并分享了绕过邮件网关技巧,如异地加载附件及利用可信托管平台,旨在提升红队钓鱼攻击成功率。
综合评分: 85
文章分类: 社会工程学,红队,渗透测试,安全工具
钓鱼篇之邮件钓鱼
原创
Syst1m
凌曦安全
2026年1月8日 10:00
上海
凌曦安全课程介绍
- 正文开始前先提一下,凌曦安全团队一期课程即将结课,计划开启二期课程,现在报名一期,可以以一期的价格继续上二期(无二次收费),需要的小伙伴可以看一下这个链接介绍:Zer0 sec 正式更名为 凌曦安全!新的一年,新的课程,元旦特惠来啦~
- 一期课程课程大纲直达链接:https://www.yuque.com/syst1m-/blog/lc3k6elv0zqhdal3
邮箱信息收集
邮箱不只是通信工具,更是目标资产的“信息枢纽”。从收件人列表锁定关键角色、从历史邮件挖掘业务逻辑,再到通过绑定信息关联核心系统,每一项收集到的邮箱信息,都是构建渗透路径的重要拼图。
邮箱信息收集,是实施钓鱼第一步,不急于直接攻击,先完成邮箱信息画像,才能让后续的钓鱼邮件精准命中,大幅提升渗透成功率。
在线网站
启信宝
企查查
天眼查
零零信安
工具
Sky Email Extractor
- Email Extractor Pro是一个爬虫工具,在可以访问谷歌的网络环境中使用
- 提供了一个根域名以后,可以快速从网站和顶级搜索引擎(如Google、Bing、Yahoo)中提取电子邮件地址,可以清晰的看到邮箱来源
EmailAll
- 最好是在可以访问谷歌的网络环境中使用
EmailCollect
- 下载地址:https://github.com/jax7sec/EmailCollect
jjjjjjjs
- 通过对目标URL爬虫以及js对应目录拼接到的网页进行邮箱搜集
- 在web信息收集中,已经获取到了足够多的URL,利用这些有页面的URL去批量爬虫到各个页面,再借助jjjjjjjs把各个页面泄露的邮箱收集
- 使用方法
- 扫描完成后会生成一个jsresult.txt文件,这个文件的可视化程度并不好,可以AI写个脚本提取
钓鱼平台的安装搭建(gophish)
- docker拉拉取镜像
- 运行gophish
- 查看登录的账号密码
docker logs gophish
- 登录后台管理页面:
https://ip:3333
- 注意:旧版本的gophish需要修改一下配置信息,否则只能本地访问管理界面
gophish使用
设置攻击目标
- 下载模板
- 将收集到的邮箱填写进模板中
- 导入填写好的模板并保存
编写钓鱼邮件模板
-
自定义邮箱模板
-
文本方式:模板可以参考平常自己收到的邮件进行编辑
- html代码方式
-
也可以导入eml文件模板
-
文件模板可以在网上下载,也可以在自己平常收到的邮件中查看信头,将里面的内容复制到gophish中
- 在点击导入之前要勾选上
Change Links to Point to Landing Page,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的URL
-
在进行邮件钓鱼攻击时,并不是所有的邮箱都可以轻易伪造发件人地址。比如:
qq.com、163.com等广泛使用的公有化第三方邮箱,通常会配置 SPF(Sender Policy Framework) 认证机制,防止邮箱被冒充 -
如果存在spf认证(比如:
xxx.lazy.com存在spf认证),此时可以使用xxx.1azy.com作为发件人去混淆视听,避开spf认证 -
伪造邮件有一个通病就是在邮件中会显示代发
-
此时邮件看起来是由某个人或组织发送的,但实际上是由另一个人或服务器代为发送的。也就是邮件表面上显示的发件人是张三,但实际发件人可能是李四或某个第三方服务器。
-
这是因为邮件头中的Sender字段被用于标识邮件的实际发送者,而From字段则用于标识邮件的发件人,如果这两个字段不一致,邮件客户端会显示“代发”信息,提示邮件并非直接由From字段中的发件人发送
-
如果想避免显示代发,只能自建邮件服务器,然后买一个与目标单位很像的域名(比如:目标是
xxx.lazy.com此时可以买xxx.1azy.com) -
注意:只需要编写文字内容,尽量不要上传附件,或者添加了附件也不要将解压密码写到邮件的内容里面,因为现在邮件网关会自动将密码填充到文件里面扔去沙箱检测
钓鱼页面制作
导入URL
- 可以直接导入需要伪造的URL
导入html代码
- 下载SingleFile插件,后续用于截取页面
- 比如此时需要获取对方某个应用的账号密码,此时可以通过SingleFile将该登录页面的前端代码截取,保存为一个html文件
- 将该html文件的内容复制到gophish中,设置一个URL跳转的URL(比如此时伪造的是百度的登录框,就可以填写百度相关的URL,使得用户输入信息后跳转到一个实际业务的页面,显得更逼真),然后勾选捕获提交的数据
- 复制完以后可以点击预览,检查代码是否有问题
设置发件策略
-
这一步主要作用的是将用来发送钓鱼邮件的邮箱配置到gophish
-
Name字段:为新建的发件策略进行命名,不影响到钓鱼的实施,建议以发件邮箱为名字
-
例如如果使用163邮箱来发送钓鱼邮件,则Name字段可以写
[email protected] -
Interface Type:口类型,默认为SMTP类型且不可修改,所以需要发件的邮箱服务器开启 SMTP服务
-
From:钓鱼邮件所显示的发件人
-
以163邮箱为例,From字段可以写
xxx<[email protected]> -
Host:smtp服务器的地址
-
例如163邮箱的smtp服务器地址为
smtp.163.com -
Username:smtp服务认证的用户名
-
如果是163邮箱,Username则是自己的163邮箱号
[email protected] -
Password:smtp 服务认证的密码
-
例如163邮箱,需要在登录163邮箱后,开启 SMPT 服务,生成授权码,Password的值就是填收到的授权码
-
Email Headers:自定义邮件头字段
-
例如邮件头的
X-Mailer字段,若不修改此字段的值,通过gophish发出的邮件,邮件头的X-Mailer的值默认就为gophish,容易被识别 -
需要伪造邮件头的
X-Mailer字段,可以查看一些邮件的邮件原文进行获取(实在不行自己给自己发一封看看即可)
发起钓鱼
-
选择刚刚制作的各种模板以及页面等信息,然后启动
-
注意:此时的URL要填写VPS的8080端口(与前面设置的一致)
- 发起后受害者就会收到一封邮件
- 此时受害者点击邮件中的链接,并输入相关的信息后提交
- 攻击者就可以在gophish获取到受害者的登录账号密码
注意
-
针对邮件网关
-
代发可能会被拦截,所以建议直接使用163、qq邮箱
-
针对邮件网关,不要把解压密码很明显的标注在文本内容中,现在会智能识别解压密码
-
最好是异地加载payload,或者图片,exe分割等方式发送附件
-
如果通过URL的方式托管附件,最好放在被目标网络信任的地方
-
比如阿里云存储桶
-
企业存在文件上传的点
-
与企业有关联的托管网站
-
各种企业云盘
-
最后才选择自己的VPS
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:凌曦安全 Syst1m《钓鱼篇之邮件钓鱼》