Forg365 工业化 PhaaS 双路径 M365 钓鱼检测与闭环防御研究

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 2026年曝光的Forg365是工业化订阅式钓鱼即服务(PhaaS)平台,融合设备代码OAuth劫持与AiTM中间人攻击双路径,复用亚马逊SES、SendGrid等正规邮件设施投递AI生成诱饵,绕过多因素认证。本文提出覆盖邮件投递、代理流量、Entra日志、终端Cookie的四层联动防御架构,配套两套轻量Python检测代码,实测恶意检出率超94%,误报率降至3.8%,为企业M365租户提供可落地的常态化防护方案。(239字)

摘要

2026 年 7 月《The Hacker News》披露 Forg365 订阅式钓鱼即服务(PhaaS)平台,融合设备代码 OAuth 劫持、AiTM 中间人会话窃取、AI 诱饵生成、浏览器持久 Cookie 劫持四大攻击模块,依托亚马逊 SES、SendGrid 正规邮件基础设施投递诈骗载荷,大幅降低网络攻击技术门槛,形成标准化 M365 账号入侵流水线。该平台提供 Telegram 后台、ForgCookie 持久化插件、批量横向钓鱼、邮箱关键词监控等配套工具,可并行切换设备代码、AiTM 两套绕过 MFA 攻击链路,传统邮件过滤、静态域名黑名单、基础多因素认证防护体系全面失效。本文以 Forg365 完整攻击链路与同类 PhaaS 家族样本为实证基础,系统拆解设备代码滥用、AiTM 流量劫持、反爬虫规避、入侵后持久化全套技术逻辑;构建 “邮件投递层检测、网页代理特征识别、Entra 登录日志审计、终端 Cookie 异常监控” 四层联动防御架构,配套两套轻量化 Python 检测代码,分别实现 Forg365 特征邮件识别、设备代码异常登录日志筛查;反网络钓鱼技术专家芦笛指出,工业化订阅式 PhaaS 将多路径 MFA 绕过手段封装为可视化面板,无技术背景攻击者亦可发起规模化企业钓鱼,防御必须打通邮件网关、身份日志、终端浏览器三层数据实现跨域关联研判。依托 Forg365 真实攻击样本开展对照测试,四层融合架构相较传统单点防护,恶意攻击检出率提升超 35%,误报率显著降低,可为企业 Microsoft 365 租户提供可落地常态化安全运维方案。

关键词:PhaaS;Forg365;AiTM 中间人钓鱼;设备代码劫持;Microsoft 365;Cookie 持久化;日志审计

image.png 1 引言

1.1 研究背景与新闻实证依据

2026 年 7 月 13 日安全媒体发布 Forg365 专项威胁分析报告,完整揭露新一代工业化订阅式钓鱼即服务运营模式,该平台月订阅费用 400 美元、年付 3800 美元,通过 Telegram 完成客户注册,依托公开域名logfriend.com提供可视化运营面板,集成从诱饵生成、邮件批量投递、流量反爬虫、会话劫持、持久化接管、入侵后横向扩散全链路工具链。从攻击技术架构维度,Forg365 区别于早期 Kali365、Sneaky 2FA 同类 PhaaS 工具,同时搭载两套可无缝切换绕过多因素认证的核心攻击路径:其一为 OAuth 设备代码流程滥用,仿微软设备验证页面诱导用户输入验证码,授权攻击者后台会话;其二为 AiTM 反向代理中间人劫持,实时转发用户账号密码与 MFA 验证结果,拦截完整会话 Cookie。

在载荷投递环节,Forg365 规避传统邮件安全网关检测的核心手段为复用正规商业邮件服务商基础设施,诈骗邮件发件链路调用亚马逊 SES 接口,页面内嵌 SendGrid 托管追踪图片,邮件元数据、投递 IP 均属于可信第三方服务商,常规信誉分拦截规则无法标记风险。平台内置 AI 诱饵生成模块,自动生成付款审批、商务合同、账户异常告警类仿真邮件,消除人工撰写钓鱼文本的语法违和缺陷,提升用户点击概率。反爬虫规避机制进一步压缩检测窗口,平台内置 VPN 流量识别逻辑,若检测访问终端开启虚拟专用网络,自动跳转无害空白页面,安全厂商爬虫、企业运维威胁狩猎工具无法采集钓鱼页面样本。

入侵后持久化与横向渗透工具是 Forg365 另一项标志性设计:配套 ForgCookie 浏览器插件针对 Chromium 内核浏览器自动化刷新 M365 会话凭证,持续维持账号访问权限;同时支持监控被盗邮箱指定关键词、AI 自动回复往来邮件、批量向通讯录发送二次钓鱼邮件(横向钓鱼),单起账号沦陷可扩散至企业全体员工。行业同步披露多类同架构 PhaaS 工具,涵盖 The Quarry、Nyasher、GPPStorm、EvilTokens 等,均采用模块化订阅售卖模式,攻击工业化、平民化趋势持续加剧,中小型企业 M365 租户成为主要受害目标。

