Tycoon 2FA 是目前 AiTM 网络钓鱼工具包中最多的网络钓鱼即服务 (PhaaS) 平台。该工具包于 8 月首次被观察到 2023 ,并被归因于Storm-1747(根据 Microsoft Threat Intelligence),它提供了绕过多因素身份验证并从 Microsoft 365 和 Google Workspace 账户中窃取身份验证会话令牌的全套中间人对抗(AiTM)功能。在最高峰时,Tycoon 2FA 在微软拦截的网络钓鱼尝试中约占62% ,每月覆盖 50 多万家组织。
尽管 3 月 2026 ,在 Cloudflare、SpyCloud、eSentire 和其他合作伙伴的支持下,微软和欧洲刑警组织牵头开展了一次协调行动,查封了超过 300 个域名,但运营商在几周内就做出了调整。到 2026 年 4 月底,eSentire记录了将 Tycoon 技术与 OAuth 设备代码网络钓鱼流相结合的活动,而且该工具包仍然是ANY.RUN 恶意软件趋势跟踪器的头号条目。
Tycoon 2FA 如何工作
AiTM 机制
Tycoon 2FA 在受害者和合法身份提供商(Entra ID 或 Google)之间充当反向代理。它不是一个静态的凭证采集器。它可以实时代理真实的登录流量:
- 受害者收到一封钓鱼电子邮件,其中包含一个嵌入在 PDF、SVG、HTML 或 PPTX 附件中的链接或 QR 码。
- 链路通过多层重定向链进行路由。在显示登录页面之前,该工具包会执行浏览器指纹识别、验证码挑战和反分析检查。
- 受害者看到的是一个像素完美的微软或谷歌登录页面复制品,通常包括从真实服务中动态获取的目标组织品牌。
- 凭证实时转发给合法身份提供者。真正的 MFA 挑战会被触发并代理回受害者。
- 受害者正常完成 MFA。身份提供者发出会话令牌。代理服务器会在令牌到达受害者浏览器之前将其拦截。
- 攻击者现在持有一个经过完全验证的访问令牌。
会话 cookie 是运营商货币化的价值。一旦被捕获,MFA 就失去了意义,因为操作员会在 MFA 后重铸代币。
当前轮换中的两种结构变体
我们分析了两种不同的试剂盒变体,它们都在积极使用中:
WebSocket AiTM("经典的" Tycoon 2FA 流程):受害者通过套件托管的代理进行身份验证,该代理通过 WebSocket(Socket.IO)将流量转发到 Microsoft 或 Google,并捕获后 MFA 会话 cookie。该工具包的 JavaScript 客户端控制器与 C2 服务器保持实时双向通道,在受害者键入时转发凭证和验证响应。这些响应包括供使用的铸币访问令牌和刷新令牌。
设备代码授予滥用(仅限微软):工具包中继通过 Microsoft Authentication Broker (29d9ed98-a469-4536-ade2-f981bc1d605e) 作为客户端,从 Microsoft 的 oauth2/devicecode 端点获取设备代码,通过"验证码" 引诱受害者显示该代码,并在受害者在合法的 microsoft.com/devicelogin 登录后用该代码交换访问/刷新令牌。终点。
规避技巧
该工具包采用通过 JavaScript 反编译确认的分层反分析机制:
- 基于 IP 的研究人员过滤:在显示任何内容之前,该工具包会调用api.ipapi.is(或同等服务),根据云/托管服务提供商(Leaseweb、M247、DigitalOcean、Linode、Amazon、OVH、Hetzner、Google、Microsoft、Cloudflare、Akamai、Fastly,以反向字符串形式存储以规避静态扫描)的拦截列表检查访问者的 IP。云基础设施上的访问者会被重定向到一个良性诱饵网站。
- 僵尸/工具检测:检查用户代理字符串中的navigator.webdriver(Selenium)、window.callPhantom/
window._phantom(PhantomJS) 和"Burp" 。检测会触发重定向到about:blank。 - 阻止开发工具:拦截开发工具的键盘快捷键(F12、Ctrl+Shift+I/J/C、Ctrl+U,macOS 中的同类快捷键)并禁用右键上下文菜单。
- 调试器陷阱:每 100ms 运行一次setInterval循环,插入调试器语句并测量执行时间。如果DevTools处于打开状态(执行暂停>100ms),受害者将被重定向到一个诱饵网站。
- DOM 消失:恶意 JavaScript 在执行后会从DOM中删除,不留任何痕迹供静态检查。
- 按受害者加密:有效载荷使用定制的两级密码(凯撒移位 + 与 PRNG 生成的密钥流 XOR),并以每次会话值为种子。每个受害者的种子、密钥和加密 Blob 都是在服务器端生成的,因此无法进行静态签名检测。
- 平台定位:在 Linux 桌面上,它会写入一个空字符串,使页面空白:这可能是假定 Linux 用户更有可能是安全研究人员。
- 假验证码:在当前变体中,自定义图像网格验证码取代了 Cloudflare Turnstile。3×3 网格中的 Unsplash 源图像可在钓鱼页面加载前提供人工验证。
对于以谷歌为目标的营销活动,第一跳诱饵通常是在合法的谷歌基础设施(如谷歌存储空间或谷歌网站)上设置的,但也会出现由运营商控制或被入侵的域。当使用谷歌自己的主机时,storage.googleapis.com 或sites.google.com 起源会在受害者到达 AiTM 中继站之前提供内置的信誉保护。
在其他情况下,受害者的电子邮件会被自动填写,并自动点击"Next" 按钮:受害者会直接进入密码页面,让人觉得他们已经通过了部分验证(增加信任度):
var emailcheck = "victim@email.corp";
// ...
function tryfindingele(email) {
emailinputcheck.value = email;
emailsectionelecheck.querySelector(".btn-blue-next-btn").click();
}
if (emailcheck !== "0") { tryfindingele(emailcheck); }
Microsoft 365 / Entra ID
双层运行架构
Tycoon 2FA目前的运行模式分为两个不同的基础设施层,每个层都有自己的ASN、角色和行为签名。寻找单一模式的后卫会抓住其中一层,而漏掉另一层。
1 - 套件继电器
处理令牌获取和更新的自动化后台。特点
- 云虚拟专用服务器的出口 IP 来自托管提供商(阿里云、类似的廉价虚拟专用服务器 ASN),在单次交战中轮流使用不同 /16 块中的多个 IP。
- Node.js HTTP 客户端用户代理:node(裸客户端,默认 Node.js UA)、axios/1.15.2、node-fetch/1.0、undici.
- 客户端应用程序:Microsoft Authentication Broker (29d9ed98-a469-4536-ade2-f981bc1d605e),稍后与设备注册服务 (DRS)一起用于铸造 primaryRefreshToken (PRT)。
- 令牌类型递增: incomingTokenType:无(初始受害者认证)> refreshToken(套件中继更新循环,在旋转 IP 上重复)> Rogue Device Registration> primaryRefreshToken(PRT 重放,范围更广)。
- 非交互式登录:初始交互式设备代码完成后,随后的令牌操作是服务器到服务器的刷新。
2 - 操作员控制台
执行漏洞后侦察的人类(或人类模拟工具)。特点
- 住宅型 ISP 或代理出口,通常是一个小型 ASN,不存在于常见的主机提供商威胁源中。一个 /24 中有多个 IP,所有 IP 协调行动。
- 集群中所有 IP 的单一浏览器用户代理(如 Windows 上的 Firefox)固定不变。配置的工具,而不是独立的用户。
- 基于浏览器的 Microsoft 网络应用程序交互式登录:"我的个人资料"、"我的登录"、"Microsoft 批准管理"、"Outlook Web "和 "OfficeHome"。
- 所有 IP 共享单个 c_sid(图形活动日志中的客户端会话 ID),确认分布在池中的单个会话。
- 运行节奏:通常在工具包接力首次成功发放令牌后 10-20 分钟出现。间隙代表套件到操作员的切换窗口。
持久的跨层检测信号:两个不同的 ASN(一个云-VPS,一个住宅型)在几分钟内验证为同一个用户主体。单ASN 规则捕捉一个层级;跨层级中枢是高置信度指标。
加密后图形应用程序接口枚举
一旦操作员控制面板获得有效令牌,Microsoft Graph API 调用就会迅速爆发,通常会在 30-60 秒内发出几十个请求,攻击高价值的侦查端点:
| 侦察类别 | 端点示例 | 用途 |
|---|---|---|
| 角色发现 | 角色分配, 成员/目录角色, 角色管理/目录/角色分配 | 检查受损身份持有哪些 Entra ID 角色 |
| 跨租户调节 | 租户关系/getResourceTenants | 列举可信任的跨租户关系,以实现横向移动 |
| 邮箱重建 | 我/邮箱设置 | 阅读转发规则、自动回复、时区 |
| 联系收获 | me/contactFolders/contacts ($top=1000) | 为下一波网络钓鱼目标删除联系人列表 |
| Org& 许可 | 订阅的斯库斯、组织、appRoleAssignedResources ($top=999) | 租户许可、组织结构、应用程序布局地图 |
自动入侵后侦察的关键遥测指标:
- 通话量和速度:30-60 秒内有 20-30 多个电话,每个电话都打到不同的终端。
- 混合 HTTP 方法:GET 适用于大多数端点,POST 适用于getResourceTenants 等操作。
- 结构化查询参数:$select、$top=999、$count=true- 经过优化,每次调用可提取最多数据。
- /beta/ API 的使用情况:攻击性工具的使用量与正常门户导航的使用量不成比例。
- 成功/失败参半:有些端点返回 400 或 403 (无论如何,套件都会探测一切),而大多数端点则返回 200。侦察失败仍是侦察。
- 空 C_DeviceId:令牌发放给了一个未托管、未注册的设备。
- 具有广泛预授权范围的第一方应用程序:我的个人档案 "的令牌具有的范围包括RoleManagement.ReadWrite.Directory、MailboxSettings. ReadWrite、UserAuthenticationMethod.ReadWrite 和User.RevokeSessions.All--所有这些都是预先同意的,无需 OAuth 同意提示。
设备-PRT 持久性
如前所述,该工具包可以建立设备注册持久性,使其在标准会话撤销播放簿中存活下来。机制:
- MAB 刷新令牌在oauth2/token处与访问令牌进行了资源交换,访问令牌的审计值为urn:ms-drs:enterpriseregistration.windows.net(相同的客户 ID,新的受众,无同意提示)。
- 该工具包使用 urn:ms-drs:enterpriseeregistration.windows.net访问令牌,将本地生成的 PKCS#10 CSR、合成设备元数据和传输密钥 Blob 发送到端点EnrollmentServer/设备。DRS 创建设备对象、分配设备 ID、签署并返回设备证书。
- 该工具包会创建一个包含用户刷新令牌的 JWT,用设备私钥对其进行 RS256 签名,并在 JWT 标头中嵌入设备证书。它会将此内容发送到login.microsoftonline.com/common/oauth2/token作为 JWT 承载授予。Entra 根据证书验证签名,并返回 PRT 和会话密钥加密 (JWE)。
- 当防御者启动revokeSignInSessions(使所有用户级令牌和刷新令牌失效)时,设备 PRT 仍然有效,因为设备是 Entra ID 中的一个独立委托人。
- 在新的中继 IP 上,该工具包使用 PRT 加会话密钥将每次请求的HMAC-SHA256断言签署到/oauth2/token,为其命名的任何第一方
client_id(Teams、Outlook、OneDrive、Office、Intune)提供访问令牌。
为什么撤销会话不能阻止 Tycoon 2FA?
这意味着"撤销会话> 重置密码" 的标准事件响应顺序是不够的。防御者必须在撤销会话前枚举并删除已注册的设备,以原子方式中断设备-PRT 链。
检测的细微差别 - 微软
身份保护可能不会标记工具包基础设施。Tycoon 2FA 当前的出口 IP 频繁旋转,可能不在微软的风险语料库中。仅依靠 Entra ID 风险信号进行 AiTM 检测的防御人员将一无所获。
图形活动日志中的 c_sid 不是用户对象 ID。这是一个会话/安全上下文标识符。分析师通过c_sid == user_object_id 过滤图形活动日志会得到空结果,并得出攻击者没有使用图形令牌的结论。正确的狩猎支点是源 IP + appId,与登录日志相互参照,将 IP 映射到用户。
云提供商 IP 的地理定位不可靠。在同一个登录会话中,同一个套件中继 IP 可以定位到不同的城市。ASN 是检测规则唯一可靠的充实手段。
代币铸造的能见度。代币的铸造或发行不会被记录;利用这些代币的验证事件提出了一个更被动的狩猎信号。
Entra ID Protection 风险用户状态。Entra ID 保护可分析登录事件、会话、令牌等,从而为用户应用风险级别和状态。aiConfirmedSafe在 2 层中继时被观察到,标志着用户没有风险。然后根据anomalousToken确定用户风险异常,从而将用户重新归入中等风险。只需将aiConfirmedSafe可能会使组织陷入错误阴性结果的事件排除在微软的标签之外即可。
Google Workspace
单层套件继电器
谷歌变体以单层套件中继的方式运行,没有微软方面明显的操作员控制面板层。多个套件中继 IP(通常来自 Clouvider、Host Telecom 或类似的廉价托管 ASN)会在几分钟内验证同一个用户,每个 IP 都会执行相同的四事件序列:
login_success密码已验证 (T+0.000s)login_verification与is_second_factor: true- 套件实时转发 TOTP/短信/推送代码,完成 2SV (T+0.000s)- 令牌:为 Google Chrome OAuth 客户端授权 (77185425430) (T+0.4 至 0.6 秒)
DEVICE_REGISTER_UNREGISTER_EVENT(由于配置文件验证,新设备已由 Google 注册)(T+0.6 至 1.2 秒)
约 1 秒的压缩是自动登录的信号。
该工具包在每次中继会话中都会持续授权同一个 OAuth 客户端:
| Field | 值 |
|---|---|
| google_workspace.token.client.id | 77185425430.apps.googleusercontent.com |
| google_workspace.token.app_name | 谷歌浏览器 |
| google_workspace.token.client.type | 原生桌面 |
| 设备类型 | Windows |
| google_workspace.token.scope.value | https://www.google.com/accounts/OAuthLogin |
| google_workspace.token.method_name | 授权 |
OAuthLogin作用域是 Chrome 浏览器的内部引导登录作用域。它不是数据平面范围(它本身不授予 Gmail、Drive 或 Calendar 访问权)。该工具包在此单一范围内的爆炸半径与能够成为 Chrome 同步会话的长期登录绑定,而不是无需进一步调用令牌交换就能直接访问邮箱或文件。
来自 VPS ASN 的token.authorize事件证实,授权发生在中继期间的服务器端,而不是来自受害者的设备,因此无论操作员的意图如何,这都是可疑的。
Kit JavaScript 架构(Google 变种)
对以谷歌为目标的 WebSocket 变体进行反编译后,发现它有 5 层结构:
| 图层 | 函数 |
|---|---|
| 1.反分析 | 通过 api.ipapi.is(带反向字符串的云提供商屏蔽列表)进行 IP 过滤、僵尸/调试器检测、DOM 消失 |
| 2.网络钓鱼 HTML | ~747KB base64 解码的 Google 登录克隆,包含 15 输入字段,涵盖所有 Google 验证方法 |
| 3.WebSocket C2 | Socket.IO 4.6.0实时中继(send_to_browser / response_from_browser 事件) |
| 4.加密有效载荷 | 每个受害者凯撒+XOR 密码(LCG PRNG,每个会话唯一种子),运行时进行 eval() |
| 5.图书馆 | CryptoJS 4.2.0 用于 AES-CBC 证书加密(硬编码密钥 1234567890123456 用于加密收集的证书)、list.js |
15 输入字段捕捉了所有 Google 2FA 方法:密码、TOTP、短信、语音呼叫、备份代码、恢复电子邮件、电话验证、安全密钥后备、移动提示和强制密码更改。recieveid "Socket.IO 事件名称(注意是错别字)是一个一致的工具包指纹。
检测的细微差别 - Google
谷歌警报中心可能会保持沉默。即使多个 ASN 在几分钟内多次登录同一用户,警报中心的记录也可能不会流向警报 API。谷歌的 "受害者邮箱 "安全警报电子邮件不能替代,因为它们会发送到受攻击用户的收件箱,而不是管理界面。
is_suspicious 可能不会触发。来自廉价托管 ASN 的工具包中继 IP 可能不在 Google 的风险语料库中。将这一区域作为主要信号的防守方将会出现盲点。在金丝雀参与中,Clouvider 和 Host Telecom 所有四个工具包 IP 上的每个login_success 都出现了is_suspicious 错误。
登录事件中没有用户代理:Reports API 登录事件不包括用户代理或设备指纹数据。在 Entra 端工作的基于 UA 的检测(节点/axios/undici)与 Google 没有直接的对应关系。
OAuth 工作流的可见性很浅:谷歌的token.authorize事件会显示客户端.id、app_name,client.type、和scope.value、这就是全套。没有与 scope 区分开的resource_id,没有 grant-type 字段,也没有 incoming-token-type 字段。
大多数辅助流保持安静:没有google_workspace.context_aware_access事件触发(尽管用户有五条新的设备记录),且警报 API 未收到警报中心记录。工具包足迹只存在于三个数据流中:登录、令牌和设备。依赖任何其他数据流的 Hunts 将无法检测到该套件。
跨 Entra ID 和 Google Workspace 的 Tycoon 2FA
| 维度 | Microsoft 365 (Entra ID) | Google Workspace |
|---|---|---|
| 套件中继基础设施 | 云虚拟专用服务器托管 ASN,轮流使用 IP | 云虚拟专用服务器托管 ASN,轮流使用 IP |
| 套件中继用户代理 | node, axios, undici, node-fetch | 未暴露(报告应用程序接口缺乏用户接口) |
| 有针对性的认证流 | 认证经纪人设备代码授予 | 谷歌浏览器 OAuth 登录 |
| 持久性范围 | 设备注册导致 primaryRefreshToken (PRT) | 未观察到 |
| 持久性 | 高 - 设备-PRT 可以在会话撤销后继续运行 | 低 - 单个 OAuth 撤销即可 |
| 操作员控制台层 | 是 - 住宅代理 IP、基于浏览器的 M365 网络应用程序重组 | 未观察到 |
| 风险引擎标记套件出口 | 是--异常令牌的用户风险检测 | 否 (is_suspicious silent) |
| SOC 对数延迟 | <5 分钟(近乎实时的登录日志) | 长达 ~3 小时(报告 API 滞后情况) |
| 可提供 CA / 保单辩护 | Block device-code-flow CA> clean 53003 rejection | 无相应政策 |
| 开关的复杂性 | 撤销会话前必须删除已注册的设备 | 单个 OAuth 撤销足够 |
M365 变体的操作性更强,日志记录可提供身份泄露前后的大量细节。Google Workspace 变体的日志记录较少(只观察到登录),但默认日志记录缺乏重要的背景信息。
Tycoon 2FA 行为检测规则
我们在微软和谷歌遥测源中实施了涵盖整个攻击链的检测规则:初始 AiTM 网络钓鱼、令牌中继、操作员控制台侦察和设备持久性。
Microsoft - Kit 继电器检测
Entra ID 通过 OfficeHome (Tycoon2FA) 进行潜在 AiTM 登录- 这是一种高信号检测,可在 Auth Broker 或 OfficeHome 登录到带有 Node.js 风格用户代理的 Graph/Exchange 时触发 (node,axios,undici)。捕捉工具包中继层的服务器端令牌操作。
M365 Potential AiTM UserLoggedIn via Office App (Tycoon2FA)- 与 Entra 登录规则的检测逻辑相同,但针对摄取o365.audit 而非(或除 Entra 登录日志外)Entra 登录日志的租户的 M365 统一审计日志。
Entra ID OAuth Device Code Phishing via AiTM:通过针对 Exchange、Graph 或 SharePoint 的 Auth Broker 检测成功的交互式设备代码流登录。专门捕捉滥用设备代码的变体。
Entra ID Microsoft Authentication Broker 签入异常资源:检测目标资源不在通常观察到的第一方集合内的成功 Auth Broker 签入。捕捉与意外 API 或企业应用程序的 FOCI 令牌交换。
微软 - 持久性检测
Entra ID 使用非正常用户代理注册设备(Azure AD 加入):检测用户代理不是已知本机注册客户端(Dsreg, DeviceRegistrationClient,Dalvik )的成功设备注册事件。捕捉同样来自 axios 用户代理的套件设备-PRT 持久性播放:
加密后图形应用程序接口枚举(ES|QQL)
对于操作员控制台层的入侵后侦察,我们构建了一个 ES|QL规则,将每个 Microsoft Graph API 请求标记为五个侦察类别之一,并在 4 或更多不同类别在聚合窗口(<= 60s)内被触发时触发:
Microsoft Graph Multi-Category Reconnaissance Burst在过滤有机门户使用的同时,还能捕捉系统性的漏洞后枚举。正常的用户活动可能会触及其中的一个或两个类别,而在一个短窗口(33 秒)内的单次会话中触及 4 或更多不同的侦察类别,这就是自动工具指纹。
Google - Kit 中继和持久性检测
Google Workspace 不可能的旅行登录- ES|QL 规则使用*st_distance()* 地理空间函数检测从意味着旅行速度超过 800 km/h、至少相距 500 km 的地点成功登录的情况。捕捉多 ASN 工具包中继模式,即不同地理位置的多个 IP 在几分钟内验证同一用户:
Google Workspace 用户从非典型 ASN 登录-新术语规则,用于检测 14 天历史窗口内 Google Workspace 用户首次从给定源 ASN 成功登录的情况。
来自可疑 ASN 的 OAuth 之后的 Google Workspace 设备注册:EQL 序列规则检测到来自廉价托管 ASN 的 Chrome 客户端 (77185425430.apps.googleusercontent.com) 的 OAuth 授权,随后在 30 秒内进行了设备注册,账户状态为REGISTERED 。
单个用户的 Google Workspace 设备注册突发事件 - 检测同一用户的 Google Workspace 设备注册突发事件,即在一分钟窗口内发出三个或更多不同的google_workspace.device.id 值:
利用弹性工作流实现自动化控制
一旦检测内容到位,下一个缺口就是警报和行动之间的时间差。我们之前记录的 Tycoon 2FA M365 工具包到运营商的切换窗口为 10-20 分钟,即从工具包中继首次成功发放令牌到运营商层会话开始进行漏洞后图形侦测之间的时间。
手动 SOC 响应通常需要的时间比这个窗口更长,这就是为什么操作员要在安全壳着陆前完成侦察工作。缩小这一差距才能使检测具有可操作性。
堆栈(9.4 及以上版本)随附的 弹性工作 流可 让检测规则在每个警报上通过 YAML 定义的步骤管道调用自定义 工作流 。
作为 PoC,我们建立了一个与Entra ID Potential AiTM Sign-In via OfficeHome (Tycoon2FA)检测规则相连的自定义工作流程,该规则反映了所需的响应操作。
每个警报都有工作流程:
- 通过
client_credentials获取图形承载器(每次执行一次性)。 - 用
accountEnabled: false对被入侵的 UPN 进行 PATCH,以停止新的身份验证。 - 枚举用户的registeredDevices和ownedDevices。
- DELETE 每个设备 principal,这实际上是使设备绑定的 PRT 失效。
- POST 到revokeSignInSessions,使用户级刷新令牌和会话 cookie 失效。
- 打开一个 Kibana 案例,其中包含用于内部报告后审计(密码重置、Auth 方法审查、OAuth 授权审计)的警报上下文。
针对微软图谱的端到端链执行时间不到 10 秒,远在 10-20 分钟的 Tycoon 2FA 移交窗口之内。操作员层会话从未有机会开始侦查。
这种模式的范围超出了这一条规则。同样的工作流程形式适用于任何云身份检测,并能从即时遏制中获益:AiTM 登录、不可能的旅行、非法 OAuth 同意授权、角色升级、MFA 疲劳、异常设备注册。将规则连接到调用相关云 API 的工作流中,SOC 就能获得秒级遏制。
防御大亨 2FA AiTM 攻击
- 部署防网络钓鱼的 MFA:FIDO2 安全密钥和通行密钥是唯一不受 AiTM 会话窃取影响的方法。TOTP、SMS 和基于推送的 MFA 都可以代理。
- 通过 "有条件访问 "功能确保设备合规:要求受管理、符合要求的设备才能发放令牌。这是防止 AiTM 令牌被盗的最有效控制手段。
- 阻止设备代码流:
Block device code flowConditional Access(有条件访问)策略在授予阶段干净利落地拒绝了套件中继(错误 53003)。对所有用户启用该功能,但经明确批准的自助终端/无头应用场景除外。 - 启用令牌保护(令牌绑定):将令牌与设备绑定。从不同设备重放被盗令牌会被拒绝。
- 启用持续访问评估 (CAE):当风险条件发生变化时,近乎实时地撤销令牌。
- 在 Entra ID 中启用安全默认设置(仅适用于无自定义条件访问的租户):默认情况下拒绝 ROPC 等传统身份验证并阻止设备代码流。启用安全默认值会禁用自定义 CA 策略,因此这不适用于已运行细粒度 CA 的租户。
MITRE ATT&CK 映射
| 技术 | ID | 可观测 |
|---|---|---|
| 网络钓鱼:鱼叉式网络钓鱼链接 | T1566.002 | 使用嵌入式链接、QR 码、PDF/SVG/HTML 附件诱骗电子邮件 |
| 窃取 Web 会话 Cookie | T1539 | AiTM 代理捕获后 MFA 会话令牌 |
| 有效账户:云账户 | T1078.004 | 用于图形 API 访问和 M365 网络应用程序浏览的被盗令牌 |
| 账户操纵:设备注册 | T1098.005 | 套件为 PRT 持久性注册设备 |
| 使用替代验证材料:应用程序访问令牌 | T1550.001 | 在 Auth Broker 应用程序系列中交换 FOCI 令牌 |
| 账户发现:云账户 | T1087.004 | 用户配置文件、角色成员资格、联系人的图形枚举 |
| 权限组发现:云 | T1069.003 | 枚举目录角色和传递角色分配 |
| 云服务发现 | T1526 | 列出 subscribedSkus、组织元数据、应用程序清单 |
参考资料
- 微软安全博客 - Tycoon2FA 内部:领先的 AiTM 网络钓鱼工具包如何大规模运作(2026 年 3 月)
- Tycoon 2FA 恶意软件分析,ANY.RUN 概述
- Cloudflare -大亨 2FA 拆解(2026 年 3 月)
- SpyCloud -泰康 2FA 攻防战:全球网络钓鱼基础设施破坏内幕(2026 年 3 月)
- eSentire -大亨 2FA 运营商采用 OAuth 设备代码钓鱼(2026 年 5 月)
- Sekoia -Tycoon 2FA:对最新版 AiTM 网络钓鱼工具包的深入分析(2024 年 3 月)