钓鱼篇-邮件钓鱼

钓鱼篇-邮件钓鱼

前置知识

SPF的定义

发件人策略框架(发送方策略框架),是一种电子邮件认证机制,主要作用是防止伪造邮件地址。

假如说:你收到了来自于腾讯官方的邮件,那么你很大程度上相信这是真的。但是,如果你收到了未知人发送过来的邮件,那么你会大概率认为这个是假的。

那么如何伪造发件人使得受害者认为你是真的,就取决于你可不可以绕过SPF。

注意:SPF很大程度上不太可能绕过。

如何判断SPF?

主要运用dns查询工具,查询邮件域名的相关信息

dig -t txt qq.com         //linux

nslookup -type=txt qq.com //windows

SPF的规则

  • "+" Pass(通过)
  • "-" Fail(拒绝)
  • "~" Soft Fail(软拒绝)
  • "?" Neutral(中立)
"v=spf1 -all" (拒绝所有,表示这个域名不会出发邮件)

"v=spf1 +all" (接受所有)

"v=spf1 ip4:192.168.0.1/16 -all"(只允许 192.168.0.1/16 范围内的 IP发送邮件)

"v=spf1 mx -all"(允许当前域名的 mx 记录对应的 IP 地址发送邮件)

"v=spf1 mx mx:test.example.com -all"(允许当前域名和test.example.com 的 mx 记录对应的 IP 地址发送邮件)

"v=spf1 a mx ip4:173.194.72.103 -all"(允许当前域名的 a 记录和 mx 记录和一个给定的 IP 地址发送邮件)

"v=spf1 include:example.com -all"(采用和 example.com 一样的SPF记录)

根据上述内容,我们可以进行简单的总结:

  • 先查看有没有SPF验证机制?如果没有,那么可以直接伪造发信人。
  • 如果存在SPF验证机制,要判断是否可以进行绕过。

注:为了方便测试,这个给一个生成临时邮箱的网站:https://www.linshi-email.com/

以上内容来源于:

邮件钓鱼的相关工具

Swaks

这款工具kali linux上自带,语法如下:

swaks --header-X-Mailer "" --header-Message-Id "" --header-
"Content-Type"="text/html" --from "伪造发件人的邮箱" --ehlo 
shabimeiguo -header "邮件标题" --body 邮件正文 --to 受害者的邮箱

Gophfish工具平台

https://github.com/gophish/gophish/releases/

Gophfish平台的使用-优化内容、效率

img

使用给定的地址登录,使用默认的用户名和密码登录。

使用该工具,大致分四个步骤:

  • 设置用户组,批量测试提高效率(Users&Groups)
  • 设置邮件模板,提高命中率,丰富内容(Email Templates)
  • 设置钓鱼网站,与邮件钓鱼配合,提高命中率(New Landing Page)
  • 设置发信人和收信人消息(发送策略),发送钓鱼邮件(New Sending Profile)
  • 综合运用如上信息,进行攻击:Campaigns
  • 配合相关手册食用:https://blog.csdn.net/qq_42939527/article/details/107485116

如何防范钓鱼邮件?

img

img

相关实验

无SPF伪造

我们采用网上的临时邮件来完成此实验。

使用nslookup来查看该域名是否存在SPF策略规则:
img

发现并不存在。

那么我们可以使用Swaks工具来伪造发信人,发送钓鱼软件了。

执行如下命令:

swaks --header-X-Mailer "" --header-Message-Id "" --header-"Content-Type"="text/html" --from "admin@aliyun.com" --ehlo shabimeiguo -header "test" --body "This is a test" --to kvwccwbcmz@iubridge.com

成功发送钓鱼邮件!

img

有SPF绕过

软刚发件人(修改字眼)

所谓修改字眼就是:如果你冒充阿里云的官方账号(假设为admin@aliyun.com)给某QQ邮箱去发送消息的话,那么很大概率是会被过滤的(SPF),那么我们可以将aliyun.com改为al1yun.com或者aliyun.com.cn。那么很大程度上就不会被绕过了。

我们可以查看qq.com的SPF策略:

img

我们使用Swaks以system@notice.aliyun.com的身份给QQ邮箱发送钓鱼邮件:

swaks --header-X-Mailer "" --header-Message-Id "" --header-"Content-Type"="text/html" --from "admin@aliyun.com" --ehlo shabimeiguo -header "test" --body "This is a test" --to xxx@qq.com

发现失败了
img

我们尝试将system@notice.aliyun.com改为system@notice.aliyun.com.cn

发现发送成功!

img

但是,这里成为了垃圾邮件!

img

这里给一个提示:我们在书写邮件内容时,一定要写的丰富一些,一定不要只写一些单词等,这样的话容易被后台的朴素贝叶斯分类器划分为垃圾邮件。

我们可以找一封阿里云给自己发送的真实邮件,把内容搞下来,然后去当成钓鱼邮件去发送。

  • 找到真实邮件,导出为eml文件
  • 修改eml文件中的内容,时间等,使其更加逼真
  • 使用swaks命令:
swaks --to 收信人 -f system@notice.aliyun.com.cn --data 1.eml 

发送成功!

img

查看邮件:
img

硬刚发件人(POP3转发)

POP3转发的目的在于:如果攻击者发送钓鱼邮件给A,那么会被A拦截,此时B发送邮件给A可以通过。那么,攻击者可以将钓鱼邮件发送给B,B设置POP3转发,B再给A发送,从而绕过SPF限制。

  • 非平台转发
    • 需要自建邮箱(qq邮箱、163邮箱等)
    • 将自建邮箱设置POP3转发,获得授权码,导入eml模板,修改时间
    • 将模板中的发件人改为:system@notice.aliyun.com
    • 修改收件人邮箱
    • 使用swaks工具进行发送
swaks --to 收件人邮箱 -f  转发邮箱 --data 1.eml --server smtp.163.com -p 25 -au 转发邮箱 -ap 转发邮箱的授权码

发送成功!

img

  • 平台转发
    • 这里可以采用很多平台:
    • 1、smtp2go(速度慢但免费发送量大)
    • 2、SendCloud(速度快但免费发送量少)

这里以SendCloud平台举例:

  • 生成api key
  • 配置发信域名(需要申请且备案)
  • 配置发信配置和收信配置(参考文档即可)
  • 单击发送相关,进行发送邮件

关于第三方平台的转发这里就不进行赘述了。

可以使用如下命令

swaks --to 接收邮件名 -f 在自己邮件服务器上注册的邮件名(转发邮件名) --data test.eml --server smtp.a1iyun.com -p 25 -au 在自己邮件服务器上注册的邮件名(转发邮件名)-ap 注册邮件名的密码(授权码)

采用自己搭建服务器做POP3转发有如下好处:

  • 转发邮箱可以自己构造,提高钓鱼成功率
  • 不会被封,不会进入垃圾邮件、不会受第三方邮件平台限制等

致谢

https://www.bilibili.com/video/BV1pQ4y1s7kH/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click

免责声明

    本博客中的内容仅供学习之用,不用于商业用途,也不可以用于任何非法用途,否则后果自负,本人不承担任何责任!
posted @   夏目^_^  阅读(438)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示