“您的 Microsoft 账户需要立即完成安全验证。请访问 https://aka.ms/devicelogin,输入以下代码:**ABCD-EFGH**。”...更令人不安的是,这种攻击对多因素认证(MFA)几乎免疫——即使你启用了短信或 Authenticator 验证,只要在微软官网输入了那串“设备代码”,攻击者就能绕过所有防线,直接获取访问令牌(Access...授权完成后,攻击者的服务器立即通过 OAuth 2.0 的 /token 端点兑换访问令牌和刷新令牌(Refresh Token),从而获得对受害者邮箱、日历、文件等资源的长期访问权——全程无需知道密码...Graph API 窃取数据breakelif token_resp.json().get("error") == "authorization_pending":time.sleep(5)else:...print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近
攻击者通过伪造合法服务(如Cloudflare验证页或微软账户修复向导),引导用户在浏览器中完成看似无害的操作——复制粘贴一个URL或点击“同意”按钮,实则触发OAuth授权请求,将访问令牌(access...用户被诱导相信这是正常验证流程的一部分。(二)授权诱导与令牌捕获当用户点击“继续”或“验证”按钮时,浏览器跳转至微软官方登录页。...Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
本文聚焦于2025年披露的一类高隐蔽性钓鱼攻击:攻击者诱导用户授权伪装成合法工具的恶意OAuth应用,利用其申请的高权限API作用域(如Mail.Read、Files.ReadWrite.All),在无需密码或一次性验证码的情况下访问邮箱...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...关键点在于:MFA仅在第3步验证用户身份,而第5步的“同意”操作本身无二次验证。一旦用户授权,即使账户启用了MFA,攻击者仍可通过令牌直接访问资源。...3.3 令牌获取与持久化访问用户点击“同意”后,Microsoft将授权码发送至redirect_uri。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com
对于Microsoft Entra ID,关键令牌包括:Session Cookie:如ESTSAUTHPERSISTENT,有效期可达90天;Refresh Token:用于在后台静默获取新的访问令牌...,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...攻击者利用这些令牌可直接通过API访问用户邮箱、OneDrive文件、Teams聊天记录等,完全绕过前端UI与MFA提示。...VoidProxy的成功暴露了以下根本性问题:MFA验证与会话绑定脱节:MFA仅在认证时刻验证用户身份,但生成的会话令牌本身不绑定设备、IP或浏览器上下文。一旦令牌泄露,任何持有者均可冒充合法用户。...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...关键词:OAuth 同意滥用;假冒微软应用;Entra ID;多因素认证绕过;Graph API;条件访问1 引言多因素认证(MFA)作为现代身份安全的核心防线,已在绝大多数企业环境中广泛部署。...一旦同意,攻击者即获得授权码,兑换为访问令牌(access token)与长期有效的刷新令牌,从而无需再次触发MFA即可持续访问用户邮箱与文件。...;应用使用令牌调用Microsoft Graph API。...3.3 缺乏应用行为基线监控SIEM系统通常未将“新应用首次访问Graph API”与“大量邮件读取”关联分析。即使启用日志,也因数据量庞大而忽略异常。3.4 审计滞后企业极少定期审查已授权应用列表。
://microsoft.com/devicelogin),输入user_code;授权服务器验证用户身份(通常包括MFA)后,将授权授予客户端;客户端通过轮询使用device_code换取访问令牌(access_token...一旦授权完成,攻击者即可通过device_code兑换令牌,获得与用户同等的API访问权限。...与refresh_token;利用令牌调用Microsoft 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
文中提供了可落地的技术方案,包括精确匹配的重定向URI白名单配置、条件访问策略绑定设备指纹、自动化影子应用审计脚本等,并通过代码示例验证其有效性。...;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...攻击者利用刷新令牌可无限续期访问令牌,实现长期潜伏。...获得令牌后,攻击者通过Microsoft Graph API执行侦察:import requeststoken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx"headers...以下Python脚本利用Microsoft Graph API实现自动化审计:import requestsfrom datetime import datetime, timedeltadef audit_shadow_apps
Workspace账户的访问权限,从而合法获取高权限令牌。...攻击者服务器立即用该code向Google令牌端点交换访问令牌(access token)和刷新令牌(refresh token):# 攻击者后端:用授权码换取令牌import requestsdef...2.4 后渗透与持久化获得初始访问权限后,UTA0355采取多项措施维持访问:在Microsoft Entra ID中注册伪装设备,名称模仿用户真实主机(如“Johns-MacBook-Pro”);使用...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:...3.3 用户行为验证与安全缓冲区对于必须参与外部会议的员工,建议:使用专用邮箱(如events@company.com)进行注册,隔离主账户风险;手动访问会议官网(通过搜索引擎或官方社交媒体)而非点击邮件链接
尤其在Microsoft 365、Salesforce、Google Workspace等主流SaaS平台中,一旦主账户凭证失窃,攻击者可在数分钟内完成权限提升、邮箱导出、API调用乃至数据外泄,而平均检测延迟仍超过...例如,一个仅需读取日历的协作工具,常被授予“完全访问邮箱”权限,一旦该应用令牌泄露,攻击者可直接读取高管邮件。...典型路径如下:钓鱼获取员工凭证(含MFA绕过,如MFA疲劳攻击);登录云控制台(如Azure AD、AWS IAM);枚举高权限账户或服务主体;申请或窃取OAuth令牌/会话Cookie;通过Graph...伪品牌验证流程嵌套:伪造Microsoft登录页后,跳转至“安全验证”页面,要求用户输入短信验证码,实则完成MFA劫持。此类攻击利用用户对协作工具的信任及多任务处理时的认知负荷,显著提升欺骗成功率。...Graph API /users/{id}/revokeSignInSessions;发送Teams通知至用户及IT支持;创建Jira工单要求用户完成安全培训;更新IAM策略,强制启用FIDO2。
终结点 URL OneDrive for Business 资源的访问令牌 在当前令牌到期时生成其他访问令牌的刷新令牌。...refresh_token': token['refresh_token'], 'grant_type': 'refresh_token', 'resource': 'https://graph.microsoft.com...self.get_path(path, 'content'), headers=self.header, data=data) if 'error' in r: return "上传失败...r.status_code not in [200, 201, 202]: print("上传出错") break 遇到的几个坑 终结点是https://graph.microsoft.com...onedrive的请求api是https://graph.microsoft.com/v1.0/me/drive,但是文档中以及网上教程写的是https://graph.microsoft.com/me
上一篇结尾我们成功的拿到了 access_token,并且通过 access_token 验证获取到调用Api资源的结果。...这里直译起来比较拗口,其实说白了,就是这个令牌用于谁,使用令牌去访问谁,谁就是audience。 2,iss(Issuer):颁发者。...参数必传 这时候,就又有人问了,为什么这里的 scope 参数的值和上面不一样,确实,我也有这个疑问,后来找到微软官方给我的文档解释道: Microsoft Graph 示例中,该值为 https...://graph.microsoft.com/.default。...此值告知 Microsoft 标识平台终结点:在为应用配置的所有直接应用程序权限中,终结点应该为与要使用的资源关联的权限颁发令牌 使用共享机密访问令牌请求:https://docs.microsoft.com
://microsoft.com/devicelogin),输入user_code;授权服务器验证用户身份(通常包括MFA)后,将授权授予客户端;客户端通过轮询使用device_code换取访问令牌(access_token...权限:勾选Microsoft Graph的Delegated权限,如:Mail.ReadWriteCalendars.ReadWriteUser.Read.AllFiles.ReadWrite.All4.2...,攻击者可调用Microsoft Graph API读取邮件:import requestswith open('stolen_token.json') as f:token = json.load(f...)headers = {'Authorization': f'Bearer {token["access_token"]}'}mails = requests.get('https://graph.microsoft.com...可行的折中方案包括:仅对高风险用户组(如高管、财务)禁用;启用“连续访问评估”(Continuous Access Evaluation, CAE),使令牌在检测到风险时实时失效;要求所有设备授权请求必须来自合规设备
值得注意的是,攻击者并非仅获取静态密码,而是通过代理中继完成MFA挑战,最终获得有效的OAuth 2.0访问令牌或会话Cookie,实现对邮箱、OneDrive乃至Azure资源的完全控制。...API枚举组织通讯录;部署恶意应用注册(如伪装为“HR Portal”)以持久化访问。...更危险的是,若攻击者已窃取Refresh Token,可长期静默访问API资源,而无需再次交互。...(Token Binding):将访问令牌与客户端TLS证书绑定,防止令牌被盗后在其他设备使用。...结果:未启用Private Link时,代理成功获取会话;启用Private Link后,代理因无法解析内网FQDN失败;启用连续验证后,非常规IP登录被阻断;授权监控规则在30秒内告警新应用注册事件。
此处以Microsoft Graph为参考,选择“委托的权限”,根据列出的API权限需求表进行选择 “委托的权限”配置(用户登录)(选择Calendars->Calendars.Read)...调用工具 Microsoft Graph 浏览器是一种基于 Web 的工具,可用于生成和测试对 Microsoft Graph API 的请求 API需要的权限设定可在预览卡中查阅...,授权后则可再次尝试调用响应 Postman 是一个可用于向 Microsoft Graph API 发出请求的工具:Postman&Microsoft Graph API使用 ...c.Microsoft Graph 快速入门示例 Microsoft Graph入门: a.选择语言或平台 b.获取应用 ID(客户端 ID) c.生成示例 d.登录,然后查看日历上的事件 PHP...http://localhost:8000 JAVA示例 Microsoft Graph & Java 入门 SDK引用:msgraph-sdk-java Java应用创建示例
;设备凭此Token访问API资源。...# 攻击者侧:使用Microsoft Graph API发起设备代码请求(简化示例)import requestsclient_id = "attacker-controlled-app-id" # 攻击者注册的恶意应用...breaktime.sleep(5)拿到Token后,攻击者即可调用Microsoft Graph API,读取邮件、日历、OneDrive文件、Teams消息,甚至发送新邮件冒充受害者——全程无需知道密码...答案在于:设备代码钓鱼攻击发生在身份验证之后,且完全走合法API通道。...例如,若某账户在短时间内从不同国家调用Graph API,即使Token合法,也应触发二次验证。(4)员工意识培训需升级传统“别点可疑链接”已不够。
,包括对 JWT 令牌的解析和验证。...// -用途:用来处理身份验证失败的情况,例如,记录失败原因、执行额外的错误处理逻辑等。...//5. * *OnForbidden * *: // -触发时机:当授权失败时触发(即用户已通过身份验证,但没有足够的权限访问特定资源)。...以下是一个简单的登录 API 示例: using Microsoft.AspNetCore.Mvc; using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt...路由 一旦有了 JWT 令牌生成机制,接下来需要保护 API 路由,确保只有携带有效 JWT 令牌的请求可以访问受保护的资源。
该链接表面指向一个常规文档,实则加载伪装成Microsoft 365登录界面的钓鱼页面,并在用户输入凭证后实时中继多因素认证(MFA)请求,实现凭证与会话令牌的双重窃取。...搜索并下载敏感文档:利用Graph API遍历OneDrive与SharePoint中的文件夹,下载包含“NDA”、“Term Sheet”、“Due Diligence”等关键词的文档。...此后,即使原始凭证被重置,攻击者仍可通过OAuth令牌维持API级访问,实现长期潜伏。...以下Python脚本利用Microsoft Graph API实现授权审计:import requestsdef audit_oauth_apps(user_token):headers = {"Authorization...": f"Bearer {user_token}"}url = "https://graph.microsoft.com/v1.0/me/oauth2PermissionGrants"response
关键词:Microsoft 365;钓鱼攻击;生产力惯性;OAuth滥用;MFA中继;条件访问;遗留协议;统一审计日志1 引言随着远程办公常态化,Microsoft 365已成为全球企业数字协作的核心平台...由于推送内容仅显示“验证你的身份”,用户极易误判为正常流程。...获得有效会话后,攻击者通过Graph API注册恶意OAuth应用:POST https://graph.microsoft.com/v1.0/applicationsContent-Type: application..." },{ "id": "Chat.Read", "type": "Scope" }]}]}该应用随后被授予管理员同意(利用用户权限漏洞),获得长期访问令牌。...用户教育需从“识别恶意”转向“验证正常”,强调对根域名、证书与认证上下文的主动核查。值得注意的是,没有任何单一控制能完全杜绝此类攻击。
公共互联网反网络钓鱼工作组技术专家芦笛指出,“而Microsoft 365因其广泛使用和强大API能力,成了攻击者的首选目标。”...它不依赖外部SaaS服务,而是直接调用Microsoft Graph API,实时扫描租户内的高风险行为:检测异常收件箱规则:如自动转发至外部域名、删除特定关键词邮件等;识别可疑OAuth应用授权:尤其是请求...Mail.ReadWrite”“User.Read.All”等高危权限的第三方应用;监控登录地理与设备指纹突变:比如同一账号在1小时内从北京跳到莫斯科登录;一键响应:自动撤销恶意应用授权、终止可疑会话、刷新访问令牌...技术内核:Graph API + 自动化剧本 = 主动防御要理解这款工具为何有效,得先了解Microsoft 365的安全架构。...微软通过Microsoft Graph API开放了对用户邮箱、日历、设备、身份等数据的编程访问接口。
这种“活体凭证”(Live Session Token)可直接用于API调用或Web界面操作,完全绕过基于时间的一次性密码(TOTP)或短信验证码等传统MFA机制。...攻击流程如下:用户点击钓鱼邮件中的链接,访问攻击者控制的仿冒登录页(如secure-microsoft-login[.]xyz);该页面实际是一个反向代理,将用户所有请求(包括输入的用户名、密码、MFA...以下Python脚本模拟检测异常会话(基于Microsoft Graph API):import requestsfrom datetime import datetime, timedeltaGRAPH_API_TOKEN...= "your_app_token"USER_ID = "user@contoso.com"def get_user_signins(user_id):url = f"https://graph.microsoft.com...$filter=userPrincipalName eq '{user_id}'&$top=10"headers = {"Authorization": f"Bearer {GRAPH_API_TOKEN