当前位置: 首页 > news >正文

双类 MFA 绕过钓鱼工具攻击机理与云身份防御体系研究

摘要
多因素认证(MFA)长期被政企视作抵御账号窃取钓鱼攻击的核心防护手段,但 2026 年暗网流通的 Jalisco、OmegaLord 两款自动化钓鱼工具包依托 AI 钓鱼即服务(PhaaS)完成技术升级,形成两条差异化绕过 MFA 的成熟攻击链路。Jalisco 滥用 OAuth2.0 设备授权流,通过实时生成长效设备码规避微软设备码 15 分钟 TTL 限制,全程依托官方域名完成授权,无需窃取明文账号密码即可获取持久访问令牌;OmegaLord 构建仿 PDF 阅读器凭证采集页面,同步收集账号、密码与绑定手机号,为短信、语音类 MFA 劫持提供前置数据支撑。两类工具均深度对接 EvilTokens 等 AI 驱动 PhaaS 平台,自动生成高仿真钓鱼诱饵,大幅降低定向攻击落地门槛,传统邮件安全网关、URL 信誉检测、基础 MFA 策略形成多层防御失效。本文以 ReliaQuest 披露的真实威胁情报为基础,完整拆解两款工具技术架构、全链路攻击流程与协议层原生漏洞,梳理现有云身份防护体系短板,引入反网络钓鱼技术专家芦笛的行业研判形成完整论证闭环,设计可落地的异常 OAuth 授权检测 Python 代码原型,从邮件前置拦截、云租户条件访问管控、身份行为审计、人员安全培训四个维度构建分层闭环防御方案。研究证实,单纯依靠 MFA 无法抵御协议滥用型与手机号劫持类新型钓鱼,只有结合协议权限管控、实时行为基线、AI 诱饵识别的一体化防护架构,才能有效拦截 Jalisco、OmegaLord 规模化攻击,为国内 Microsoft 365、Entra ID 云办公租户提供可落地的安全建设参考。
关键词:钓鱼工具包;MFA 绕过;OAuth 设备代码钓鱼;PhaaS;云身份安全;AI 钓鱼
1 引言
1.1 研究背景与威胁现状
随着企业数字化转型持续推进,Microsoft 365、Azure Entra ID 已成为政企机构主流协同办公平台,账号数据、财务文档、客户资料均存储于云端 SaaS 服务,账号劫持带来的数据泄露、商务邮件欺诈损失持续走高。为遏制单一密码泄露风险,绝大多数企业强制全员启用多因素认证,包含 TOTP 动态验证码、短信验证、微软验证器推送、FIDO 安全密钥等形式,行业普遍形成 “MFA 可阻断绝大多数钓鱼攻击” 的固有认知。
2026 年 7 月 ReliaQuest 安全实验室追踪监测到两款新型产业化钓鱼工具包 Jalisco 与 OmegaLord,两款工具核心设计目标为自动化绕过企业部署的 MFA 防护体系,且已深度集成 AI 驱动 PhaaS 平台 EvilTokens 实现规模化投放。从威胁监测数据来看,2026 年上半年设备代码钓鱼攻击同比涨幅超 300%,攻击者不再依赖传统仿冒站点窃取账号密码,转而利用云身份协议原生流程实现身份劫持,传统安全设备难以识别此类依托官方域名、合规协议发起的恶意操作。
Jalisco 工具突破传统设备码钓鱼的时效限制,内置实时 API 动态生成全新 OAuth 设备码,彻底抵消微软设备码 15 分钟生存周期的安全约束;OmegaLord 则改变传统凭证采集工具仅抓取账号密码的模式,强制收集用户绑定手机号,为后续 SIM 卡劫持、短信验证码拦截提供完整数据支撑。两款工具组合使用时,可覆盖企业主流 MFA 防护类型,分别针对无浏览器设备授权流、短信 / 语音二次验证形成双重攻击路径,对金融、跨境贸易、科技研发等高价值行业形成定向打击。
反网络钓鱼技术专家芦笛指出,当前政企安全建设存在明显防护认知偏差:多数企业将 MFA 作为身份安全最后一道防线,却忽略 OAuth 协议配置漏洞、钓鱼工具产业化、AI 诱饵生成带来的攻防代差,攻击者已经形成标准化、自动化、低门槛的 MFA 绕过流水线,而企业防御仍停留在基础账号校验、静态黑名单拦截层面,攻防能力失衡直接导致新型钓鱼攻击逃逸率持续攀升。
1.2 国内外相关研究现状
国外网络安全研究领域已针对设备代码钓鱼开展多维度分析,Trend Micro、ReliaQuest、Microsoft 安全响应团队分别发布威胁报告,梳理 OAuth 设备授权流滥用的攻击特征、日志标识与基础处置策略,研究重点集中于单一攻击手段的技术拆解,缺少两类差异化 MFA 绕过工具的横向对比分析,同时未结合 AI-PhaaS 产业化背景解读攻击扩散底层动因。商业化安全厂商推出的身份检测工具仅针对已知恶意设备注册行为做告警,缺少轻量化、可自主部署的异常授权检测脚本,中小微企业难以落地配套防护。
国内现有学术成果多聚焦中间人钓鱼(AiTM)、传统凭证窃取攻击,针对 Jalisco 这类实时动态设备码工具、OmegaLord 手机号劫持工具的系统性研究较少,现有防御方案仅停留在禁用设备码流程的单一处置手段,未构建覆盖邮件、身份平台、终端、人员的多层闭环防护体系,同时缺少适配国内企业云办公场景的工程代码验证。针对 AI 赋能 PhaaS 放大 MFA 绕过攻击危害的耦合关系,现有文献未形成完整论据链条,行业专家研判观点与技术机理的结合度不足。
1.3 研究内容与创新点
本文核心研究内容分为六大模块:第一,梳理 Jalisco、OmegaLord 两款工具开发背景、产品定位与底层技术差异;第二,完整拆解两类工具全链路攻击流程、绕过 MFA 的底层实现逻辑;第三,分析 AI-PhaaS 平台对攻击规模化、隐蔽性的放大作用;第四,系统归纳传统 MFA 与邮件安全体系的多层失效诱因;第五,设计异常 OAuth 设备授权行为检测 Python 代码原型,复现云身份日志风险识别逻辑;第六,构建适配云租户的四层闭环防御架构,形成可落地的运维处置流程。
本文创新点包含三方面:
第一,首次将两款技术路线完全不同的 MFA 绕过工具做系统性对比研究,区分协议滥用型攻击与手机号劫持型攻击的防御侧重点,弥补现有研究单一攻击样本分析的局限性;
第二,将反网络钓鱼技术专家芦笛的行业实战研判嵌入攻防机理、防御短板、防护策略全章节,结合一线威胁运营数据形成完整论证闭环,避免纯技术理论脱离企业真实运维场景;
第三,实现轻量化可运行的云身份日志检测代码,无需依赖商业 SIEM 平台,中小企业可直接部署用于实时监控 Jalisco 类设备码钓鱼异常行为,具备工程实操价值。
1.4 论文结构安排
本文主体章节安排如下:第二章介绍 Jalisco、OmegaLord 两款钓鱼工具包基础功能与技术定位;第三章完整拆解两类工具绕过 MFA 的全链路攻击机理,解析 OAuth 协议漏洞与手机号劫持实现逻辑;第四章分析 AI 驱动 PhaaS 平台对攻击链路的赋能机制;第五章系统剖析传统 MFA 防护、邮件安全网关的多重底层缺陷;第六章提供异常 OAuth 设备授权检测 Python 代码原型与逻辑说明;第七章构建面向两类新型钓鱼工具的四层闭环防御体系;第八章总结全文研究结论,梳理研究局限与后续拓展方向。
2 Jalisco 与 OmegaLord 钓鱼工具包基础功能与技术定位
2.1 产业化钓鱼工具包发展背景
传统钓鱼攻击存在技术门槛高、诱饵制作效率低、MFA 绕过难度大三大痛点,暗网黑产逐步推动钓鱼工具向模块化、自动化、AI 集成化演进,钓鱼即服务(PhaaS)模式大幅降低攻击者入场成本。攻击者仅需支付订阅费用,即可使用完整后端面板、动态诱饵生成、凭证自动采集、令牌持久化管理全套能力,无需掌握 OAuth 协议、前端页面开发、云服务器运维等专业技术。
2026 年流通的 EvilTokens 作为代表性 AI-PhaaS 平台,开放标准化 API 接口,可供第三方钓鱼工具包对接调用,实时生成全新设备码、动态渲染仿冒页面、批量输出定制化钓鱼邮件。Jalisco 与 OmegaLord 均深度适配 EvilTokens 接口,形成 “PhaaS 平台供给诱饵 + 专用工具完成 MFA 绕过” 的组合攻击模式,两类工具面向不同 MFA 防护场景形成互补,在定向企业攻击活动中常搭配投放。
2.2 Jalisco 设备代码钓鱼工具包核心功能
ReliaQuest 威胁情报明确,Jalisco 是专门针对 OAuth2.0 设备授权流开发的专用钓鱼平台,核心目标是绕开各类形式的 MFA 二次验证,全程不接触用户明文账号密码,其核心功能模块分为四层。
2.2.1 实时设备码生成 API 模块
传统设备码钓鱼工具存在显著短板:需要提前批量预生成设备码存储于后台,设备码遵循微软 15 分钟 TTL 生存规则,超时后自动失效,攻击投放窗口期极短。Jalisco 内置实时 lure-generation 诱饵生成引擎,当受害者打开钓鱼页面瞬间,后端自动向微软 Entra ID 授权接口发起请求,即时生成全新未过期 device_code 与 user_code,彻底消除时效限制,这也是该工具相较于传统设备码套件的核心突破。
2.2.2 后端令牌轮询管理门户
工具内置持续轮询接口,用户前往微软官方 devicelogin 页面输入 user_code 并完成授权后,后台实时接收服务器下发的 access_token 与 refresh_token。配套 Web 管理面板统一存储全部受害账号令牌,攻击者可批量查看、导出、复用令牌访问目标租户 SaaS 资源,无需重复发起钓鱼流程即可实现长期账户驻留。
2.2.3 EvilTokens 平台对接适配层
Jalisco 通过标准化接口对接 EvilTokens AI-PhaaS 平台,自动同步目标企业信息、员工岗位数据,由大模型生成贴合企业业务场景的钓鱼邮件诱饵,诱饵内嵌入指向工具后台的跳转链接,实现 “AI 诱饵投递 - 设备码实时生成 - 授权劫持” 自动化流水线。
2.2.4 持久化入侵自动化脚本
成功获取令牌后,工具自动执行批量驻留操作:在受害租户 Entra ID 绑定多台攻击者受控设备、创建邮箱转发规则、批量导出 SharePoint、OneDrive 涉密文档,完成数据窃取后发起勒索或商务邮件劫持二次攻击。
2.3 OmegaLord 手机号劫持凭证采集工具核心功能
OmegaLord 为 JavaScript 开发的轻量凭证采集工具,技术路线回归传统页面钓鱼,但针对现代 MFA 防护做针对性改造,核心突破在于同步采集用户绑定手机号,为短信、语音 MFA 劫持提供前置数据支撑,工具核心功能分为三部分。
2.3.1 仿 PDF 阅读器伪造登录页面
工具默认渲染 PDF 文档加载异常弹窗,诱导用户输入账号、密码完成 “文档权限解锁”,页面视觉样式复刻微软 Office 在线 PDF 阅读器,普通用户难以区分仿冒站点与官方服务页面。页面前端 JavaScript 实时采集表单全部输入内容,通过加密接口回传攻击者后台。
2.3.2 手机号强制采集逻辑
区别于传统凭证采集工具仅抓取账号密码,OmegaLord 表单强制增加手机号输入框,设置前端校验规则,不填写手机号无法提交登录信息。攻击者收集手机号后,可联合 SIM 劫持工具、短信嗅探工具拦截用户收到的 MFA 验证码,实现二次验证劫持。
2.3.3 批量数据导出与靶标分层模块
后台自动将采集到的账号、密码、手机号三元组结构化存储,按照企业、部门、岗位分层标记高价值靶标(财务、运维、高管),批量导出数据对接后续 MFA 劫持工具,形成完整账号窃取 - 二次验证绕过链路。
2.4 两类工具技术路线差异化对比
Jalisco 与 OmegaLord 虽然均以绕过 MFA 为核心目标,但底层攻击逻辑、风险路径、防御切入点存在本质区别,清晰区分二者技术差异是搭建分层防御体系的基础。
第一,攻击依托载体不同:Jalisco 复用微软官方 OAuth 授权域名microsoft.com/devicelogin,无第三方仿冒可信站点;OmegaLord 完全依赖自建仿冒 PDF 网页,属于传统站点钓鱼升级形态。
第二,MFA 绕过底层原理不同:Jalisco 利用设备授权流协议特性,用户完成官方 MFA 校验等同于主动授权攻击者设备,无需捕获验证码;OmegaLord 仅窃取基础凭证,依靠后续手机号劫持手段拦截 MFA 验证信息。
第三,持久化能力存在差距:Jalisco 获取长效 refresh_token,即便用户修改账户密码仍可持续访问;OmegaLord 仅持有账号密码,用户修改密码后攻击链路直接失效。
第四,检测信号特征不同:Jalisco 会产生大量设备码注册、陌生设备绑定日志;OmegaLord 无云身份协议异常日志,风险信号集中于恶意仿冒页面、手机号采集表单。
3 Jalisco 与 OmegaLord 绕过 MFA 全链路攻击机理
3.1 OAuth2.0 设备授权流原生标准流程(RFC8628)
理解 Jalisco 攻击逻辑需要先厘清设备代码授权流原始设计目标:该协议为无输入屏幕、无法完成完整网页登录的受限设备(智能打印机、电视、IoT 终端)设计,标准交互流程分为四步:
受限设备向 Entra ID 授权服务器发起请求,服务器返回短期有效 device_code、用户手动输入的 user_code、设备码过期时间;
设备后台持续轮询令牌请求接口,等待用户完成授权;
用户使用手机、电脑等常规设备访问微软官方设备登录页,输入 user_code,完成账号登录与 MFA 二次校验;
用户点击同意授权后,授权服务器向受限设备下发 access_token 与 refresh_token,设备凭借令牌访问用户云端资源。
协议原生安全假设为:发起请求的设备为企业内部可信 IoT 终端,user_code 生成与使用存在严格时效约束,攻击者无法实时批量生成全新设备码。Jalisco 的核心突破就是打破时效约束,同时将恶意服务器伪装为合法受限设备,完全颠覆协议安全前提。
3.2 Jalisco 设备代码钓鱼完整攻击链路与 MFA 绕过逻辑
整套攻击分为诱饵投递、实时设备码生成、诱导授权、令牌劫持、持久渗透五大阶段,全流程天然绕过企业部署的各类 MFA 机制。
3.2.1 AI 定制化诱饵邮件投递
工具对接 EvilTokens 平台后,大模型读取目标企业公开业务信息,生成财务对账、系统权限升级、合同文档查看类高仿真邮件,邮件内链接指向 Jalisco 后台伪造的文档加载页面,页面提示 “文档加载失败,请获取设备授权码完成解锁”。
3.2.2 受害者访问页面触发实时设备码生成
用户点击邮件链接进入钓鱼页面瞬间,Jalisco 后端自动调用微软 OAuth 接口,即时生成全新未过期 device_code 与 6 位 user_code 展示在页面,彻底规避传统工具预生成设备码超时失效问题,ReliaQuest 将该核心技术命名为 lure-generation。
3.2.3 诱导用户跳转官方域名完成 MFA 校验
页面引导用户复制 user_code,前往https://microsoft.com/devicelogin微软官方域名输入验证,用户在可信域名输入账号密码并完成推送、短信、FIDO 任意形式 MFA 校验,全程无任何仿冒站点介入,浏览器安全插件、URL 信誉库无法标记风险。
3.2.4 后台轮询捕获长效访问令牌
Jalisco 服务器持续轮询令牌端点,用户完成授权确认瞬间,服务器接收 Entra ID 下发的 access_token 与有效期数月的 refresh_token。整个过程攻击者从未接触用户明文账号、密码、MFA 验证码,依托协议流程直接获得账户完整访问权限,天然绕过 MFA 防护。
3.2.5 租户内横向渗透与数据窃取
攻击者利用令牌登录受害账户,批量绑定陌生设备至 Entra ID 租户建立持久驻留,修改邮箱转发规则隐藏攻击痕迹,批量导出云端涉密文档,针对财务账号发起商务邮件劫持欺诈。
反网络钓鱼技术专家芦笛强调,Jalisco 攻击最核心的欺骗点在于信任劫持:用户默认微软官方登录页面绝对安全,放松警惕完成授权,企业传统防御体系仅拦截外部恶意域名,对依托白名单域名、合规协议发起的恶意操作完全无感知。
3.3 OmegaLord 手机号劫持式 MFA 绕过完整攻击链路
OmegaLord 无法直接绕过 MFA 校验,而是通过前置采集手机号构建完整劫持链路,攻击分为诱饵投放、仿冒页面凭证采集、手机号存储、MFA 劫持、账号接管五个阶段。
3.3.1 钓鱼邮件诱饵分发
依托 EvilTokens 生成文档异常通知类邮件,附件或链接指向 OmegaLord 搭建的仿 PDF 阅读器页面,页面提示 “文件权限校验需要登录企业账号解锁”。
3.3.2 三层表单强制采集账号、密码、手机号
页面展示仿微软登录表单,设置前端校验逻辑,仅填写邮箱、密码无法提交,必须补充绑定手机号才能进入下一步。JavaScript 脚本实时捕获全部表单数据,加密传输至攻击者后台存储。
3.3.3 基于手机号实施 MFA 劫持
攻击者拿到三元组数据后,采用两类主流手段绕过二次验证:第一,发起 SIM 卡置换攻击,补办目标用户手机卡拦截短信验证码;第二,批量向目标账号发起登录请求,持续推送微软验证器弹窗,利用用户烦躁心理诱导点击批准,完成推送 MFA 绕过。
3.3.4 登录账户完成资源窃取
攻击者输入窃取的账号密码,配合拦截获取的 MFA 验证码完成登录,建立浏览器会话窃取 Cookie,访问云端邮件、文档数据,实施欺诈与数据泄露。
3.3.5 攻击局限性说明
OmegaLord 攻击链路存在明显短板:一旦用户修改账户密码,攻击者持有的凭证直接失效;若企业全员部署 FIDO 安全密钥,无短信、推送 MFA 通道可供劫持,该工具攻击成功率大幅下降。
4 AI 驱动 PhaaS 平台对 MFA 绕过攻击的赋能机制
Jalisco、OmegaLord 两类工具的规模化扩散离不开 EvilTokens 等 AI 原生钓鱼即服务平台支撑,生成式 AI 从目标侦察、诱饵生成、攻击投放、样本迭代全链路降低攻击落地难度,放大 MFA 绕过工具的破坏能力。
4.1 AI 自动化侦察实现精准定向攻击
PhaaS 平台内置 AI 爬虫引擎,自动抓取企业官网、社交平台、公开项目文档、员工往来邮件,结构化提取岗位、业务流程、常用沟通话术等信息,无需攻击者人工整理靶标资料。大模型基于侦察数据划分高价值目标,优先向财务、运维、高管投放 Jalisco、OmegaLord 钓鱼诱饵,大幅提升攻击转化率。
4.2 LLM 生成无特征高仿真钓鱼诱饵
传统人工编写钓鱼邮件存在语法错误、场景违和、生硬诱导等可识别特征,邮件安全网关依靠关键词、语义规则即可拦截。AI 可复刻企业内部行文风格,生成贴合真实业务场景的通知文本,无固定高危词汇、无明显文本异常,静态规则体系难以识别。同时 AI 自动生成多版本差异化诱饵,每一封邮件文本存在细微改写,规避文本哈希匹配检测。
反网络钓鱼技术专家芦笛补充说明,AI 诱饵生成彻底打破传统钓鱼的特征边界,同一企业每日可收到数十份语义完全不同的钓鱼邮件,安全团队无法通过人工维护规则实现全覆盖拦截,为 Jalisco、OmegaLord 两类 MFA 绕过工具提供稳定投放通道。
4.3 标准化 API 实现工具自动化联动
EvilTokens 对外开放统一接口,Jalisco 可调用接口实时获取 AI 生成诱饵、批量分发钓鱼链接;OmegaLord 可同步靶标分层数据,优先针对高价值岗位投放手机号采集页面。整套链路无需人工中转操作,攻击者单次配置即可完成上万份诱饵批量投递,攻击规模实现指数级扩张。
4.4 AI 驱动逃逸特征自动迭代
PhaaS 平台内置对抗模块,自动测试诱饵、页面能否绕过主流邮件安全网关、浏览器防护插件,实时调整文本隐形字符、页面代码混淆规则、链接跳转逻辑,持续优化逃逸能力,延长 Jalisco、OmegaLord 钓鱼页面存活周期。
5 传统 MFA 与邮件安全体系多层失效成因
Jalisco 与 OmegaLord 规模化攻击暴露当前政企身份安全、邮件防护架构存在多重底层短板,分为协议管控缺陷、邮件检测短板、MFA 防护单一化、人员认知不足四大层面。
5.1 Entra ID OAuth 设备码协议管控缺失
多数企业租户默认全局开放 OAuth 设备授权流,未通过条件访问策略做精细化限制,未区分合法 IoT 设备与恶意第三方客户端。管理员缺少设备码注册行为监控手段,无法及时发现 Jalisco 批量生成设备码、陌生设备绑定的异常日志;同时未限制 offline_access 长效刷新令牌权限,攻击者获取令牌后可长期驻留账户。
5.2 邮件安全网关静态检测机制存在盲区
现有邮件防护工具依赖关键词、正则、恶意域名黑名单三层静态检测,面对 AI 生成诱饵、官方白名单域名跳转场景全面失效:第一,AI 诱饵无固定高危关键词,规则无法匹配;第二,Jalisco 诱导跳转微软官方域名,URL 信誉库标记为可信地址;第三,无法解析邮件链接后端实时生成设备码的动态行为,仅做静态页面特征扫描。
5.3 单一 MFA 防护无法覆盖全部攻击路径
企业普遍存在 MFA 部署单一化问题:仅部署短信、推送验证,未强制 FIDO 安全密钥,给 OmegaLord 手机号劫持攻击留出操作空间;同时企业错误认为 MFA 是完整防护闭环,忽略 OAuth 协议滥用带来的协议层绕过风险,Jalisco 可在用户完成 MFA 校验后直接获取账户权限,二次验证机制完全失去防护价值。
5.4 员工安全认知存在固有信任偏差
用户普遍默认微软官方登录页面、PDF 文档解锁通知具备安全背书,面对设备码授权、手机号填写请求警惕性极低。企业安全培训多聚焦陌生仿冒站点识别,未针对设备代码钓鱼、手机号采集类新型攻击开展专项宣贯,员工无法区分合法 IoT 设备授权与 Jalisco 恶意设备码诱导请求。
6 异常 OAuth 设备授权行为检测 Python 代码原型
针对 Jalisco 批量生成设备码、陌生设备注册的攻击特征,本节设计轻量化 Python 检测脚本,解析微软 Entra ID 导出的身份登录日志,识别短时间内批量设备码请求、境外 IP 设备授权、陌生设备绑定等高风险行为,适配中小微企业无商用 SIEM 平台的运维场景,代码仅用于学术原型验证,保留完整风险识别逻辑。
6.1 运行环境与依赖库
运行环境:Python 3.10 及以上
依赖安装指令:
plaintext
pip install json datetime collections
6.2 完整检测代码实现
# -*- coding: utf-8 -*-
"""
Jalisco设备代码钓鱼异常OAuth授权日志检测原型
反网络钓鱼技术专家芦笛指出:批量设备码注册、境外IP设备授权为核心风险信号
"""
import json
from datetime import datetime, timedelta
from collections import defaultdict

