关于 email-security
用于检查域名 DMARC、SPF 和 DKIM 记录并评估邮件伪造风险的安全测试技能,提供 DNS 检查、SMTP 中继测试及邮件头验证说明。
主要功能
- 01检查 DMARC、SPF 和 DKIM 记录
- 02解读邮件认证配置
- 03测试 SMTP 中继可用性
- 04说明相关邮件头字段
- 05列出常见 DNS 与选择器问题
适用场景
- 01在侦察阶段检查邮件安全
- 02评估域名遭邮件伪造的风险
- 03检查 SMTP 中继是否接受测试连接
- 04通过邮件头验证认证结果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ uphiago/ recon-skills --skill email-security安装后在 Claude Code 中输入/email-security确认已加载。
详细介绍
电子邮件安全——DMARC、SPF、DKIM
使用时机
- 被动侦察期间(阶段 1)
- 初步 DNS 枚举之后
- DMARC p=none 表示域名可能完全被伪造
- 对识别钓鱼和商务电子邮件入侵风险至关重要
DMARC/SPF/DKIM 检查命令
# SPF
dig +short TXT $target | grep "v=spf1"
# DMARC
dig +short TXT _dmarc.$target
# DKIM (common selector: google)
dig +short TXT google._domainkey.$target
# MX
dig +short MX $target
结果解读
| 配置 | 含义 | 风险 |
|---|---|---|
| v=spf1 ~all (softfail) | SPF 建议拦截,但未强制执行 | 伪造邮件可能通过 |
| v=spf1 ?all (neutral) | SPF 不执行任何操作 | 完全不设限制 |
| v=spf1 include:amazonses.com ~all | SES 可以使用该域名发送邮件 | 任何 AWS SES 账户都可以伪造邮件 |
| v=DMARC1; p=none | DMARC 已禁用 | 完全没有防伪造保护 |
| v=DMARC1; p=quarantine | 验证失败的邮件会进入垃圾邮件文件夹 | 部分保护 |
| v=DMARC1; p=reject | 拒绝验证失败的邮件 | 全面保护 |
| 缺少 DKIM | 没有加密签名 | 邮件可以被伪造 |
通过 SMTP 伪造电子邮件
# Test SMTP relay
timeout 3 bash -c 'exec 3<>/dev/tcp/TARGET/25; head -1 <&3'
# Send spoofed email via open relay (swaks)
swaks --to [email protected] --from [email protected] --server TARGET --body "Spoofed email"
表明安全级别的标头
| 标头 | 值 | 含义 |
|---|---|---|
| Authentication-Results | spf=pass | SPF 验证通过 |
| Authentication-Results | spf=fail | SPF 验证失败 |
| Authentication-Results | dmarc=pass | DMARC 验证通过 |
| Authentication-Results | dmarc=fail | DMARC 验证失败 |
| Authentication-Results | dkim=pass | DKIM 验证通过 |
| Received-SPF | Pass | 发件人已获授权 |
| Received-SPF | Softfail | 发件人未获完全授权 |
| Received-SPF | Fail | 发件人未获授权 |
| ARC-Authentication-Results | 身份验证链 |
AWS SES 伪造(SPF 包含 amazonses.com 时)
使用 v=spf1 include:amazonses.com ~all:
- 创建 AWS 账户
- 使用自己的域名配置 SES(已验证)
- 使用 From: [email protected] 发送电子邮件
- SPF 验证通过(因为包含 amazonses.com)
- DMARC p=none——邮件服务提供商会正常投递邮件
真实案例
真实案例(严重):某政党——两个域名(DOMAIN_PLACEHOLDER_A、DOMAIN_PLACEHOLDER_B)的 DMARC 均为 p=none。SPF 包含 include:amazonses.com(任何 SES 账户都可以使用该域名发送邮件)。电子邮件可以被完全伪造。
注意事项
| 问题 | 解决方案 |
|---|---|
| SPF 查询次数限制 | DNS 对 SPF include 的查询次数上限为 10 次 |
| 未知 DKIM 选择器 | 尝试常见选择器:google、selector1、selector2、2022、2023 |
| DMARC 报告 | rua=mailto: 可能会向第三方泄露身份验证结果 |
验证
# Verify email spoofing is possible
# Send test email and check headers:
dig +short TXT _dmarc.target.com
# If p=none -> confirmed spoofable
评论
支持 Markdown