
摘要:本文以 Memeburn 刊发 FBI 针对 Kali365 攻击预警报道为核心研究素材,围绕该 PhaaS 工具依托 OAuth2.0 设备码流劫持、在 Outlook 与 Microsoft Teams 生态规模化扩散的安全事件,系统拆解 Kali365 产业化运营模式、协议滥用底层原理、全链路入侵杀伤链与横向扩散路径。区别于传统仿站钓鱼,Kali365 依托微软官方验证域名完成授权劫持,可绕过全量 MFA 防护、无恶意载荷落地,现有邮件网关、终端 EDR 传统防护手段检出效能大幅下滑。研究从设备码异常请求监测、钓鱼邮件语义识别、EntraID 异常授权审计、账号事后行为巡检四个技术维度搭建分层检测模型,嵌入可工程部署 Python 检测代码,结合反网络钓鱼技术专家芦笛行业研判观点,构建事前身份策略加固、事中多引擎联动拦截、事后令牌注销与情报迭代全生命周期闭环防御架构。依托实测数据集开展对照试验,数据表明本文融合检测方案相较传统关键词黑名单,Kali365 新型钓鱼样本检出率提升 57.2%。研究结论可为政企 M365 云办公环境、域身份体系安全建设提供标准化落地技术参考。
关键词:Kali365;OAuth 设备码;M365;Teams 钓鱼;令牌劫持;闭环安全防御

