# Detecting Email Account Compromise

> 通过分析收件箱规则创建、可疑登录位置、邮件转发规则和异常 API 访问模式，检测受攻陷的 O365 和 Google Workspace 邮件账号。

- Skill: `killvxk/detecting-email-account-compromise` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add killvxk/detecting-email-account-compromise`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/detecting-email-account-compromise/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/detecting-email-account-compromise

---

# 检测邮件账号攻陷（Detecting Email Account Compromise）

## 概述

邮件账号攻陷（Email Account Compromise，EAC）是一种常见攻击手法，攻击者通过未授权访问邮箱来窃取敏感数据、实施商业邮件欺诈（Business Email Compromise，BEC）或通过收件箱规则操纵建立持久化。攻击者通常会创建转发规则来截取邮件、创建删除规则以掩盖痕迹，或使用 OAuth 令牌维持持久访问。检测方法包括：分析 Microsoft 365 统一审计日志（Unified Audit Logs）、Azure AD 登录日志中的不可能旅行（Impossible Travel）或可疑位置、收件箱规则创建事件（Set-InboxRule、New-InboxRule）以及 Microsoft Graph API 访问模式。关键指标包括：转发规则指向外部地址、匹配"invoice"或"payment"等关键词的删除/移动规则，以及来自 python-requests 等异常 User-Agent 的登录行为。

## 前置条件

- Microsoft 365 并已启用统一审计日志记录（Unified Audit Logging）
- Azure AD P1/P2（用于风险检测 API）
- Python 3.9+，安装 `requests`、`msal` 库
- Microsoft Graph API 应用注册，具备 Mail.Read、AuditLog.Read.All 权限
- 了解 OAuth2 客户端凭据流程

## 步骤

1. 导出审计日志或使用 MSAL 认证连接 Microsoft Graph API
2. 通过 `/users/{id}/mailFolders/inbox/messageRules` 查询所有受监控邮箱的收件箱规则
3. 分析规则是否存在外部转发行为（ForwardTo、RedirectTo 指向外部地址）
4. 检测可疑规则模式：删除规则、针对财务关键词的过滤规则
5. 通过 `/auditLogs/signIns` 查询登录日志，检查异常位置和不可能旅行
6. 检查可疑 User-Agent 字符串（python-requests、PowerShell、curl）
7. 识别可疑第三方应用的 OAuth 应用授权同意（Consent Grant）
8. 跨用户关联发现，检测活动级别的攻陷行为
9. 生成包含严重级别评分的攻陷指标报告

## 预期输出

JSON 格式报告，列出受攻陷或可疑账号、检测到的恶意收件箱规则、不可能旅行事件、可疑 OAuth 授权，以及带严重级别评级的建议遏制措施。

