1. 邮件钓鱼与SPF:一场关于“身份”的攻防战
大家好,我是老张,在网络安全这个圈子里摸爬滚打了十几年,见过太多因为一封邮件引发的“血案”。今天,我想和你聊聊邮件钓鱼里一个既经典又不断演进的技术点:SPF绕过。你可能听说过钓鱼邮件,但你是否想过,为什么有些伪造的“官方通知”能堂而皇之地进入你的收件箱,而不是垃圾箱?这背后,SPF策略的检测与绕过是关键的一环。
简单来说,SPF就像邮局的“寄件人白名单”。比如,腾讯官方邮件服务器有一个固定的IP地址列表。SPF记录会告诉全世界的邮件接收方:“只有来自这些IP的邮件,才真正是我腾讯发出的。”这样一来,如果你用自己的服务器假装成 admin@qq.com 给你发邮件,接收方邮件服务器一查SPF记录,发现你的IP不在腾讯的白名单里,这封邮件就会被标记为伪造,直接扔进垃圾箱,甚至拒收。
那我们攻击者(或者说,安全测试人员)的目标就很明确了:如何让一封从我们自己服务器发出的邮件,被目标邮箱认为是来自某个可信域名的合法邮件? 这就是SPF绕过的核心。听起来有点像魔术?其实拆解开来,无非是找到SPF策略的“缝隙”,并利用一系列工具进行精巧的配合。接下来,我会结合我这些年实战中用得最顺手的几个工具——setoolkit、gohish 和 swaks,带你一步步还原整个攻击链条。你会发现,从信息收集到页面克隆,再到邮件伪造和痕迹隐藏,每一步都有讲究,也都有坑。准备好了吗?我们开始。
2. 侦察先行:如何探测与解读SPF策略
在动手之前,盲目乱试是最蠢的。我们必须先当好一个“侦察兵”,搞清楚目标域名的SPF策略到底是怎么设置的。这决定了我们后续的攻击路径和成功率。
2.1 快速查询SPF记录
查询SPF记录是第一步,在Linux和Windows上都能轻松完成。我习惯用Linux,一条 dig 命令就够了:
dig -t txt qq.com
或者更精确一点,只查看TXT记录:
dig -t txt qq.com | grep "spf"
在Windows上,你可以使用 nslookup:
nslookup -type=txt qq.com
执行后,你会看到类似下面这样的返回结果。这才是我们需要仔细分析的“情报”:
qq.com. text = "v=spf1 include:spf.mail.qq.com -all"
别被这一行字母吓到,我来给你翻译一下。一个标准的SPF记录主要由版本声明、机制和限定符组成。
v=spf1: 声明这是SPF版本1的记录,固定开头。- 机制: 这是核心,定义了哪些主机被授权发送邮件。常见的有:
ip4:或ip6:: 直接指定一个IP地址或网段。例如ip4:203.0.113.1或ip4:192.168.0.0/16。a: 允许该域名A记录指向的IP地址发信。mx: 允许该域名MX记录(邮件交换记录)指向的IP地址发信。这是很常见的一种配置,意味着“我的邮件服务器可以发信”。include:: 这是我们的重点排查对象! 它允许引入其他域名的SPF记录。比如上面qq.com的记录,就包含了spf.mail.qq.com这个域的SPF策略。这意味着,我们不仅要看qq.com的策略,还得去查spf.mail.qq.com的策略,它可能又包含了更多IP。这有时会形成一个复杂的策略链,但也可能因为配置不当而留下空隙。all: 匹配所有地址,通常和限定符搭配使用。
- 限定符: 跟在每个机制后面,表示匹配该机制后的处理动作。
- <


1万+

被折叠的 条评论
为什么被折叠?