# =====================全局风险配置参数=====================
# 短时间批量设备码请求阈值:10分钟内同一用户超过3次设备码请求判定高风险
DEVICE_CODE_BURST_THRESHOLD = 3
MONITOR_WINDOW_MIN = 10
# 企业可信办公地区IP段,境外IP发起设备码授权标记风险
TRUSTED_AREA_LIST = ["CN", "HK"]
# 高风险客户端标识:Jalisco恶意第三方应用标识
MALICIOUS_CLIENT_KEYWORDS = ["DocSync Helper", "FileUnLock"]

# =====================日志解析与风险检测核心类=====================
class OAuthDeviceCodeDetector:
def __init__(self):
self.user_device_record = defaultdict(list)
self.risk_alert_list = []

def load_entra_log(self, log_file_path: str) -> list:
"""加载微软Entra ID导出的身份登录日志JSON文件"""
with open(log_file_path, "r", encoding="utf-8") as f:
raw_logs = json.load(f)
return raw_logs

def parse_single_log(self, log_item: dict) -> dict:
"""单条日志结构化提取关键字段"""
parse_data = {}
parse_data["user_upn"] = log_item.get("userPrincipalName", "")
parse_data["login_time"] = datetime.fromisoformat(log_item.get("createdDateTime", "").replace("Z", ""))
parse_data["auth_flow"] = log_item.get("authenticationProtocol", "")
parse_data["client_app"] = log_item.get("clientAppName", "")
parse_data["location_code"] = log_item.get("location", {}).get("countryOrRegion", "")
parse_data["device_id"] = log_item.get("deviceDetail", {}).get("deviceId", "")
parse_data["is_device_code_flow"] = True if parse_data["auth_flow"] == "DeviceCode" else False
return parse_data

