此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...关键词:OAuth 同意滥用;假冒微软应用;Entra ID;多因素认证绕过;Graph API;条件访问1 引言多因素认证(MFA)作为现代身份安全的核心防线,已在绝大多数企业环境中广泛部署。...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...3.3 缺乏应用行为基线监控SIEM系统通常未将“新应用首次访问Graph API”与“大量邮件读取”关联分析。即使启用日志,也因数据量庞大而忽略异常。3.4 审计滞后企业极少定期审查已授权应用列表。...5 实验验证在测试租户中模拟攻击流程:注册假冒应用,请求Mail.Read + offline_access;使用普通用户账户完成同意;通过脚本每小时读取100封邮件,持续72小时。
范围 范围定义为第三方应用程序请求的访问类型。大多数API资源将定义应用程序可以请求的一组范围。这与Android手机应用程序在安装时请求的权限类似。...资源所有者可以选择同意或拒绝此授权请求。 3.同意后,授权服务器将使用授权码重定向应用程序。...攻击者可能会创建恶意应用程序,并使用获取的访问令牌通过API资源获取受害者的帐户数据。访问令牌不需要知道用户的密码,并能绕过双因素认证。...虽然任何允许OAuth应用程序的云环境都可以成为目标,但是PwnAuth目前使用一个模块来支持恶意Office 365应用程序,捕获OAuth令牌并使用捕获的令牌与Microsoft Graph API...依据API资源,企业可用的选项差异很大,但通常包括: · 限制第三方应用程序可以请求的API范围。
microsoft graph的api,一次调用10个api,5个onedrive的api还有4个outlook的api,剩下一个是组的api,调用一次后延时等待五分钟再重复调用。...后来又有一位大佬找到了不用服务器也可以运行的的办法。而后者的方法是建立在前者的基础上的,因此我将他们的教程融合了起来,并对其中的个别词语进行了微调。...微软方面的准备工作 第一步,注册应用,获取应用id、secret 首先去E5应用注册注册一个应用 先用e5管理员账号登录网站,然后在主页找到Azure Active Directory点进去 再在左侧目录找到点击应用注册...People.Read.All Sites.ReadWrite.All 、 Tasks.ReadWrite 、 User.ReadWrite.All 添加完自动跳回到权限首页,点击代表授予管理员同意...流程 -> build -> run api 就能看到每次的运行日志 (必需点进去build里面的run api.XXX看下,api有没有调用到位,操作有没有成功,有没有出错) image 再点两次星星
一旦用户被导向伪造的微软登录页并输入凭证,系统会跳转到一个“授权请求”页面——看起来和平时一模一样。只要用户点了“同意”,攻击者就获得了OAuth令牌,从此无需密码、无需验证码,即可长期访问该账户。...启用第三方应用管理员审批在Microsoft Entra ID(原Azure AD)中开启“用户无法自行同意应用”策略,所有新应用授权必须经IT管理员审核。此举可阻断90%以上的恶意应用注册。2....同时,定期审查已授权应用列表(路径:Microsoft 365门户 > 账户 > 应用权限),删除不再使用或可疑的“影子应用”。3....即使令牌被盗,也无法在陌生设备上使用。5. 定期吊销可疑刷新令牌通过Microsoft Graph API或安全中心,监控异常令牌活动(如非工作时间、非常用地点),并批量撤销高风险会话。...在这场攻防战中,技术防护固然重要,但最关键的防线,仍是那个点击“同意”按钮的人。下次当你看到授权请求时,不妨多问一句:我真的需要给这个应用这么多权限吗?编辑:芦笛(公共互联网反网络钓鱼工作组)
具体攻击步骤如下:攻击者在Azure AD中注册一个恶意应用(可为个人开发者账号注册,无需管理员同意);配置该应用请求高权限范围(如Mail.ReadWrite、User.Read.All、Directory.ReadWrite.All...Graph API,读取邮件、日历、联系人,甚至创建新应用或修改权限。...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json...4.2 实施严格的用户与管理员同意策略Azure AD允许管理员配置“用户可以同意应用访问其数据”的策略。...建议:禁止用户同意所有第三方应用;仅允许可信发布者(Verified Publisher)的应用被用户授权;对高权限应用(如涉及Directory.ReadWrite.All)强制要求管理员审批。
若用户已处于活动会话(即已登录Outlook Web),系统将直接显示授权同意页面,列出请求的权限范围(如“读取您的邮件”、“访问您的文件”)。...由于页面来自microsoftonline.com,且权限描述看似合理(尤其当攻击者使用“邮箱修复工具”等命名),用户极易点击“同意”。...攻击者只需一次授权即可获取最大权限。第三,撤销机制滞后。 用户发现异常后,往往首先更改密码,却不知需手动撤销应用授权。而企业级批量撤销功能通常权限过高,仅限全局管理员使用,响应速度慢。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
这里有一份官方指南,本指南演示了从 Facebook 获取信息,并使用 Graph API 将信息发布到 Facebook 平台上的相关知识。...先决条件 登录 Facebook 账户 在单独的窗口中打开 Graph API Explorer 概述 Graph API Explorer 是一款应用程序,能够让你探索 Facebook 的社交图谱。...中读取数据 首先是查询 当你打开 Graph API Explorer 时,它将自动加载最新版本的 Graph API 和默认的 GET 请求,如:GET / me?...with Graph API!...在这个例子中,我们使用的是 Graph API Explorer 。 使用具有 user_posts 权限的用户访问令牌并创建获取请求,从而找到要删除的帖子。
、redirect_uri、scope等参数;用户输入凭证并完成MFA;显示OAuth同意页面:列出所请求的权限(如“读取你的邮件”);用户点击“同意”:Microsoft颁发授权码;第三方应用用授权码换取访问令牌...(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
2.2 OAuth授权流程劫持当用户点击“使用Google账号登录”按钮时,前端JavaScript发起标准OAuth 2.0授权请求:const authUrl = 'https://accounts.google.com...-DefaultUserRolePermissions @{"permissionGrantPoliciesAssigned" = @()}更精细的做法是创建“应用审批列表”,仅允许特定ISV(如Zoom...“第三方应用限制”策略,要求所有新应用必须经管理员审核:Admin Console > Security > API controls > App access control > Restrict external...API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization: Bearer...OAuth的设计初衷是提升用户体验,但其“用户同意即授权”的模型在缺乏上下文验证的情况下,极易被社会工程利用。值得注意的是,攻击者对Device Code Flow的使用尤为值得警惕。
其实只是获取了预览参数,并没有调用 startPreview和拍照相关API。 ?...Telegram官方稍候给出的解释是app在没有使用摄像头的情况下只获取了可用的摄像头设备列表,没有请求设备的行为。 ?...做过安卓开发的知道要打开摄像头进行预览的话需要先请求设备列表,然后请求前置/后置摄像头,之后才能开始预览。...所以这个问题是NEX在 Telegram 请求摄像头参数时就弹出了相机,即使release了也没有缩回去。 有没有办法在用户不知道的情况下打开摄像头呢?...之前推过一篇文章分析了如何在用户不知情的情况下打开摄像头,但是这个技术也有个前提是用户得同意app请求摄像头权限。到目前为止还没有比较简单的技术手段可以绕过Android的权限系统打开摄像头。
但就在你点击‘同意’的那一刻,黑客就已经拿到了进入你邮箱的‘钥匙’。”OAuth 2.0是一种广泛使用的开放授权协议,允许第三方应用在不获取用户密码的情况下,通过用户授权访问特定资源。...例如,当你用“微信登录知乎”时,知乎会请求获取你的微信昵称和头像,这就是OAuth授权的典型场景。...一旦用户同意,攻击者便能获取一个“刷新令牌”(refresh token),凭借该令牌长期访问用户邮箱,即使用户已登出或更改密码,黑客仍可持续读取邮件、设置自动转发规则,甚至将恶意链接转发给更多同事,形成...在Azure AD中,用户可自行同意某些低风险权限的应用接入,而高权限则需管理员批准。但许多企业为提升效率,允许用户对多租户应用(即任何租户均可使用的第三方应用)进行自助授权。...微软方面也已加强检测机制,通过Graph API活动日志监控异常邮件读取行为,并在用户授权高风险权限时增加警示提示。
接着,Inti De Ceukelaire描述了他如何使用Facebook在2013年初推出的一款社交搜索工具Graph Search,结合其他一些并不复杂的手段,通过反向搜索,最终得到Facebook...从今天开始,使用该API的app将不再能够访问其他人的出席信息或发布在留言板上的活动信息。而且未来将只有Facebook批准的、同意严格要求的app才可以使用Events API。...Groups API:目前,应用程序需要 Groups 的管理员或成员的权限才能访问封闭组的内容,以及需要管理员的同意才能访问对私密组。 这些应用程序可帮助管理员轻松发布和回复组内的帖子。...未来,使用Groups API的所有第三方应用程序都需要Facebook和管理员的批准,以确保他们不损害群组。应用程序将不再能够访问组内成员列表。...在接下来的一周中,如果过去3个月内用户没有使用该应用,我们将会取消开发人员请求获取这些数据的能力。
登录账号,随后填充信息即可 确认完成,设置E5沙盒(可自定义配置),设置完成则可看到下述内容 安装并激活Microsoft365 方式1:可点击上述仪表盘中的转到订阅,随后使用刚刚生成的管理员账号登录...,进入页面则可下载需要的内容 方式2:使用Office Tool Plus工具安装部署 安装完成则可登录账号正常激活软件(需要通过上述应用构建的开发者账号(管理员)进行登录),登录之后需要结合提示...,点击选择复制值(即客户端密码) b.API调用工具 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.生成示例
芦笛指出,“Azure AD 默认允许任何注册应用发起设备代码请求,而企业管理员往往不知道这一功能的存在,更未限制其使用范围。”..."❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近10封邮件...Proofpoint 发现,部分攻击甚至持续数周未被发现——因为所有操作都通过合法 API 进行,IP 地址来自正常办公区域(攻击者使用代理或已控跳板机),行为模式与日常办公高度相似。...(如 HR 系统请求 Mail.Send);Refresh Token 被频繁用于获取新 Access Token。...芦笛建议,“例如,在设备代码授权页面强制显示应用名称、开发者信息、请求权限列表,并用红色高亮‘此操作将授予第三方长期访问权限’。”
一旦用户点击“同意”,攻击者就获得了对该账户的长期访问权限,甚至能绕过MFA。...公共互联网反网络钓鱼工作组技术专家芦笛指出,“而Microsoft 365因其广泛使用和强大API能力,成了攻击者的首选目标。”...它不依赖外部SaaS服务,而是直接调用Microsoft Graph API,实时扫描租户内的高风险行为:检测异常收件箱规则:如自动转发至外部域名、删除特定关键词邮件等;识别可疑OAuth应用授权:尤其是请求...技术内核:Graph API + 自动化剧本 = 主动防御要理解这款工具为何有效,得先了解Microsoft 365的安全架构。...微软通过Microsoft Graph API开放了对用户邮箱、日历、设备、身份等数据的编程访问接口。
除了开迭代针对性整改,从技术角度思考,有没有一劳永逸的办法,杜绝隐私调用不合规问题呢?1.3 设计目标针对提前收集用户隐私数据。...①用户在点击隐私政策协议“同意”按钮前,APP和SDK不能调用系统的敏感权限接口,特别是能获取IMEI、IMSI、MAC、IP、Android、已安装应用列表、硬件序列表、手机号码、位置等等信息的系统接口...4.3 违规使用个人信息场景说明:1.APP未见向用户告知且未经用户同意,存在将IMEI/设备MAC地址/软件安装列表等个人信息发送给友盟/极光/个推等第三方SDK的行为。...5.4 敏感信息控频敏感设备信息获取是指只要调用系统API就会认为获取敏感信息,并不关心有没有获取到敏感信息以及调用系统API的目的。...第一次打开时,未同意隐私协议前,不能有任何网络请求发出,可通过手机设置代理查看。第一次打开时,未同意隐私协议前,不能有任何隐私 API 调用,通过Xposed的手机是否有隐私api调用。
还有一个应用程序权限(Graph:RoleManagement.ReadWrite.Directory)也提供管理权限。Entra ID租户中最多有500个角色可分配组(创建最大值)。...AppRoleAssignment.ReadWrite.All允许应用程序代表登录用户管理对任何API的应用程序权限授予和任何应用程序的应用程序分配。...当合作伙伴请求访问客户环境时提供。当客户接受此请求时:合作伙伴租户中的"管理代理"角色被提供对客户租户的有效"全局管理员"权限。...Entra Connect服务器(或SQL数据库)的管理员权限OU管理员权限本地管理员权限GPO修改权限获取其他系统上的本地管理员密码(当不唯一时)获取管理系统的控制权Microsoft SCCM(或类似..."将用户同意设置设置为"让Microsoft管理您的同意设置(推荐)"审查Tier 0角色成员资格,并确保成员是管理员帐户,是PIM符合条件的,并且不是从本地同步的如果您使用角色可分配组,确保所有者未设置在
(Client);Client重定向用户至授权服务器(如Microsoft Entra ID)的授权端点,携带client_id、redirect_uri、scope等参数;用户在授权服务器页面登录并同意权限请求...;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...由于应用名称与图标可自定义,且权限描述使用通用术语(如“读取您的邮件以提供服务”),用户极易误判为合法请求。...3.2 令牌持久化与横向移动获取授权码后,PhaaS平台立即向令牌端点发起请求:POST /common/oauth2/v2.0/token HTTP/1.1Host: login.microsoftonline.comContent-Type...可使用Microsoft Graph PowerShell批量设置:# 禁止用户同意应用Set-MgPolicyAuthorizationPolicy -PermissionGrantPolicyId
例如:我在使用“第三方 App 登录 GitHub”时,我本人就是资源所有者。 职责 决定是否授权某个客户端访问自己的数据。 在交互式流程中(如授权码模式),需要登录并点击“同意”。...若验证通过,返回受保护资源;否则返回 401 Unauthorized 或 403 Forbidden 典型示例 场景 资源服务器 GitHub API 提供用户仓库列表 api.github.com...三、客户端(Client) ✅ 定义 代表资源所有者发起请求、获取 Access Token 并访问资源服务器的应用程序。 它是整个流程的发起者,但不能直接访问用户凭证(如密码)。...职责 向授权服务器申请授权(引导用户登录/同意) 获取 Access Token 携带 Token 调用资源服务器 API (可选)使用 Refresh Token 刷新过期的 Access Token...通常是用户 需明确授权(知情同意) 资源服务器 “谁能访问我的 API?”
如果某个用户在 Facebook 上有一个活动、经过验证的会话,则恶意扩展插件为开发人员访问 Meta 的 Graph API。...API 访问使扩展能够获取与用户 Facebook 帐户相关的所有数据,甚至可以代表用户采取各种行动。...对此 Guardio 表示,Facebook 生态系统下的应用程序通常是一个 SaaS 服务,它被批准使用其特殊的 API。...一个有经济动机的网络罪犯活动 在 Facebook 通过其 Meta Graph API 授予访问权之前,首先必须确认该请求是来自一个经过认证的可信用户,为了规避这一预防措施,威胁者在恶意的浏览器扩展中加入了代码...,确保从受害者的浏览器向Facebook 网站发出的所有请求都被修改了标题,以便它们看起来也是可信的,这使得该扩展能够使用受感染的浏览器自由地浏览任何 Facebook 页面(包括进行 API 调用和操作