攻击性SPF:如何利用发件人策略框架自动化反钓鱼侦察
作者:Kent Ickler
警告: 本文提及的技术和工具可能已过时,不适用于当前环境。但本文仍可作为学习机会,并可能集成到现代工具和技术中。
摘要: 本文描述了构建主动系统以自动侦察SPF违规的过程。
免责声明:
此构建的某些部分在您所在地区可能不合法。自行承担使用风险。实施前请与团队讨论。BHIS @Krelkci不对您的行为负责。
背景
在我们之前关于配置SPF的博客文章中,我没有详细阐述exists和reason机制的强大功能。除了SPF专家之外,很少有人知道您可以围绕这两种机制构建响应自动化系统。喜欢阅读?语法:RFC 4408 http://www.openspf.org/RFC_4408
exists机制将强制(合规的)接收邮件服务器检查特定域是否存在特定的A DNS记录。虽然这看起来很有趣,但更重要的可能是在exists机制中使用SPF宏。它本质上允许您将有关原始SMTP服务器的信息从接收SMTP服务器传递到信封FROM字段中域的所有者确定的任何位置。
怎么说?
让我们看这个SPF记录:
|
|
接收SMTP服务器执行以下操作:
- 从原始邮件服务器接收,其中FROM字段 = 域
- 检查mail.yourdomain.com的SPF记录,如果找到原始服务器 = 好,否则 = 继续
- 检查是否存在[ORIGINATING.MAIL.SERVER.NAME].autorecon.yourdomain.com的A DNS记录
- 杀死其他所有内容(-all)
关键点在于:如果邮件来自不在mail.yourdomain.com的SPF头中的服务器,接收邮件服务器将尝试检查动态构建的主机名的别名记录。您现在需要做的就是构建一个配置为接受.autorecon.yourdomain.com的DNS查询的DNS服务器,并将所有查询提供给自动侦察系统,并告诉您的全局DNS提供商autorecon.yourdomain.com由您的自动侦察服务权威回答。让我们开始吧。
在AutoRecon服务上
- Bind配置为接受AutoSPF.yourdomain.com的查询
- SSMTP配置为发送邮件
获取文件:
|
|
设置您的BIND9域 - named.conf
|
|
设置您的BIND9域 – 区域文件
|
|
重启Bind
|
|
配置Bind将DNS查询记录到/var/log/syslog:
|
|
设置您的域DNS记录
注意: 将SPF记录设置为如下将告诉所有邮件服务器拒绝您的电子邮件**
您可以使用?exists:autospf.yourdomain.tld机制,这不会立即拒绝电子邮件。确保保留SPF的正确部分,以免拒绝所有电子邮件。以下示例适用于从不发送电子邮件的域。
请参阅我们关于SPF记录的博客文章,为您的组织创建适当的SPF记录。
在您的TLD名称服务器上:
- 类型:A 主机:autorecon.ns.yourdomain.com 值:IP-OF-AutoRecon
- 类型:NS 主机:autorecon.yourdomain.com 值:autorecon.ns.yourdomain.com
- 类型:TXT 主机:@ 值:“v=spf1 -exists:%{i}.autorecon.yourdomain.com -all”
整合一切
当邮件服务器接收电子邮件且原始邮件服务器审查SPF记录并发现无法在include:或其他邮件记录中找到邮件服务器时,它将继续直到找到exists:%{i}.autorecon.yourdomain.com,这将指示它用发起电子邮件的服务器的IP替换%{i}。服务器将查找autorecon.yourdomain.com的NS记录,并发现它是autorecon.yourdomain.com服务。它将查询{IP}.autorecon.yourdomain.com,并且不会收到有效的DNS响应。然而,autorecon.yourdomain.com上的Bind服务器将在/var/log/syslog中记录查询。
AutoReconSPF.sh脚本读取syslog中的这些查询,运行shodan查询,然后将结果发送到相关电子邮件地址。
AutoReconSPF.sh脚本可以配置为每隔几分钟使用crontabs运行。
还能做什么
这个概念验证脚本以模块化和易于编辑的方式设置了框架。您可以添加自己的脚本操作,如NMAP扫描、IR事件,甚至可能将其链接回Fail2Ban或IPTable黑名单。
扩展。NMap、Fail2Ban、IPTables、事件响应。自动化 Lights Out。
有人试图用伪造来自您域的电子邮件钓鱼您的员工。由于您的SPF记录未能授权原始邮件服务器,您的AutoSPFRecon系统得到警报并触发电子邮件、Fail2Ban封锁,并且钓鱼服务器对您基础设施的可见性立即变暗。
运行AutoReconSPF.sh
在此测试中,我发送了一封伪造具有AutoReconSPF SPF记录的域的电子邮件。电子邮件是从Digital Ocean droplet at 206.189.xxx.xxx发送的。接收邮件服务器向autospf.bhis.io发送查询,并创建日志条目。AutoReconSPF.sh识别违规邮件服务器的IP到shodan,并将结果通过电子邮件发送给我。太棒了。
结果电子邮件已送达:
链接
- GitHub:https://github.com/Relkci/AutoSPFRecon
- RFC:包含exists:机制的SPF http://www.openspf.org/RFC_4408
- BHIS SPF for the Masses博客文章:https://www.blackhillsinfosec.com/how-to-configure-spfv1-explained-for-the-masses/
想要从撰写此博客的人那里学习更多疯狂技能?
查看Jordan和Kent的这些课程:
- 防御企业
- 假设妥协 – 带有检测和Microsoft Sentinel的方法论 提供实时/虚拟和点播!