本文聚焦于近期在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天。即使用户更改密码,旧令牌仍有效,导致凭证轮换失效。
劫持授权响应、绕过多因素认证(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
对于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
一,引言 上一节讲到如何在我们的项目中集成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
更令人不安的是,这种攻击对多因素认证(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 执行任意操作:#
终结点 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
一旦授权成功,即使用户更改密码或启用MFA,攻击者仍可通过已授权的应用持续访问邮箱、日历、文件等敏感资源。...Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...Defender for Cloud Apps或自建SIEM规则,检测以下信号:新注册应用请求高权限;用户短时间内多次授权不同应用;授权后立即调用高风险API(如批量导出邮件)。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
尤其在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
Workspace账户的访问权限,从而合法获取高权限令牌。...调用store_tokens(tokens['access_token'], tokens['refresh_token'])return tokens获得令牌后,攻击者可调用Google People...Microsoft设备码流程令牌获取示例:import timedef poll_for_device_token(device_code):while True:resp = requests.post...,UTA0355采取多项措施维持访问:在Microsoft Entra ID中注册伪装设备,名称模仿用户真实主机(如“Johns-MacBook-Pro”);使用Android Dalvik/2.1.0...delete类似地,Microsoft Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization
;设备凭此Token访问API资源。...# 攻击者侧:使用Microsoft Graph API发起设备代码请求(简化示例)import requestsclient_id = "attacker-controlled-app-id" # 攻击者注册的恶意应用...breaktime.sleep(5)拿到Token后,攻击者即可调用Microsoft Graph API,读取邮件、日历、OneDrive文件、Teams消息,甚至发送新邮件冒充受害者——全程无需知道密码...在其2025年发布的《云身份威胁报告》中,设备代码滥用被列为“高隐蔽性持久化访问”(High-Fidelity Persistent Access)的典型代表。五、如何防御?...例如,若某账户在短时间内从不同国家调用Graph API,即使Token合法,也应触发二次验证。(4)员工意识培训需升级传统“别点可疑链接”已不够。
动态生成 OG 图片 (Open Graph) 使用 Tailwind CSS 进行样式设计 集成 Shopify 完成结账与支付功能,并支持自动根据系统设置切换浅色/深色主题 该项目提供了一套完整且高效的解决方案...可通过负载均衡方式访问不同渠道,并支持流式传输实现打字机效果。 支持多机部署,在令牌管理中设置过期时间和额度,并且可以进行兑换码管理批量生成与导出充值功能。...Library (MSAL) for .NET 是 Microsoft 提供的一款用于开发者身份验证和调用受保护 API 的库。...它使用行业标准的 OAuth2 和 OpenID Connect,支持获取安全令牌来访问受保护的 API,并且还提供了对 Azure AD B2C 的支持。...官方文档齐备:详细介绍了如何在不同平台上使用 MSAL.NET 进行快速入门,并提供相关示例代码进行参考。
据Bleeping Computer网站消息,俄罗斯黑客已经开始使用一种新的代码执行技术,该技术依赖于 Microsoft PowerPoint 演示文稿(PPT)中的鼠标移动来触发恶意 PowerShell...Graphite 滥用 Microsoft Graph API 和 OneDrive ,与命令和控制 (C2) 服务器通信。...攻击者通过使用固定客户端 ID 访问服务以获取有效的 OAuth2 令牌。...【Graphite 使用的固定客户端 ID】 研究人员解释说,使用新的 OAuth2 令牌,Graphite 通过枚举 check OneDrive 子目录中的子文件来查询 Microsoft GraphAPI...“如果找到新文件,则下载内容并通过 AES-256-CBC 解密算法解密,恶意软件通过分配新的内存区域并执行接收到的 shellcode 来允许远程命令执行调用一个新的专用线程。”研究人员说道。
如上图,描述本次批量创建图表的主要脚本逻辑,即先获取Zabbix的身份验证令牌,然后查询主机或主机群获得其HOSTID,接着以HOSTID依次获取指定监控键值ID加入列表池,最后一次性请求graph.create...主机类(HOST) 创建HOST类并声明__init__私有函数,通过入参zbx_token获取ZabbixAPI身份令牌,供本类函数调用。...指标类(ITEM) 创建ITEM指标类并声明一个私有函数,通过入参zbx_token获取ZabbixAPI身份令牌,供本类函数调用。...指标类并声明一个私有函数,通过入参zbx_token获取ZabbixAPI身份令牌,供本类函数调用。...调用接口 3.1. 项目介绍 通过上面对官方API的解读,我们已经知道如何使用它了。那么接下来的任务就是如何将这些配件、模块组装起来,让它running起来。
API——资源 客户端希望访问的目标应用程序。在本例中,Microsoft OneDrive API 终端是资源。 资源拥有者 允许访问其部分帐户的人员。在本例中,就是你。...访问令牌可以在设定的时间段内使用,从API资源访问用户的数据,而无需资源所有者采取任何进一步的行动。...攻击者可能会创建恶意应用程序,并使用获取的访问令牌通过API资源获取受害者的帐户数据。访问令牌不需要知道用户的密码,并能绕过双因素认证。...虽然任何允许OAuth应用程序的云环境都可以成为目标,但是PwnAuth目前使用一个模块来支持恶意Office 365应用程序,捕获OAuth令牌并使用捕获的令牌与Microsoft Graph API...图1:将一个Microsoft App导入PwnAuth 配置完成后,可以使用生成的“授权URL”对潜在受害者进行钓鱼。点击后,PwnAuth将捕获受害者OAuth令牌供以后使用。
值得注意的是,攻击成功后的横向移动成本极低——一旦获取有效会话令牌或MFA绕过权限,攻击者可直接访问企业通讯录、日历、OneDrive/Google Drive文件乃至财务审批流程,造成数据泄露、商业欺诈甚至供应链污染...此类攻击尤其针对财务、HR等高频使用审批系统的部门。2.3 身份层突破:从凭证窃取到会话劫持传统钓鱼目标为用户名与密码,但在MFA普及背景下,攻击者转向更高效的会话令牌窃取。...典型流程如下:用户在钓鱼页面输入凭据;攻击脚本实时将凭据转发至真实登录接口,完成身份验证;获取有效的会话Cookie或OAuth 2.0访问令牌;直接注入浏览器或API调用,绕过MFA校验。...关键措施包括:自动化会话吊销:通过API批量注销用户所有活动会话;凭据紧急重置:强制更改密码并撤销刷新令牌;行为回溯:利用审计日志定位首次异常活动时间点。...Microsoft Graph API吊销会话示例:import requestsdef revoke_user_sessions(user_id, access_token):url = f"https
一、一场“巧合”的攻击暴露了更危险的趋势2025年10月,一家位于德国的能源企业安全团队在例行日志审计中发现异常:多个高管账户在凌晨时段调用了Microsoft Graph API,读取了大量内部邮件和...其核心逻辑是:让用户在有输入能力的设备(如手机)上完成授权,从而让受限设备获得访问令牌。...一旦确认,攻击者的轮询脚本立即获得Access Token,并可调用任意Graph API权限。...公共互联网反网络钓鱼工作组技术专家芦笛解释,“微软服务器看到的是正常API调用,防火墙看到的是HTTPS流量,EDR看到的是合法进程——没有任何异常信号。”...(如非常规地理位置、高频API调用);使用Microsoft Defender for Cloud Apps设置异常活动告警,如“单用户1小时内下载10GB OneDrive数据”。
这很符合伊朗攻击组织的攻击倾向,现在攻击者越来越倾向于瞄准服务提供商进行攻击,获取下游访问权限。 ...获取 OAuth 令牌 攻击者在样本中内置了 Refresh Token,这是 OAuth 2 规范的一部分,允许在过期后发布新的 OAuth Token。...使用该 OAuth Token 就可以向 Microsoft Graph API 请求(https://graph.microsoft.com/v1.0/me/drive/root:/Documents...请求结构为:https://graph.microsoft.com/v1.0/me/drive/root:/Uploaded/???:/content。...执行期间,攻击者可以使用 https://graph.microsoft.com/v1.0/me/drive/root:/Documents/data.txt:/content请求重置原始文件 data.txt