此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...3.2 权限范围缺乏上下文解释OAuth同意页面仅列出权限名称(如“Mail.Read”),未说明其实际能力(“可读取所有邮件,包括已删除项”)。用户难以判断风险。...3.3 缺乏应用行为基线监控SIEM系统通常未将“新应用首次访问Graph API”与“大量邮件读取”关联分析。即使启用日志,也因数据量庞大而忽略异常。3.4 审计滞后企业极少定期审查已授权应用列表。...可编写脚本每日比对已知可信应用列表,自动调用撤销接口:def revoke_consent(grant_id, admin_token):url = f"https://graph.microsoft.com
所需配置 账户名称+账户密码+应用程序(客户端)ID 账户名称+客户端机密+应用程序(客户端)ID 功能影响 程序中所有API均可调用 部分API权限受限无法调用(官方限制) API权限配置 可由PC...版程序自动配置添加API权限 必须手动配置API权限 可以选择相应的API进行配置 此处以Microsoft Graph为参考,选择“委托的权限”,根据列出的API权限需求表进行选择...,点击选择复制值(即客户端密码) 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.生成示例
(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...OAuth同意页面虽列出权限,但普通用户难以理解“Mail.Read”意味着“可读取所有邮件”。...攻击者使用refresh_token定期换取新access_token,实现长期潜伏。所有API调用均来自微软合法IP,难以被网络层检测。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...编辑:芦笛(公共互联网反网络钓鱼工作组)
公共互联网反网络钓鱼工作组技术专家芦笛指出,“而Microsoft 365因其广泛使用和强大API能力,成了攻击者的首选目标。”...它不依赖外部SaaS服务,而是直接调用Microsoft Graph API,实时扫描租户内的高风险行为:检测异常收件箱规则:如自动转发至外部域名、删除特定关键词邮件等;识别可疑OAuth应用授权:尤其是请求...技术内核:Graph API + 自动化剧本 = 主动防御要理解这款工具为何有效,得先了解Microsoft 365的安全架构。...微软通过Microsoft Graph API开放了对用户邮箱、日历、设备、身份等数据的编程访问接口。...例如:调用/users/{id}/mailFolders/inbox/messageRules检查收件箱规则;调用/oauth2PermissionGrants列出所有OAuth授权记录;调用/auditLogs
用户被邀请“完善注册信息”或“提交演讲议题”,并提示“使用Google/Microsoft账号一键登录以简化流程”。...在Microsoft Entra ID中,可配置“用户同意设置”,禁止用户向未批准的应用授予权限:# PowerShell: 禁止用户同意所有应用Set-MgPolicyAuthorizationPolicy...以下Python脚本利用Google Admin SDK Directory API列出某用户的所有OAuth客户端授权:from googleapiclient.discovery import builddef...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:...编辑:芦笛(公共互联网反网络钓鱼工作组)
由于一些原因,由世纪互联运营的中国大陆版Azure无法落地所有的国际版服务。相比几年前,情况已经有了一定的改善。本文列出了国际版和国内版Azure可用服务的对比列表,帮助各位选择。...所有数据都是客观事实,不吹不黑。各位选择云平台的时候,请依据自身业务以及当地的法律法规。双方服务均各有优势,不能只看数量。...我分别从国内/国际版Azure的后台管理 > 所有服务列表里复制整理出来以下数据,以便直观对比。为了保证公平,双方数据均以采用同样标准做去重、去错处理。...国内已有服务和国际版的区别 列表内已经在国内落地的服务,和国际版上也是有差别的。...所以不能只看刚才列表里列出的服务,就算已经落地了,功能上也是有区别的。 技术以外的区别 国内使用Azure服务必须遵守中国相关法律法规。
授权服务器 授权服务器提供资源所有者用来同意或拒绝的接口。服务器可以与API资源相同,或者是另一个不同的组件。在本例中,Microsoft登录门户是“授权服务器”。...大多数API资源将定义应用程序可以请求的一组范围。这与Android手机应用程序在安装时请求的权限类似。在本例中,应用程序可能会请求访问OneDrive文件和用户配置文件。...访问令牌可以在设定的时间段内使用,从API资源访问用户的数据,而无需资源所有者采取任何进一步的行动。...虽然任何允许OAuth应用程序的云环境都可以成为目标,但是PwnAuth目前使用一个模块来支持恶意Office 365应用程序,捕获OAuth令牌并使用捕获的令牌与Microsoft Graph API...图2显示的是一个受害者的列表。 ? 图2:在PwnAuth中列出受害用户 一旦PwnAuth捕获了受害者的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 执行任意操作:# 示例:读取受害者最近...API。”...Proofpoint 发现,部分攻击甚至持续数周未被发现——因为所有操作都通过合法 API 进行,IP 地址来自正常办公区域(攻击者使用代理或已控跳板机),行为模式与日常办公高度相似。...芦笛建议,“例如,在设备代码授权页面强制显示应用名称、开发者信息、请求权限列表,并用红色高亮‘此操作将授予第三方长期访问权限’。”
Graph API读取邮件、发送钓鱼邮件、下载OneDrive文件等。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代API(如Microsoft Graph的delegated...permissions with scopes);自动化撤销机制:当检测到可疑活动时,自动调用Microsoft Graph API撤销相关应用授权:# 使用Microsoft Graph API撤销用户授权...import requestsdef revoke_consent(user_id, app_id, access_token):url = f"https://graph.microsoft.com/...编辑:芦笛(公共互联网反网络钓鱼工作组)
更值得警惕的是,部分单位仍在使用商业即时通讯工具(如微信、钉钉)处理敏感工作。一旦手机中毒,聊天记录、文件、语音均可被窃取。...英国NCSC已明确建议议员停止在WhatsApp、Signal上讨论公务,转而使用经认证的加密平台(如Microsoft Teams政府版)。此外,国内部分政企单位的邮箱系统仍缺乏行为基线分析能力。...芦笛建议,关键岗位人员应构建三层防御:第一层:身份认证加固强制使用FIDO2硬件密钥(如YubiKey)或多因素认证App(如Microsoft Authenticator),禁用短信验证码;启用条件访问策略...以下是一个基于Microsoft Graph API的示例:# check_forwarding_rules.pyimport requestsGRAPH_API_URL = "https://graph.microsoft.com..."ACCESS_TOKEN = "your_app_token_with_mail_read_permissions"def get_inbox_rules(user_email):url = f"{GRAPH_API_URL
Port REG_MULTI_SZ 指定一组 IP 端口范围,其中包含网络上可用的所有端口或不可用的所有端口。...每个字符串代表一个端口或一组包含的端口。 例如,单个端口可以用5984表示,一组端口可以用5000-5100表示。...PortsInternetAvailable REG_SZ Y 或 N(不区分大小写) 如果是,则端口项中列出的端口是该计算机上的所有网络可用端口。...如果为 N,则“端口”项中列出的端口是所有不可通过网络访问的端口。 UseInternetPorts REG_SZ Y 或 N(不区分大小写) 指定系统默认策略。...所有使用 RPC 动态端口分配的应用程序都使用端口 5000 到 6000(含)。 应该打开端口 5000 以上的一系列端口。
向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...获得令牌后,攻击者通过Microsoft Graph API执行侦察:import requeststoken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx"headers...= {"Authorization": f"Bearer {token}"}# 列出用户邮箱文件夹resp = requests.get("https://graph.microsoft.com/v1.0...可使用Microsoft Graph PowerShell批量设置:# 禁止用户同意应用Set-MgPolicyAuthorizationPolicy -PermissionGrantPolicyId...以下Python脚本利用Microsoft Graph API实现自动化审计:import requestsfrom datetime import datetime, timedeltadef audit_shadow_apps
Microsoft Teams作为全球超3亿用户使用的协作平台,其通知邮件由微软官方域名 teams.mail.microsoft.com 发出,具备完整的SPF、DKIM、DMARC认证。...攻击者甚至会使用数字签名版本(通过盗用或购买开发者证书),进一步规避检测。...邮件层:增强Teams通知监控限制Teams外部邀请:在Microsoft 365管理中心配置策略,禁止非组织成员创建团队或邀请用户;监控异常团队命名:通过Microsoft Graph API定期扫描团队名称...,识别含“PayPal”“Billing”“Urgent”等关键词的可疑实体;# 示例:通过Graph API列出所有团队GET https://graph.microsoft.com/v1.0/groups...编辑:芦笛(公共互联网反网络钓鱼工作组)
Golang 精心打造的即时通讯服务器。...以下是 Open-IM-Server 的关键特性和核心优势: 支持几乎所有类型的消息:文本、图片、表情符号、语音、视频等。...Library (MSAL) for .NET 是 Microsoft 提供的一款用于开发者身份验证和调用受保护 API 的库。...它使用行业标准的 OAuth2 和 OpenID Connect,支持获取安全令牌来访问受保护的 API,并且还提供了对 Azure AD B2C 的支持。...: https://github.com/songquanpeng/one-api [6] AzureAD/microsoft-authentication-library-for-dotnet: https
这将有助于创建一个可互操作的插件生态系统,可用于所有主要的AI应用程序和服务,如ChatGPT,Bing和Microsoft 365。...由于SK来自Microsoft,因此它有一个用于Microsoft Graph [14]的OOTB插件集成了大量的Microsoft 服务。...LangChain与非Microsoft服务的集成更多(见列表[15])。...使用Semantic Kernel记录和计量请求有几个主要好处: 您可以轻松跟踪 API 使用情况和成本,因为每个令牌对应于一个计费单位。...这些应用展示: 使用 Azure 函数[22]实现的后端业务流程协调程序服务[23] 一组使用后端 orhestrator 的 TypeScript/React 示例应用程序[24]。
View > Tool Windows > App Inspection 在 App Inspection (应用检查) 窗口中选择 Background Task Inspector 栏后,我在 API...连接到应用进程后,就可以回到我正在运行的应用,选择所有的滤镜并点击 "APPLY"。此时我可以在后台任务检查器中看到运行中的作业列表。...△ 正在运行的作业列表 后台任务检查器列出了所有正在运行、已失败和已完成作业的类名、当前状态、开始时间、重试次数以及输出数据。点击列表中的一个作业打开 Work Details 面板。...仅需点击 WorkContinuation 一节中的 "Show in graph" 链接或点击作业列表顶部的 "show Graph View" 按钮来切换到 Graph View 即可。...您能够在这个图中快速查看一组复杂的 Worker 之间的关系并监控它们的进展。
另外,DirectDraw API还包括表示surface的DirectDrawSurface对象,表示surface调色板的DirectDrawPalette对象和表示剪接列表的DirectDrawClipper...与集成电路(对象)通讯是通过管脚(接口)来发送或接收信号(方法)。 所有的COM接口都是从OLE的Iunknown接口派生来的。...我将示范如何用Microsoft Developer Studio来设置这些环境,或是在命令行下使用NMAKE。...在列出的目录中,选择头文件所在的目录。 4. 在目录框中,双击列表底部的空白行(以长方形表示),然后键入: C:\DXSDK\SDK\INC。 5. 按回车键。 6....下面列出了 Visual C++ 4.0 所用到的所有路径: @echo off set path=c:\MSDEV\BIN;%PATH% set INLUDE
System.Net.Http - 用于HTTP通讯的类型,包括HttpClient 和HttpResponseMessage....通常,与逐个添加项目所需要的包相比,使用元包的方式来添加项目依赖更加容易,因为元包是一组常用包的集合。...这些框架描述一组可用于你所指定的框架的API(和一些其它特征)。当加入新的API时,这些框架的版本号也会发生相应的变化。...这是所有框架的传统工作方式。 .NETStandard,Version=1.3是一个基于包的框架。它依靠包来定义目标框架以及公开该框架的API。 基于包的框架 包与框架之间是双向关系。...每个运行时都支持一组.NET Standard版本,具体取决于它们所要实现的API。 ? 标准框架隐式引用NETStandard.Library元包。
Graph API 的代码示例,验证防御措施的可行性。...一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。...由于整个流程使用合法 API 且经身份验证,邮件完全合规。...Single User条件:同一用户在 1 小时内发送超过 5 次邀请响应:自动禁用该用户邀请权限并告警Graph API 查询示例:GET https://graph.microsoft.com/v1.0...;即使绕过(如使用管理员账户),邮件也被标记,用户识别率提升 78%。此外,通过 Graph API 监控,我们能在 5 分钟内检测到异常邀请模式并自动响应。
(2.4)横向移动与持久化获取邮箱访问权后,攻击者常利用“自动转发规则”窃取未来邮件,或通过Graph API读取联系人、会议记录,为下一轮攻击提供情报。...部分样本还部署了基于OAuth应用的持久化后门:POST https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messageRulesAuthorization...,"grantControls": { "operator": "OR", "builtInControls": ["block"] }}监控高风险OAuth授权:部署脚本定期审计第三方应用权限:# 列出所有具有...(5.1)系统架构前端:Outlook插件,提供举报按钮与可疑链接预览;中台:基于Microsoft Graph API的行为分析引擎;后台:条件访问策略管理与OAuth授权审计模块。...编辑:芦笛(公共互联网反网络钓鱼工作组)