tdt1114/azure-ad-signin-analyzer
GitHub: tdt1114/azure-ad-signin-analyzer
基于Python的Azure AD登录日志分析工具,通过Microsoft Graph API检测暴力破解和非工作时间异常认证行为。
Stars: 0 | Forks: 0
# Azure AD 登录日志分析器
## 概述
一款基于 Python 的安全工具,用于分析 Azure Active Directory 登录日志以检测可疑的身份验证行为。构建为我的混合 Active Directory 实验室环境的扩展。
## 检测内容
- **暴力破解指标** — 超过失败登录阈值的账户
- **非工作时间身份验证** — 在工作时间之外(早上 6 点之前或晚上 10 点之后)发生的登录
- **高优先级关联** — 同时被标记为失败登录和非工作时间活动的账户,提升优先级以进行立即分类
## 检测输出

## 工作原理
1. 使用应用注册和客户端凭据向 Microsoft Graph API 进行身份验证
2. 从 Azure AD 审计日志中提取登录日志数据
3. 解析每个条目的错误代码和时间戳
4. 关联发现结果并输出优先级报告
## 检测逻辑

## API 身份验证
应用注册在 Azure AD 中配置了以下 Microsoft Graph 权限:
- `AuditLog.Read.All`
- `Directory.Read.All`

已针对在线 Azure 租户验证身份验证。API 返回了 `403 Authentication_RequestFromNonPremiumTenantOrB2CTenant` 错误,确认凭据和权限配置正确,但访问登录日志需要 Azure AD Premium P1/P2 许可。

在缺少高级许可的情况下,使用了模拟日志数据来演示检测逻辑和分析输出。
## Azure 应用注册

## 环境
- Python 3.x
- Microsoft Graph API
- Azure AD (免费层)
- 包含 Windows Server 2022 DC 和 Windows 10 客户端的 VirtualBox 实验室环境
## 展示技能
- Azure 应用注册和 API 权限配置
- OAuth 2.0 客户端凭据身份验证流程
- 用于安全日志分析的 Python 脚本编写
- 检测逻辑和告警关联
- 环境限制的专业文档编写
## 相关实验室
该项目扩展了我的 [混合 Active Directory 实验室](https://github.com/tdt1114/hybrid-active-directory-lab)
## 备注
`config.py` 包含租户凭据,并通过 `.gitignore` 从此仓库中排除
标签:AMSI绕过, App Registration, Azure, Azure AD, Microsoft Graph API, OAuth 2.0, Python, 免杀技术, 威胁检测, 异常登录, 无后门, 暴力破解检测, 混合AD环境, 红队行动, 身份安全, 逆向工具, 非工作时间活动