<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>条件访问 on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/%E6%9D%A1%E4%BB%B6%E8%AE%BF%E9%97%AE/</link>
        <description>Recent content in 条件访问 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Sat, 14 Nov 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/%E6%9D%A1%E4%BB%B6%E8%AE%BF%E9%97%AE/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>设备码流程未禁用：攻击者绕过 MFA 读邮箱</title>
            <link>https://blog.5772447.xyz/posts/878c4ce3/</link>
            <pubDate>Sat, 14 Nov 2026 09:00:00 +0800</pubDate>
            <guid>https://blog.5772447.xyz/posts/878c4ce3/</guid>
            <description>&lt;h2 id=&#34;问题背景&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题背景&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;公司用的是 Microsoft 365，全员强制 MFA，邮件网关、EDR、DLP 都按基线配了。安全团队一直认为“有 MFA 兜底，账号被盗的风险可控”。财务部一位同事在月初反馈：连续几天收不到供应商发票邮件，让 IT 帮忙查一下。&lt;/p&gt;&#xA;&lt;p&gt;IT 先看邮件流，邮件确实到了她的邮箱，但被一条收件箱规则自动移到了一个不显眼的子文件夹。再查登录日志，发现前一天凌晨有一个来自境外 IP 的登录，认证方式是“设备代码”（deviceCode），应用显示为命令行工具，登录成功了。用户说那天下午点过一个“账号验证”的链接，按页面提示输入了一串代码，还在手机上点了 MFA 确认。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障现象&#34;&gt;&lt;a href=&#34;#%e6%95%85%e9%9a%9c%e7%8e%b0%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;故障现象&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;用户邮箱里出现了一条自动规则：把主题含“发票”“对账”的邮件移到某个子文件夹，并标记为已读。&lt;/li&gt;&#xA;&lt;li&gt;登录日志里有一条成功登录，IP 在境外，认证协议是 &lt;code&gt;deviceCode&lt;/code&gt;，客户端应用是命令行工具，资源是 Exchange Online。&lt;/li&gt;&#xA;&lt;li&gt;用户没有改过密码，也没有收到异常登录提醒；MFA 记录显示她本人确实在手机上批准过一次登录。&lt;/li&gt;&#xA;&lt;li&gt;同一时段，她的账号还向内部几个同事发过一封“共享文档”的钓鱼邮件。&lt;/li&gt;&#xA;&lt;li&gt;邮件网关、EDR 都没有告警；只有身份侧的登录日志留下了痕迹。&lt;/li&gt;&#xA;&lt;li&gt;进一步排查发现，租户层面允许所有用户使用设备码流程，条件访问里也没有针对它的限制。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排查过程&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;第一步看登录日志。在 Entra ID 的 Sign-in logs 里按用户筛选，找到那条境外登录：Authentication Protocol 字段是 &lt;code&gt;deviceCode&lt;/code&gt;，Application 是一个常见的命令行客户端，Resource 是 Office 365 Exchange Online，结果 Success。设备码登录不会出现在用户常用的 Outlook/Teams 登录记录里，很容易被忽略。&lt;/p&gt;&#xA;&lt;p&gt;第二步问清楚用户操作。她回忆收到一封“您的账号需要重新验证”的邮件，点进去是一个看起来很像微软的页面，提示“在设备上输入以下代码”。她按提示在微软官方页面输入了代码，并用手机批准了 MFA。整个过程中，她没有输入密码，也没有把密码告诉任何人——这正是设备码钓鱼的典型话术。&lt;/p&gt;&#xA;&lt;p&gt;第三步解释攻击链。OAuth 2.0 的设备授权流程（RFC 8628）原本是给输入受限设备用的：客户端先向身份平台申请一个设备码和用户码，用户在其他设备上打开验证页面输入用户码并完成认证，客户端再轮询令牌端点换取访问令牌。攻击者把自己伪装成“客户端”，把用户码发给受害者；受害者是在微软官方页面完成认证的，MFA 也是真的，但最终令牌发给了攻击者的客户端。MFA 保护了“谁在认证”，却没有保护“令牌发给谁”。&lt;/p&gt;&#xA;&lt;p&gt;第四步查影响面。用 &lt;code&gt;Get-InboxRule&lt;/code&gt; 查该用户的收件箱规则，确认了那条转移发票邮件的规则；查发件箱和已发送，发现钓鱼邮件；查 OAuth 授权，确认攻击者拿到的令牌有 Exchange Online 的邮件读写权限。再看其他用户，没有发现类似的 deviceCode 登录，说明目前只成功了一次。&lt;/p&gt;&#xA;&lt;p&gt;第五步确认租户配置。Entra ID 的条件访问里没有任何策略针对“身份验证流”，设备码流程对所有用户开放；也没有“要求合规设备”的策略。也就是说，只要用户被骗着输入一次代码，攻击者就能拿到令牌，和密码、MFA 方式都无关。&lt;/p&gt;&#xA;&lt;p&gt;第六步处置与验证。吊销该用户的所有刷新令牌、重置密码、删除恶意收件箱规则、撤销可疑 OAuth 授权；然后在条件访问里新增策略，阻止设备码流，并要求办公场景使用合规设备。观察一周，登录日志里没有再出现 &lt;code&gt;deviceCode&lt;/code&gt;，用户邮件流恢复正常。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方案&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;先止血&lt;/strong&gt;：吊销用户全部登录会话与刷新令牌，重置密码；删除恶意收件箱规则、转发规则和签名；检查并撤销异常的 OAuth 授权；排查已发送邮件，通知可能受影响的同事。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;封堵设备码流&lt;/strong&gt;：在条件访问里针对“身份验证流”配置策略，阻止设备码流；对必须使用设备码的合法场景（如会议室设备、部分命令行工具）用单独的用户组做例外，并配合合规设备要求。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;收紧条件访问基线&lt;/strong&gt;：办公场景要求合规/已加入域的设备，敏感应用要求防钓鱼 MFA（FIDO2/Windows Hello），禁止旧版认证；对高风险登录启用“仅允许受信任位置”或额外验证。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;监控认证协议&lt;/strong&gt;：在 SIEM 里对 &lt;code&gt;AuthenticationProtocol = deviceCode&lt;/code&gt; 的登录单独告警，尤其是境外 IP、非常用应用、非工作时间；同时对“新建收件箱规则/转发规则”做审计告警。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;用户沟通&lt;/strong&gt;：发一次针对设备码钓鱼的提示——任何让你“在页面上输入代码”的邮件都要警惕，微软不会通过邮件要求你输入设备码；收到可疑邮件走举报通道。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;验证&lt;/strong&gt;：策略上线后确认正常办公不受影响，合法设备码场景仍可用；模拟一次设备码登录，确认被条件访问拦截并产生告警。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;根因分析&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e5%9b%a0%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根因分析&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;直接根因是 &lt;strong&gt;租户允许 OAuth 设备码流程且条件访问没有限制，攻击者利用该流程诱导用户在官方页面完成认证，令牌被签发到攻击者客户端，MFA 被“合法”地绕过，邮箱随后被读取和利用&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;更深一层，是把 MFA 当成了账号安全的全部。MFA 解决的是“认证时是不是本人”，但 OAuth 体系里还有“令牌发给哪个客户端、这个客户端能访问什么”的问题；设备码流程、应用 consented 权限、刷新令牌，都是密码和 MFA 之外的身份入口。只盯着登录框，就会漏掉这些“侧门”。&lt;/p&gt;&#xA;&lt;p&gt;还有一层是监控盲区。设备码登录在用户视角里没有明显感知，在网关和 EDR 里也没有流量特征；如果没人按认证协议去筛登录日志，这类事件就只能等用户发现邮件丢了才曝光。身份侧的日志不是“出了事再查”，而应该成为日常告警源。&lt;/p&gt;&#xA;&lt;h2 id=&#34;预防措施&#34;&gt;&lt;a href=&#34;#%e9%a2%84%e9%98%b2%e6%8e%aa%e6%96%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;预防措施&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;条件访问基线明确覆盖“身份验证流”：默认阻止设备码流，合法场景按组例外；每季度复核例外清单。&lt;/li&gt;&#xA;&lt;li&gt;敏感应用要求防钓鱼 MFA 和合规设备，逐步淘汰可被诱导的推送/短信验证方式。&lt;/li&gt;&#xA;&lt;li&gt;SIEM 对 &lt;code&gt;deviceCode&lt;/code&gt; 登录、异常 OAuth 授权、收件箱规则变更设置告警，按用户和 IP 聚合。&lt;/li&gt;&#xA;&lt;li&gt;建立令牌被盗的应急手册：吊销会话、重置密码、清理规则与授权、检查发件与转发、通知相关方，按顺序执行。&lt;/li&gt;&#xA;&lt;li&gt;用户培训聚焦“设备码”话术：不把任何代码输入到别人发来的页面，不在非官方入口完成认证。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;MFA 挡得住“猜密码的人”，挡不住“把令牌领走的人”。设备码流程本来是为输入受限设备设计的便利通道，租户默认全开、又没有条件访问约束时，它就变成了一条绕过 MFA 的侧门：用户认证是真的，MFA 是真的，只有令牌落到了 attacker 手里。把不用的认证流关掉、把令牌签发纳入监控、把“输入代码”列为钓鱼话术，身份安全才不只停留在登录框上。&lt;/p&gt;&#xA;&lt;h2 id=&#34;延伸阅读&#34;&gt;&lt;a href=&#34;#%e5%bb%b6%e4%bc%b8%e9%98%85%e8%af%bb&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;延伸阅读&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/24188414/&#34; &gt;一次 MFA 疲劳攻击导致管理员账号被接管的排查记录&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/a801fe3b/&#34; &gt;员工域账号异地登录：告警研判与紧急锁定处置&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
