spf与邮件伪造
2021.02.24
le31ei
RedTeam
 热度
℃
0x01 SPF
SPF,全称为 Sender Policy Framework,即发件人策略框架。目前基本上市面正在使用的邮箱产品均对SPF进行了校验。
原理:
SPF是一个DNS的TXT记录,定义了收到的邮件允许发送的ip范围。
例如使用swaks
伪造邮件发送swaks -t test@qq.com -f admin@qq.com
。该命令表示从admin@qq.com
发送邮件到test@qq.com
。qq邮箱在收到邮件后,会对qq.com
的SPF记录进行校验,判断发送客户端的ip地址是否在SPF记录所包含的范围内。如图显示SPF校验失败。
查询SPF的方法很简单,使用如下命令:
1 2 3 4 5 6 7 8 9 10 11
| nslookup -type=txt qq.com
# output Server: 61.139.2.69 Address: 61.139.2.69#53
Non-authoritative answer: qq.com text = "v=spf1 include:spf.mail.qq.com -all"
Authoritative answers can be found from:
|
SPF语法比较简单
1
| v=spf1 include:spf.mail.qq.com -all
|
- v=spf1固定格式,目前spf只有第一版
- include:spf.mail.qq.com表示引入spf.mail.qq.com的SPF记录,继续递归查询spf.mail.qq.com的记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ➜ nslookup -type=txt spf.mail.qq.com Server: 61.139.2.69 Address: 61.139.2.69#53
Non-authoritative answer: spf.mail.qq.com text = "v=spf1 include:spf-a.mail.qq.com include:spf-b.mail.qq.com include:spf-c.mail.qq.com include:spf-d.mail.qq.com include:spf-e.mail.qq.com include:spf-f.mail.qq.com include:spf-g.mail.qq.com -all"
Authoritative answers can be found from:
➜ ~ nslookup -type=txt spf-a.mail.qq.com Server: 61.139.2.69 Address: 61.139.2.69#53
Non-authoritative answer: spf-a.mail.qq.com text = "v=spf1 ip4:203.205.251.0/24 ip4:103.7.29.0/24 ip4:59.36.129.0/24 ip4:113.108.23.0/24 ip4:113.108.11.0/24 ip4:119.147.193.0/24 ip4:119.147.194.0/24 ip4:59.78.209.0/24 ip4:113.96.223.0/24 ip4:183.3.226.0/24 ip4:183.3.255.0/24 ip4:59.36.132.0/24 -all"
Authoritative answers can be found from:
|
- -all表示拒绝所有,spf记录从左到右依次执行,允许后,其余所有拒绝
1 2 3 4
| "+" Pass(通过) "-" Fail(拒绝) "~" Soft Fail(软拒绝)邮件将会被放入垃圾箱或做其他标记 "?" Neutral(中立)
|
0x02 邮件伪造
市面上所有的邮箱平台均对SPF有相关校验,所以邮件伪造的关键点就是对SPF的绕过。
要绕过SPF除了相关的SPF记录配置错误之外,就只能通过SMTP代发的方式,伪造显示的邮件发件人来进行伪造。
具体使用如下命令:
1
| swaks --body "test" --header "Subject:test" --h-From: 'test<admin@qq.com>' -f admin@le31ei.top -t le31ei@163.com --server smtp.mxhichina.com -au xxx -ap xxx -p 25 --header-X-Mailer 163.com --ehlo 163.com
|
--header-X-Mailer
是为了伪造smtp中的X-Mailer参数,默认带有工具的相关参数,qq邮箱会直接放入垃圾箱
以上的方式对于gmail已经无效了,邮件不会显示在收件箱中。但QQ邮箱能正常接收,但是会提示由谁代发
对于163邮箱,默认没有任何防护措施。
参考
- 关于邮件伪造的一些新思路
- 邮件伪造之SPF绕过的5种思路
- SPF 记录:原理、语法及配置方法简介
- 邮箱域名的spf记录添加方法
- SPF Record Testing Tools
- 邮件伪造组合拳