此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...2 攻击技术原理与实施路径2.1 OAuth 2.0 用户同意机制回顾在Microsoft Entra ID中,第三方应用若需访问用户资源(如邮件、日历),必须通过OAuth 2.0授权码流程获取权限。...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...5 实验验证在测试租户中模拟攻击流程:注册假冒应用,请求Mail.Read + offline_access;使用普通用户账户完成同意;通过脚本每小时读取100封邮件,持续72小时。...结果:对照组:攻击成功,72小时内读取300封邮件,未触发任何告警;实验组:用户尝试同意时被条件访问策略阻止(62%);若管理员误批准,Cloud Apps在2小时内标记高风险(28%);剩余10%在24
研究重点在于揭示OAuth授权机制在实际部署中的安全盲区,并提出兼顾可用性与安全性的缓解措施。...2 OAuth 2.0在Microsoft Entra ID中的授权流程为理解攻击原理,需首先厘清合法OAuth授权流程。...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...4.3 刷新令牌生命周期过长在未启用条件访问(Conditional Access)的情况下,刷新令牌有效期可达90天。即使用户更改密码,旧令牌仍有效,导致凭证轮换失效。
攻击者随即用该授权码向/token端点交换访问令牌与刷新令牌:POST https://login.microsoftonline.com/common/oauth2/v2.0/tokenContent-Type...Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...四、企业授权管理现状与漏洞尽管主流云平台提供应用授权管理界面(如Microsoft Entra ID中的“应用权限”面板),但多数企业在实践中存在以下问题:第一,授权可见性不足。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权
客户端通过轮询使用device_code换取访问令牌(access_token)和刷新令牌(refresh_token)。...Graph API,读取邮件、日历、联系人,甚至创建新应用或修改权限。...假设攻击者已注册一个Azure AD应用,client_id为“a1b2c3d4-5678-90ef-ghij-klmnopqrstuv”,并申请了以下API权限:Microsoft Graph: Mail.ReadWrite...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json...未来需推动更细粒度的权限委托机制(如Microsoft Graph Delegated Permissions with Scopes Restriction)。另一个挑战是刷新令牌的长期有效性。
摘要近年来,设备代码钓鱼(Device Code Phishing)作为一种绕过多因素认证(MFA)的高级社会工程手段,在Microsoft 365环境中迅速扩散。...客户端通过轮询使用device_code换取访问令牌(access_token)和刷新令牌(refresh_token)。...留空(设备授权无需回调)API权限:勾选Microsoft Graph的Delegated权限,如:Mail.ReadWriteCalendars.ReadWriteUser.Read.AllFiles.ReadWrite.All4.2...建议:为高管、IT、财务人员强制启用FIDO2;在条件访问策略中要求高风险操作必须使用无密码认证。...(通过Intune标记)。
页面提示:“在另一台设备上使用此代码登录”,并要求输入代码。一切看起来合规、安全、无可挑剔。...Graph API 窃取数据breakelif token_resp.json().get("error") == "authorization_pending":time.sleep(5)else:...print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近...Proofpoint 发现,部分攻击甚至持续数周未被发现——因为所有操作都通过合法 API 进行,IP 地址来自正常办公区域(攻击者使用代理或已控跳板机),行为模式与日常办公高度相似。...禁用不必要的设备代码授权在 Azure AD 中,默认所有租户都启用了设备代码流。管理员应评估是否真的需要此功能(如无 IoT 设备集成需求),若否,则全局禁用。
关键词:OAuth钓鱼;中间人代理;UTA0355;定向攻击;Microsoft Entra ID;Google Workspace;条件访问策略1 引言随着单点登录(SSO)和第三方授权在企业数字化生态中的普及...用户被邀请“完善注册信息”或“提交演讲议题”,并提示“使用Google/Microsoft账号一键登录以简化流程”。...在Microsoft Entra ID中,可配置“用户同意设置”,禁止用户向未批准的应用授予权限:# PowerShell: 禁止用户同意所有应用Set-MgPolicyAuthorizationPolicy...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:...;在授权前检查OAuth请求中的client_id是否属于可信实体(可通过公开数据库查询)。
尤其在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
终结点 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
,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...例如,若受害者通常使用Windows 11 + Chrome 124访问Office 365,攻击者将配置代理以相同特征发起API请求,使登录活动在审计日志中呈现为“正常行为”。...刷新令牌生命周期过长:默认情况下,Microsoft Entra ID的刷新令牌有效期可达90天,且在用户未主动登出前持续有效。这为攻击者提供了长期潜伏窗口。...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id...DPoP要求客户端在每次API请求中附带一个由私钥签名的证明令牌,该私钥与TLS连接绑定。即使攻击者窃取Access Token,也无法在其他连接中使用。
Sandwich 和Jelly Bean 的仿真器 部署应用到Android 设备(调试 / 应用商店) 针对Android 的远程调试 专业版包括对本地数据库的扩展 FireDAC支持,包括Microsoft...使用单一的IDE 和单一的框架,针对Android、iOS、Windows和OS X 进行开发,并且创建真正原生的应用,利用底层设备中的全方位功能和性能。...了解更多 > 通过FireDAC 在更多设备上内置访问更多的数据库 FireDAC 数据库组件和驱动程序现在已完全融入到RAD Studio、Delphi和C++Builder中。...了解更多 > 在RAD Studio、Delphi和C++Builder的专业版中,通过选择数据库进行FireDAC 本地/嵌入式连接 在企业版、旗舰版或架构师版中、或通过购买针对专业版的客户端/服务器附件组件包...项目管理 重要的DataSnap 升级 泛型和匿名方法 在Embarcadero doc wiki上查看Delphi XE5 中更多新增内容。
据Bleeping Computer网站消息,俄罗斯黑客已经开始使用一种新的代码执行技术,该技术依赖于 Microsoft PowerPoint 演示文稿(PPT)中的鼠标移动来触发恶意 PowerShell...【触发执行恶意代码】 接下来,lmapi2.dll在之前由 DLL 创建的新线程上获取并解密第二个 JPEG 文件并将其加载到内存中。...Graphite 滥用 Microsoft Graph API 和 OneDrive ,与命令和控制 (C2) 服务器通信。...攻击者通过使用固定客户端 ID 访问服务以获取有效的 OAuth2 令牌。...【Graphite 使用的固定客户端 ID】 研究人员解释说,使用新的 OAuth2 令牌,Graphite 通过枚举 check OneDrive 子目录中的子文件来查询 Microsoft GraphAPI
该数据库使用LiteDB构建,可以使用其开源LiteDB Studio Windows工具在磁盘上手动浏览。...-1.amazonaws.com/fireprox/common/oauth2/token","https://XXXXAAAA.execute-api.us-west-1.amazonaws.com/...fireprox/common/oauth2/token"], "msolFireProxEndpoints": ["https://XXXXAAAA.execute-api.us-west-1...Select an email format #> 1(向右滑动,查看更多) 如果你想要提供自己的电子邮件列表,可以使用--username参数,输出结果会自动存储在TeamFiltration.db文件中...12:35:54 EST Refreshed a token for => https://graph.microsoft.com [EXFIL] 24.05.2021 12:35:54 EST Exfiltrating
API 文档神器 Swagger 介绍及在 PHP 项目中使用 - API 文档撰写方案 推荐 Laravel API 项目必须使用的 8 个扩展包 使用 Jwt-Auth 实现 API 用户认证以及无痛刷新访问令牌...) 多字段登录通用解决方案 Laravel 做 API 服务端,VueJS+iView 做 SPA,给新手一个 Demo 在 Laravel 中使用 GraphQL 一【获取数据】 Laravel 开发...RESTful API 的一些心得 对 REST 的理解 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 在 Laravel 中动态隐藏 API 字段 Nginx 下部署...,由李锟翻译,有经验的同学可以挑战一下 Microsoft REST API Guidelines 微软官方的 REST API 设计指南,值得参考 理解 HTTP 幂等性 讲得很清楚,推荐 浅析远程过程调用...decision-graph.svg 一张大图展示整个 REST API 的验证过程,及各种状态码出现的时机 现成 API 例子 Github API v3 被很多人参考和引用,比如对分页的处理方法、
使用 OWIN 搭建 OAuth2 服务器 关于 OAuth 维基百科中对 OAuth 的描述如下: OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(...每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。...OWIN 中间件搭建自己的 OAuth 服务, 实现 OAuth2 框架中的认证服务器和资源服务器 。...使用 OWIN 搭建 OAuth2 认证服务器 认证服务器指 authorization server , 负责在资源所有者 (最终用户) 通过认证之后, 向客户端应用颁发凭据 (code) 和对客户端授权.../OnReceiveAsync 使用一次; RefreshTokenProvider : 刷新令牌, 如果这个属性没有设置, 则不能从 /Token 刷新令牌。
第一个问题: 今天在64的Win7上安装Delphi7,在启动时候出现如下提示: Can't load package:dclite70.bpl 告诉大家一个解决办法,就是给Delphi32.exe...1、C:\Program Files (x86)\Borland\Delphi7\Bin\delphi32.exe。 上面是我机器中Delphi7主程序所在的位置。...5、在"为除下列选定程序之外的所有程序和服务启动(DEP)"中添加"Delphi32.exe"。...引用数据执行保护 (DEP) 是 Microsoft Windows XP Service Pack 2 (SP2) /Windows2003支持的一种处理器功能,它禁止在标记为数据存储的内存区域中执行代码...当尝试运行标记的数据页中的代码时,就会立即发生异常并禁止执行代码。这可以防止攻击者使用代码致使数据缓冲区溢出,然后执行该代码。
获取 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...攻击者使用其在失陷主机与攻击基础设施间创建冗余隧道。
# 攻击者侧:使用Microsoft Graph API发起设备代码请求(简化示例)import requestsclient_id = "attacker-controlled-app-id" # 攻击者注册的恶意应用...breaktime.sleep(5)拿到Token后,攻击者即可调用Microsoft Graph API,读取邮件、日历、OneDrive文件、Teams消息,甚至发送新邮件冒充受害者——全程无需知道密码...(1)立即行动:限制设备代码流最直接有效的措施,是在Azure AD中通过条件访问策略(Conditional Access Policy)禁用设备代码授权。...(2)审计第三方应用授权所有用户都应定期检查其Microsoft 365账户的“隐私仪表板”中的应用权限:https://account.microsoft.com/privacy/管理员则可通过PowerShell...例如,若某账户在短时间内从不同国家调用Graph API,即使Token合法,也应触发二次验证。(4)员工意识培训需升级传统“别点可疑链接”已不够。
但是因为工作需要又不得不使用 Azure,所以把使用过程中遇到的一些问题都记录下来,以期望能帮助有需要的人。...在弹出的界面中,输入注册需要的相关信息。...API 赋权 你需要确定 Microsoft Graph 有用户读取的权限。 如果没有这个权限的话,你需要单击上面的添加权限来将权限添加进来。...选择 Microsoft Graph 的选项,然后将用户的权限添加进来。 暴露 API 你需要将你的 API 进行暴露,允许进行访问。...另一种方法,我们在其他方式中再进行测试。 在 Postman 中添加一个 API 访问。
在实际应用中,您可能需要将访问令牌存储在会话中,并根据需要调用受保护的API。 5. 示例代码演示 在本节中,我们将演示如何使用Go语言实现基本的OAuth2认证流程,并获取访问令牌后调用API。...获取访问令牌并调用API 要获取访问令牌并调用API,您可以使用OAuth2客户端库中的Exchange方法交换授权码,然后使用返回的访问令牌进行API调用。...处理过期令牌 OAuth2的访问令牌通常具有一定的有效期,过期后需要重新获取新的访问令牌。为了处理过期令牌,您可以通过在应用程序中检查访问令牌的有效期,并在需要时使用刷新令牌获取新的访问令牌。...在Go中,您可以使用OAuth2客户端库中的TokenSource接口的Token方法来实现刷新令牌的功能。 如何处理权限不足的情况?...在Go中实现OAuth2认证:我们演示了如何使用Go语言实现基本的OAuth2认证流程,并获取访问令牌后调用API的示例代码。