本文聚焦于近期在Microsoft 365环境中频发的“设备代码钓鱼”(Device Code Phishing)攻击,深入剖析攻击者如何滥用OAuth 2.0设备授权流程,在不获取用户密码的前提下实现账户接管...该流程允许用户在另一台具备浏览器的设备上完成授权,从而获取访问令牌。...一旦授权完成,攻击者即可通过device_code兑换令牌,获得与用户同等的API访问权限。...并输入代码:ABC123”;用户信以为真,在微软官方页面输入代码并完成MFA;攻击者轮询令牌端点,成功获取access_token与refresh_token;利用令牌调用Microsoft Graph...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...2 攻击技术原理与实施路径2.1 OAuth 2.0 用户同意机制回顾在Microsoft Entra ID中,第三方应用若需访问用户资源(如邮件、日历),必须通过OAuth 2.0授权码流程获取权限。...;应用使用令牌调用Microsoft Graph API。...4.2 条件访问:基于权限范围的策略拦截创建条件访问策略,阻止包含高危权限的应用获取令牌:策略逻辑:触发条件:应用请求包含Mail.ReadWrite、User.ReadWrite.All等;操作:阻止登录...4.6 Graph API 异常行为监控部署KQL查询,检测异常API调用模式:// 检测单应用大量邮件读取AuditLogs| where OperationName == "Consent to application
(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...3.3 令牌获取与持久化访问用户点击“同意”后,Microsoft将授权码发送至redirect_uri。...攻击者使用refresh_token定期换取新access_token,实现长期潜伏。所有API调用均来自微软合法IP,难以被网络层检测。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...4.3 刷新令牌生命周期过长在未启用条件访问(Conditional Access)的情况下,刷新令牌有效期可达90天。即使用户更改密码,旧令牌仍有效,导致凭证轮换失效。
对于Microsoft Entra ID,关键令牌包括:Session Cookie:如ESTSAUTHPERSISTENT,有效期可达90天;Refresh Token:用于在后台静默获取新的访问令牌...,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...攻击者利用这些令牌可直接通过API访问用户邮箱、OneDrive文件、Teams聊天记录等,完全绕过前端UI与MFA提示。...例如,若受害者通常使用Windows 11 + Chrome 124访问Office 365,攻击者将配置代理以相同特征发起API请求,使登录活动在审计日志中呈现为“正常行为”。...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id
劫持授权响应、绕过多因素认证(MFA)等手段,在不获取用户密码的前提下实现持久化账户访问。...尤其在Microsoft 365、Google Workspace等企业生产力平台中,OAuth被深度集成于单点登录(SSO)、API调用、跨应用数据共享等关键场景。...向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...获得令牌后,攻击者通过Microsoft Graph API执行侦察:import requeststoken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx"headers...可使用Microsoft Graph PowerShell批量设置:# 禁止用户同意应用Set-MgPolicyAuthorizationPolicy -PermissionGrantPolicyId
其典型交互场景为:用户在智能电视打开视频应用,设备显示短码与官方验证地址,用户使用手机访问该地址并输入短码,完成登录与授权后电视端自动获取令牌并访问资源。...refresh_token;设备码获取:调用官方 /devicecode 接口,返回合法用户码与验证地址,无恶意特征;轮询机制:每 5 秒轮询一次令牌接口,直到用户完成授权或码过期;资源访问:通过 Microsoft...Graph API 读取邮件、文件、目录信息,权限与用户完全一致。...;身份层特征:非托管设备、异常地理位置发起设备码授权;未验证发布者应用申请高敏感权限;10 分钟内单用户多次设备码授权;应用层特征:授权后立即高频调用 Graph API 读取邮件、文件;应用无企业内业务场景...以下是 PowerShell 与 Graph API 配置代码:PowerShell 脚本(推荐)powershell# 安装Microsoft Graph模块Install-Module Microsoft.Graph.Identity.SignIns
更令人不安的是,这种攻击对多因素认证(MFA)几乎免疫——即使你启用了短信或 Authenticator 验证,只要在微软官网输入了那串“设备代码”,攻击者就能绕过所有防线,直接获取访问令牌(Access...它允许第三方应用在不获取用户密码的前提下,访问用户在其他服务(如 Google、Microsoft)上的资源。...更危险的是,一旦获得 Refresh Token,攻击者可长期维持访问,即使用户更改密码也无效——因为 OAuth 令牌独立于密码体系。...Microsoft Graph API 窃取数据breakelif token_resp.json().get("error") == "authorization_pending":time.sleep...(5)else:print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:#
一,引言 上一节讲到如何在我们的项目中集成Azure AD 保护我们的API资源,以及在项目中集成Swagger,并且如何把Swagger作为一个客户端进行认证和授权去访问我们的WebApi资源的?...上一篇结尾我们成功的拿到了 access_token,并且通过 access_token 验证获取到调用Api资源的结果。...通过User的用户名和密码向认证中心申请访问令牌。 按照惯例,在postman中直接进行调用order的接口。 ResponseCode:401,提示没有权限。...://graph.microsoft.com/.default。...此值告知 Microsoft 标识平台终结点:在为应用配置的所有直接应用程序权限中,终结点应该为与要使用的资源关联的权限颁发令牌 使用共享机密访问令牌请求:https://docs.microsoft.com
平台后台仪表盘支持攻击者一键导出令牌,直接调用 Microsoft Graph API 读取目标邮箱、下载 SharePoint 文档、修改收件箱转发规则、创建日历恶意事件,完成后渗透操作。...30 分钟后 EvilTokens 平台捕获长期刷新令牌,攻击者调用 Microsoft Graph API 读取该财务主管近半年全部供应商转账邮件,筛选三笔千万元级待付款单据;同步创建收件箱转发规则,...、授权后立即调用 Graph 高敏感 API。...本代码调用 Microsoft Graph 接口读取登录审计日志,自动识别恶意设备码授权行为并输出异常日志清单。...__name__ == "__main__": # 填入企业Graph API访问令牌 graph_access_token = "填入管理员Graph授权Token" # 企业可信登录地域列表
授权核心是设备向授权服务器申请设备码与用户码,用户在高可信设备输入用户码完成授权,设备通过轮询获取访问令牌,进而访问目标资源。...;用户在可信设备打开验证 URL,登录账号并输入用户码;授权服务器校验通过后,标记设备授权状态;设备客户端按轮询间隔请求令牌,授权服务器返回访问令牌与刷新令牌;设备使用访问令牌调用资源服务器接口,获取用户数据...3.2.4 令牌获取与权限持久化用户授权后,Tycoon2FA 后台脚本通过设备码轮询微软授权服务器,获取访问令牌与刷新令牌。...攻击者使用令牌访问 Microsoft 365 邮件、日历、OneDrive、SharePoint 等资源,部分配置下可获取全局管理员权限,实现内网横向渗透。...4.2 权限管控级防御:限制 OAuth 授权范围限制客户端 ID:仅允许企业内部可信客户端使用设备码流程;收紧权限范围:禁止默认授予/.default全权限,最小化 API 调用范围;开启授权审批:对高权限应用开启管理员审批
标准流程如下:受限设备向授权服务器发起请求,获取设备码与用户码;设备提示用户在电脑 / 手机访问官方验证页面,输入用户码;用户完成身份认证与授权;授权服务器向受限设备发放访问令牌与刷新令牌;受限设备持令牌访问资源服务器...,系统提示授权设备访问账户,用户因信任官方入口完成授权;令牌窃取:授权成功后,微软向攻击者客户端发放令牌,攻击者获取持久访问权限;持久化控制:使用刷新令牌延长权限有效期,实现长期控制,开展数据窃取、横向移动等后续攻击...4.2 设备码授权异常检测代码示例以下基于 Microsoft Graph API 实现设备码授权异常监测,可集成至企业安全平台:import requestsimport datetimefrom datetime.../.default"# 获取访问令牌def get_graph_token(): url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2...5.2 技术层:监测、审计与响应一体化实时监测:部署基于 Graph API 的日志采集与异常检测,实时发现高频授权、陌生应用、境外 IP 等行为;全量审计:启用 Microsoft Purview 审计日志
终结点 URL OneDrive for Business 资源的访问令牌 在当前令牌到期时生成其他访问令牌的刷新令牌。...开始对接 客户端id和密钥使用过oneindex的小伙伴应该都知道怎么设置,这里就不多介绍,除此之外设置一个回调的uri就可以了,我使用的是“localhost:8400” 获取access_token...onedrive for business使用的是标准的Oauth2流程,所以大概流程就是先获取code,使用code交换access_token,然后就可以调用api了,这里先贴出获取code以及交换...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
文中嵌入基于 Python+Microsoft Graph API 的恶意邮件识别、异常 OAuth 令牌检测、伪微软域名同源校验三段工程化代码,完成防御方案落地验证;反网络钓鱼技术专家芦笛指出,Kali365...新型攻击利用 OAuth 授权机制实现持久会话劫持,受害者修改账号密码也无法清除攻击者已获取的访问令牌,大幅提升事后溯源与止损难度。...Microsoft Graph API 读取邮箱、OneDrive 全部文件。...),通过 Graph API 实时审计全租户异常登录、高风险 OAuth 授权,自动撤销可疑刷新令牌,从协议层面阻断攻击者持久访问通道;代码 2 实现高危登录抓取、异常令牌一键撤销,对接租户 SIEM...= "https://graph.microsoft.com/v1.0"def get_tenant_admin_token(): """获取管理员Graph凭证,用于令牌撤销与登录日志查询""
,输入 user_code 并完成身份验证(含 MFA);攻击者以固定周期轮询/oauth2/v2.0/token端点,使用 device_code 获取访问令牌与刷新令牌;攻击者利用令牌访问邮件、文档...API 交互,完成设备码申请、令牌轮询、权限获取;提供高仿真钓鱼模板:邮件 quarantine 通知、日历邀请、SharePoint 权限申请、密码过期提醒、DocuSign/Adobe 签署通知、...3.3 令牌窃取与权限获取阶段用户完成验证后,攻击者轮询拿到访问令牌与刷新令牌,获得以下能力:非交互式访问 Microsoft Graph API,读取邮件、下载文件、获取通讯录;长期维持访问:刷新令牌可重复生成有效访问令牌...;高级入侵:以刷新令牌注册设备,获取主刷新令牌 PRT,静默访问 M365 应用,实现跨服务横向移动。...:审计令牌使用行为,对异常使用立即撤销并告警。
然而,2026 年二季度出现的 Kali365 钓鱼即服务平台打破传统安全认知:该工具无需窃取密码、无需绕过 MFA,仅通过诱导用户完成官方设备码授权,即可获取合法 OAuth 访问令牌与刷新令牌,实现对...其标准流程为:客户端申请设备码→用户访问官方验证 URI 并输入短码→完成认证与授权→客户端获取访问令牌(access_token)与刷新令牌(refresh_token)→凭令牌访问资源。...,输入设备码并完成 MFA 认证;令牌窃取:攻击者获取合法 OAuth 令牌,获得账户完整访问权限;持久控制:凭借 refresh_token 长期维持访问,实现数据窃取、横向渗透。...5 威胁检测体系构建5.1 多维度行为特征提取Kali365 无静态恶意特征,需基于行为检测:身份层:短时间内多设备码授权、非可信应用申请高权限、异常地理位置授权;应用层:授权后高频调用 Graph API...Graph API;未验证应用申请 Mail、Files、Directory 权限组合。
一旦授权成功,即使用户更改密码或启用MFA,攻击者仍可通过已授权的应用持续访问邮箱、日历、文件等敏感资源。...Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...Defender for Cloud Apps或自建SIEM规则,检测以下信号:新注册应用请求高权限;用户短时间内多次授权不同应用;授权后立即调用高风险API(如批量导出邮件)。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
;客户端按照约定间隔持续轮询令牌接口/oauth2/v2.0/token,服务器检测到用户完成授权后,返回access_token短期访问令牌与refresh_token长效刷新令牌,客户端持令牌调用...Microsoft Graph API 读取邮件、文档、通讯录等资源RFC Editor。...默认下发的refresh_token不与用户授权终端硬件指纹、IP 地址绑定,攻击者获取令牌后可在任意设备长期维持账号访问,即便用户修改密码,未撤销的刷新令牌仍可持续调用 Graph API。...攻击者使用令牌调用 Microsoft Graph API,批量读取 SharePoint 文档、Exchange 邮件、Teams 聊天记录、员工 PII 隐私数据,最快 6 分钟完成数据外发;随后向企业发送勒索邮件...(self): # 获取Graph API访问令牌 payload = { "grant_type": "client_credentials",
尤其在Microsoft 365、Salesforce、Google Workspace等主流SaaS平台中,一旦主账户凭证失窃,攻击者可在数分钟内完成权限提升、邮箱导出、API调用乃至数据外泄,而平均检测延迟仍超过...例如,一个仅需读取日历的协作工具,常被授予“完全访问邮箱”权限,一旦该应用令牌泄露,攻击者可直接读取高管邮件。...典型路径如下:钓鱼获取员工凭证(含MFA绕过,如MFA疲劳攻击);登录云控制台(如Azure AD、AWS IAM);枚举高权限账户或服务主体;申请或窃取OAuth令牌/会话Cookie;通过Graph...此过程中,攻击者无需部署恶意软件,全程利用合法API调用,规避传统EDR检测。思科报告显示,73%的勒索事件中,攻击者在获得凭证后4小时内完成数据加密或外传。...4.2 检测层:行为异常识别用户行为分析(UBA):建立基线模型,监控登录时间、地理位置、设备指纹、API调用频率等维度。
研究揭示,此类攻击通过滥用OAuth 2.0设备授权流程,在用户主动授权的掩护下获取长期有效的刷新令牌,从而规避传统基于密码泄露或会话劫持的检测机制。...device_code换取访问令牌(access_token)和刷新令牌(refresh_token)。...,其中refresh_token可长期使用(默认90天,可配置延长),使攻击者获得持久访问能力。...留空(设备授权无需回调)API权限:勾选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
VIPRE使用OAuth 2.0协议获取访问令牌,确保所有API调用的安全性与可审计性。...该脚本模拟了当VIPRE检测到高危威胁后,调用Microsoft Graph API在Office 365环境中执行邮件隔离与用户通知的流程。...获取访问令牌 (OAuth 2.0 Client Credentials Flow)$Body = @{ grant_type = "client_credentials" client_id...执行隔离操作 (Soft Delete / Move to Quarantine)# 注意:Graph API直接移动邮件到垃圾箱,彻底隔离通常需调用Security API创建审查任务或使用Exchange...-ForegroundColor Cyan4.3 代码逻辑解析上述脚本完整演示了异构集成的核心逻辑:认证握手:通过OAuth 2.0获取访问令牌,确保了对Microsoft Graph API的安全访问