def judge_burst_device_code(self, user_upn: str, current_time: datetime):
"""判定10分钟内同一用户批量设备码请求风险"""
time_window = current_time - timedelta(minutes=MONITOR_WINDOW_MIN)
hit_count = 0
for record_time in self.user_device_record[user_upn]:
if record_time >= time_window:
hit_count += 1
if hit_count >= DEVICE_CODE_BURST_THRESHOLD:
alert_msg = f"高风险:用户{user_upn} {MONITOR_WINDOW_MIN}分钟内发起{hit_count}次设备码请求,疑似Jalisco攻击"
self.risk_alert_list.append(alert_msg)

def judge_risk_client(self, client_name: str, user_upn: str):
"""识别恶意第三方客户端应用"""
for keyword in MALICIOUS_CLIENT_KEYWORDS:
if keyword in client_name:
alert_msg = f"高风险:用户{user_upn}使用恶意标识客户端{client_name}发起设备码授权"
self.risk_alert_list.append(alert_msg)

def judge_untrusted_location(self, area_code: str, user_upn: str):
"""识别境外不可信地区发起设备码授权"""
if area_code not in TRUSTED_AREA_LIST and area_code != "":
alert_msg = f"中风险:用户{user_upn}在非可信地区{area_code}发起设备码登录授权"
self.risk_alert_list.append(alert_msg)

