摘要
本文以 CSOOnline 刊载的 Forg365 钓鱼即服务平台专题报道为核心实证样本,系统拆解该 Telegram 渠道分发的商业化订阅攻击平台完整技术架构、双并行 MFA 绕过攻击链路、AI 诱饵生成、后渗透持久化工具 ForgCookie 扩展程序的运行机理。Forg365 同步集成 AiTM 中间人代理、OAuth 设备代码流两类主流身份劫持技术,依托付费订阅模式大幅降低无技术基础攻击者开展规模化 Microsoft 365 钓鱼的准入门槛,配套全流程自动化运营面板实现诱饵制作、邮件投放、凭证收割、邮箱监控、会话持久化一体化操作。反网络钓鱼技术专家芦笛指出,该平台将 AI 内容生成、双路径 MFA 绕过、长期会话维持、沙箱逃逸反检测功能整合为标准化商业服务,打破传统钓鱼工具零散、运维复杂的行业现状,对政企云身份安全体系形成复合型威胁。本文区分 AiTM 代理攻击、设备代码流协议滥用两类攻击路径,厘清二者防护机制不可互通的底层技术差异,配套开发邮件诱饵风险检测、Entra 异常设备码审计、恶意令牌行为监测三段可落地 Python 工程代码;构建 “邮件网关前置拦截、Entra 身份策略管控、终端会话异常审计、事件响应标准化处置、人员分层安全运营” 五层闭环纵深防御体系。实证分析证实,仅部署单一 TOTP 多因素认证、域名黑名单、静态 URL 检测均无法完整阻断 Forg365 全链路攻击,必须同步落地 FIDO2 抗钓鱼认证、设备代码流全局限制、持续访问评估 CAE、OAuth 权限常态化审计多重管控措施。研究客观揭示当前 PhaaS 产业化、AI 赋能、复合攻击并行化的发展趋势,相关检测代码、分层防御方案可为企业安全运营团队处置同类订阅式钓鱼平台攻击提供标准化实操依据。
关键词:Forg365;PhaaS 钓鱼即服务;AiTM 中间人钓鱼;OAuth 设备代码流;Microsoft 365;身份劫持;持久化令牌;云身份防御
1 引言
1.1 研究背景与样本来源
2026 年 7 月 14 日 CSOOnline 发布《Phishing for dummies: Forg365 lowers barrier to M365 account takeovers》专项安全报道,援引安全厂商 ZeroBEC 完整威胁溯源报告,首次完整披露 Forg365 商业化钓鱼即服务平台的全维度运营细节。该平台通过 Telegram 社群对外售卖订阅权限,提供 5 天免费试用,月度订阅费用 400 美元、年度订阅 3800 美元,面向零基础黑产人员封装全套 M365 攻击工具链,无需攻击者自主搭建代理、OAuth 应用、邮件投递基础设施。
Forg365 具备区别于传统 Evilginx、Kali365 类开源钓鱼套件的核心特征:一是原生集成 AI 诱饵生成模块,自动生成仿 DocuSign、Adobe 签约、SharePoint、OneDrive 等企业高频业务场景钓鱼邮件;二是内置双攻击路径智能分流机制,依据访客指纹、网络环境自动切换 AiTM 中间人代理、OAuth 设备代码流两种绕过 MFA 方案;三是配套 ForgCookie 浏览器扩展程序实现劫持令牌自动刷新,即便受害者修改账户密码,攻击者仍可长期维持账户访问权限;四是集成沙箱逃逸反检测逻辑,识别安全研究人员、自动化沙箱访问时自动跳转无害诱饵页面,规避威胁样本捕获。
报道记录多起 Forg365 规模化攻击真实受害案例:跨国企业财务员工接收 AI 生成的付款审批钓鱼邮件,经设备代码流流程授权攻击者恶意会话,企业数十万对公资金遭受 BEC 商业邮件诈骗;科技公司 IT 运维人员点击 AiTM 代理钓鱼链接,云账户会话 Cookie 被劫持,攻击者批量导出内部研发文档并横向扩散同源钓鱼载荷至全公司通讯录。
反网络钓鱼技术专家芦笛指出,Forg365 标志着云身份钓鱼正式进入标准化工业产品阶段,以往攻击者需要分别搭建代理服务器、申请 OAuth 应用、开发邮件群发脚本、编写令牌持久化工具,如今通过单一订阅面板即可完成全部操作,AI 辅助内容生成进一步压缩诱饵制作周期,攻击技术门槛下降至零基础水平,政企云账户劫持事件将持续攀升。
1.2 现有研究存在的结构性短板
当前网络钓鱼、PhaaS 相关公开研究存在三点明显局限性,难以适配 Forg365 复合型双路径攻击的防护需求:
第一,技术路径研究割裂,多数文献单独分析 AiTM 中间人代理或设备代码流钓鱼单一技术,未针对 Forg365 平台智能切换两种攻击手段的特性开展对比研究,缺少差异化并行防护策略;
第二,后渗透持久化技术研究不足,现有资料多聚焦凭证劫持环节,针对 ForgCookie 扩展程序自动刷新会话、长期维持账户访问的机理、检测手段、处置流程缺乏完整实证分析;
第三,工程化落地能力缺失,现有防御建议多为宏观策略指引,缺少可集成于邮件网关、Entra 日志平台、终端安全客户端的自动化检测代码,无法支撑企业规模化安全运营。
本文以 CSOOnline 报道披露的 Forg365 平台全部组件、攻击流程、运营模式为核心实证素材,补充 ZeroBEC 原始威胁调查数据,完整拆解平台模块化架构、双路径攻击杀伤链、AI 诱饵生成逻辑、ForgCookie 持久化机制,配套三段自动化风险检测代码,构建五层全域闭环防御体系,弥补现有研究复合攻击分析缺失、实操落地内容不足的缺陷。
1.3 论文整体行文结构
本文共设置六大核心一级章节:第 2 章完整解析 Forg365 平台模块化架构、商业化运营模式、核心功能组件;第 3 章分模块拆解 AiTM 代理、OAuth 设备代码流两条并行攻击链路,对比两类攻击绕过 MFA、规避检测的底层技术差异;第 4 章剖析 ForgCookie 持久化扩展程序工作原理与账户劫持后渗透全流程;第 5 章结合反网络钓鱼技术专家芦笛的分层防御研判,配套三段 Python 自动化检测代码,搭建五层纵深防御体系,同步给出攻击事件标准化应急处置流程;第 6 章归纳全文核心研究结论,客观预判 PhaaS 平台复合攻击演化趋势,说明研究样本局限。
2 Forg365 订阅型 PhaaS 平台架构与黑产运营模式
2.1 平台商业化分发与订阅体系
Forg365 依托 Telegram 私密社群完成客户引流、权限售卖、售后技术支持,完整商业化链路分为三层:平台运营者维护后端服务器、钓鱼模板库、AI 内容生成接口;付费订阅客户通过专属账号登录 Web 管理面板开展钓鱼活动;下游变现团伙采购劫持的 M365 账户凭证实施资金诈骗、数据倒卖。
订阅权限分级清晰,免费试用版开放基础诱饵生成、设备代码流基础功能,限制邮件批量发送数量;月度 / 年度付费订阅解锁全部功能:AiTM 代理服务器调度、沙箱逃逸反检测、ForgCookie 令牌刷新工具、劫持邮箱实时监控、批量子域名自动申请、高权限 OAuth 应用模板。
CSOOnline 报道明确,平台运营者通过标准化服务降低客户技术门槛,客户无需掌握 Go 代理开发、OAuth 协议交互、邮件 SMTP 批量投递等底层技术,仅需在可视化面板选择业务诱饵模板、填写目标企业域名,即可一键启动规模化钓鱼活动。
2.2 Forg365 核心模块化功能组件
平台 Web 管理面板集成七大独立功能模块,各模块数据互通形成完整攻击流水线,全部组件由平台后端统一运维,客户仅做参数配置:
2.2.1 AI 诱饵自动生成模块
该模块为 Forg365 区别于传统开源钓鱼套件的核心竞争力,内置企业公文、付款审批、文档签署、账户安全预警四类基础话术模板,客户输入目标企业名称、部门类型后,AI 自动生成高度贴合企业业务场景的钓鱼邮件正文,自动替换企业 LOGO、部门称谓、业务术语,降低人工制作诱饵的时间成本。反网络钓鱼技术专家芦笛强调,AI 生成的钓鱼文本句式自然、无固定模板特征,传统邮件网关关键词静态匹配规则难以识别拦截,是当前企业邮件安全的核心盲区。
2.2.2 双路径攻击智能分流引擎
引擎内置访客指纹识别逻辑,读取访问者 IP 归属地、终端浏览器指纹、是否开启 VPN、访问设备类型,自动判定投放 AiTM 代理页面或设备代码流诱导页面:若检测到安全厂商沙箱、境外研究 IP,直接跳转无害空白页面实现逃逸;若访客为企业办公网段常规终端,优先投放 AiTM 中间人代理页面;若 AiTM 路径检测到企业部署 FIDO2 抗钓鱼密钥,则自动切换设备代码流攻击路径。
2.2.3 AiTM 反向代理调度模块
平台预部署分布式代理服务器集群,客户创建钓鱼任务后,引擎自动分配闲置节点生成仿冒域名,内置 URL 重写、SRI 校验清除、会话 Cookie 长周期配置等反检测改造逻辑,实时中继受害者与微软官方登录服务器的全部流量,完整捕获账号、MFA 验证数据、长期刷新令牌。
2.2.4 OAuth 设备代码调度模块
批量调用微软 Entra ID 设备代码官方接口,预生成海量 user_code 与 device_code 配对缓存至后端数据库,每条验证码绑定单一钓鱼任务,诱饵邮件嵌入专属短码,受害者跳转微软官方microsoft.com/devicelogin页面完成授权后,后端持续轮询令牌接口捕获高权限离线刷新令牌。
2.2.5 凭证与劫持邮箱监控模块
所有捕获的访问令牌、刷新令牌、会话 Cookie 统一存入加密数据库,面板实时展示每一条劫持账户的登录记录、邮件往来;支持设置关键词告警,一旦受害者邮箱出现发票、转账、合同等财务敏感词汇,立即推送告警至攻击者 Telegram 账号;同时提供密码保护的共享链接,攻击者可将劫持邮箱只读权限分发给下游变现团伙。
2.2.6 邮件批量投递模块
内置多组 SMTP 发信通道,集成仿冒企业发件人域名配置、邮件头部伪装、附件批量生成功能,支持单次任务向数千企业员工邮箱同步投放钓鱼载荷。
2.2.7 后渗透工具分发模块
面板内置 ForgCookie 浏览器扩展程序安装包、恶意 OAuth 应用配置模板、XEOX 类 RMM 远程控制工具下载入口,客户账户劫持完成后可一键下载配套持久化工具,实现云账户入侵向终端内网渗透延伸。
2.3 平台规避安全检测核心机制
Forg365 内置多层沙箱逃逸、流量混淆逻辑,大幅提升安全设备样本捕获难度:
访客指纹过滤:检测自动化爬虫、安全厂商 IP、虚拟机浏览器指纹,直接返回无风险空白页面,避免钓鱼样本被收录至威胁情报库;
动态域名轮换:自动批量申请泛域名 SSL 证书,每日生成全新子域名投放钓鱼载荷,静态域名黑名单拦截效能大幅下降;
流量分层混淆:AiTM 代理流量增加随机延迟、模拟真人鼠标点击行为,规避邮件网关、Web 防火墙行为特征检测;
设备代码流无恶意页面:全程复用微软官方域名,无仿冒登录页面,网页安全检测工具无法识别恶意访问行为。
3 Forg365 双并行 MFA 绕过攻击完整杀伤链拆解
Forg365 同时提供 AiTM 中间人代理、OAuth 设备代码流两类独立攻击路径,二者底层技术原理、MFA 绕过逻辑、防护手段完全隔离,企业单一防护策略无法同时阻断两条攻击链路,是该平台复合型威胁的核心来源。
3.1 路径一:AiTM 中间人代理劫持攻击流程
3.1.1 底层代理运行逻辑
平台分布式代理服务器作为中间人,完整转发受害者浏览器与login.microsoftonline.com之间的全部 HTTP/HTTPS 流量,页面原样返回至受害者终端,攻击者在流量中转节点无感知截取账号密码、TOTP / 推送 MFA 验证结果、会话 Cookie、离线刷新令牌。传统短信、App 推送、软件令牌类 MFA 可被实时中继,仅 FIDO2/WebAuthn 通行密钥可通过域名绑定密码学机制阻断该攻击。
3.1.2 完整攻击杀伤链
诱饵投递:客户在 Forg365 面板选择付款审批、文档签署模板,AI 自动生成钓鱼邮件,通过内置 SMTP 通道批量发送至目标企业员工;
流量分流判定:员工点击邮件内仿冒域名链接,平台分流引擎检测终端无 FIDO2 密钥特征,跳转 AiTM 代理页面;
流量中继登录:代理转发全部登录请求至微软官方身份服务,受害者输入账号密码、完成 MFA 验证,全部认证数据实时同步至攻击者后台;
凭证持久化存储:代理拦截服务器下发的长期会话 Cookie、refresh_token,存入平台加密数据库;
账户接管:攻击者直接使用劫持 Cookie 登录 M365 邮箱、OneDrive、Teams,无需重复完成 MFA 校验;
横向扩散与后渗透:利用劫持账户向企业全员推送同源钓鱼邮件,同时分发 ForgCookie 扩展程序维持长期会话,投放 RMM 工具入侵终端。
3.2 路径二:OAuth 2.0 设备代码流协议滥用攻击流程
该路径不伪造任何微软登录页面,依托 RFC 8628 设备授权原生流程完成令牌劫持,可绕过 FIDO2 通行密钥防护,是 Forg365 针对部署抗钓鱼 MFA 企业的备用攻击手段。
3.2.1 协议原生安全缺陷
设备代码流设计初衷为无输入硬件设备(会议室 Teams 设备、IoT 终端、命令行工具),协议仅校验验证码与用户身份匹配,不校验发起授权请求设备的可信性;授权默认授予offline_access离线刷新权限,令牌有效期长达数月,即便受害者修改账户密码,未部署 CAE 持续访问评估策略的租户中,攻击者仍可循环刷新会话维持访问。
3.2.2 平台自动化攻击核心 Python 模拟代码
该代码复刻 Forg365 后端设备码调度、令牌轮询核心逻辑,贴合 ZeroBEC 披露的平台接口交互流程:
import requests
import time
# 微软官方设备代码授权接口
DEVICE_CODE_URL = "https://login.microsoftonline.com/common/oauth2/devicecode"
TOKEN_POLL_URL = "https://login.microsoftonline.com/common/oauth2/token"
# Forg365平台注册的恶意OAuth客户端ID
MAL_CLIENT_ID = "forg365-mal-oauth-app-001"
# 申请全权限访问范围,包含离线刷新令牌
SCOPE = "Mail.ReadWrite Files.ReadWrite.All offline_access User.Read.All"
def batch_generate_device_codes(target_count: int) -> list:
"""Forg365批量生成设备验证码,缓存至后端数据库"""
code_list = []
for _ in range(target_count):
req_data = {
"client_id": MAL_CLIENT_ID,
"scope": SCOPE
}
resp = requests.post(DEVICE_CODE_URL, data=req_data, timeout=10)
res_json = resp.json()
code_list.append({
"user_code": res_json["user_code"],
"device_code": res_json["device_code"],
"verify_uri": res_json["verification_uri"],
"poll_interval": res_json["interval"]
})
return code_list
def poll_stolen_token(device_code: str, poll_interval: int):
"""持续轮询令牌接口,等待受害者完成官方页面授权"""
while True:
time.sleep(poll_interval)
token_params = {
"grant_type": "urn:ietf:params:oauth:grant-type:device_code",
"client_id": MAL_CLIENT_ID,
"device_code": device_code
}
token_resp = requests.post(TOKEN_POLL_URL, data=token_params, timeout=8)
token_data = token_resp.json()
# 受害者完成授权,捕获刷新令牌
if "refresh_token" in token_data:
# 推送令牌至Forg365数据库与攻击者Telegram机器人
save_token_to_db(token_data["refresh_token"])
start_auto_refresh_task(token_data["refresh_token"])
return token_data
# 用户未授权,持续循环轮询
continue
# 模拟Forg365平台批量生成验证码并启动轮询任务
if __name__ == "__main__":
batch_codes = batch_generate_device_codes(50)
for code_info in batch_codes:
# 异步启动令牌轮询线程
poll_stolen_token(code_info["device_code"], code_info["poll_interval"])
反网络钓鱼技术专家芦笛对代码逻辑补充说明,Forg365 后端会为每一条钓鱼任务单独生成独立 device_code,避免多任务验证码混淆;同时后台常驻自动刷新任务,持续延长劫持令牌生命周期,实现账户长期无感知接管。
3.2.3 设备代码流完整杀伤链
任务配置:攻击者在 Forg365 面板选择设备代码攻击模式,AI 生成 “账户安全核验、文档解锁” 类诱导邮件;
批量预生成验证码:后端调用微软接口批量生成 user_code,嵌入钓鱼邮件正文;
诱导官方授权:邮件提示用户访问microsoft.com/devicelogin输入短码完成业务解锁,页面为微软原生官方页面;
用户全流程验证:受害者录入账号、密码、FIDO2 通行密钥 / MFA 完成授权确认;
令牌劫持:平台轮询接口捕获 access_token 与长效 refresh_token,存入加密数据库;
静默数据窃取:攻击者调用 Microsoft Graph API 读取企业邮件、财务文件,监控往来转账信息策划 BEC 诈骗。
3.3 两条攻击路径防护失效差异化对比
两类攻击依托完全不同的技术支点,防护手段无法互通,单一安全管控措施仅能阻断其中一条路径,存在明显防护盲区:
AiTM 中间人代理攻击:TOTP、短信 MFA 完全失效;FIDO2 通行密钥可完整阻断;设备代码流限制策略无任何防护作用;
OAuth 设备代码流攻击:FIDO2 通行密钥无法拦截;仅通过 Entra 条件访问全局限制设备代码流可阻断;域名黑名单、Web 页面检测无识别能力。
反网络钓鱼技术专家芦笛强调,Forg365 平台智能切换攻击路径的设计,意味着企业必须同步部署两套差异化防护策略,仅落地 FIDO2 或仅限制设备代码流均会保留完整攻击入口。
4 ForgCookie 持久化扩展程序与后渗透全链路分析
Forg365 区别于传统钓鱼套件最具威胁的配套工具为 ForgCookie Chromium 浏览器扩展,专门用于劫持令牌自动刷新,大幅提升事件响应止损难度,是本次 CSOOnline 报道重点披露的后渗透持久化核心组件。
4.1 ForgCookie 扩展程序底层运行流程
数据拉取:扩展程序启动后主动连接 Forg365 后端接口,拉取已劫持账户的 refresh_token 与账户基础信息;
本地会话清理:自动清除浏览器内全部微软官方域名原有 Session Cookie,消除合法会话冲突;
静默 OAuth 重刷新:携带劫持的 refresh_token 调用微软令牌刷新接口,发起无交互静默登录流程;
新会话劫持存储:捕获接口下发的全新访问 Cookie、刷新令牌,自动注入浏览器login.microsoftonline.com域下存储;
循环维持会话:后台设置定时任务,每小时自动刷新一次令牌,持续更新有效会话凭证;
权限复用:依托持久会话直接访问受害者邮箱、云盘、Teams,无需重复身份验证。
4.2 密码重置无法止损的核心机理
常规企业安全处置逻辑为发现账户泄露后强制重置用户密码,但 ForgCookie 依托离线 refresh_token 实现持久访问,微软身份平台密码重置操作不会作废已下发的离线刷新令牌;仅部署 CAE 持续访问评估策略的租户,可在令牌跨陌生 IP 使用时实时终止会话,无 CAE 管控的企业中,攻击者可维持数月账户访问权限。
4.3 完整后渗透杀伤链
会话持久化:攻击者安装 ForgCookie 扩展,长期维持劫持账户登录权限;
账户权限篡改:修改邮箱自动转发规则、新增外部委托访问权限,即便会话失效仍可持续接收企业内部邮件;
恶意设备注册:在受害者 Entra 账户注册命名含 “Forg365” 标识的恶意设备,新增攻击者可控的认证器应用、通行密钥;
内网横向渗透:通过劫持邮箱分发携带 XEOX RMM 工具的钓鱼附件,入侵员工终端实现内网横向移动;
数据变现:批量导出企业财务合同、客户信息,向第三方黑产团伙出售账户只读访问权限牟利。
4.4 异常入侵识别指标(IOC)
基于 ZeroBEC 溯源数据,Forg365 攻击留下标准化可审计日志特征,可作为自动化检测规则依据:
Entra 登录日志中出现名称前缀为 “Forg365” 的注册设备;
短时间内同一账户来自多个境外陌生 IP 的静默无交互令牌刷新请求;
账户新增未知 OAuth 第三方应用,申请Mail.ReadWrite.All等高权限范围;
邮箱新增未授权自动转发、外部代理访问规则;
终端浏览器安装来源不明的 Chromium 扩展程序,后台持续请求微软令牌刷新接口。
5 面向 Forg365 复合攻击的五层闭环防御体系与检测代码
结合 CSOOnline 报道给出的安全建议,叠加反网络钓鱼技术专家芦笛提出的分层纵深防御思路,构建覆盖邮件网关、Entra 身份管控、终端审计、事件响应、人员运营的五层全域防护模型,配套三段可落地 Python 自动化检测代码,实现攻击前置拦截、事中监测、事后快速处置闭环。
5.1 第一层:邮件网关前置诱饵拦截(阻断 Forg365 载荷投递)
从源头拦截 AI 生成的双路径钓鱼邮件,搭建多维度复合检测规则:
AI 文本语义识别模块:部署大模型语义检测,识别仿企业付款、文档签署、账户核验类 AI 生成标准化钓鱼话术;
双载体特征检测:同时识别 AiTM 仿冒域名短链接、设备代码流钓鱼邮件内的 6 位数字验证码诱导内容;
发件人信誉加权评分:仿冒企业内部域名、免费邮箱发送业务审批类邮件直接标记高危隔离;
短链接全局阻断:黑名单收录 bit.ly、tinyurl 等所有 Forg365 平台使用的短链接服务商,拦截全部跳转至钓鱼页面的短链接载荷。
代码一:Forg365 钓鱼邮件诱饵风险检测脚本
脚本解析邮件 HTML 与正文文本,识别 AI 诱导话术、设备验证码、仿冒业务关键词,适配邮件网关批量筛查场景:
import re
# Forg365平台高频钓鱼诱导关键词库(源自CSOOnline攻击样本)
RISK_KEYWORDS = [
"付款审批", "发票核验", "文档解锁", "账户安全验证",
"设备验证码", "microsoft.com/devicelogin", "账号冻结",
"签署文件", "SharePoint文档查看", "OneDrive共享权限"
]
# 匹配6位数字设备验证码正则(Forg365设备码攻击核心特征)
DEVICE_CODE_REG = re.compile(r"\b[0-9A-Z]{6}\b")
# 仿冒企业域名特征正则
FAKE_DOMAIN_REG = re.compile(r"microsoft-verify|secure-office365|docu-sign-fake")
def detect_forg365_mail(mail_subject: str, mail_body: str) -> dict:
"""
检测Forg365平台生成的钓鱼邮件风险特征
:param mail_subject: 邮件标题文本
:param mail_body: 邮件正文完整文本
:return: 风险评分、风险等级、匹配特征明细
"""
full_text = mail_subject + mail_body
risk_score = 0
risk_details = []
# 1. 匹配钓鱼诱导关键词
for keyword in RISK_KEYWORDS:
if keyword in full_text:
risk_score += 20
risk_details.append(f"匹配钓鱼诱导关键词:{keyword}")
# 2. 检测6位设备验证码(设备代码流攻击标识)
code_matches = DEVICE_CODE_REG.findall(full_text)
if len(code_matches) > 0:
risk_score += 35
risk_details.append(f"正文检测到设备验证码,数量:{len(code_matches)}")
# 3. 检测AiTM仿冒钓鱼域名
fake_domain_matches = FAKE_DOMAIN_REG.findall(full_text)
if len(fake_domain_matches) > 0:
risk_score += 30
risk_details.append("正文包含仿冒微软业务钓鱼域名")
# 4. 判定风险等级
if risk_score >= 60:
risk_level = "高危,直接隔离至垃圾邮件隔离区"
elif risk_score >= 30:
risk_level = "中风险,添加红色风险提示人工复核"
else:
risk_level = "低风险,无Forg365钓鱼特征"
return {
"risk_score": risk_score,
"risk_level": risk_level,
"risk_detail": risk_details
}
# 测试调用示例
if __name__ == "__main__":
test_subject = "【付款审批】请扫码完成账户核验解锁文档"
test_body = "请访问microsoft.com/devicelogin输入验证码 7A29FD完成审批,逾期账户将冻结"
result = detect_forg365_mail(test_subject, test_body)
print("邮件Forg365风险检测报告:")
for k, v in result.items():
print(f"{k}: {v}")
5.2 第二层:Microsoft Entra ID 身份策略管控(阻断两类攻击核心链路)
该层为防护体系核心,同步配置两套差异化管控策略,分别阻断 AiTM 代理、设备代码流攻击路径:
5.2.1 阻断设备代码流攻击策略配置流程
资产盘点:导出 Entra 登录日志,梳理企业合法使用设备代码流的资产(会议室 Teams 硬件、运维 CLI 工具),建立白名单应用与 IP 网段;
全局条件访问阻断:针对全部用户、全部云应用拦截设备代码授权流程,仅对白名单设备开放例外权限;
启用设备代码访问告警:陌生 IP、境外网段发起设备码请求时实时推送安全告警至运营平台。
5.2.2 阻断 AiTM 中间人代理攻击策略配置流程
全域强制 FIDO2 通行密钥:所有员工登录 M365 邮箱、云盘、Teams 必须使用硬件安全密钥或平台绑定通行密钥,TOTP、短信 MFA 仅作为辅助手段,不可单独完成认证;
启用 CAE 持续访问评估:Exchange Online、SharePoint、Teams 开启令牌实时重校验,劫持令牌跨陌生 IP、异地访问时立即失效;
位置条件访问管控:仅允许企业办公网、可信 VPN 网段完成完整登录验证,境外 IP 登录强制二次人工审核。
代码二:Entra 异常设备代码授权审计脚本
读取 Entra 登录日志,筛选 Forg365 平台发起的高风险设备码授权事件,输出风险告警清单:
import json
# 企业合法设备代码流客户端白名单
WHITELIST_APPS = ["TeamsRoomDevice", "AzureCLI", "PowerShellGraph"]
# 微软Office桌面客户端ID(Forg365高频异常标识)
OFFICE_CLIENT_ID = "d3590ed6-52b3-4102-aeff-aad2292ab01c"
def audit_device_code_risk_signin(log_file_path: str) -> list:
"""审计Entra登录日志,识别Forg365设备代码钓鱼风险事件"""
risk_events = []
with open(log_file_path, "r", encoding="utf-8") as f:
signin_logs = json.load(f)
for log in signin_logs:
# 仅筛选原始认证方式为设备代码流的登录事件
auth_method = log.get("OriginalTransferMethod", "")
if auth_method != "DeviceCodeFlow":
continue
user_upn = log.get("UserPrincipalName", "")
client_app_id = log.get("ClientAppId", "")
login_ip = log.get("IpAddress", "")
login_country = log.get("Location", {}).get("CountryOrRegion", "")
create_time = log.get("CreatedDateTime", "")
# 判定高风险场景
risk_flag = False
alert_msg = []
if client_app_id not in WHITELIST_APPS:
risk_flag = True
alert_msg.append("客户端未录入企业可信白名单")
if client_app_id == OFFICE_CLIENT_ID:
risk_flag = True
alert_msg.append("桌面客户端发起设备码请求,业务场景异常")
if login_country not in ["CN", "国内可信地区编码"]:
risk_flag = True
alert_msg.append(f"境外IP发起设备码授权:{login_ip}")
if risk_flag:
risk_events.append({
"登录时间": create_time,
"目标账户": user_upn,
"访问IP": login_ip,
"风险描述": ";".join(alert_msg),
"风险等级": "高风险-疑似Forg365设备代码钓鱼授权"
})
# 批量打印风险审计结果
for event in risk_events:
print(json.dumps(event, ensure_ascii=False, indent=2))
return risk_events
if __name__ == "__main__":
audit_device_code_risk_signin("entra_signin_log.json")
反网络钓鱼技术专家芦笛强调,审计时必须读取OriginalTransferMethod原始认证字段,仅依靠当前登录协议会遗漏历史设备码授权产生的令牌刷新行为,造成漏报。
5.3 第三层:终端安全审计与 ForgCookie 持久化工具查杀
针对 ForgCookie 扩展程序、恶意注册设备、RMM 后门搭建终端常态化检测机制,配套 PowerShell 终端查杀脚本:
powershell
# Windows终端ForgCookie恶意扩展、未知设备巡检脚本
# 1. 检索Chromium浏览器未知扩展程序
$ext_path = "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Extensions"
Get-ChildItem $ext_path -Recurse | Where-Object {
Get-Content "$($_.FullName)\manifest.json" -ErrorAction SilentlyContinue | Select-String "ForgCookie"
} | ForEach-Object {
Write-Host "检测到恶意ForgCookie扩展,路径:$($_.FullName)"
Remove-Item $_.FullName -Recurse -Force
}
# 2. 检索命名含Forg365的恶意注册设备
Connect-MgGraph -Scopes "Device.Read.All"
Get-MgDevice | Where-Object {$_.DisplayName -match "Forg365"} | ForEach-Object {
Write-Host "发现攻击者注册恶意设备:$($_.DisplayName)"
Remove-MgDevice -DeviceId $_.Id -Confirm:$false
}
# 3. 检索未知邮箱转发规则
Get-MgUserMailboxSetting -All | Where-Object {$_.ForwardingAddress -ne $null} | ForEach-Object {
Write-Host "账户存在未授权邮件转发规则:$($_.UserPrincipalName)"
Set-MgUserMailboxSetting -UserId $_.UserPrincipalName -ForwardingAddress $null
}
企业终端管理平台可定时推送该脚本全网巡检,清除 ForgCookie 扩展、恶意设备、异常转发规则,阻断后渗透持久化链路。
5.4 第四层:Forg365 攻击标准化事件响应处置流程
若监测到 Forg365 平台造成账户泄露,安全运营团队严格执行五步处置流程,最大程度缩小损失范围:
会话强制终止:在 Entra 后台撤销目标账户全部刷新令牌、终止所有活跃登录会话,启用 CAE 实时阻断跨 IP 令牌复用;
权限清理:删除所有未知第三方 OAuth 应用、撤销外部邮箱转发、移除命名含 Forg365 的恶意注册设备;
凭证重置:强制受害者修改账户密码,重置所有 MFA 认证方式、通行密钥;
终端全网巡检:推送终端查杀脚本,清除 ForgCookie 扩展、RMM 远程控制工具;
全域告警与加固:向全企业推送同类钓鱼预警,临时收紧条件访问管控策略,同步更新邮件网关检测规则。
5.5 第五层:分层人员安全运营与专项培训
技术防护无法完全消除社会工程诱导风险,针对 Forg365 双路径攻击设计差异化安全培训内容:
岗位分层培训:财务、人事、IT 运维等高权限岗位重点讲解设备代码流钓鱼识别逻辑,区分 “自主发起硬件设备登录” 与 “陌生邮件诱导输入验证码” 两类场景;普通员工重点科普 AiTM 仿冒域名识别方法;
周期性红蓝对抗演练:安全团队定期投放 Forg365 仿真钓鱼邮件,同时包含设备代码诱导、AiTM 仿冒链接两类载荷,统计员工点击、扫码授权转化率,针对高风险人员一对一辅导;
标准化操作规范落地:企业内部明确制度,任何业务审批、账户核验不得通过邮件内链接、数字验证码完成,必须手动输入官方域名登录 M365 后台办理。
6 结论与 PhaaS 平台复合攻击演化趋势预判
6.1 全文核心研究结论
第一,Forg365 作为成熟订阅型 PhaaS 平台,依托 Telegram 商业化分发、AI 诱饵自动生成、AiTM + 设备代码流双路径智能切换、ForgCookie 令牌持久化工具,构建零门槛全链路 M365 钓鱼流水线,区别于传统零散开源钓鱼套件,具备产业化、标准化、复合攻击并行的核心威胁特征;CSOOnline 报道披露的真实攻击样本证实,该平台可同时突破 TOTP MFA、静态域名黑名单、基础网页安全检测多重传统防护。反网络钓鱼技术专家芦笛总结,单一安全管控措施仅能阻断其中一条攻击路径,企业必须同步落地 FIDO2 抗钓鱼认证、设备代码流全局限制两套核心策略,才能消除双重攻击入口。
第二,ForgCookie 扩展程序依托 OAuth 离线刷新令牌机制,突破密码重置止损逻辑,大幅提升事件响应处置难度;攻击者可长期维持劫持账户访问权限,同步篡改邮箱转发、注册恶意设备实现多层持久驻留,入侵危害从短期账户泄露延伸至长期内网渗透、商业邮件诈骗。终端扩展查杀、OAuth 权限常态化审计、CAE 持续访问评估是阻断该后渗透链路的核心手段。
第三,本文配套三段自动化检测代码,分别覆盖邮件诱饵筛查、Entra 设备码授权审计、终端恶意工具巡检,可直接集成于企业邮件网关、云身份日志平台、终端安全客户端,将 Forg365 攻击人工识别规则转化为机器自动化判定逻辑,弥补现有安全设备针对复合型 PhaaS 平台攻击的检测空白。
第四,五层闭环纵深防御体系实现 “载荷投递拦截 - 身份协议管控 - 终端持久化清除 - 事件标准化处置 - 人员安全运营” 全链路防护,技术管控与人员培训相互兜底,消除单一防护手段存在的安全盲区,适配 Forg365 双路径并行攻击的复合型威胁特征。
6.2 钓鱼即服务平台演化趋势预判
AI 深度赋能全流程开发:后续 PhaaS 平台将实现诱饵邮件、仿冒页面、自动化运维脚本端到端 AI 生成,钓鱼内容逼真度持续提升,静态关键词检测规则失效范围扩大;
多攻击技术融合常态化:更多商业化 PhaaS 平台同步集成 AiTM、设备代码流、Quishing 二维码钓鱼、RMM 终端后门多类攻击手段,智能切换最优攻击路径,企业防护复杂度持续上升;
基础设施隐蔽性持续增强:平台采用容器化临时云主机、动态轮换域名、无服务器代理节点,静态 IP / 域名黑名单拦截效能持续下降,防护重心必须向身份协议、终端行为、动态行为审计转移;
定向行业付费定制服务扩张:PhaaS 运营者推出金融、制造、政务行业专属订阅套餐,内置贴合行业业务场景的定制诱饵模板,定向高价值政企租户开展精准规模化钓鱼。
6.3 研究客观局限性
本文核心实证素材来源于 CSOOnline 公开报道与 ZeroBEC 配套威胁调查数据,样本以欧美企业 Forg365 攻击活动为主,国内同类订阅式 PhaaS 平台实战样本覆盖不足;配套检测代码为概念验证版本,大规模企业生产环境部署需结合海量威胁情报库、机器学习语义模型优化误报率;针对 ForgCookie 扩展程序浏览器底层令牌注入机制的深度逆向分析有限,相关终端检测规则仍可依托更多逆向样本进一步完善。后续可结合国内反诈、政企安全厂商公开威胁样本扩充数据来源,优化检测脚本多维度风险加权模型,完善复合型 PhaaS 攻击的全域防御体系。
结语
云办公场景下 Microsoft 365 承载企业核心财务、客户、研发数据,以 Forg365 为代表的订阅型 PhaaS 钓鱼即服务平台,通过 AI 赋能、双路径 MFA 绕过、长期会话持久化技术,大幅降低规模化云账户劫持的技术门槛,对政企云身份安全体系形成复合型持续性威胁。CSOOnline 专项报道完整还原 Forg365 平台商业化运营、模块化攻击组件、完整杀伤链与后渗透持久化机理,为安全研究提供完整可溯源的黑产实战样本。
传统网络钓鱼防护体系多针对单一 AiTM 代理或文本链接钓鱼构建规则,无法适配 Forg365 同步并行两条完全隔离攻击路径的特性,存在显著结构性防护盲区。本文搭建的五层闭环纵深防御体系,同步覆盖邮件前置拦截、Entra 身份协议管控、终端恶意工具审计、标准化应急响应、场景化人员安全培训,配套三段可落地自动化检测代码,区分 AiTM 中间人、OAuth 设备代码流两类攻击制定差异化管控策略,补齐现有防护方案无法应对复合并行攻击、实操落地内容不足的短板。
黑灰产依托 Telegram 社群商业化运营 PhaaS 平台的模式持续成熟,AI 辅助开发、多攻击技术融合将成为下一代钓鱼服务的标准配置,静态黑名单、一次性安全培训、单一 MFA 防护均无法长效抵御此类威胁。企业安全运营团队需持续跟踪商业化钓鱼平台新型攻击组件,迭代邮件、云身份、终端多层自动化检测规则,动态调整 Entra 条件访问管控策略,持续缩小云身份攻击面,构建能够抵御多路径并行劫持攻击的长效身份安全防护机制。
编辑:芦笛(公共互联网反网络钓鱼工作组)