ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

服务主体带凭据有多危险?Mandiant Azure AD Investigator 高危 Service Principal 审计实战

服务主体带凭据有多危险?Mandiant Azure AD Investigator 高危 Service Principal 审计实战 服务主体带凭据有多危险Mandiant Azure AD Investigator 高危 Service Principal 审计实战【免费下载链接】Mandiant-Azure-AD-Investigator项目地址: https://gitcode.com/gh_mirrors/ma/Mandiant-Azure-AD-Investigator一个被偷偷加上凭据的服务主体Service Principal可能就是一把长期有效的后门钥匙。Mandiant Azure AD Investigator是 Mandiant 开源的一款 Azure AD只读审计工具帮助安全人员快速排查 UNC2452 等威胁组织在 Microsoft 365 租户中留下的痕迹其中高危 Service Principal 审计是它最核心的能力之一。⚠️ 为什么服务主体带凭据值得高度警惕在 Azure AD 中服务主体门户里也叫企业应用本质上是应用的机器身份——没有它应用就无法调用 Graph API 读取邮件或目录数据。而一旦给它添加凭据客户端密码或证书任何拿到凭据的人都能绕过用户登录直接以应用身份操作整个租户。在 2020 年 SolarWinds 供应链事件后威胁组织 UNC2452APT29的操作手法被公开它会优先给两类服务主体埋雷高危信号为什么危险常见误报场景第一方微软官方服务主体带有凭据第一方应用正常情况下根本不需要凭据出现凭据多半是人为添加混合环境的 Exchange Online、Skype for Business、AAD Password Protection Proxy 历史上确实会加凭据高危权限 凭据同时存在Mail.Read、Directory.ReadWrite.All、Domain.ReadWrite.All等权限足以拖库或控制租户凭据让它即取即用自研/第三方应用确实需要凭据运行但权限应逐一复核这正是所谓的双重用途痕迹dual-use artifacts同一痕迹既可能来自合法管理员也可能来自攻击者必须人工复核——而 Mandiant Azure AD Investigator 的价值就是帮你把排查范围从全租户缩小到几条具体告警。 认识项目一个只读的 PowerShell 审计模块该项目是一个结构非常精简的 PowerShell 模块对租户只读不会修改任何配置文件作用MandiantAzureADInvestigator.psd1模块清单声明依赖AzureAD、MSOnline、ExchangeOnlineManagement模块并导出 12 个审计函数MandiantAzureADInvestigator.psm1核心审计逻辑约 1000 行覆盖域名、服务主体、应用、邮箱等检查项MandiantAzureADInvestigator.json高危 API 权限清单按数据窃取和租户控制两类组织 UNC2452 默认审计日志查询模板Initialization.ps1导入模块时打印欢迎横幅️ 核心能力高危 Service Principal 审计如何判定Invoke-MandiantAuditAzureADServicePrincipals的思路很直接——把有凭据和身份/权限可疑两个条件交叉比对拉取租户内所有服务主体逐个检查 KeyCredentials证书与 PasswordCredentials密码第一方服务主体检查若 Display Name 命中微软官方应用如 Office 365 Exchange Online却带有凭据立即标黄提醒高危权限检查用MandiantAzureADInvestigator.json内置的权限清单比对 AppRole 分配命中Mail.Read、Directory.ReadWrite.All等高危权限且带凭据时输出告警并列出具体权限输出 CSV 报告first-party service principals.csv与service principals.csv方便丢进 SIEM 或交给分析师逐条复核。命中时终端会直接打印类似提醒!! Identified Service Principals with high-risk API permissions and added credentials. Verify that the added credential has a legitimate use case and consider further investigation if not 快速上手从克隆到出报告的 4 个步骤步骤 1获取工具git clone https://gitcode.com/gh_mirrors/ma/Mandiant-Azure-AD-Investigator步骤 2安装 4 个微软官方依赖模块以管理员身份打开 PowerShellAzureAD、MSOnline、ExchangeOnlineManagement、Microsoft.Graph逐个执行Install-Module即可。步骤 3准备账号权限。审计账号需要满足Azure AD 中的Global Administrator或更稳妥的Global Reader角色Exchange 控制台中的View-Only Audit Logs权限分配后最多需等 1 小时生效Graph 的User.Read.All与Directory.Read.All作用域Global Reader 通常自动具备。步骤 4导入、连接并运行全量检查Import-Module .\MandiantAzureADInvestigator.psd1 Connect-MandiantAzureEnvironment -UserPrincipalName yourtenant.com Invoke-MandiantAllChecks -OutputPath C:\audit-out如果想单独跑服务主体审计直接调用Invoke-MandiantAuditAzureADServicePrincipals -OutputPath C:\audit-out即可。 拿到报告后真威胁还是误报项目 README 明确提醒工具不能 100% 判定入侵它只负责把需要验证的痕迹筛出来交到你手上。推荐两条验证路径查统一审计日志内置的Get-MandiantUnc2452AuditLogs会搜索Add service principal credentials、Update service principal、Update application - Certificates and secrets management等事件直接定位谁在什么时候给谁加了凭据看登录记录在 Azure AD 门户 Sign-Ins 页面的 Service Principal Sign-Ins 标签里搜索该服务主体是否存在异常来源地的认证。确认凭据不合法时立即移除凭据、吊销相关 AppRole 分配并沿审计日志做完整取证确认合法则记录用途纳入常态化巡检。 顺手一查模块里还有哪些高价值检查项函数查什么Invoke-MandiantAuditAzureADDomains联合域名异常签名证书有效期 1 年、颁发者/主题不匹配、any.sts后门、未验证域名Invoke-MandiantAuditAzureADApplications带高危权限且新增凭据的应用注册Get-MandiantMailboxFolderPermissions邮箱信息存储/收件箱是否被赋予 Default/Anonymous 权限任意用户可读邮件Get-MandiantApplicationImpersonationHolders谁能以 ApplicationImpersonation 角色化身任意用户Invoke-MandiantCheckAuditing拥有高级审计许可却关闭了 Mail Items Accessed 的邮箱UNC2452 删痕手法Invoke-MandiantGetCSPInformationCSP 合作伙伴是否开启委托管理员等同全局管理员权限Get-MandiantBulkUAL突破 5000 条上限的统一审计日志批量拉取单次最高 5 万条✅ 总结服务主体凭据是 Azure AD 持久化攻击中最容易被忽视、也最难事后发现的一环。Mandiant Azure AD Investigator 用一套只读、可复现的 PowerShell 检查把第一方服务主体带凭据和高危权限 凭据这两类高危信号自动化筛出再配合内置的审计日志查询非常适合安全团队做定期巡检或事件响应时的快速初筛。把它加入每月一次的租户体检清单可能就是你和下一次静默后门之间的距离。【免费下载链接】Mandiant-Azure-AD-Investigator项目地址: https://gitcode.com/gh_mirrors/ma/Mandiant-Azure-AD-Investigator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表