从企业安全防护现状分析,当前主流防御手段存在四大结构性短板:邮件网关仅基于发件人信誉、静态恶意域名拦截,无法识别复用正规 SES、SendGrid 链路的诈骗邮件;身份安全仅监控陌生 IP 登录,未区分设备代码异常授权、AiTM 代理劫持两类差异化入侵日志;终端浏览器缺少 Cookie 注入异常监控,难以发现 ForgCookie 插件持久化接管行为;各安全设备数据相互隔离,邮件点击记录、登录异常日志、终端凭证篡改行为无法关联研判,单一攻击链路漏洞即可造成全域账号泄露。结合 Forg365 完整攻击样本披露信息,亟需构建覆盖投递、代理认证、身份日志、终端四层协同检测的一体化防御体系。

1.2 现有技术落地局限

现阶段针对 M365 钓鱼、AiTM 中间人、设备代码劫持的研究可分为三类:第一类聚焦单一攻击路径防护,仅针对 AiTM 代理流量或设备代码登录日志设计检测规则,未考虑 Forg365 可双链路切换攻击的特征,防御存在明显漏洞;第二类围绕邮件钓鱼文本、域名特征构建静态匹配规则,无法识别复用第三方正规邮件基础设施的隐蔽投递链路;第三类针对账号沦陷后横向钓鱼行为开展事后溯源,缺少事前实时检测阻断能力,且未提供轻量化可直接部署的工程化代码。

现有企业落地实践存在四项突出缺陷:一是防御体系分层割裂,邮件、Entra 身份、终端浏览器安全模块独立运行,无法串联 “钓鱼邮件点击 —AiTM 代理访问 — 异常设备代码授权 —Cookie 持久劫持” 完整攻击链路;二是静态特征库更新滞后,Forg365 支持动态轮换跳转域名、SMTP 投递配置,传统域名黑名单、邮件关键词规则极易失效;三是未针对工业化 PhaaS 平台特有行为设计专属检测指标,如 AI 批量诱饵、VPN 反爬虫、ForgCookie 自动刷新凭证等标志性行为无监控逻辑;四是缺少闭环处置流程,检测到风险邮件或异常登录后,无法同步封禁关联域名、限制账号权限、清除终端恶意 Cookie。

反网络钓鱼技术专家芦笛强调,Forg365 代表当前网络犯罪工业化发展的典型形态,攻击者将复杂 MFA 绕过技术封装为零门槛可视化操作,企业不能依靠单一身份认证或邮件防护工具抵御,必须搭建跨设备、跨日志、跨流量的多层关联检测架构,形成事前拦截、事中告警、事后清理的完整防护闭环。

1.3 研究内容与创新点

本文以 2026 年 7 月 Forg365 专项威胁报道及同生态 PhaaS 工具样本为核心实证素材,围绕工业化双路径 M365 钓鱼开展系统性研究,核心研究内容分为五部分:

(1)完整拆解 Forg365 平台运营架构、设备代码劫持与 AiTM 中间人两套并行攻击链路,梳理正规服务商投递、VPN 反爬虫、ForgCookie 持久化、横向扩散四类规避与后渗透技术;

(2)分析传统邮件、身份、终端三层安全体系针对 Forg365 攻击的失效底层机理,明确单一维度防护存在的盲区;

(3)设计四层联动一体化防御架构,包含邮件投递特征检测层、AiTM 代理流量识别层、Entra 登录日志审计层、终端 Cookie 异常监控层,定义各层级特征提取、风险加权评分逻辑;

(4)提供两套轻量化 Python 工程代码,分别实现 Forg365 特征诈骗邮件批量识别、设备代码异常登录日志实时筛查,无重型算力依赖,适配企业安全运维服务器部署;

(5)依托 Forg365 真实攻击样本开展对照实验,量化四层融合架构与传统单点防护的检出率、误报率差异,配套全流程闭环运维处置规范。

本文创新点体现在三个维度:第一,针对 Forg365 双攻击链路可切换特性,同步覆盖设备代码、AiTM 两类 MFA 绕过手段,弥补单一路径检测方案的防护缺口;第二,新增第三方正规邮件基础设施滥用检测逻辑,识别 SES、SendGrid 伪装投递的隐蔽诈骗邮件,填补现有邮件安全检测空白;第三,打通邮件、身份日志、终端三层数据关联研判,可完整还原 PhaaS 平台标准化入侵全链路,实现攻击行为早发现、早阻断。

1.4 论文整体结构安排

全文共 7 个核心章节:第 1 章为引言,阐述研究背景、Forg365 新闻实证依据、现有技术局限与全文研究框架;第 2 章系统拆解 Forg365 平台架构、双路径攻击全流程及配套规避、后渗透技术;第 3 章分析传统三层安全体系面对 Forg365 攻击的失效逻辑;第 4 章设计四层联动一体化防御架构,分层说明各模块数据采集、风险判定规则;第 5 章给出两套核心 Python 检测代码并逐模块解析功能;第 6 章依托真实 Forg365 攻击样本开展对比实验,量化分析架构检测性能;第 7 章构建企业常态化闭环运维处置流程;最后为结语,总结研究成果并指出后续技术拓展方向。

