流程如下:应用重定向用户至https://login.microsoftonline.com/common/oauth2/v2.0/authorize;微软显示标准同意页面,列出请求的权限范围(scopes...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...3.2 权限范围缺乏上下文解释OAuth同意页面仅列出权限名称(如“Mail.Read”),未说明其实际能力(“可读取所有邮件,包括已删除项”)。用户难以判断风险。...4.2 条件访问:基于权限范围的策略拦截创建条件访问策略,阻止包含高危权限的应用获取令牌:策略逻辑:触发条件:应用请求包含Mail.ReadWrite、User.ReadWrite.All等;操作:阻止登录...4.5 用户培训与权限可视化在内部培训中加入“权限范围解读”模块,例如:Mail.Read = 可读所有邮件;User.ReadWrite.All = 可修改所有用户属性,包括分配管理员角色;offline_access
服务都失效了,在B站偶然刷到相关的内容,刚好满足我的白嫖心理~ 步骤说明 注册Microsoft账号,并加入开发者计划 下载Microsoft365,登录账号并激活 自动续时:保持开发者身份...权限配置 注册的应用程序API权限类型有两种,其主要区别如下表所示: 权限类型 委托的权限(用户登录) 应用程序权限(非用户登录) 官方释义 应用程序必须以登录用户身份访问API 应用程序在用户未登录的情况下作为后台服务或守护程序运行...所需配置 账户名称+账户密码+应用程序(客户端)ID 账户名称+客户端机密+应用程序(客户端)ID 功能影响 程序中所有API均可调用 部分API权限受限无法调用(官方限制) API权限配置 可由PC...版程序自动配置添加API权限 必须手动配置API权限 可以选择相应的API进行配置 此处以Microsoft Graph为参考,选择“委托的权限”,根据列出的API权限需求表进行选择...Graph API 发出请求的工具:Postman&Microsoft Graph API使用 c.Microsoft Graph 快速入门示例 Microsoft Graph入门
用户被诱导相信这是正常验证流程的一部分。(二)授权诱导与令牌捕获当用户点击“继续”或“验证”按钮时,浏览器跳转至微软官方登录页。...若用户已处于活动会话(即已登录Outlook Web),系统将直接显示授权同意页面,列出请求的权限范围(如“读取您的邮件”、“访问您的文件”)。...第二,权限粒度粗放。 许多遗留OAuth应用仍使用宽泛的权限范围(如Mail.ReadWrite而非Mail.ReadBasic),且未启用增量授权(incremental consent)。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
以授权码模式(Authorization Code Flow)为例,典型步骤如下:用户访问第三方应用:例如点击“使用Microsoft登录”按钮;重定向至Microsoft登录页:URL包含client_id...、redirect_uri、scope等参数;用户输入凭证并完成MFA;显示OAuth同意页面:列出所请求的权限(如“读取你的邮件”);用户点击“同意”:Microsoft颁发授权码;第三方应用用授权码换取访问令牌...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...OAuth同意页面虽列出权限,但普通用户难以理解“Mail.Read”意味着“可读取所有邮件”。...尤其当用户将“微软登录页面”等同于“安全操作”时,社会工程成功率极高。此外,微软的默认安全策略偏向可用性。
更危险的是,攻击者还会利用这些权限悄悄创建邮件自动转发规则,将所有收件悄悄抄送给外部邮箱;或设置收件箱隐藏规则,让用户对后续钓鱼邮件毫无察觉。“现在的钓鱼,已经从‘偷钥匙’进化到‘骗你亲手开门’。”...公共互联网反网络钓鱼工作组技术专家芦笛指出,“而Microsoft 365因其广泛使用和强大API能力,成了攻击者的首选目标。”...“Mail.ReadWrite”“User.Read.All”等高危权限的第三方应用;监控登录地理与设备指纹突变:比如同一账号在1小时内从北京跳到莫斯科登录;一键响应:自动撤销恶意应用授权、终止可疑会话...技术内核:Graph API + 自动化剧本 = 主动防御要理解这款工具为何有效,得先了解Microsoft 365的安全架构。...微软通过Microsoft Graph API开放了对用户邮箱、日历、设备、身份等数据的编程访问接口。
;用户在授权服务器页面登录并同意权限请求;授权服务器生成授权码(Authorization Code),通过重定向返回至Client指定的redirect_uri;Client使用授权码、client_secret...向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...、权限范围及发布者信息,供用户判断风险。...由于应用名称与图标可自定义,且权限描述使用通用术语(如“读取您的邮件以提供服务”),用户极易误判为合法请求。...= {"Authorization": f"Bearer {token}"}# 列出用户邮箱文件夹resp = requests.get("https://graph.microsoft.com/v1.0
一旦授权完成,攻击者即可通过device_code兑换令牌,获得与用户同等的API访问权限。...Graph API,读取邮件、日历、联系人,甚至创建新应用或修改权限。...假设攻击者已注册一个Azure AD应用,client_id为“a1b2c3d4-5678-90ef-ghij-klmnopqrstuv”,并申请了以下API权限:Microsoft Graph: Mail.ReadWrite...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json...组织应开展针对性培训,强调:微软绝不会通过邮件/短信要求用户“输入设备代码”;所有授权操作应明确显示请求权限的应用名称与发布者;用户可在 https://mysignins.microsoft.com/
用户被邀请“完善注册信息”或“提交演讲议题”,并提示“使用Google/Microsoft账号一键登录以简化流程”。...2.2 OAuth授权流程劫持当用户点击“使用Google账号登录”按钮时,前端JavaScript发起标准OAuth 2.0授权请求:const authUrl = 'https://accounts.google.com...在Microsoft Entra ID中,可配置“用户同意设置”,禁止用户向未批准的应用授予权限:# PowerShell: 禁止用户同意所有应用Set-MgPolicyAuthorizationPolicy...以下Python脚本利用Google Admin SDK Directory API列出某用户的所有OAuth客户端授权:from googleapiclient.discovery import builddef...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:
与传统钓鱼依赖伪造登录页不同,此次攻击全程使用 真实的微软认证界面,绕过绝大多数安全培训与技术防护,堪称“合法外衣下的权限劫持”。...一旦用户输入代码并点击“下一步”,系统会要求其使用 Microsoft 365 账户登录——此时 MFA 可能被触发,用户收到短信或 Authenticator 推送通知,并完成验证。...芦笛指出,“Azure AD 默认允许任何注册应用发起设备代码请求,而企业管理员往往不知道这一功能的存在,更未限制其使用范围。”...Proofpoint 发现,部分攻击甚至持续数周未被发现——因为所有操作都通过合法 API 进行,IP 地址来自正常办公区域(攻击者使用代理或已控跳板机),行为模式与日常办公高度相似。...监控异常 OAuth 授权行为使用 Microsoft Defender for Cloud Apps 或第三方 SIEM 工具,设置告警规则,例如:单个用户短时间内授权多个新应用;应用请求权限与其业务场景不符
授权服务器 授权服务器提供资源所有者用来同意或拒绝的接口。服务器可以与API资源相同,或者是另一个不同的组件。在本例中,Microsoft登录门户是“授权服务器”。...范围 范围定义为第三方应用程序请求的访问类型。大多数API资源将定义应用程序可以请求的一组范围。这与Android手机应用程序在安装时请求的权限类似。...访问令牌可以在设定的时间段内使用,从API资源访问用户的数据,而无需资源所有者采取任何进一步的行动。...由于所有受害者交互都位于合法资源提供者(例如Microsoft)拥有的网站上,因此未经训练的用户很难区分合法的OAuth应用程序和恶意应用程序。...虽然任何允许OAuth应用程序的云环境都可以成为目标,但是PwnAuth目前使用一个模块来支持恶意Office 365应用程序,捕获OAuth令牌并使用捕获的令牌与Microsoft Graph API
邀请可通过以下方式发起:手动邀请:管理员或具有“Guest Inviter”角色的用户通过 Azure 门户、Microsoft Graph API 或 PowerShell 发送邀请。...,用户点击后需使用其现有 Microsoft 账户或工作账户登录,完成接受流程。整个流程符合 OAuth 2.0 与 OpenID Connect 标准,具备端到端加密与令牌绑定。...一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。...Single User条件:同一用户在 1 小时内发送超过 5 次邀请响应:自动禁用该用户邀请权限并告警Graph API 查询示例:GET https://graph.microsoft.com/v1.0...;即使绕过(如使用管理员账户),邮件也被标记,用户识别率提升 78%。此外,通过 Graph API 监控,我们能在 5 分钟内检测到异常邀请模式并自动响应。
例如,发送一封看似来自《卫报》记者的邮件:“我们正在撰写关于您提案的报道,请在此OneDrive链接中查看事实核查草稿”,链接指向攻击者控制的SharePoint站点,页面模仿Microsoft登录界面...(2.3)凭证窃取与MFA绕过钓鱼页面常集成实时转发功能,用户输入用户名密码后,攻击者立即用其向真实服务发起登录请求,并将MFA推送通知转发至自身设备:// 钓鱼后端实时代理登录请求app.post('...:# 列出所有具有Mail.Read权限的非微软应用Get-AzureADUser | ForEach-Object {Get-AzureADOAuth2PermissionGrant -ObjectId...(5.1)系统架构前端:Outlook插件,提供举报按钮与可疑链接预览;中台:基于Microsoft Graph API的行为分析引擎;后台:条件访问策略管理与OAuth授权审计模块。...,LegisShield实现:恶意OAuth应用授权拦截率:94%;凭证钓鱼页面访问阻断率:87%;平均威胁响应时间从4.2小时降至18分钟;用户对安全干预的接受度达89%,认为“不影响日常工作流”。
典型路径如下:钓鱼获取员工凭证(含MFA绕过,如MFA疲劳攻击);登录云控制台(如Azure AD、AWS IAM);枚举高权限账户或服务主体;申请或窃取OAuth令牌/会话Cookie;通过Graph...伪品牌验证流程嵌套:伪造Microsoft登录页后,跳转至“安全验证”页面,要求用户输入短信验证码,实则完成MFA劫持。此类攻击利用用户对协作工具的信任及多任务处理时的认知负荷,显著提升欺骗成功率。...攻击者购得凭证后,通常在24小时内完成以下操作:使用az login --service-principal或gcloud auth activate-service-account登录云环境;通过Get-MgUser...4.2 检测层:行为异常识别用户行为分析(UBA):建立基线模型,监控登录时间、地理位置、设备指纹、API调用频率等维度。...Graph API /users/{id}/revokeSignInSessions;发送Teams通知至用户及IT支持;创建Jira工单要求用户完成安全培训;更新IAM策略,强制启用FIDO2。
# 攻击者侧:使用Microsoft Graph API发起设备代码请求(简化示例)import requestsclient_id = "attacker-controlled-app-id" # 攻击者注册的恶意应用...breaktime.sleep(5)拿到Token后,攻击者即可调用Microsoft Graph API,读取邮件、日历、OneDrive文件、Teams消息,甚至发送新邮件冒充受害者——全程无需知道密码...这些工具提供图形界面,只需填入应用ID和权限范围,即可一键生成钓鱼页面与轮询脚本。“现在,一个懂基础Python的大学生都能发起设备代码钓鱼。”...(2)审计第三方应用授权所有用户都应定期检查其Microsoft 365账户的“隐私仪表板”中的应用权限:https://account.microsoft.com/privacy/管理员则可通过PowerShell...同时,开启风险用户检测(Identity Protection)和异常登录活动告警。例如,若某账户在短时间内从不同国家调用Graph API,即使Token合法,也应触发二次验证。
Microsoft Teams作为全球超3亿用户使用的协作平台,其通知邮件由微软官方域名 teams.mail.microsoft.com 发出,具备完整的SPF、DKIM、DMARC认证。...典型话术包括:“我们监测到您的账户在尼日利亚有异常登录,为保护数据安全,请配合远程诊断。”“您刚才的Teams会议中分享了敏感文件,系统自动冻结了权限,需手动解除。”...MFA保护的是“认证”,而非“操作”当攻击者通过远程控制软件接管终端后,所有操作均在用户会话上下文中进行。...邮件层:增强Teams通知监控限制Teams外部邀请:在Microsoft 365管理中心配置策略,禁止非组织成员创建团队或邀请用户;监控异常团队命名:通过Microsoft Graph API定期扫描团队名称...,识别含“PayPal”“Billing”“Urgent”等关键词的可疑实体;# 示例:通过Graph API列出所有团队GET https://graph.microsoft.com/v1.0/groups
4.4 智能化威胁检测与响应建立基于UEBA(用户实体行为分析)的检测机制,利用Microsoft Defender for Office 365和Microsoft Sentinel:异常登录检测:监控...以下是一个基于Python的示例,演示如何利用Microsoft Graph API查询SharePoint共享活动,并基于启发式规则识别异常模式。...", "supplier-b.net", "client-c.org"}def get_access_token(self) -> str:"""获取Microsoft Graph API访问令牌"""...}/auditLogs/directoryAudits" # 简化示例,实际应使用unifiedAuditLogs# 注:Graph API中统一审计日志的端点可能需要特定权限和不同的查询方式# 此处仅为逻辑演示...fetch_sharing_activities函数负责从Microsoft Graph API拉取审计日志(实际部署中需处理分页和API限流)。
此外,不同攻击者使用的client_id、应用名称、权限请求高度相似,使得基于TTPs的归因变得困难。...留空(设备授权无需回调)API权限:勾选Microsoft Graph的Delegated权限,如:Mail.ReadWriteCalendars.ReadWriteUser.Read.AllFiles.ReadWrite.All4.2...”事件;Application consent logs 中的非常规client_id授权;Token issuance logs 中的异常权限范围。...设置自动化规则,例如:当同一用户在24小时内授权超过2个未列入白名单的应用,且包含Mail.ReadWrite权限时,自动吊销令牌并告警。...可行的折中方案包括:仅对高风险用户组(如高管、财务)禁用;启用“连续访问评估”(Continuous Access Evaluation, CAE),使令牌在检测到风险时实时失效;要求所有设备授权请求必须来自合规设备
一、一场“巧合”的攻击暴露了更危险的趋势2025年10月,一家位于德国的能源企业安全团队在例行日志审计中发现异常:多个高管账户在凌晨时段调用了Microsoft Graph API,读取了大量内部邮件和...奇怪的是,所有登录均来自微软官方IP,且MFA(多因素认证)记录完整——没有密码爆破,没有会话劫持,也没有恶意软件痕迹。...此时,受害者实际上是在向攻击者控制的应用授权!一旦确认,攻击者的轮询脚本立即获得Access Token,并可调用任意Graph API权限。...芦笛建议,“99%的企业根本用不到这个功能。”若业务确需保留,可限制仅特定用户组、IP范围或合规设备使用。...使用(如非常规地理位置、高频API调用);使用Microsoft Defender for Cloud Apps设置异常活动告警,如“单用户1小时内下载10GB OneDrive数据”。
启用第三方应用管理员审批在Microsoft Entra ID(原Azure AD)中开启“用户无法自行同意应用”策略,所有新应用授权必须经IT管理员审核。此举可阻断90%以上的恶意应用注册。2....同时,定期审查已授权应用列表(路径:Microsoft 365门户 > 账户 > 应用权限),删除不再使用或可疑的“影子应用”。3....即使令牌被盗,也无法在陌生设备上使用。5. 定期吊销可疑刷新令牌通过Microsoft Graph API或安全中心,监控异常令牌活动(如非工作时间、非常用地点),并批量撤销高风险会话。...三步自保即便不是企业员工,普通Office 365用户也应警惕:授权前看清楚:仔细阅读应用请求的权限范围,拒绝“过度索取”;定期清理授权:访问 https://account.microsoft.com.../privacy ,点击“应用权限”查看并移除不用的应用;启用登录活动通知:在微软账户安全设置中开启“异常登录提醒”,第一时间掌握风险。
AD里面给Swagger注册的客户端应用的Id 6,scp:权限范围,我们为Swagger授权访问WebApi的权限 看到这里,是不是感觉和 Identity Server 4授权验证中心的好多配置特别相似...其实不难看出,这个账号就是我们当前azure portal的登录账号,也是当前订阅的管理员账号,而且我们在创建MyCommany这个租户的时候也是使用的当前登录的账号,所有当前登录的账号也就自然而然的成为当前租户下应用注册的资源所有者...此处应该有掌声,成功的通过验证,并且获取到 api资源,但是这种模式是最不推荐的,因为client可能存了用户密码,此模式仅用于受信任的客户端。复制会发生密码泄露。所以不推荐使用。...://graph.microsoft.com/.default。...此值告知 Microsoft 标识平台终结点:在为应用配置的所有直接应用程序权限中,终结点应该为与要使用的资源关联的权限颁发令牌 使用共享机密访问令牌请求:https://docs.microsoft.com