Spoofy 是一个程序,用于根据 SPF 和 DMARC 记录检查一组域名是否可以被伪造。你可能会问:“为什么我们还需要另一个工具来检查域名是否可伪造?”
嗯,Spoofy 与众不同的原因如下:
- 对所有查询进行权威查找,并带有已知的备用 DNS(Cloudflare DNS)
- 精确的批量查询
- 自定义、手动测试的伪造逻辑(不猜测或推测,基于真实世界的测试结果)
- SPF DNS 查询计数器
- 可选:通过 API 进行 DKIM 选择器枚举
Spoofy 需要 Python 3+。不支持 Python 2。用法如下:
用法:
./spoofy.py -d [域名] -o [stdout 或 xls] -t [线程数] [--dkim]
或
./spoofy.py -iL [域名列表文件] -o [stdout 或 xls] -t [线程数] [--dkim]
选项:
-d : 处理单个域名。
-iL : 提供一个包含要处理域名列表的文件。
-o : 指定输出格式:stdout(默认)、xls 或 json。
-t : 设置使用的线程数(默认:4)。
--dkim : 启用通过 API 进行 DKIM 选择器枚举(可选)。
示例:
./spoofy.py -d example.com -t 10
./spoofy.py -d example.com --dkim
./spoofy.py -iL domains.txt -o xls
./spoofy.py -iL domains.txt -o json --dkim
安装依赖:
pip3 install -r requirements.txt
(可伪造性表格列出了每种 SPF 和 DMARC 配置组合对邮件投递至收件箱的影响,不包括 DKIM 修饰符。) 下载此处
可伪造性表格的创建过程包括:列出所有相关的 SPF 和 DMARC 配置,将它们组合起来,然后使用早期版本的 Spoofy 对大量美国政府域名进行 SPF 和 DMARC 信息收集。是否可伪造的测试是通过 emailspooftest 的电子邮件安全渗透测试套件结合 Microsoft 365 进行的。然而,初始测试使用的是 Protonmail 和 Gmail,但发现这些服务使用了反向查找检查,影响了测试结果,特别是对子域名伪造测试。因此,最终使用了 Microsoft 365 进行测试,因为它对邮件的处理提供了更大的控制。
在首次使用 Microsoft 365 进行测试后,由于不同服务对邮件中横幅的处理方式存在差异,一些组合又使用 Protonmail 和 Gmail 重新进行了测试。Protonmail 和 Gmail 可能将伪造邮件放入收件箱并附带横幅,或直接放入垃圾箱且无横幅,这导致 Spoofy 将某些 SPF 和 DMARC 组合报告为“依赖邮箱”。而 Microsoft 365 则将两种情况都放入垃圾箱。测试和数据收集过程耗时数天,之后编译出一份可靠的最终表格,并作为 Spoofy 伪造逻辑的基础。
本工具仅用于测试和学术目的,且只能在获得明确同意的情况下使用。请勿将其用于非法目的!最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对本工具及软件的任何误用或损害负责。
本项目采用 Creative Commons Zero v1.0 Universal 许可证 – 详情请参见 LICENSE 文件。