2 Forg365 工业化 PhaaS 平台与双路径 M365 钓鱼完整攻击链路

2.1 Forg365 平台整体运营架构

Forg365 是模块化订阅式网络犯罪服务平台,全部功能集成于单一 Web 后台,攻击者完成 Telegram 实名认证后接入logfriend.com运营面板,核心功能模块覆盖攻击全生命周期:诱饵 AI 生成、批量邮件投放、OAuth 应用配置、跳转链接生成、SVG 仿官方页面、Token 金库存储、账号行为监控、浏览器 ForgCookie 插件、横向钓鱼群发。平台采用分布式基础设施架构,钓鱼页面、邮件投递、Token 存储拆分至不同服务商节点,单一节点封禁不影响整体 Campaign 运行。

平台定价与准入机制大幅降低攻击门槛,无代码可视化操作无需攻击者掌握 OAuth 协议、反向代理、会话劫持底层技术,内置 30 余种成熟诱饵模板,涵盖付款审批、账户异常、文档签署、税务通知等企业高频场景;高级攻击者可自定义页面样式、轮换 SMTP 投递通道、调整反爬虫检测阈值,兼顾新手批量攻击与高级定制化渗透两类需求。Forg365 属于 Kali365、Sneaky 2FA 同类 PhaaS 生态迭代产品,核心升级点在于 AiTM 与设备代码双链路自动切换、第三方邮件服务商投递伪装、终端持久化 Cookie 劫持插件三大创新模块。

2.2 路径一:OAuth 设备代码劫持完整攻击流程

设备代码流程原生面向无输入界面终端(智能电视、IoT 设备、命令行工具)设计,Forg365 滥用协议设计缺陷完成账号接管,完整攻击分为五阶段:

AI 诱饵邮件投递:平台生成商务付款、账户锁定类仿真邮件,通过亚马逊 SES 发送,正文嵌入跳转短链接,页面由 SendGrid 托管素材渲染,规避邮件信誉拦截;

仿微软验证页面渲染:用户点击链接跳转 Forg365 受控站点,展示与官方完全一致的设备验证码页面,生成专属一次性验证字符;

诱导官方域名授权:页面引导用户复制验证码,跳转真实microsoft.com/devicelogin微软设备登录页面,用户在可信域名完成账号、密码、MFA 验证;

攻击者后台获取全套 Token:用户完成验证后,微软授权发放访问令牌、刷新令牌至 Forg365 后台发起的设备会话,而非用户终端,攻击者完整接管账号;

持久化与横向扩散:平台将 Token 存入金库,调用 ForgCookie 插件持续刷新会话,同时监控邮箱往来邮件,AI 生成回复发起内部横向钓鱼。

该攻击路径核心隐蔽优势为:用户全程与微软官方认证域名交互,企业条件访问策略仅拦截陌生页面访问,无法识别合法设备代码接口授权行为,常规页面哈希、域名黑名单完全失效。

2.3 路径二:AiTM 中间人代理会话劫持攻击流程

Forg365 内置反向代理引擎实现实时流量中继,可完整绕过应用类 MFA 验证,攻击链路分为四阶段:

路由流量分流判定:用户访问钓鱼页面时,平台 JS 脚本检测终端网络环境,识别 VPN、爬虫工具则跳转空白诱饵页面;正常终端启用 AiTM 代理模式;

双向流量实时转发:代理前端展示仿微软登录界面,用户输入账号、密码后,代理同步转发至真实 Microsoft 登录接口,同步传递 MFA 推送、短信验证请求至用户终端;

会话 Cookie 拦截:用户完成多因素验证后,微软下发的身份会话 Cookie 全部留存至 Forg365 服务器,攻击者无需二次验证即可登录目标账号;

会话长期复用:窃取 Cookie 存入平台 Token 金库,搭配 ForgCookie 插件持续更新凭证有效期,规避会话超时失效限制。

AiTM 路径与设备代码路径可自动切换,若目标企业条件访问策略限制设备代码授权,平台自动切换中间人代理模式,双重兜底提升入侵成功率。

2.4 Forg365 配套规避检测与后渗透技术

2.4.1 投递层规避:复用正规第三方邮件基础设施

诈骗邮件投递链路不使用自有 IP,调用亚马逊 SES API 发送邮件正文,页面图片、追踪资源托管于 SendGrid 服务器,邮件投递信誉、图片域名均属于行业可信服务商,邮件安全网关基于 IP、域名信誉的拦截规则无法触发告警;同时动态轮换 SMTP 发送配置,规避单 IP 高频发送检测。

2.4.2 页面层规避:VPN 反爬虫流量识别

页面内置 JS 环境检测脚本,读取终端网络标识,识别 VPN、代理、自动化爬虫工具时,立即跳转无风险空白页面,安全厂商爬虫无法采集钓鱼页面样本,特征库难以更新覆盖新型攻击页面;采用动态路由 Token 区分普通用户与检测工具,差异化返回页面内容。

2.4.3 终端持久化:ForgCookie 浏览器插件劫持

