典型路径如下:钓鱼获取员工凭证(含MFA绕过,如MFA疲劳攻击);登录云控制台(如Azure AD、AWS IAM);枚举高权限账户或服务主体;申请或窃取OAuth令牌/会话Cookie;通过Graph...伪品牌验证流程嵌套:伪造Microsoft登录页后,跳转至“安全验证”页面,要求用户输入短信验证码,实则完成MFA劫持。此类攻击利用用户对协作工具的信任及多任务处理时的认知负荷,显著提升欺骗成功率。...': CLIENT_ID,'scope': 'https://graph.microsoft.com/.default','client_secret': CLIENT_SECRET,'grant_type...(token):headers = {'Authorization': f'Bearer {token}'}url = "https://graph.microsoft.com/v1.0/oauth2PermissionGrants"grants...{g['clientId']}")APPROVED_APPS = ['d3590ed6-52b3-4102-aeff-aad2292ab01c'] # Microsoft Teamsif __name
以授权码模式(Authorization Code Flow)为例,典型步骤如下:用户访问第三方应用:例如点击“使用Microsoft登录”按钮;重定向至Microsoft登录页:URL包含client_id...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...3 攻击技术路径分析3.1 恶意OAuth应用注册与伪装攻击者首先在Microsoft Entra ID公共租户中注册一个新应用。...注册过程无需特殊权限,任何拥有个人Microsoft账户的用户均可完成。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com
摘要近年来,攻击者利用Microsoft Entra ID(原Azure AD)的多租户应用注册机制,创建高度仿真的假冒OAuth应用,诱导用户在合法微软授权页面授予高权限(如Mail.Read、User.ReadWrite.All...此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...关键词:OAuth 同意滥用;假冒微软应用;Entra ID;多因素认证绕过;Graph API;条件访问1 引言多因素认证(MFA)作为现代身份安全的核心防线,已在绝大多数企业环境中广泛部署。...然而,随着攻击技术的演进,MFA的有效性正面临新型绕过手段的挑战。...Graph 查询示例:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization: Bearer <admin_token
https://graph.microsoft.com/.default","access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...".../devicelogin 并输入代码:ABC123”;用户信以为真,在微软官方页面输入代码并完成MFA;攻击者轮询令牌端点,成功获取access_token与refresh_token;利用令牌调用Microsoft...假设攻击者已注册一个Azure AD应用,client_id为“a1b2c3d4-5678-90ef-ghij-klmnopqrstuv”,并申请了以下API权限:Microsoft Graph: Mail.ReadWrite...["access_token"]}'}mail_resp = requests.get('https://graph.microsoft.com/v1.0/me/messages',headers=headers...未来需推动更细粒度的权限委托机制(如Microsoft Graph Delegated Permissions with Scopes Restriction)。另一个挑战是刷新令牌的长期有效性。
摘要近年来,设备代码钓鱼(Device Code Phishing)作为一种绕过多因素认证(MFA)的高级社会工程手段,在Microsoft 365环境中迅速扩散。...文章详细还原攻击链路,提供关键代码示例说明恶意应用注册、设备代码请求与令牌轮询过程,并评估其在不同MFA配置下的有效性。...关键词:设备代码钓鱼;OAuth 2.0;Microsoft 365;APT;网络犯罪;MFA绕过;身份安全1 引言Microsoft 365作为全球主流的企业云生产力平台,其身份认证体系的安全性直接关系到组织核心数据资产的防护水平...其典型手法包括:利用已攻陷的政府邮箱发送伪造“安全警报”,诱导目标扫描QR码或点击链接进入设备登录页面;注册高可信度域名(如microsoft-security[.]com)托管钓鱼页面,但最终跳转至真实...': f'Bearer {token["access_token"]}'}mails = requests.get('https://graph.microsoft.com/v1.0/me/messages
芦笛解释道,“但攻击者注册了一个伪装成‘Microsoft Security Scanner’或‘Enterprise Compliance Tool’的 OAuth 应用,通过 Azure AD 注册后...: application/x-www-form-urlencodedclient_id=YOUR_APP_ID&scope=https://graph.microsoft.com/.default服务器返回...向 Azure AD 请求设备代码client_id = "ATTACKER_APP_ID" # 攻击者注册的恶意应用IDscope = "https://graph.microsoft.com/.default"resp...print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近...而 Microsoft 目前仍以“自助注册”为主,门槛极低。“开放生态需要护栏,而不是放任。”芦笛说,“否则,每一次‘提升体验’的更新,都可能成为攻击者的跳板。”
其标准流程如下:用户访问第三方应用(Client);Client重定向用户至授权服务器(如Microsoft Entra ID)的授权端点,携带client_id、redirect_uri、scope等参数...向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...该流程的安全性依赖于若干前提:redirect_uri必须严格匹配预注册值,防止授权码泄露至攻击者控制的端点;client_secret仅由可信Client持有,用于证明其身份;用户授权界面清晰展示应用名称...= {"Authorization": f"Bearer {token}"}# 列出用户邮箱文件夹resp = requests.get("https://graph.microsoft.com/v1.0...可使用Microsoft Graph PowerShell批量设置:# 禁止用户同意应用Set-MgPolicyAuthorizationPolicy -PermissionGrantPolicyId
用户默认操作:将"用户可以注册应用程序"从"是"设置为"否"将"限制非管理员用户创建租户"从"否"设置为"是"用户设备设置默认值用户默认具有Entra加入设备的能力,无需MFA。...用户设备设置操作:将"用户可以将设备加入Microsoft Entra"设置为"选定",并添加一个允许将设备加入Entra的组配置条件访问策略,要求在将设备加入Entra时需MFA,或将配置"注册或加入...……强制用户针对现有的非密码凭据(如MFA或FIDO)重新注册,并撤销设备上的记住MFA,在所有用户下次登录时提示MFA。"...还有一个应用程序权限(Graph:RoleManagement.ReadWrite.Directory)也提供管理权限。Entra ID租户中最多有500个角色可分配组(创建最大值)。...在此处检查您租户的合作伙伴配置:https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/PartnerRelationships
Windows Outlook 在Office 365/Microsoft 365中有时候会登录不上,或者突然需要输入密码。...无法解决问题的各种方案合集 通过修改注册表Enableadal=0实现【临时有效】 spiceworks - Office 365 won’t log in without EnableADAL = 0...由于微软即将禁用非MFA方式登录这种方法只能临时用用。...通过修改、删除Microsoft.AAD.BrokerPlugin文件夹并重新使用PowerShell安装:【无效】 HKEY_CURRENT_USER\Software\Microsoft\Office...\16.0\Common\Identity\Identities 删除注册表全部关于Office用户Profile 【无效】 通过注册表修改强制禁用TLS低版本 【无效】 在Windows中重新建立新的账户
然而,就在那一刻,她的Microsoft 365账户已被悄然接管。攻击者并未窃取她的密码,也未触发任何多因素认证(MFA)警报。...因为那段“设备代码”是由攻击者提前通过其恶意注册的Azure AD应用生成的。...# 攻击者侧:使用Microsoft Graph API发起设备代码请求(简化示例)import requestsclient_id = "attacker-controlled-app-id" # 攻击者注册的恶意应用...breaktime.sleep(5)拿到Token后,攻击者即可调用Microsoft Graph API,读取邮件、日历、OneDrive文件、Teams消息,甚至发送新邮件冒充受害者——全程无需知道密码...,也不触发MFA。
一、一场“巧合”的攻击暴露了更危险的趋势2025年10月,一家位于德国的能源企业安全团队在例行日志审计中发现异常:多个高管账户在凌晨时段调用了Microsoft Graph API,读取了大量内部邮件和...一旦确认,攻击者的轮询脚本立即获得Access Token,并可调用任意Graph API权限。...企业普遍存在的三大认知盲区,导致设备代码钓鱼屡屡得手:盲区一:“MFA万能论”许多管理者认为“只要开了MFA,账户就安全”。...但设备代码流中,MFA是在微软官方页面完成的,攻击者无需绕过MFA,而是利用MFA的成功结果。“MFA防的是凭证窃取,不是授权滥用。”...Dec 2025.Microsoft Security Blog. Disrupting threats targeting Microsoft Teams.
\aad-sso-enum-brute-spray.ps1 USERNAME PASSWORD 以这种方式调用代码将允许您获取指定用户名和密码的结果。...\aad-sso-enum-brute-spray.ps1 $line Passw0rd! |Out-File -FilePath ....但是,此时您可能会被 MFA 绊倒。最好的办法是利用非 MFA 访问,例如 Outlook Web Access 或 ActiveSync。...重要的提示 如果您从同一 IP 地址过快地访问 API 端点,Microsoft 的智能锁定功能将开始错误地声称帐户已锁定。...client-request-id=$requestid" $body=@" <?
以下是一个基于Python的示例,演示如何利用Microsoft Graph API查询SharePoint共享活动,并基于启发式规则识别异常模式。...= f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"self.graph_url = "https://graph.microsoft.com..."}def get_access_token(self) -> str:"""获取Microsoft Graph API访问令牌"""headers = {"Content-Type": "application...": self.client_secret,"scope": "https://graph.microsoft.com/.default"}response = requests.post(self.token_url...fetch_sharing_activities函数负责从Microsoft Graph API拉取审计日志(实际部署中需处理分页和API限流)。
开发流程 向 Azure Active Directory (AAD) 注册的客户端 ID 和密钥(客户端密码) 从 OAuth 2 授权代码流收到的授权代码 OneDrive for Business...': self.client_id, 'redirect_uri': self.redirect_uri, 'client_secret': self.client_secret...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
关于TeamFiltration TeamFiltration是一款针对O365 AAD账号安全的跨平台安全测试框架,在该工具的帮助下,广大研究人员可以轻松对O365 AAD账号进行枚举、喷射、过滤和后门植入等操作...=> VALID NO MFA!...12:35:54 EST Refreshed a token for => https://graph.microsoft.com [EXFIL] 24.05.2021 12:35:54 EST Exfiltrating...AAD users and groups via MS AD Graph API [EXFIL] 24.05.2021 12:35:58 EST Exfiltrating AAD users and...groups via MS graph API [EXFIL] 24.05.2021 12:35:59 EST Got 133 AAD users, appending to database as valid
更严重的是,若攻击者获取IdP管理员权限,可直接修改条件访问策略或注册恶意应用,造成全租户级风险。...,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。.../.default返回的Access Token可立即用于读取邮件:GET /v1.0/me/messages HTTP/1.1Host: graph.microsoft.comAuthorization...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id..., access_token):url = f"https://graph.microsoft.com/v1.0/users/{user_id}/revokeSignInSessions"headers
得手后,攻击者迅速注册恶意OAuth应用、配置邮件规则以建立持久化访问,并利用受控账户发起内部横向钓鱼与商业邮件欺诈(BEC)。...关键词:Microsoft 365;钓鱼攻击;生产力惯性;OAuth滥用;MFA中继;条件访问;遗留协议;统一审计日志1 引言随着远程办公常态化,Microsoft 365已成为全球企业数字协作的核心平台...获得有效会话后,攻击者通过Graph API注册恶意OAuth应用:POST https://graph.microsoft.com/v1.0/applicationsContent-Type: application...无法防御推送批准诱导与会话令牌窃取;传统SIEM告警:缺乏对OAuth应用注册、邮件规则变更等高风险操作的细粒度监控。...应转向情境化训练:演示如何检查浏览器地址栏中的根域名(如login.microsoftonline.com而非microsoft-office.com);教育用户:MFA推送不应在无主动登录时出现;推广
攻击流程如下:用户点击钓鱼邮件中的链接,访问攻击者控制的仿冒登录页(如secure-microsoft-login[.]xyz);该页面实际是一个反向代理,将用户所有请求(包括输入的用户名、密码、MFA...以下Python脚本模拟检测异常会话(基于Microsoft Graph API):import requestsfrom datetime import datetime, timedeltaGRAPH_API_TOKEN...= "your_app_token"USER_ID = "user@contoso.com"def get_user_signins(user_id):url = f"https://graph.microsoft.com...Detected anomalous sessions:", anomalies)# 可触发自动会话撤销4.3 响应层:自动化会话撤销与取证一旦检测到可疑活动,应立即撤销用户所有活动会话:POST https://graph.microsoft.com...5.2 PhaaS监测与品牌保护注册企业品牌关键词,监控新注册域名;使用第三方服务(如PhishLabs)进行仿冒页面发现;对高管、财务、IT等高价值岗位开展定制化鱼叉钓鱼演练。
部分样本还部署了基于OAuth应用的持久化后门:POST https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messageRulesAuthorization...(5.1)系统架构前端:Outlook插件,提供举报按钮与可疑链接预览;中台:基于Microsoft Graph API的行为分析引擎;后台:条件访问策略管理与OAuth授权审计模块。...(5.2)关键功能代码示例自动检测并阻断恶意邮件转发规则:from microsoft_graph import GraphClientdef detect_malicious_forwarding(user_id...):rules = graph_client.get(f'/users/{user_id}/mailFolders/inbox/messageRules')for rule in rules['value...rule['actions']['forwardTo']:if not is_trusted_domain(recipient['emailAddress']['address']):# 自动禁用规则并告警graph_client.patch
一旦授权成功,即使用户更改密码或启用MFA,攻击者仍可通过已授权的应用持续访问邮箱、日历、文件等敏感资源。...(二)策略管理层:建立授权生命周期管理定期授权审计:每季度导出全组织应用授权清单,清理未使用或来源不明的应用;实施最小权限原则:推动业务部门使用权限更细的现代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/...resp.json().get('value', [])for grant in grants:if grant['clientId'] == app_id:delete_url = f"https://graph.microsoft.com