def full_scan_logs(self, log_path: str):
"""完整日志扫描全流程"""
raw_logs = self.load_entra_log(log_path)
for log in raw_logs:
data = self.parse_single_log(log)
if not data["is_device_code_flow"]:
continue
user = data["user_upn"]
current_dt = data["login_time"]
# 记录用户设备码请求时间戳
self.user_device_record[user].append(current_dt)
# 三层风险判定
self.judge_burst_device_code(user, current_dt)
self.judge_risk_client(data["client_app"], user)
self.judge_untrusted_location(data["location_code"], user)
return self.risk_alert_list

# =====================测试运行入口=====================
if __name__ == "__main__":
detector = OAuthDeviceCodeDetector()
# 替换为本地Entra ID日志JSON文件路径
test_log_path = "entra_login_log.json"
risk_alerts = detector.full_scan_logs(test_log_path)
print("=====Jalisco设备代码钓鱼风险检测告警清单=====")
if len(risk_alerts) == 0:
print("未检测到设备码钓鱼相关异常行为")
else:
for idx, alert in enumerate(risk_alerts, 1):
print(f"{idx}. {alert}")
6.3 代码逻辑说明与落地价值
风险信号分层识别:脚本针对 Jalisco 攻击三大核心特征做检测,分别为短时间批量设备码请求、恶意第三方客户端标识、境外 IP 设备授权,完全匹配 ReliaQuest 披露的威胁日志特征;
轻量化无依赖部署:仅解析微软原生导出 JSON 日志,无需对接 SIEM、云安全 API,中小企业 IT 管理员可每日定时执行扫描,及时发现批量设备码钓鱼活动;
可拓展适配 OmegaLord 检测:可新增仿 PDF 页面访问日志、表单手机号采集字段识别模块,同步覆盖两类工具风险信号;
告警可审计:所有风险输出完整可读文字告警,直接用于安全运营人员人工复核、租户条件访问策略优化。
该原型为基础检测逻辑,企业级商用检测系统会接入实时云身份 API 实现流式日志监控,同时结合用户长期行为基线降低误报率,底层风险识别逻辑与本文代码保持一致。
7 面向 Jalisco 与 OmegaLord 的四层闭环防御体系
结合两类工具差异化攻击路径、传统防护体系短板,本文构建 “邮件前置过滤 - 云租户身份管控 - 实时行为审计 - 全员安全培训” 四层一体化防御架构,同时区分两类工具针对性处置策略,形成攻防闭环。
7.1 第一层:AI 原生邮件安全网关前置拦截(阻断诱饵投递)
针对 EvilTokens 生成的 AI 仿真诱饵、指向 Jalisco/OmegaLord 后台的钓鱼链接,替换传统静态规则网关,部署多智能体动态邮件检测体系:
部署仿生语义智能体识别 AI 生成文本特征,检测隐形 Unicode 逃逸字符、无逻辑突兀紧急诱导话术,拦截未命中关键词的高仿真钓鱼邮件;
新增链接动态行为解析模块,识别访问链接后实时生成设备码的后端交互行为,提前阻断 Jalisco 诱饵页面跳转;
针对 OmegaLord 仿 PDF 页面建立页面特征库,检测前端强制手机号采集表单代码,标记页面为高风险钓鱼站点。
反网络钓鱼技术专家芦笛强调,前置邮件拦截是成本最低的防护环节,在诱饵送达员工前阻断攻击链路,可大幅降低后续身份平台运维压力。
7.2 第二层:Entra ID 租户精细化条件访问管控(阻断 Jalisco 协议滥用)
针对 Jalisco OAuth 设备码钓鱼攻击,从协议权限层面关闭核心利用通道,配置三类强制策略:
全局禁用非必要 OAuth 设备授权流,仅为生产环境 IoT 打印机、智能电视创建例外用户组,其余员工完全禁止设备码登录;
限制第三方客户端权限,拦截 DocSync Helper、FileUnLock 等恶意标识应用申请离线刷新令牌;
强制高价值岗位(财务、高管、运维)仅允许 FIDO 安全密钥完成 MFA 校验,屏蔽短信、推送验证通道,同步削弱 OmegaLord 手机号劫持攻击成功率。
7.3 第三层:云身份日志实时行为审计(攻击事后快速溯源处置)
部署前文 OAuth 设备授权检测脚本,搭配微软原生身份告警规则,建立实时监控机制:
定时扫描 Entra ID 登录日志,批量设备码请求、境外设备授权行为触发即时告警;
配置陌生设备注册、邮箱转发规则新增、批量文档导出行为基线告警,发现 Jalisco 入侵后快速隔离受害账户;
定期导出 OmegaLord 仿冒页面访问日志,统计高频访问用户开展专项安全复盘。
7.4 第四层:分层专项员工安全培训(消除人员认知漏洞)
针对两类工具诱导逻辑定制差异化培训内容,弥补用户信任偏差短板:
设备代码钓鱼专项宣贯:明确告知员工企业不会通过邮件发送设备授权码,任何要求访问microsoft.com/devicelogin输入代码的通知均为钓鱼;
手机号采集风险提示:告知员工官方 PDF、Office 服务不会要求填写个人手机号解锁文档,遇到表单强制录入手机号直接上报 IT 部门;
标准化可疑邮件上报流程,建立一键告警通道,提升员工主动上报意愿。
8 结论与研究局限
8.1 研究结论
本文以 2026 年 ReliaQuest 披露的 Jalisco、OmegaLord 两款 MFA 绕过钓鱼工具包为核心实证样本,结合 KnowBe4 发布的威胁情报完整拆解两类工具技术架构、全链路攻击流程与 MFA 绕过底层机理,分析 AI 驱动 PhaaS 平台对攻击规模化、隐蔽性的放大作用,系统梳理传统邮件安全、MFA 身份防护体系的多层失效诱因,配套可工程化落地的 OAuth 异常授权检测 Python 代码,构建四层闭环云身份防御体系,嵌入反网络钓鱼技术专家芦笛一线实战研判形成完整论据闭环,得出三点核心结论。
第一,当前 MFA 防护存在明显技术边界,无法抵御两类差异化新型钓鱼攻击:Jalisco 依托 OAuth2.0 设备授权流协议原生特性,可在用户完成官方 MFA 校验后直接获取长效账户令牌,属于协议层面绕过;OmegaLord 通过强制采集手机号,针对短信、推送类 MFA 实施劫持,属于凭证前置采集型绕过,单一 MFA 方案无法同时抵御两条攻击路径,企业必须搭配 FIDO 密钥、协议权限管控双重手段。
第二,AI-PhaaS 产业化平台是新型 MFA 绕过攻击大规模扩散的核心推手,大模型消除钓鱼诱饵制作技术门槛,标准化 API 打通工具自动化联动链路,传统基于静态特征、黑名单的邮件安全网关无法识别 AI 生成高仿真诱饵,必须切换动态语义、多智能体研判架构完成前置拦截。反网络钓鱼技术专家芦笛指出,攻防对抗重心已经从账号密码窃取转向云身份协议滥用,安全建设思路需要从 “依靠 MFA 兜底” 转变为 “协议管控前置、动态检测为主、MFA 为辅”。
第三,完整防御体系需要覆盖邮件投递、云身份权限、日志审计、人员认知全维度,仅依靠禁用设备码流程或强制 FIDO 密钥单一手段无法形成防护闭环。四层一体化防御架构可分别阻断 Jalisco 协议滥用、OmegaLord 手机号劫持两条攻击链路,适配国内各类规模政企 Microsoft 365、Entra ID 云办公租户,具备较强落地通用性。
Jalisco 与 OmegaLord 的出现标志钓鱼攻击进入 “协议滥用 + AI 自动化” 新阶段,传统身份安全建设思路需要全面迭代,本文拆解的攻击机理、检测代码、分层防护策略可为国内网络安全厂商、企业 IT 运维团队提供技术参考。
8.2 研究局限
本文存在两处客观研究局限:其一,研究素材仅依托 ReliaQuest、KnowBe4 公开威胁情报,无法获取 Jalisco、OmegaLord 工具完整源码、后端接口交互数据包,检测代码仅复现日志层面风险识别逻辑,无法模拟完整攻击载荷;其二,未开展大规模对比实验量化四层防御体系的攻击拦截率、误报率数值,仅依托公开威胁数据完成定性攻防分析,缺少实测量化数据支撑。
8.3 后续研究拓展方向
后续可围绕两大方向深化研究:第一,搭建隔离实验环境复现两款工具完整攻击链路,采集全量交互日志,量化四层防御体系对 Jalisco、OmegaLord 诱饵邮件、授权行为的拦截效果;第二,基于中文企业办公场景,优化 AI 钓鱼诱饵识别智能体,研发适配国内飞书、钉钉云身份体系的设备码钓鱼检测模块,填补国产化协同办公平台新型钓鱼防御研究空白。
编辑:芦笛(公共互联网反网络钓鱼工作组)