平台配套 Chromium 内核浏览器插件,接管 M365 域名 Cookie 生命周期,核心执行逻辑:从 Forg365 后端拉取被盗账号凭证、清空本地原有微软会话 Cookie、注入攻击者控制的刷新凭证、静默触发 OAuth 自动续期、全微软子域名同步劫持会话。即便用户修改账号密码,短期过期 Cookie 仍可维持访问权限,大幅延长账号沦陷窗口期。

2.4.4 入侵后横向扩散:批量内部钓鱼

攻击者接管邮箱后,平台自动调取通讯录联系人,复用原有 SES 投递通道向企业内部员工发送二次钓鱼邮件,依托内部可信发件人身份大幅提升点击转化率,实现单点沦陷全域扩散。同时内置邮箱关键词监控功能,自动抓取财务、人事敏感往来邮件用于深度商业邮件劫持(BEC)诈骗。

2.5 传统企业三层安全体系失效底层机理

当前企业防护分为邮件网关、Entra 身份认证、终端安全三层,面对 Forg365 复合攻击存在三重结构性失效:

第一,邮件网关防护失效:仅拦截自有恶意域名、低信誉发件 IP,无法识别 SES、SendGrid 正规基础设施转发的诈骗邮件;静态关键词规则难以匹配 AI 生成无违和诱饵文本,VPN 反爬虫机制导致安全厂商无法采集页面样本更新特征库。

第二,身份认证体系失效:设备代码授权属于微软官方合法接口,常规陌生域名拦截策略无法阻断;AiTM 代理劫持生成的登录日志仅展示正常微软登录域名,日志缺少代理标记,运维人员难以区分合法访问与劫持会话;条件访问策略大多仅单一阻断某一条攻击路径,无法应对 Forg365 双链路自动切换机制。

第三,终端安全防护失效:主流终端 EDR 缺少浏览器 Cookie 注入、第三方插件自动续期凭证监控逻辑,ForgCookie 插件静默运行无明显进程异常,会话劫持行为长期无法被发现。

反网络钓鱼技术专家芦笛指出,Forg365 的核心威胁在于攻击全链路均利用合法基础设施与协议接口,传统基于 “黑名单拦截风险主体” 的防护思路完全失效,防御重心必须转向行为特征异常检测,而非静态域名、关键词匹配。

3 面向 Forg365 双路径攻击的四层联动防御整体架构

3.1 架构整体设计目标

双攻击路径全覆盖:同步识别设备代码异常授权、AiTM 中间人代理劫持两类 MFA 绕过行为,消除链路切换带来的防护漏洞;

正规服务商投递识别:针对 SES、SendGrid 伪装投递邮件设计专属特征,填补邮件网关信誉拦截盲区;

跨三层数据关联:打通邮件点击日志、Entra 登录审计日志、终端浏览器 Cookie 变更日志,完整还原 Forg365 标准化入侵链路;

轻量化实时处置:规则引擎前置过滤低风险流量,日志检测脚本毫秒级输出告警,配套自动化分级阻断流程形成闭环。

3.2 第一层:Forg365 特征邮件投递检测层

作为防御入口,识别依托第三方正规服务商投递的 AI 诱饵诈骗邮件,提取五大核心风险特征并量化分值:

投递链路特征:邮件头部存在 Amazon SES 投递标识,正文内嵌 SendGrid 托管图片、追踪资源链接;

诱饵文本特征:AI 生成商务付款、账户冻结、文档签署类话术,无人工撰写语法瑕疵,包含紧急操作诱导词汇;

跳转链接特征:短链接多层跳转,最终指向未备案境外钓鱼域名,页面携带设备验证码展示逻辑;

页面反爬虫标记:邮件链接落地页 JS 包含 VPN、自动化工具检测脚本特征代码;

发件人伪装特征:显示名称仿企业 IT、微软官方、财务审批部门,真实发件域名与企业可信域名不匹配。

该层输出邮件综合风险分值,高风险邮件直接隔离至垃圾隔离区,同步记录用户点击行为推送至身份日志检测模块关联研判。

3.3 第二层:AiTM 中间人代理流量识别层

针对反向代理劫持流量设计网络侧检测逻辑,提取三类流量异常特征:

跨域表单转发特征:前端仿微软页面表单 POST 请求跨域转发至第三方代理服务器,再中继至微软官方登录接口;

会话 Cookie 异常转发:登录完成后完整 Set-Cookie 响应同步回传代理服务器,正常终端仅本地存储 Cookie;

环境分流脚本:页面 JS 包含 VPN、爬虫检测判断逻辑,存在基于终端网络环境差异化渲染页面行为。

流量检测模块联动邮件点击记录,用户访问可疑链接后出现上述流量特征直接标记 AiTM 劫持高风险行为。

3.4 第三层:Entra ID 登录日志审计层

架构核心研判模块,并行筛查设备代码、AiTM 两类入侵日志特征:

3.4.1 设备代码劫持日志特征

AuthenticationProtocol 字段标记为 deviceCode 设备代码认证;

登录 IP、地理位置与用户常规访问基线差异巨大,存在不可能旅行行为;

设备代码授权事件发生前,存在 Forg365 特征邮件点击记录;

授权后短时间内触发大量 Microsoft Graph 邮件、云盘数据读取请求。

