摘要近年来,攻击者利用Microsoft Entra ID(原Azure AD)的多租户应用注册机制,创建高度仿真的假冒OAuth应用,诱导用户在合法微软授权页面授予高权限(如Mail.Read、User.ReadWrite.All...此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...用户点击链接后,被重定向至真实的Microsoft Entra ID OAuth同意页面,在看似无害的提示下授予Mail.Read、Calendars.Read、User.ReadWrite等权限。...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...可通过Microsoft Graph API动态评估权限风险:HIGH_RISK_SCOPES = {'Mail.ReadWrite', 'MailboxSettings.ReadWrite','User.ReadWrite.All
、redirect_uri、scope等参数;用户输入凭证并完成MFA;显示OAuth同意页面:列出所请求的权限(如“读取你的邮件”);用户点击“同意”:Microsoft颁发授权码;第三方应用用授权码换取访问令牌...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...注册过程无需特殊权限,任何拥有个人Microsoft账户的用户均可完成。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...4 企业安全配置中的薄弱环节尽管微软提供多项安全控制,但实际部署中普遍存在以下问题:4.1 第三方应用授权策略宽松默认情况下,Microsoft Entra ID允许所有用户注册和授权第三方应用。
通过User的用户名和密码向认证中心申请访问令牌。 按照惯例,在postman中直接进行调用order的接口。 ResponseCode:401,提示没有权限。...3)查看WebApi的作用域 选择 管理=》公开 API 复制 WebApi的作用域 4)查看WebApi的终结点 复制当前应用程序的 OAuth 2.0令牌终结点(v2)链接,注意圈起来的...参数必传 username:用户的电子邮件地址 password:用户的密码 2)访问 api/order 砰,成功!...://graph.microsoft.com/.default。...此值告知 Microsoft 标识平台终结点:在为应用配置的所有直接应用程序权限中,终结点应该为与要使用的资源关联的权限颁发令牌 使用共享机密访问令牌请求:https://docs.microsoft.com
范围 范围定义为第三方应用程序请求的访问类型。大多数API资源将定义应用程序可以请求的一组范围。这与Android手机应用程序在安装时请求的权限类似。...在本例中,应用程序可能会请求访问OneDrive文件和用户配置文件。 OAuth 2.0提供了几种不同的授权“权限类型”,以适应用户及与之交互的不同应用程序。...访问令牌可以在设定的时间段内使用,从API资源访问用户的数据,而无需资源所有者采取任何进一步的行动。...攻击者可能会创建恶意应用程序,并使用获取的访问令牌通过API资源获取受害者的帐户数据。访问令牌不需要知道用户的密码,并能绕过双因素认证。...虽然任何允许OAuth应用程序的云环境都可以成为目标,但是PwnAuth目前使用一个模块来支持恶意Office 365应用程序,捕获OAuth令牌并使用捕获的令牌与Microsoft Graph API
在这项研究中,我们发现了数以千计的 API 令牌,这些令牌暴露给恶意行为者,使数百万最终用户可能受到攻击。...在此 API 调用中,我们收到了以下数据:令牌有效性拥有令牌的 HuggingFace 用户用户的电子邮件(用于通知其令牌的暴露)此用户所属的组织及其拥有的权限令牌的权限/特权其他具体信息 ...这意味着一个可怕的威胁,因为注入损坏的模型可能会影响数百万依赖这些基础模型进行应用程序的用户。 ...许多组织(Meta、Google、Microsoft、VMware 等)和用户采取了非常快速和负责任的行动,他们在报告的同一天撤销了令牌并删除了公共访问令牌代码。...我们还建议 HuggingFace 不断扫描公开的 API 令牌并撤销它们,或通知用户和组织有关暴露的令牌。
一旦授权完成,攻击者即可通过device_code兑换令牌,获得与用户同等的API访问权限。...Graph API,读取邮件、日历、联系人,甚至创建新应用或修改权限。...假设攻击者已注册一个Azure AD应用,client_id为“a1b2c3d4-5678-90ef-ghij-klmnopqrstuv”,并申请了以下API权限:Microsoft Graph: Mail.ReadWrite...因此,更可行的方案是“最小化启用”:仅对特定安全组(如IT管理员、开发团队)开放设备授权权限,其余用户默认禁用。此外,OAuth权限模型本身存在粒度不足问题。...未来需推动更细粒度的权限委托机制(如Microsoft Graph Delegated Permissions with Scopes Restriction)。另一个挑战是刷新令牌的长期有效性。
2024年以来,Barracuda等安全厂商陆续披露多起高级OAuth钓鱼事件,攻击者不再试图窃取密码,而是诱导用户向恶意注册的应用授予权限,从而直接获取合法令牌。...向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...EvilProxy则更进一步,利用OAuth的prompt=none参数实现静默授权。该参数指示授权服务器在用户已登录且先前已授予权限的情况下,不显示任何UI直接返回令牌。...获得令牌后,攻击者通过Microsoft Graph API执行侦察:import requeststoken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx"headers...以下Python脚本利用Microsoft Graph API实现自动化审计:import requestsfrom datetime import datetime, timedeltadef audit_shadow_apps
一、引言近年来,随着企业向云办公平台(如Microsoft 365、Google Workspace)的大规模迁移,身份认证体系逐步从传统的用户名/密码模型转向基于令牌(token)的现代协议,其中OAuth...Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...四、企业授权管理现状与漏洞尽管主流云平台提供应用授权管理界面(如Microsoft Entra ID中的“应用权限”面板),但多数企业在实践中存在以下问题:第一,授权可见性不足。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
问题在于:步骤4中的授权页面由微软官方提供,用户无法分辨背后的应用是否可信。“普通用户看到的是微软的 UI,但授权的对象却是攻击者注册的 OAuth 应用。”...更危险的是,一旦获得 Refresh Token,攻击者可长期维持访问,即使用户更改密码也无效——因为 OAuth 令牌独立于密码体系。...Graph API 窃取数据breakelif token_resp.json().get("error") == "authorization_pending":time.sleep(5)else:...print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近...原因很简单:MFA 验证的是“用户身份”,而非“授权对象”。当用户在微软官网完成 MFA 验证后,系统认为“这是本人操作”,于是放心地将权限授予请求的应用。
尤其在Microsoft 365、Salesforce、Google Workspace等主流SaaS平台中,一旦主账户凭证失窃,攻击者可在数分钟内完成权限提升、邮箱导出、API调用乃至数据外泄,而平均检测延迟仍超过...OAuth 2.0授权虽简化了单点登录(SSO),但也导致权限过度授予问题。例如,一个仅需读取日历的协作工具,常被授予“完全访问邮箱”权限,一旦该应用令牌泄露,攻击者可直接读取高管邮件。...典型路径如下:钓鱼获取员工凭证(含MFA绕过,如MFA疲劳攻击);登录云控制台(如Azure AD、AWS IAM);枚举高权限账户或服务主体;申请或窃取OAuth令牌/会话Cookie;通过Graph...伪品牌验证流程嵌套:伪造Microsoft登录页后,跳转至“安全验证”页面,要求用户输入短信验证码,实则完成MFA劫持。此类攻击利用用户对协作工具的信任及多任务处理时的认知负荷,显著提升欺骗成功率。...Graph API /users/{id}/revokeSignInSessions;发送Teams通知至用户及IT支持;创建Jira工单要求用户完成安全培训;更新IAM策略,强制启用FIDO2。
,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...VoidProxy的成功暴露了以下根本性问题:MFA验证与会话绑定脱节:MFA仅在认证时刻验证用户身份,但生成的会话令牌本身不绑定设备、IP或浏览器上下文。一旦令牌泄露,任何持有者均可冒充合法用户。...刷新令牌生命周期过长:默认情况下,Microsoft Entra ID的刷新令牌有效期可达90天,且在用户未主动登出前持续有效。这为攻击者提供了长期潜伏窗口。...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id...本文通过剖析其技术实现,指出单纯依赖第二因子无法解决会话令牌泄露问题,并提出以FIDO2绑定、短周期令牌、DPoP与风险驱动响应为核心的防御框架。
权限配置 注册的应用程序API权限类型有两种,其主要区别如下表所示: 权限类型 委托的权限(用户登录) 应用程序权限(非用户登录) 官方释义 应用程序必须以登录用户身份访问API 应用程序在用户未登录的情况下作为后台服务或守护程序运行...版程序自动配置添加API权限 必须手动配置API权限 可以选择相应的API进行配置 此处以Microsoft Graph为参考,选择“委托的权限”,根据列出的API权限需求表进行选择...“委托的权限”配置(用户登录)(选择Calendars->Calendars.Read) “应用程序权限”配置(非用户登录)(选择Calendars->Calendars.Read) 客户端密码创建...,可用于生成和测试对 Microsoft Graph API 的请求 API需要的权限设定可在预览卡中查阅,授权后则可再次尝试调用响应 Postman 是一个可用于向 Microsoft...Graph API 发出请求的工具:Postman&Microsoft Graph API使用 c.Microsoft Graph 快速入门示例 Microsoft Graph入门
研究揭示,此类攻击通过滥用OAuth 2.0设备授权流程,在用户主动授权的掩护下获取长期有效的刷新令牌,从而规避传统基于密码泄露或会话劫持的检测机制。...留空(设备授权无需回调)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...设置自动化规则,例如:当同一用户在24小时内授权超过2个未列入白名单的应用,且包含Mail.ReadWrite权限时,自动吊销令牌并告警。...此外,OAuth权限模型本身存在粒度不足问题。例如,Mail.ReadWrite权限无法限定为“仅收件箱”,这使得即使合法应用也可能被滥用于数据窃取。未来需推动更细粒度的权限委托机制。
先决条件 登录 Facebook 账户 在单独的窗口中打开 Graph API Explorer 概述 Graph API Explorer 是一款应用程序,能够让你探索 Facebook 的社交图谱。...中读取数据 首先是查询 当你打开 Graph API Explorer 时,它将自动加载最新版本的 Graph API 和默认的 GET 请求,如:GET / me?...添加新字段:如果你是 Graph API 的新手,那么可能对一些用户节点字段不太熟悉。 你可以在节点面板中单击 Search for a field 的+按钮来查看并选择新的字段。...或者,由于你的访问令牌中不包含访问此数据所需的权限而导致的访问权限问题,也有可能会发生这种情况。 幸运的是,资源管理器能够帮助你。...首先,选择一个应用程序并从 Application 的下拉菜单中执行删除操作。 在这个例子中,我们使用的是 Graph API Explorer 。
想象一下,有一种神奇的协议,可以让你的应用在安全的前提下获取用户权限,而用户也无需直接分享密码。是的,这就是OAuth 2.0,一种开放授权的魔法。...OAuth 2.0基础概念 OAuth 2.0 是一种用于授权的开放标准,用于代表用户授予第三方应用程序对其在不同服务上存储的信息的访问权限。...这样的场景下,社交媒体平台充当授权服务器,提供访问令牌。 第三方应用集成: 允许第三方应用程序访问用户的资源,例如日历、联系人等。用户可以授予访问权限,而无需提供他们的用户名和密码。...云服务集成: 企业可以使用OAuth 2.0来整合各种云服务,例如使用Google Drive API或Microsoft Graph API,以实现对云存储和办公应用的访问。...成功案例: Google API: Google使用OAuth 2.0来允许第三方应用程序访问用户的Google服务,例如Gmail、Google Drive等。
访客默认操作:将访客用户访问限制从"访客用户具有与成员相同的访问权限(最包容)"更改为"访客用户访问仅限于其自身目录对象的属性和成员资格(最严格)"用户应用程序同意和权限默认值最初在Azure AD/Entra...用户应用程序同意和权限建议:将用户对应用程序的同意设置为"允许用户对来自已验证发布者的应用程序进行同意,针对选定权限",或者更好的选项是"让Microsoft管理您的同意设置(推荐)"保护Entra ID...还有一个应用程序权限(Graph:RoleManagement.ReadWrite.Directory)也提供管理权限。Entra ID租户中最多有500个角色可分配组(创建最大值)。...保护高特权应用程序Entra ID权限的权限结构:Tier 0应用程序这些应用程序具有有效的完全管理权限或获得Entra ID完全管理权限的能力。限制具有这些权限的应用程序。...AppRoleAssignment.ReadWrite.All允许应用程序代表登录用户管理对任何API的应用程序权限授予和任何应用程序的应用程序分配。
如果调用的进程不受保护,则无论用户的权限如何,此调用都会立即失败并出现错误: 但是,如果调用进程是具有更高级别的 PPL (DeniedWinTcb例如),相同的调用会成功(只要用户具有适当的权限...这是因为非PPL进程 taskkill.exe无法使用诸如 OpenProcess之类的 API 获取具有对PPLPROCESS_TERMINATE进程的访问权限的句柄。...1.将权限升级到trustedinstaller 我们使用受信任的安装程序组令牌自动窃取系统令牌,以提升到受信任的安装程序权限,在这里,我们使用一个开源工具来利用它: https://...通常,当用户运行一个进程时,该进程使用他们的令牌运行,并且可以执行用户可以执行的任何操作。 令牌中一些最重要的数据包括: User identity Group membership (e.g....使用这种技术,攻击者可以强行删除MsMpEng.exe令牌中的所有权限,并将其从系统降低到不受信任的完整性。
其成功不仅依赖加密算法的强度,更取决于能否高效获取目标系统的初始访问权限。...尤为值得关注的是,攻击者不再仅满足于窃取静态凭证,而是通过AitM代理实时拦截用户与合法服务之间的完整认证流程,包括MFA令牌,从而获取有效的会话Cookie。...攻击流程如下:用户点击钓鱼邮件中的链接,访问攻击者控制的仿冒登录页(如secure-microsoft-login[.]xyz);该页面实际是一个反向代理,将用户所有请求(包括输入的用户名、密码、MFA...Party)与设备关键问题在于,前三种MFA均基于知识或 possession 的一次性验证,一旦会话建立,后续操作不再验证。...以下Python脚本模拟检测异常会话(基于Microsoft Graph API):import requestsfrom datetime import datetime, timedeltaGRAPH_API_TOKEN
当下的数字化环境中,应用程序编程接口(API)在实现不同系统和应用程序之间的通信和数据交换中扮演着关键角色。然而,API 的开放性也带来了潜在的安全挑战。...认证与授权身份验证是验证尝试访问 API 的用户或应用程序身份的过程,而授权是根据经过身份验证的用户的权限,决定是否授予或拒绝对特定资源的访问权限。...."); }}基于令牌的身份验证基于令牌的身份验证是一种被广泛使用的方法,通过向已认证的用户颁发唯一令牌,随后 API 请求凭此令牌进行验证。...密钥API 密钥是授予用户或应用程序以访问特定 API 的唯一标识符。...Configure方法中."); }}速率限制速率限制,是对用户或应用程序在特定时间范围内可以向 API 发出请求数量的限制。
Workspace账户的访问权限,从而合法获取高权限令牌。...user_code=ABCD-EFGH&device_code=xyz...一旦用户分享该URL,攻击者即可提取device_code,并在后台轮询Microsoft令牌端点,等待用户在其他设备上完成授权...在Microsoft Entra ID中,可配置“用户同意设置”,禁止用户向未批准的应用授予权限:# PowerShell: 禁止用户同意所有应用Set-MgPolicyAuthorizationPolicy...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:...该流程因无需用户在钓鱼页面输入任何信息,传统基于表单提交的检测完全失效。未来,云服务商应考虑在设备码授权时增加二次确认(如短信验证码),或限制非交互式流程的权限范围。此外,会议主办方亦负有安全责任。