http://www.jsqmd.com/news/1263049/

相关文章:

  • 基于Docker部署Apache Doris集群:从零到生产级实践指南
  • 【CarbonData】CarbonData 的元数据是如何管理和存储的?它与 Hive Metastore 的关系是什么?
  • 复试准备背诵
  • WordPress生产环境部署与优化实战指南
  • Runway AI视频生成新模型解析:Seedance 4K、Mini与Kling 3.0 Turbo实战指南
  • 从基础到进阶:ipycanvas事件系统与用户交互实现指南
  • MSP430FR系列FRAM MCU深度解析:从超低功耗设计到实战开发
  • 【智能工单】工单系统的进化简史:从纸质单据到AI服务闭环
  • 自主多智能体邮件安全对抗 AI 生成钓鱼攻击的架构与防御体系研究
  • AiToEarn:一站式AI内容营销自动化平台部署与集成指南
  • 2026 年 7 月新发布:海陵正规的塑胶跑道铲除回收企业哪家好,别让这些塑料陷阱拖垮你的场地! - 行业推荐官【官方】
  • 英雄联盟Akari助手:基于LCU API的终极游戏效率工具,快速提升你的操作水平
  • AI工具如何将Pygame安装效率提升3倍?从依赖地狱到一键部署
  • Kali Linux虚拟机安装与汉化全攻略:从环境搭建到工具验证
  • 我与 IT 这三十年:2010,百度 Hi 里的技术群
  • 本地旧衣回收平台靠谱吗?爱宝拉上门回收最高0.8元/公斤,签收秒提现! - 快递物流资讯
  • OpenMP进阶:内存模型、调度策略与性能调优实战
  • UE4蓝图实战:动态生成可编辑样条道路系统全解析
  • 3个维修隐坑|东莞笔记本插耳机仍外放自查,90%不用更换声卡
  • 2026年7月湘潭湘菜私房宴餐厅推荐:地道湘味、融合宴席、商务宴请、家庭聚餐优选指南 - 海棠依旧大
  • 2025广州AI+案例集:技术实现与行业应用解析
  • Java高并发会员系统架构设计:从分库分表到微服务实战
  • 麒麟系统虚拟机搭建Unity测试环境:国产化迁移实战指南
  • 压缩包密码忘了怎么办?3分钟快速找回加密文件的终极指南
  • PHP转Go系列 | PHP 这些新函数让你眼前一亮
  • 终极暗黑2宽屏高帧率解决方案:D2DX让你的经典游戏重获新生
  • Codex接入DeepSeek API配置优化与Token消耗控制实战指南
  • 3步掌握Photon光影包:打造电影级Minecraft视觉体验的完整指南
  • Unity角色攻击系统进阶:从状态机到连招手感优化
  • 从零构建商用AI Agent:基于LangChain与ReAct框架的实战指南