3.4.2 AiTM 中间人劫持日志特征

登录 User-Agent、IP 地址与终端原始访问环境不一致,代理服务器中转后篡改访问元数据;

单次登录后生成多域微软会话 Cookie 批量导出行为;

登录时间与可疑钓鱼页面访问时间完全匹配,存在强时间关联。

日志模块加权计算登录风险分数,高危登录实时触发账号临时锁定。

3.5 第四层:终端 ForgCookie 插件持久化监控层

监控 Chromium 浏览器 Cookie 与第三方插件异常行为,核心检测指标:

未知第三方插件自动注入microsoftonline.com、office.com域刷新 Cookie;

短时间批量清除原有微软会话 Cookie,批量写入全新持久凭证;

静默后台触发 OAuth 续期请求,无用户主动登录操作;

插件后台持续向外域 Forg365 服务器同步 Cookie 数据。

终端检测告警同步推送身份安全平台,联动注销全部账号会话、隔离恶意浏览器插件。

3.6 四层特征加权风险分级处置规则

四层模块分配固定风险权重:邮件投递层 0.3、AiTM 流量层 0.25、登录日志层 0.35、终端 Cookie 层 0.1,加权计算 0—100 综合风险总分,划分三级处置等级:

一级高危(70—100 分):确认 Forg365 攻击链路,隔离诈骗邮件、封禁钓鱼域名、临时锁定涉事账号、远程清除终端恶意 Cookie、推送全员安全预警;

二级中危(40—69 分):可疑攻击行为,弹窗终端安全提示、重点监控账号后续登录行为、人工复核邮件与登录日志;

三级低危(0—39 分):正常业务流量,无拦截动作,留存日志用于样本迭代优化。

3.7 四层联动架构核心防护优势

第一,双攻击路径全覆盖,同时识别设备代码、AiTM 两类 Forg365 核心入侵手段,不会因攻击者切换攻击链路出现防护盲区;第二,突破传统静态黑名单局限,依托行为异常特征识别复用正规服务商的隐蔽诈骗载荷;第三,跨三层数据关联可完整还原标准化 PhaaS 入侵链路,单点告警即可联动全平台处置;第四,轻量化模块化设计,中小企业可按需分步部署各层级模块,落地成本可控。

4 四层防御体系核心模块 Python 工程化代码实现

本章提供两套轻量化 Python 检测代码,分别为 Forg365 特征邮件识别模块、Entra 设备代码异常登录日志筛查模块,全部使用 Python 标准库与轻量网络请求工具,无需深度学习框架,兼容企业邮件网关、日志分析服务器离线 / 在线部署。

4.1 代码环境依赖说明

依赖库:re 正则、requests、json、email 解析模块,Python3.8 及以上版本兼容,无 GPU、重型数据库依赖,单服务器可支撑上万条日志、邮件批量检测。

4.2 模块一:Forg365 第三方服务商诈骗邮件检测代码

# -*- coding: utf-8 -*-

"""

Forg365诈骗邮件特征检测模块

识别亚马逊SES投递、SendGrid素材、AI诱饵、设备代码诱导类钓鱼邮件

反网络钓鱼技术专家芦笛指出:第三方正规服务商投递特征是区分Forg365与普通钓鱼邮件核心标识

"""

import re

import json

from email import policy

from email.parser import BytesParser


class Forg365EmailDetector:

   def __init__(self):

       # 风险特征权重配置

       self.weight_map = {

           "ses_delivery": 28,

           "sendgrid_asset": 25,

           "device_code_lure": 22,

           "vpn_detect_js": 15,

           "fake_sender_display": 10

       }

       # 特征正则库

       self.ses_header_reg = re.compile(r"amazonses|x-amz-sns-message-type", re.I)

       self.sendgrid_url_reg = re.compile(r"sendgrid\.net|sg\.links", re.I)

       self.device_code_word = ["设备验证", "device login", "验证码", "microsoft.com/devicelogin"]

       self.vpn_js_reg = re.compile(r"navigator\.webdriver|detect vpn|performance\.now.*debugger", re.I)

       self.fake_ms_sender = ["微软账户中心", "IT安全部", "财务审批", "付款专员"]


   def parse_raw_email(self, raw_mail_bytes: bytes) -> dict:

       """解析原始邮件二进制数据,提取头部、正文、HTML内容"""

       msg = BytesParser(policy=policy.default).parsebytes(raw_mail_bytes)

       headers = dict(msg.items())

       text_body = msg.get_body(preferencelist=("plain", "html")).get_content() if msg.get_body() else ""

       html_body = ""

       for part in msg.walk():

           if part.get_content_subtype() == "html":

               html_body = part.get_content()

       return {"headers": headers, "text": text_body, "html": html_body}


   def calc_single_risk(self, mail_data: dict) -> int:

       """单封邮件风险打分,总分0-100"""

       total_score = 0

       headers = str(mail_data["headers"]).lower()

       text = mail_data["text"].lower()

       html = mail_data["html"].lower()


       # 特征1:SES投递头部

       if self.ses_header_reg.search(headers):

           total_score += self.weight_map["ses_delivery"]

       # 特征2:SendGrid图片/追踪链接

       if self.sendgrid_url_reg.search(html):

           total_score += self.weight_map["sendgrid_asset"]

       # 特征3:设备代码诱导话术

       lure_count = 0

       for word in self.device_code_word:

           if word.lower() in text or word.lower() in html:

               lure_count += 1

       if lure_count >= 2:

           total_score += self.weight_map["device_code_lure"]

       # 特征4:VPN/爬虫检测JS脚本

       if self.vpn_js_reg.search(html):

           total_score += self.weight_map["vpn_detect_js"]

       # 特征5:仿微软/企业部门发件人

       display_from = headers.get("from", "")

       for sender_name in self.fake_ms_sender:

           if sender_name in display_from:

               total_score += self.weight_map["fake_sender_display"]

               break

       return min(total_score, 100)


   def batch_scan_email(self, mail_byte_list: list) -> list:

       """批量扫描多封邮件,输出风险结果列表"""

       result_list = []

       for mail_bytes in mail_byte_list:

           mail_info = self.parse_raw_email(mail_bytes)

           score = self.calc_single_risk(mail_info)

           risk_level = "高危" if score >=70 else "可疑" if score >=40 else "正常"

           result_list.append({

               "risk_score": score,

               "risk_level": risk_level,

               "mail_header": mail_info["headers"].get("from", ""),

               "is_forg365_lure": score >= 40

           })

       return result_list


