传统方法通常依赖从终端提取主刷新令牌 (PRT),这可通过信标(如使用 aad_prt_bof 或 Kozmer 的 request_aad_prt 之类的 BOF)实现。...本文将探讨在此类受限环境下,如何通过替代方法获取刷新令牌,以确保在信标失效时仍能维持对被攻陷身份的访问。...该 BOF 利用已通过浏览器向 Entra 进行身份验证的用户会话,通过以下步骤获取访问和刷新令牌: 启动新的浏览器窗口,针对指定的 Entra 客户端 ID 和范围启动授权码流程。...使用捕获的授权码向 Entra 服务请求访问令牌和刷新令牌。 将获取的令牌展示给操作员。...刷新令牌的有效期取决于 Entra 租户的配置,通常较长,但仍需定期轮换以维持访问。
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...一旦同意,攻击者即获得授权码,兑换为访问令牌(access token)与长期有效的刷新令牌,从而无需再次触发MFA即可持续访问用户邮箱与文件。...login.microsoftonline.com/common/oauth2/v2.0/authorize;微软显示标准同意页面,列出请求的权限范围(scopes);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌...;应用使用令牌调用Microsoft Graph API。...可通过Microsoft Graph API动态评估权限风险:HIGH_RISK_SCOPES = {'Mail.ReadWrite', 'MailboxSettings.ReadWrite','User.ReadWrite.All
(二)会话令牌捕获与持久化利用与传统钓鱼仅窃取密码不同,VoidProxy的核心目标是获取有效的会话标识符。...对于Microsoft Entra ID,关键令牌包括:Session Cookie:如ESTSAUTHPERSISTENT,有效期可达90天;Refresh Token:用于在后台静默获取新的访问令牌...,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...刷新令牌生命周期过长:默认情况下,Microsoft Entra ID的刷新令牌有效期可达90天,且在用户未主动登出前持续有效。这为攻击者提供了长期潜伏窗口。...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id
本文聚焦于近期在Microsoft 365环境中频发的“设备代码钓鱼”(Device Code Phishing)攻击,深入剖析攻击者如何滥用OAuth 2.0设备授权流程,在不获取用户密码的前提下实现账户接管...更严重的是,即使组织启用了短信或电话MFA,攻击者仍可在用户完成授权后直接获取长期有效的刷新令牌(Refresh Token),实现持久化访问。...并输入代码:ABC123”;用户信以为真,在微软官方页面输入代码并完成MFA;攻击者轮询令牌端点,成功获取access_token与refresh_token;利用令牌调用Microsoft Graph...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json...未来需推动更细粒度的权限委托机制(如Microsoft Graph Delegated Permissions with Scopes Restriction)。另一个挑战是刷新令牌的长期有效性。
研究基于实际捕获的恶意应用注册信息、授权日志与API调用轨迹,系统还原了从社会工程诱骗、OAuth同意页面伪造到数据外传的完整攻击链。...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...3.3 令牌获取与持久化访问用户点击“同意”后,Microsoft将授权码发送至redirect_uri。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...4.3 刷新令牌生命周期过长在未启用条件访问(Conditional Access)的情况下,刷新令牌有效期可达90天。即使用户更改密码,旧令牌仍有效,导致凭证轮换失效。
其核心价值在于解耦资源所有者(用户)与客户端应用之间的凭证传递,转而依赖短期有效的访问令牌(Access Token)与长期有效的刷新令牌(Refresh Token)完成资源访问。...;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
API 终结点 URL OneDrive for Business 资源的访问令牌 在当前令牌到期时生成其他访问令牌的刷新令牌。...onedrive for business使用的是标准的Oauth2流程,所以大概流程就是先获取code,使用code交换access_token,然后就可以调用api了,这里先贴出获取code以及交换...refresh_token': token['refresh_token'], 'grant_type': 'refresh_token', 'resource': 'https://graph.microsoft.com...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
授权完成后,攻击者的服务器立即通过 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 执行任意操作:# 示例:读取受害者最近...部署条件访问(Conditional Access)策略限制高风险操作(如令牌颁发)仅允许从受信任设备、网络或地理位置发起。...芦笛总结道,“企业必须从‘被动防御’转向‘主动狩猎’。”五、行业反思:便利与安全的天平该如何摆?设备代码钓鱼的流行,暴露出一个深层矛盾:现代身份协议在追求用户体验的同时,是否牺牲了安全可见性?
一、引言近年来,随着企业向云办公平台(如Microsoft 365、Google Workspace)的大规模迁移,身份认证体系逐步从传统的用户名/密码模型转向基于令牌(token)的现代协议,其中OAuth...token)或刷新令牌(refresh token)泄露给攻击者控制的应用。...这种转变标志着钓鱼攻击从“凭证窃取”向“权限授予”的范式迁移。攻击目标不再是静态密码,而是动态的、具有时效性的授权令牌;攻击载体不再是可执行文件,而是合法云服务的API接口。...Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
研究揭示,此类攻击通过滥用OAuth 2.0设备授权流程,在用户主动授权的掩护下获取长期有效的刷新令牌,从而规避传统基于密码泄露或会话劫持的检测机制。.../devicelogin),输入user_code;授权服务器验证用户身份(通常包括MFA)后,将授权授予客户端;客户端通过轮询使用device_code换取访问令牌(access_token)和刷新令牌...3 攻击者的战术趋同:从APT到勒索软件3.1 国家级APT组织的采用根据Microsoft 2025年2月发布的报告,俄罗斯关联组织Storm-2372自2024年8月起,系统性使用设备代码钓鱼攻击欧美政府...authorization_pending', 'slow_down'):print("Authorization failed:", token_json.get('error_description'))break4.3 令牌滥用示例获取令牌后...,攻击者可调用Microsoft Graph API读取邮件:import requestswith open('stolen_token.json') as f:token = json.load(f
攻击者不再执着于窃取密码,而是转而“合法”获取访问令牌(Access Token),绕过多因素认证(MFA),实现无痕持久化入侵。...Tycoon和EvilProxy两大PhaaS套件被频繁使用:Tycoon:能模拟完整的2FA流程,将用户重定向至高仿微软登录页,捕获临时授权码(Authorization Code),再在后台兑换为长期有效的刷新令牌...,攻击者可长期潜伏,甚至设置邮件转发规则,悄无声息地窃取情报;即使用户更改密码,只要未撤销授权,攻击者仍能通过刷新令牌继续访问。...企业如何防御?从“授权治理”做起面对这种新型威胁,传统防钓鱼手段已显不足。Barracuda与芦笛共同建议企业采取以下措施:1....即使令牌被盗,也无法在陌生设备上使用。5. 定期吊销可疑刷新令牌通过Microsoft Graph API或安全中心,监控异常令牌活动(如非工作时间、非常用地点),并批量撤销高风险会话。
然而,后台实则由攻击者控制的反向代理实时转发请求至真实login.microsoftonline.com,完成认证后截获会话Cookie与刷新令牌。此类攻击的成功率远高于传统钓鱼。...更严重的是,攻击者在获取初始访问权限后,能快速横向移动,造成数据泄露、BEC欺诈乃至供应链污染。本文聚焦于此类“情境化钓鱼”的技术实现、绕过机制与防御对策。...获得有效会话后,攻击者通过Graph API注册恶意OAuth应用:POST https://graph.microsoft.com/v1.0/applicationsContent-Type: application...应转向情境化训练:演示如何检查浏览器地址栏中的根域名(如login.microsoftonline.com而非microsoft-office.com);教育用户:MFA推送不应在无主动登录时出现;推广...用户教育需从“识别恶意”转向“验证正常”,强调对根域名、证书与认证上下文的主动核查。值得注意的是,没有任何单一控制能完全杜绝此类攻击。
研究结论指出,仅依赖用户教育无法应对当前高度专业化、协议级的钓鱼威胁,必须从身份治理与协议使用规范层面重构企业安全边界。...Workspace账户的访问权限,从而合法获取高权限令牌。...攻击者服务器立即用该code向Google令牌端点交换访问令牌(access token)和刷新令牌(refresh token):# 攻击者后端:用授权码换取令牌import requestsdef...Microsoft设备码流程令牌获取示例:import timedef poll_for_device_token(device_code):while True:resp = requests.post...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:
当前主流金融系统普遍部署多因素认证(MFA),但攻击者已发展出多种绕过手段:OAuth令牌窃取:通过诱导用户授权恶意第三方应用(如“账单同步助手”),获取对Microsoft 365或Google Workspace...2.3 凭证与令牌的持久化利用与传统密码窃取不同,现代钓鱼更注重获取可长期使用的访问凭证。...例如,攻击者在捕获OAuth授权码后,通过合法Token Endpoint兑换访问令牌(Access Token)与刷新令牌。后者有效期可达90天以上,且可在后台持续刷新,形成持久化访问通道。...定期审计与自动清理:利用Microsoft Graph API或Google Admin SDK定期扫描已授权应用,自动吊销60天未使用的令牌,并标记异常权限组合(如同时请求邮箱与云存储访问)。...短时效操作令牌:对敏感操作(如API密钥重置)生成一次性、5分钟内有效的操作令牌,通过企业IM或硬件令牌分发,避免长期凭证暴露。
这些是 OAuth 2.0 中一些基础概念和授权方式的解释,有助于理解在不同场景中如何进行身份验证和访问控制。在实际应用中,选择合适的授权方式取决于安全性和应用需求。...刷新令牌(Refresh Token): 刷新令牌用于获取新的访问令牌,通常在访问令牌过期时使用。刷新令牌有更长的生命周期。 生成令牌: 访问令牌可以通过授权码授权、隐式授权等方式生成。...令牌的安全存储是至关重要的。 过期令牌的处理: 及时地使用刷新令牌获取新的访问令牌,确保及时更新令牌,减少令牌的有效期。...令牌刷新的实现: 使用刷新令牌机制,确保即使访问令牌过期,客户端也能够安全地获取新的令牌。 监控和日志: 实施监控和日志记录来检测潜在的攻击,并及时响应安全事件。...云服务集成: 企业可以使用OAuth 2.0来整合各种云服务,例如使用Google Drive API或Microsoft Graph API,以实现对云存储和办公应用的访问。
一旦拿到授权码,攻击者即可向微软的令牌端点(Token Endpoint)发起请求,换取访问令牌(Access Token)和刷新令牌(Refresh Token)。...这意味着,即便用户后续修改密码,攻击者仍可通过刷新令牌长期维持访问权限。...Graph API的令牌:{"token_type": "Bearer","scope": "Mail.Read Mail.Send User.Read","expires_in": 3600,"access_token...与此同时,攻击者控制的服务器在后台轮询微软API,一旦用户完成授权,即可获取令牌。...而从技术架构看,OAuth的“委托授权”模型天然存在盲区:客户端注册门槛低:任何开发者均可在Azure AD或Google Cloud Console注册应用,获取client_id;作用域(Scope
一,引言 上一节讲到如何在我们的项目中集成Azure AD 保护我们的API资源,以及在项目中集成Swagger,并且如何把Swagger作为一个客户端进行认证和授权去访问我们的WebApi资源的?...上一篇结尾我们成功的拿到了 access_token,并且通过 access_token 验证获取到调用Api资源的结果。...参数必传 这时候,就又有人问了,为什么这里的 scope 参数的值和上面不一样,确实,我也有这个疑问,后来找到微软官方给我的文档解释道: Microsoft Graph 示例中,该值为 https...://graph.microsoft.com/.default。...此值告知 Microsoft 标识平台终结点:在为应用配置的所有直接应用程序权限中,终结点应该为与要使用的资源关联的权限颁发令牌 使用共享机密访问令牌请求:https://docs.microsoft.com
一旦用户同意,攻击者便能获取一个“刷新令牌”(refresh token),凭借该令牌长期访问用户邮箱,即使用户已登出或更改密码,黑客仍可持续读取邮件、设置自动转发规则,甚至将恶意链接转发给更多同事,形成...更复杂的是,刷新令牌的生命周期可被策略延长,甚至在用户更改密码后依然有效(除非明确撤销授权)。这意味着,一次点击,可能带来长达数月的持续访问风险。...四、五大防御建议:从技术到意识的全面升级面对这一新型威胁,企业和个人该如何应对?芦笛结合行业实践,提出五点关键建议:1....五、未来趋势:从“防密码泄露”到“防授权滥用”此次事件标志着网络钓鱼攻击已进入“后MFA时代”。随着传统凭据攻击成本上升,攻击者正转向更隐蔽的授权滥用、API滥用等“合法路径”。...微软方面也已加强检测机制,通过Graph API活动日志监控异常邮件读取行为,并在用户授权高风险权限时增加警示提示。
三者之间形成高度协同的攻击闭环:钓鱼获取凭证 → 凭证用于云环境横向移动 → 快速部署勒索载荷或窃取敏感数据。...尤其在Microsoft 365、Salesforce、Google Workspace等主流SaaS平台中,一旦主账户凭证失窃,攻击者可在数分钟内完成权限提升、邮箱导出、API调用乃至数据外泄,而平均检测延迟仍超过...典型路径如下:钓鱼获取员工凭证(含MFA绕过,如MFA疲劳攻击);登录云控制台(如Azure AD、AWS IAM);枚举高权限账户或服务主体;申请或窃取OAuth令牌/会话Cookie;通过Graph...login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token"data = {'client_id': CLIENT_ID,'scope': 'https://graph.microsoft.com...Graph API /users/{id}/revokeSignInSessions;发送Teams通知至用户及IT支持;创建Jira工单要求用户完成安全培训;更新IAM策略,强制启用FIDO2。
值得注意的是,攻击成功后的横向移动成本极低——一旦获取有效会话令牌或MFA绕过权限,攻击者可直接访问企业通讯录、日历、OneDrive/Google Drive文件乃至财务审批流程,造成数据泄露、商业欺诈甚至供应链污染...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