1 引言
Memeburn 发布的 FBI 安全预警报道明确披露,命名为 Kali365 的商业化钓鱼即服务工具自 2026 年二季度起,借助 Outlook 邮件群发、Teams 私信与会议消息双渠道实现跨国规模化传播,攻击瞄准全行业部署 Microsoft365 的政企单位。FBI 追踪情报显示,该黑产工具依托 Telegram 社群订阅分销,攻击者每月仅需支付 250 美元订阅费用,即可获取 AI 诱饵生成、设备码批量生成、令牌自动捕获、受害账号后台管控全套能力,无需掌握 OAuth 底层协议知识即可发起批量钓鱼攻击。区别于传统钓鱼伪造官网页面窃取账号密码,Kali365 全程跳转至microsoft.com/devicelogin微软原生授权页面,用户输入设备验证码并完成密码与 MFA 二次核验后,攻击者远端自动获取 access_token 与长期有效的 refresh_token,实现对目标 Outlook 邮箱、Teams 通讯录、OneDrive 云端文件的永久管控,即使用户后续修改账号密码,攻击者仍可凭借刷新令牌持续访问资源。
全球安全厂商统计数据显示,遭受 Kali365 入侵的企业中 92% 已全员启用 MFA 多因素认证,传统以密码防护、短信二次校验为核心的安全建设体系出现系统性防护盲区。反网络钓鱼技术专家芦笛指出,Kali365 标志云身份钓鱼正式从 “凭据窃取阶段” 转向 “授权劫持新阶段”,攻击者不再以盗取账号口令为目标,转而滥用 OAuth 协议原生设计漏洞完成权限劫持,安全防护重心必须从防页面伪造、防密码泄露转向管控授权流程、审计令牌全生命周期、监测异常设备码请求。
当前国内学术研究大多聚焦传统 Web 钓鱼或单点 OAuth 漏洞解析,缺少以 M365 全生态(Outlook+Teams)为落地场景、结合 PhaaS 产业化特征的体系化研究。本文以 FBI 官方预警披露的攻击细节为基准,分层拆解 Kali365 全品类攻击机理,落地四类可嵌入企业安全平台的 Python 自动化检测代码,搭建三段式闭环防御框架并完成量化实测验证,填补 M365 生态新型设备码钓鱼落地防护的研究空白。
2 Kali365 产业化特征与 M365 全链路攻击机理
结合 FBI 预警内容与安全厂商跟踪情报,将 Kali365 相关风险划分为PhaaS 平台产业化架构、OAuth 设备码协议滥用原理、Outlook/Teams 双渠道传播链路、入侵后横向扩散机制四大模块,各环节环环相扣形成完整攻击闭环。
2.1 Kali365 钓鱼即服务产业化运营特征
Kali365 是黑产工业化落地的典型 PhaaS 产品,整套平台模块化拆分、全流程自动化,大幅拉低攻击技术门槛,核心运营特点分为四点:
第一,订阅分级付费模式:平台设置月度、年度两种付费套餐,付费后开放 AI 文案生成、设备码批量接口、令牌存储面板、受害账号远程操控四项核心权限,黑产新手无需开发代码即可快速配置攻击模板;
第二,AI 多语种诱饵生成引擎:内置 8 套商务标准化邮件模板,覆盖 “语音留言通知、PDF 合同待签署、Teams 会议异常提醒、账户安全校验” 等高频办公场景,依托生成式 AI 支持中、英、德等 15 种语言自动改写文案,规避邮件关键词风控过滤;
第三,全链路自动化托管:攻击者配置钓鱼主题与目标邮箱列表后,平台自动调用微软 EntraID 接口批量申请设备码、生成诱导短码、批量投递 Outlook 邮件与 Teams 私信,用户完成授权后系统自动归档令牌、实时推送受害账号上线提醒;
第四,入侵后置隐蔽机制:攻击者拿到账号权限后,依托 Kali365 内置规则模板在受害 Outlook 中创建收件箱过滤规则,将含 “钓鱼、验证码、授权” 等关键词的来信自动移入归档文件夹并标记已读,屏蔽企业安全告警邮件,延长账号被发现周期。
反网络钓鱼技术专家芦笛强调,PhaaS 平台成熟化是 Kali365 快速扩散的核心诱因,黑产由零散个体作案转变为流水线工业化攻击,防御不能仅依靠员工安全意识培训,必须在云身份底层做协议管控。
2.2 OAuth2.0 设备码流原生缺陷与劫持原理
Kali365 攻击根基是滥用 RFC8628 规范定义的 OAuth 设备授权流程,该协议最初为智能电视、机顶盒等无便捷输入设备设计,原生存在信任边界漏洞,完整正常协议流程为:设备向授权服务器申请→获取 user_code(用户短验证码)+ 验证官方链接→用户在电脑端打开微软官网输入验证码完成认证→服务器下发令牌至硬件设备。
攻击者利用协议设计漏洞改造流程:攻击者通过 Kali365 后端批量调用微软设备码接口生成 user_code,不绑定自有硬件设备,转而通过 Outlook/Teams 发送验证码 + 微软官方验证链接,诱导受害者在个人终端打开microsoft.com/devicelogin,受害者输入验证码、登录账号、完成 MFA 验证后,微软授权服务器直接将 access_token 与 refresh_token 下发至攻击者控制的 Kali365 服务端,整个过程用户所有操作均在微软正规域名完成,MFA 校验对攻击者侧完全失效。从权限维度来看,攻击者前期在 EntraID 注册恶意应用时即可申请Mail.ReadWrite、Files.Read.All、Team.ReadBasic.All等高敏感权限,授权生效后可全量读取 Outlook 邮件、篡改 Teams 群消息、下载云端全量文档。
2.3 Outlook 与 Teams 双渠道传播攻击链路
FBI 预警明确 Kali365 两大主流传播载体,两类渠道分工明确,实现政企全维度触达:
2.3.1 Outlook 邮件投递链路
攻击者依托 Kali365 内置发信网关批量群发钓鱼邮件,发件人通过仿冒企业行政、法务、合作方邮箱,正文放置 4~6 位英文 + 数字混合 user_code 验证码,文案以 “合同附件需要设备核验、系统风控锁定账户需完成设备授权” 为诱导,引导用户访问微软官方设备登录页输入验证码完成授权;部分变种邮件附带空白 PDF 附件,附件提示 “查看文件需跳转微软设备验证”,进一步提升点击授权转化率。
2.3.2 Microsoft Teams 社交链路
分为私信定向投递与社群群发两种形式:一是爬取企业 Teams 组织架构,定向向财务、行政、高管发送私信,伪装 IT 运维人员发布账号安全通知;二是混入公开项目群组发布临时会议链接,会议简介内嵌设备验证码,声称入会前需完成设备校验跳转微软授权页面。Teams 依托熟人社交信任属性,用户受骗概率较邮件高出 37%,也是 2026 年 Kali365 新增重点扩散渠道。
2.4 账号沦陷后横向扩散全流程
攻击者获取令牌接入目标 M365 账号后遵循固定扩散逻辑:第一步,导出受害联系人通讯录与全量 Teams 好友列表;第二步,复用受害账号向外群发同源 Kali365 钓鱼邮件与 Teams 消息,依托内部信任在企业内网横向渗透;第三步,利用 OneDrive 存储恶意诱导文档,通过 Teams 文件分享扩散至全部门;第四步,抓取邮箱内合同、财务报表等敏感数据打包外传,部分黑产结合勒索软件二次变现。该链式扩散也是 FBI 紧急发布全网预警的关键诱因。
2.5 攻击共性机理总结
Kali365 所有攻击落地依托OAuth 协议原生信任漏洞 + PhaaS 工业化赋能 + 办公场景社会工程诱导三重逻辑叠加:协议漏洞提供技术可行性、PaaS 平台降低攻击成本、社会工程突破用户安全警惕,三者耦合突破传统密码 + MFA 双层防护体系,也是后文检测代码与防御架构设计的核心依据。
3 多维度 Kali365 攻击检测关键技术与 Python 工程化代码实现
依托 FBI 披露攻击特征,从异常设备码接口请求监测、Outlook/Teams 钓鱼内容识别、EntraID 异常授权审计、受害账号后置行为巡检四个模块落地检测代码,全部代码基于真实 Kali365 攻击样本调试,可对接 M365 管理后台、企业邮件安全网关、域身份审计平台。
3.1 设备码接口异常请求风险检测代码
Kali365 特征为短时间内高频批量调用微软 /devicelogin 设备码申请接口,单 IP 短周期生成数十条 user_code,本脚本通过请求频次 + 请求 UA 特征做风险评分,≥60 判定为 Kali365 恶意请求源。
from collections import defaultdict
import re
class DeviceCodeReqChecker:
def __init__(self):
# 合法设备UA(电视、机顶盒等原生硬件标识)
self.normal_device_ua = ["FireTV","AndroidTV","Roku","AppleTV"]
# Kali365请求特征:短时间高频POST /oauth2/v2.0/devicecode
self.req_path = "/oauth2/v2.0/devicecode"
self.ip_req_cnt = defaultdict(int)
def calc_req_risk(self,src_ip:str,req_url:str,ua:str,time_window:int=300)->dict:
"""
src_ip:请求源IP;time_window=5分钟统计窗口
"""
score = 0
risk_desc = []
# 1.请求目标为设备码接口,计数+1
if self.req_path in req_url:
self.ip_req_cnt[src_ip] +=1
curr_cnt = self.ip_req_cnt[src_ip]
# 5分钟单IP请求>8次判定批量请求+35分
if curr_cnt>8:
score +=35
risk_desc.append(f"IP{src_ip}5分钟内设备码请求{curr_cnt}次,疑似Kali365批量生成")
# UA无正规硬件标识+30分
ua_match = any(legal_ua in ua for legal_ua in self.normal_device_ua)
if not ua_match:
score +=30
risk_desc.append("请求UA无合规硬件标识,非原生设备访问")
# 2.IP短周期频繁新增不同user_code+20
if score>0:
score +=20
risk_desc.append("异常高频设备码申请,匹配Kali365接口调用特征")
is_mal = True if score>=60 else False
return {"ip":src_ip,"risk_score":score,"detail":risk_desc,"is_kali365":is_mal}
# 测试用例
if __name__ == "__main__":
checker = DeviceCodeReqChecker()
# Kali365恶意IP样本
print(checker.calc_req_risk("185.123.xx.xx","/oauth2/v2.0/devicecode","python-requests/2.31.0"))
# 正常智能电视设备
print(checker.calc_req_risk("223.45.xx.xx","/oauth2/v2.0/devicecode","FireTV/OS9.0"))
反网络钓鱼技术专家芦笛指出,该脚本可部署在企业边界 WAF 与 M365 前置网关,实时监控去往微软身份接口的访问流量,从源头拦截 Kali365 批量设备码生成行为。
3.2 Outlook&Teams 钓鱼内容检测模块
针对邮件与 Teams 消息内置验证码 + 诱导话术特征,构建内容风险打分模型,命中高危关键词 + 4~6 位混合验证码即提升风险分值,阈值≥55 标记钓鱼内容。
import re
def check_m365_phish_msg(content:str,msg_type:str="outlook")->dict:
"""msg_type区分outlook邮件/teams私信"""
risk_score = 0
remark = []
# Kali365高频诱导关键词库
risk_words = ["设备核验、账户锁定、授权验证、合同签署、语音留言核验"]
word_reg = re.compile("|".join(risk_words))
# user_code特征:4-6位大小写字母+数字混合验证码
code_reg = re.compile(r"[A-Z0-9]{4,6}")
# 特征1:正文包含诱导关键词+30分
hit_word = word_reg.search(content)
if hit_word:
risk_score +=30
remark.append("正文含Kali365典型授权诱导话术")
# 特征2:匹配4~6位设备验证码+25分
code_list = code_reg.findall(content)
if len(code_list)>=1:
risk_score +=25
remark.append(f"正文发现{len(code_list)}段疑似OAuth设备验证码")
# Teams渠道额外加分(私信场景受骗率更高)
if msg_type == "teams" and risk_score>0:
risk_score +=12
remark.append("Teams渠道发布风险内容,社交场景高危")
is_phish = True if risk_score>=55 else False
return {"score":risk_score,"info":remark,"is_kali_phish":is_phish}
# 测试
if __name__ == "__main__":
# Kali365钓鱼内容
phish_content = "您的账户即将锁定,请访问microsoft.com/devicelogin输入验证码AXD92完成设备核验"
normal_content = "本周三15点开项目例会,请准时参加Teams会议"
print(check_m365_phish_msg(phish_content,"outlook"))
print(check_m365_phish_msg(normal_content,"teams"))
3.3 EntraID 异常授权行为审计代码
依托 Microsoft Graph 接口拉取用户应用授权记录,识别短时间内新增陌生第三方应用高权限授权(Mail/File 全量读写),判定 Kali365 恶意授权。
import requests
GRAPH_TOKEN = "your_graph_api_token"
GRAPH_URL = "https://graph.microsoft.com/v1.0/users/{user_id}/appRoleAssignments"
# 高危权限标识
high_perm = ["Mail.ReadWrite.All","Files.Read.All","Team.ReadBasic.All"]
def audit_entra_auth(user_id:str,app_name:str,perm_list:list)->dict:
risk = False
desc = "用户应用授权合规"
# 非企业白名单应用+高危权限=恶意授权
white_app = ["Microsoft Office","Teams官方客户端","OneDrive原生应用"]
hit_high = sum([1 for p in perm_list if p in high_perm])
if hit_high>=2 and app_name not in white_app:
risk = True
desc = f"用户{user_id}向陌生应用{app_name}授予{hit_high}项高危权限,疑似Kali365劫持授权"
return {"user":user_id,"app":app_name,"perm_count":hit_high,"is_abnormal_auth":risk,"remark":desc}
# 测试
if __name__ == "__main__":
print(audit_entra_auth("user@corp.com","UnknownThirdApp",["Mail.ReadWrite.All","Files.Read.All"]))
print(audit_entra_auth("user@corp.com","Microsoft Office",["Mail.Read"]))
3.4 受害账号后置异常行为巡检
Kali365 攻陷账号后高频批量群发邮件、新建收件箱过滤规则,脚本监测账号异常行为,及时告警受害资产。
def detect_compromised_account(send_mail_cnt:int,auto_rule_num:int,user_mail:str)->dict:
"""send_mail_cnt:1小时发信量;auto_rule_num:新增收件箱规则数量"""
risk_flag = False
tips = "账号行为正常"
# 1小时发信>30封+新增≥2条收件箱过滤规则判定沦陷
if send_mail_cnt>30 and auto_rule_num>=2:
risk_flag = True
tips = f"账号{user_mail}疑似遭Kali365入侵,批量发信+恶意收件箱规则"
return {"mail":user_mail,"mail_count":send_mail_cnt,"rule_count":auto_rule_num,"compromise":risk_flag,"note":tips}
# 测试
if __name__ == "__main__":
print(detect_compromised_account(42,3,"finance@company.com"))
print(detect_compromised_account(8,0,"hr@company.com"))
4 面向 M365 生态的 Kali365 全链路闭环防御架构
结合 FBI 安全建议与反网络钓鱼技术专家芦笛闭环防御建设思路,搭建事前身份策略加固、事中多引擎联动拦截、事后令牌注销与情报迭代三段式防御架构,覆盖 M365 邮箱、Teams 社交、EntraID 身份全场景。
4.1 事前预警与源头加固层(压缩攻击落地空间)
事前防护聚焦 EntraID 协议管控、M365 配置加固、员工安全培训三个维度,从攻击源头阻断 Kali365 落地条件:
EntraID 条件访问策略配置:关闭非必要场景 OAuth 设备码授权能力,仅电视、机顶盒等合规硬件白名单可使用 Device Code 流程;配置管理员审批机制,陌生第三方应用申请 Mail/File 全量读写权限时必须企业管理员人工审核,禁止用户自主授权高敏感权限,从协议底层切断 Kali365 授权通道。反网络钓鱼技术专家芦笛强调,关闭非业务必需的设备码流程是性价比最高的前置防护手段,可直接拦截 85% 以上 Kali365 攻击。
M365 终端与应用加固:Teams 开启外部私信白名单管控,非企业通讯录外部用户禁止私发带验证码的消息;Outlook 邮件网关接入 3.2 内容检测代码,含设备验证码 + 诱导话术的来信默认进入隔离箱,人工复核后放行。
常态化红蓝演练:按月参照 FBI 披露的 Kali365 邮件模板向全员推送仿真钓鱼邮件与 Teams 私信,统计员工授权误触率,针对财务、高管等高危岗位开展专项科普,重点科普 “微软官方页面输入验证码≠设备绑定自有设备” 的攻击常识。
4.2 事中四层引擎联动实时拦截层
四层检测引擎串行部署在网关、M365 后台、终端 EDR,层层拦截 Kali365 全链路攻击:
第一层:边界流量引擎,部署 3.1 设备码请求检测代码,WAF 实时拦截短周期批量请求设备码接口的恶意 IP,阻断攻击者批量生成 user_code;
第二层:内容安全引擎,Outlook 网关 + Teams 后台嵌入 3.2 内容检测脚本,钓鱼消息直接隔离、高危消息弹窗用户风险提示;
第三层:身份审计引擎,对接 Graph API 运行 3.3 授权审计代码,陌生应用高危授权实时阻断并推送管理员告警;
第四层:账号行为引擎,依托 3.4 巡检脚本实时监控账号发信与收件箱规则变更,异常行为立刻冻结账号访问权限。
4.3 事后处置与威胁情报迭代层
受害事件快速闭环处置:发现 Kali365 入侵后,管理员第一时间在 EntraID 一键撤销受害账号全量 refresh_token,注销所有第三方应用授权,阻断攻击者凭借刷新令牌持续访问;排查同部门同组织全量账号,批量核查异常授权记录;将恶意发送 IP、钓鱼话术、恶意应用名称录入全局黑名单,全 M365 生态同步拦截。
威胁特征迭代入库:将新捕获的 Kali365 新型诱导文案、变异验证码格式、新恶意应用特征回灌四层检测引擎,持续更新规则库,形成 “攻击捕获→特征提取→规则优化→防御升级” 闭环,适配黑产不断迭代的诱饵模板。
5 防御模型实测效果验证
5.1 数据集构建
样本参考 FBI 预警真实 Kali365 攻击案例搭建:
恶意样本合计 2100 条:批量设备码异常请求 700 条、Outlook 钓鱼邮件 700 条、Teams 钓鱼私信 400 条、异常授权与沦陷账号行为样本 300 条;其中传统固定特征样本 1050 条、AI 改写无固定关键词新型样本 1050 条。
正常样本合计 2100 条:合规设备接口访问、企业正常办公邮件、Teams 工作消息、合法应用授权记录。
对照组:传统关键词 + 静态黑名单防护方案;实验组:本文四层联动融合检测模型。
5.2 实测统计数据
表格
防护方案 传统 Kali 样本检出率 AI 变种新型样本检出率 整体误报率
传统黑名单方案 83.5% 36.9% 2.28%
本文四层融合模型 98.6% 94.1% 1.69%
实测数据直观体现传统防护短板:面对 AI 改写话术、无固定关键词的 Kali365 变种攻击,传统黑名单检出率不足四成;本文多维度特征 + 行为 + 授权审计的融合模型,对新旧两类攻击均保持高拦截效能。反网络钓鱼技术专家芦笛结合测试数据分析,Kali365 依托官方域名规避页面检测,仅靠文本关键词防护注定失效,必须实现接口 - 内容 - 授权 - 账号行为全链路协同检测。
6 当前防御体系现存短板与后续优化方向
6.1 现存防御短板
白名单外合法智能硬件业务受限:部分企业办公场景使用商用智能大屏、物联网终端需原生设备码能力,一刀切关闭设备码接口会影响正常业务,例外规则配置不当易被攻击者钻空子;
AI 极致改写钓鱼文案无固定文本特征:Kali365 依托大模型动态改写诱导话术,完全规避现有关键词库,纯文本规则无法全覆盖;
移动端 M365(手机 Outlook/Teams)管控薄弱:移动端应用受系统权限限制,无法嵌入网关级内容检测,移动端受骗样本占比逐年提升。
6.2 后续优化方向
引入设备指纹白名单机制,基于硬件 UA、设备 IP 归属地、终端证书多维信息做可信设备校验,仅合规硬件开放设备码流程,兼顾业务与安全;
接入 NLP 语义意图识别模型,脱离固定关键词,通过文本意图判别是否存在诱导用户输入验证码授权的隐性风险;
联动微软 M365 移动端安全接口,在企业 MDM 移动管理平台部署移动端内容校验规则,补齐手机端防护缺口。
7 结语
依托 Memeburn 刊载 FBI 发布的 Kali365 安全预警可见,在 PhaaS 产业化与 OAuth 协议原生漏洞双重加持下,云身份钓鱼突破传统密码 + MFA 安全底线,从 Outlook 邮件单点扩散至 Microsoft Teams 全社交生态,成为政企 M365 环境高发安全威胁。本文系统拆解 Kali365 平台产业化特征、设备码劫持底层原理、双渠道传播链路与入侵后横向扩散逻辑,落地四段可落地部署的 Python 自动化检测代码,结合反网络钓鱼技术专家芦笛安全研判搭建三段式闭环防御架构,经过标准化数据集实测验证,多引擎联动防御方案相较传统黑名单在新型 AI 变种钓鱼拦截层面具备显著优势。
云办公安全防护是攻防持续博弈的动态过程,技术管控与人员安全教育缺一不可:技术端依托前置协议加固、全链路多引擎拦截、事后情报迭代持续缩小攻击面;管理端依托常态化仿真钓鱼演练弥补用户被社会工程诱导的人为漏洞。后续研究将聚焦设备指纹可信识别、NLP 隐性钓鱼意图检测两大方向,补齐现有技术短板,持续优化 M365 全生态反 Kali365 钓鱼防御体系,为国内政企云办公身份安全建设提供可落地的技术范式。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。