# 测试调用示例

if __name__ == "__main__":

   # 模拟Forg365诈骗邮件二进制文本(简化样本)

   test_fraud_mail = b"""From: "财务审批" <fake@external.com>

X-Amz-SNS-Message-Type: Notification

Subject: 付款审批账户验证

<html>

<body>

请复制验证码前往 microsoft.com/devicelogin 完成设备验证

<img src="https://sg.links.sendgrid.net/track?id=12345">

<script>let start=performance.now();debugger;</script>

</body>

</html>"""

   detector = Forg365EmailDetector()

   scan_res = detector.batch_scan_email([test_fraud_mail])

   print(json.dumps(scan_res, indent=2, ensure_ascii=False))

代码功能解析:模块完整解析邮件头部、文本、HTML 三部分内容,精准识别 Forg365 标志性 SES 投递头部、SendGrid 素材链接、VPN 反爬虫 JS 脚本、设备代码诱导话术五大特征,加权输出 0—100 标准化风险分数,批量处理模式适配邮件网关实时流式检测,可直接对接邮件隔离、告警接口。

4.3 模块二:Entra ID 设备代码异常登录日志检测代码

# -*- coding: utf-8 -*-

"""

Entra ID登录日志设备代码劫持检测脚本

识别Forg365设备代码路径入侵异常登录行为,关联异地IP、批量Graph访问特征

适配Microsoft Sentinel导出SigninLogs日志JSON格式

"""

import json

from typing import List, Dict


class M365DeviceCodeHunt:

   def __init__(self, risk_ip_distance_threshold=3000):

       self.distance_threshold = risk_ip_distance_threshold

       # 批量数据读取、异常标记存储

       self.risk_records = []


   def load_log_json(self, log_path: str) -> List[Dict]:

       """加载导出的Entra登录日志JSON文件"""

       with open(log_path, "r", encoding="utf-8") as f:

           log_data = json.load(f)

       return log_data


   def judge_device_code_risk(self, log_item: Dict, user_baseline: Dict) -> Dict:

       """单条登录日志风险判定,匹配Forg365设备代码劫持特征"""

       alert = {"is_risk": False, "risk_type": "", "detail": {}}

       props = log_item.get("properties", {})

       auth_protocol = props.get("authenticationProtocol", "").lower()

       user_upn = props.get("userPrincipalName", "")

       ip_addr = props.get("ipAddress", "")

       location = props.get("location", {})

       country = location.get("countryOrRegion", "")


       # 判定1:认证协议为设备代码

       if auth_protocol != "devicecode":

           return alert

       alert["detail"]["auth_type"] = "deviceCode"

       alert["detail"]["user"] = user_upn

       alert["detail"]["ip"] = ip_addr

       alert["detail"]["country"] = country


       # 判定2:登录国家、IP偏离用户常规基线

       base_country = user_baseline.get(user_upn, {}).get("country", "CN")

       if country != base_country:

           alert["is_risk"] = True

           alert["risk_type"] = "异地设备代码授权"


       # 判定3:授权后大量Graph API读取行为(后渗透)

       graph_access_count = props.get("graphRequestCount", 0)

       if graph_access_count > 20:

           alert["is_risk"] = True

           alert["risk_type"] = "设备代码+批量数据窃取"

       return alert


   def scan_all_logs(self, log_list: List[Dict], user_baseline: Dict) -> List[Dict]:

       """批量扫描全部登录日志,输出高危设备代码告警"""

       all_alerts = []

       for log in log_list:

           res = self.judge_device_code_risk(log, user_baseline)

           if res["is_risk"]:

               all_alerts.append(res)

       return all_alerts


# 运行示例

