HOME
HOME
文章目录
  1. 0x01 SPF
  2. 0x02 邮件伪造
  3. 参考

spf与邮件伪造

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校验失败。

image-20210223162316539

查询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
  1. v=spf1固定格式,目前spf只有第一版
  2. 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:
  1. -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邮箱会直接放入垃圾箱

image-20210223165505391

以上的方式对于gmail已经无效了,邮件不会显示在收件箱中。但QQ邮箱能正常接收,但是会提示由谁代发

image-20210223165626191

对于163邮箱,默认没有任何防护措施。

参考

  1. 关于邮件伪造的一些新思路
  2. 邮件伪造之SPF绕过的5种思路
  3. SPF 记录:原理、语法及配置方法简介
  4. 邮箱域名的spf记录添加方法
  5. SPF Record Testing Tools
  6. 邮件伪造组合拳