利用SPF框架自动化反钓鱼侦察的技术实践

本文详细介绍了如何利用发送方策略框架(SPF)的exists机制构建自动化反钓鱼侦察系统,包括DNS服务器配置、日志分析和Shodan集成,实现对企业钓鱼攻击的实时检测与响应。

作者:Kent Ickler
注意: 本博客中提及的技术和工具可能已过时,不适用于当前环境。但本文仍可作为学习参考,并可能被集成到现代工具和技术中。

摘要: 本文描述了构建主动系统以自动侦察SPF违规的过程。请注意,部分操作可能在某些地区不合法,实施前请咨询法律团队。

背景

在之前的SPF配置博客中,未详细讨论exists和reason机制的强大功能。除了SPF专家外,很少有人知道可以围绕这两个机制构建响应自动化系统。语法参考:RFC 4408。

exists机制详解

exists机制会强制(合规的)接收邮件服务器检查特定域是否存在特定的A记录。更重要的是,可以在exists机制中使用SPF宏,从而将源自SMTP服务器的信息传递到信封FROM字段中域所有者指定的位置。

示例SPF记录:

1
v=spf1 include:mail.yourdomain.com -exists:%{i}.autorecon.yourdomain.com -all

接收SMTP服务器的操作流程:

  1. 接收来自发件服务器的邮件(FROM字段=域名)。
  2. 检查mail.yourdomain.com的SPF记录,若找到发件服务器则通过,否则继续。
  3. 检查是否存在[发件服务器IP].autorecon.yourdomain.com的A记录。
  4. 拒绝其他所有邮件(-all)。

实施步骤

1. 配置AutoRecon服务

  • 安装所需工具:
    1
    2
    3
    4
    
    cd /opt/
    git clone https://github.com/Relkci/AutoSPFRecon
    apt-get install bind9 logtail python-setuptools
    easy_install clic shodan
    

2. 配置BIND9域名解析

  • 编辑/etc/bind/named.conf
    1
    2
    3
    4
    5
    
    zone "autorecon.YOURDOMAIN.com" {
      type master;
      notify no;
      file "/etc/bind/AutoRecon.yourdomain.com";
    };
    
  • 配置区域文件并重启BIND:
    1
    2
    
    service bind9 restart
    service bind9 status
    

3. 启用DNS查询日志

1
2
rdnc querylog
tail -n 2 /var/log/syslog

4. 设置域DNS记录

警告: 以下SPF记录会导致所有邮件被拒绝,请谨慎使用。
适用于从不发送邮件的域:

  • A记录:autorecon.ns.yourdomain.com → AutoRecon服务IP
  • NS记录:autorecon.yourdomain.comautorecon.ns.yourdomain.com
  • TXT记录:v=spf1 -exists:%{i}.autorecon.yourdomain.com -all

工作流程

当邮件服务器接收邮件且发件服务器未在SPF记录中找到时,会查询%{i}.autorecon.yourdomain.com(%{i}被替换为发件服务器IP)。AutoRecon服务记录该查询,并通过AutoReconSPF.sh脚本解析syslog、执行Shodan查询,并将结果发送至指定邮箱。

扩展功能

该框架支持集成NMAP扫描、事件响应(IR)、Fail2Ban或IPTables黑名单。例如:当攻击者尝试钓鱼时,系统可自动触发邮件警报和Fail2Ban封锁,使攻击者无法访问基础设施。

测试示例

从Digital Ocean droplet(206.189.xxx.xxx)发送伪造邮件后,系统通过Shodan查询攻击者IP并将结果通过邮件交付。

资源链接

  • GitHub代码库:https://github.com/Relkci/AutoSPFRecon
  • RFC 4408:http://www.openspf.org/RFC_4408
  • BHIS SPF详解博客:https://www.blackhillsinfosec.com/how-to-configure-spfv1-explained-for-the-masses/

本文仅提供技术学习参考,请合法合规使用。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计