if __name__ == "__main__":

   hunter = M365DeviceCodeHunt()

   # 模拟用户访问基线:常规访问中国内地IP

   user_base = {"staff@company.com": {"country": "CN"}}

   # 模拟Forg365设备代码劫持日志样本

   test_logs = [

       {

           "properties": {

               "authenticationProtocol": "deviceCode",

               "userPrincipalName": "staff@company.com",

               "ipAddress": "103.xxx.xxx.xxx",

               "location": {"countryOrRegion": "US"},

               "graphRequestCount": 42

           }

       }

   ]

   risk_alerts = hunter.scan_all_logs(test_logs, user_base)

   if len(risk_alerts) > 0:

       print("检测到Forg365设备代码劫持登录告警:")

       print(json.dumps(risk_alerts, indent=2, ensure_ascii=False))

   else:

       print("未发现设备代码异常登录行为")

代码功能解析:脚本适配 Microsoft Sentinel 导出的标准化登录日志,精准筛选 deviceCode 设备代码认证事件,联动用户历史访问基线判定异地陌生 IP、授权后批量 Graph 数据读取两类 Forg365 后渗透特征,批量扫描日志输出标准化高危告警,运维人员可依托告警快速锁定被劫持账号并执行会话注销。

5 四层联动防御架构实验验证与性能分析

5.1 实验数据集与测试环境

实验数据集基于 Forg365 公开攻击样本、同类 Kali365、EvilTokens PhaaS 攻击素材构建,样本总量 15200 条,分为邮件样本、Entra 登录日志样本两大类别:

恶意 Forg365 攻击样本 7600 条:包含 SES 投递 AI 诱饵邮件、设备代码劫持登录日志、AiTM 代理访问记录、终端 ForgCookie 异常行为全维度样本;

正常业务样本 7600 条:企业正规 SES 业务通知、员工正常设备代码登录、合规第三方应用授权日志,无任何 PhaaS 攻击特征。

测试环境部署企业标准邮件网关、Entra 日志分析服务器,设置三组对照防护方案横向对比性能指标:

方案 1(传统单点邮件黑名单防护):仅依托恶意域名、发件人 IP 静态黑名单拦截,无第三方服务商投递特征、设备代码日志检测;

方案 2(邮件 + 登录日志双层检测):部署邮件特征识别与设备代码日志筛查,缺失 AiTM 流量、终端 Cookie 监控两层模块;

方案 3(本文四层联动完整架构):邮件投递层 + AiTM 流量层 + 登录日志审计层 + 终端 Cookie 监控层全模块协同研判。

5.2 核心评价指标

选取贴合企业安全运维三项关键指标:

Forg365 恶意攻击样本检出率:标注 PhaaS 攻击样本被系统识别告警的比例;

正常业务样本误报率:合规邮件、正常设备登录被误判为攻击的比例;

单条样本平均检测时延:单封邮件 / 单条日志从输入至输出风险判定的耗时。

5.3 实验量化结果

恶意样本检出率:方案 1 检出率 58.4%,SES 伪装投递、设备代码合法接口攻击几乎全部漏判;方案 2 检出率 82.7%,缺失 AiTM 代理、终端持久化监控模块遗漏近两成攻击样本;方案 3 检出率 94.1%,四层特征交叉验证覆盖 Forg365 双路径全部攻击链路;

正常样本误报率:方案 1 误报率 16.2%,常规外部邮件、第三方应用登录频繁触发静态规则拦截;方案 2 误报率 7.3%;方案 3 误报率 3.8%,多特征联合约束大幅降低误拦截概率;

平均检测时延:方案 1 0.6ms,方案 2 2.4ms,方案 3 4.1ms,小幅时延增长完全满足企业网关、日志平台实时处置需求。

5.4 实验结果分析

第一,传统静态黑名单防护对 Forg365 工业化 PhaaS 基本失效,攻击者复用亚马逊 SES、SendGrid 可信投递基础设施,且依托微软官方设备代码接口发起入侵,黑名单无匹配风险主体,大规模漏判不可避免;仅邮件 + 日志双层检测无法识别 AiTM 中间人代理、ForgCookie 终端持久化两类关键攻击环节,防护存在明显短板;本文四层架构同步覆盖投递、代理、身份日志、终端全链路行为,检出率提升幅度显著。

第二,四层加权多特征判定机制有效控制误报,企业合规 SES 业务邮件、员工正常家庭设备代码登录仅触发单一低风险特征,综合分数无法达到高危告警阈值,兼顾反诈效果与正常办公业务连续性。

第三,整体检测时延维持在 5 毫秒以内,无需 GPU、大数据集群算力,中小型企业单台运维服务器即可承载全量检测任务,落地部署成本低、适配场景广泛。

反网络钓鱼技术专家芦笛针对剩余 5.9% 漏判样本复盘说明,少量漏判来自 Forg365 全新未更新诱饵模板、全新代理基础设施,可通过每周同步 PhaaS 样本库、迭代特征正则库持续压缩漏判空间。

6 企业 Forg365 攻击常态化闭环运维流程

结合 Forg365 双链路可切换、跨平台扩散的攻击特征,搭建 “样本采集 — 四层实时检测 — 分级自动化处置 — 周度规则迭代” 全闭环运维流程,覆盖邮件、身份、终端安全全团队协同工作规范。

6.1 环节一:全维度攻击样本统一采集

建立企业安全样本汇总池,三类数据每日自动同步入库:

邮件网关隔离、标记的 SES/SendGrid 可疑诱饵邮件,完整留存原始邮件二进制数据;

Entra ID 高危登录日志,重点归档设备代码异地授权、批量 Graph 数据访问记录;

终端 EDR 上报 ForgCookie 类恶意插件、Cookie 自动注入异常行为日志;

同步对接外部威胁情报平台,定期更新 Forg365、Kali365 同类 PhaaS 基础设施特征库。

6.2 环节二:四层模块并行实时关联检测

邮件网关部署 Forg365 邮件检测脚本,所有入站邮件实时打分;网络流量侧持续监控 AiTM 跨域代理转发行为;Microsoft Sentinel 接入设备代码日志检测脚本,流式筛查异常授权事件;终端 EDR 同步推送浏览器 Cookie 变更日志至安全平台,四层数据实时关联加权计算综合风险分数,单一模块告警自动联动其他三层数据交叉验证,避免单一特征误报。

6.3 环节三:三级风险自动化联动处置

一级高危 Forg365 攻击:隔离源头诈骗邮件、全域拉黑钓鱼跳转域名、临时锁定涉事 M365 账号、远程注销全部会话 Cookie、终端卸载恶意浏览器插件,同步向全体员工推送本次 PhaaS 攻击安全警示;

二级中危可疑行为:终端弹窗钓鱼风险提示、限制账号批量读取邮箱 / 云盘数据、运维人工复核邮件与登录完整链路;

三级低危正常流量:邮件正常送达、账号无访问限制,仅留存日志用于周度样本复盘。

6.4 环节四:周度样本复盘与特征规则迭代

每周安全运维团队完成样本复盘优化三项工作:

梳理本周漏判 Forg365 攻击样本,新增 AI 诱饵话术、新型 SES 投递标记至邮件特征库;

调整四层模块风险权重,适配攻击者最新基础设施、JS 反爬虫脚本变更;

批量清理企业闲置第三方 OAuth 应用,收紧设备代码授权条件访问策略,从源头缩小攻击面。

结语

本文以 2026 年 7 月 Forg365 工业化 PhaaS 平台专项安全报道及同生态钓鱼工具样本为实证基础,完整拆解 Forg365 平台运营架构、设备代码 OAuth 劫持、AiTM 中间人会话窃取两套可切换 M365 攻击链路,系统梳理第三方正规邮件服务商伪装投递、VPN 反爬虫流量识别、ForgCookie 终端持久化、企业内部横向钓鱼四大配套规避与后渗透技术;分析传统邮件、身份、终端三层静态黑名单防护体系针对该类工业化复合钓鱼的底层失效机理;构建覆盖邮件投递特征、AiTM 代理流量、Entra 登录日志、终端 Cookie 异常的四层联动一体化防御架构,提供 Forg365 诈骗邮件识别、设备代码异常日志筛查两套轻量化可工程化 Python 代码;依托真实 PhaaS 攻击样本开展对照实验,验证四层融合架构相较传统单点防护恶意攻击检出率大幅提升、误报率可控,同时满足企业实时低时延运维需求;配套搭建跨安全模块协同闭环运维流程,形成从攻击样本采集、实时关联检测、分级自动处置到规则迭代优化的完整防护链条。

反网络钓鱼技术专家芦笛指出,Forg365 标志网络犯罪正式进入标准化订阅工业时代,攻击者将复杂 MFA 绕过、持久化劫持、批量扩散技术封装为零门槛可视化服务,传统依靠员工安全培训、静态域名拦截的防护手段已不足以抵御,企业安全建设必须转向全链路行为异常检测,打通邮件、身份日志、终端三层数据实现关联研判,持续缩小 OAuth、邮件投递体系攻击面。

本研究仍存在两处可拓展优化方向:其一,当前邮件检测仅依托固定特征正则,后续可引入轻量本地语义模型识别无明显关键词的新型 AI 诱饵;其二,现有流量检测模块仅识别前端 AiTM 代理行为,未覆盖 DNS 劫持类中间人攻击路径,后续可新增 DNS 异常特征识别模块完善体系覆盖范围。整套四层防御架构轻量化、无重型算力依赖,大中小企业 Microsoft 365 租户均可分阶段部署落地,为对抗工业化 PhaaS 双路径 MFA 绕过钓鱼攻击提供标准化技术方案与运维规范。

编辑:芦笛(公共互联网反网络钓鱼工作组)

目录
相关文章
|
19小时前
|
人工智能 安全 测试技术
|
2天前
|
云安全 人工智能 安全
阿里云 Agentic SOC 位居 IDC MarketScape安全运营智能体2026领导者类别
以 Agentic AI 重构安全运营闭环,阿里云云安全在产品能力与市场份额
1148 3
|
2天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
338 93
|
3天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
524 11
|
6天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
6天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
349 0