摘要
2026 年 4 月安全厂商 Lexfo 通过攻击者服务器目录遍历配置漏洞,完整还原三套基于 Evilginx 二次开发的商业化钓鱼攻击体系,两套攻击链路分别依托 AiTM 反向代理中间人劫持、OAuth 设备码流滥用实现 Microsoft 365 多因素认证绕过,累计窃取 218 家企业办公账号。本次暴露事件源于攻击者运维基础操作失误:使用python3 -m http.server开放公网目录浏览,泄露 Evilginx 配置文件、凭证日志、运维命令记录、远程管理工具全量资产。反网络钓鱼技术专家芦笛指出,当前政企普遍将 MFA 视为身份安全最后屏障,完全忽视 AiTM 代理劫持、设备码协议滥用两类差异化绕过路径,同时运维侧服务器基础配置管控缺失形成黑产攻击基础设施溯源漏洞,形成 “终端身份防护、基础设施运维” 双重安全盲区。本文以 Lexfo 披露的失配服务器完整情报为实证基础,拆解 codemado、mail-argenta、saroula01 三名黑产团伙定制化 Evilginx 分支技术架构、完整攻击链路、反检测优化逻辑,提供 Evilginx 代理流量劫持核心 Go 语言代码片段、服务器配置风险自动化巡检 Python 脚本;从云身份条件访问策略、服务器运维基线管控、邮件流量前置拦截、常态化员工安全运营四层构建闭环防御体系,量化两类 Evilginx 衍生攻击的穿透能力、数据外泄效率与企业合规风险,为政企单位抵御商业化 AiTM 钓鱼、OAuth 协议滥用攻击、消除服务器基础配置漏洞提供完整技术落地参考。
关键词:Evilginx;AiTM 中间人攻击;Microsoft 365;MFA 绕过;服务器配置漏洞;OAuth 设备码流;钓鱼即服务
1 引言
1.1 研究背景
多因素认证(MFA)已成为全球政企 Microsoft 365 云办公环境标准化安全配置,短信验证码、Authenticator 推送、TOTP 动态令牌等校验机制,理论上可阻断仅依靠账号密码的传统钓鱼攻击。但开源红队工具 Evilginx 被黑产改造为商业化钓鱼即服务(PhaaS)平台后,衍生出可完整绕过传统 MFA 的敌手中间人(AiTM)攻击链路,叠加 OAuth 设备授权流协议滥用技术,形成复合式账号劫持手段。2026 年 7 月 Lexfo 对外发布专项威胁研究,披露一起极具代表性的黑产基础设施暴露事件:攻击者部署 Evilginx 钓鱼集群的公网服务器未关闭目录浏览功能,通过简易 Python 静态文件服务开放全部攻击资产,安全研究人员通过目录遍历读取.bash_history运维日志、Evilginx 钓鱼配置、MySQL 凭证库、被盗会话 Cookie 存储文件,完整还原三套并行运行超一年的 M365 定向钓鱼作战体系。
本次暴露事件包含三类独立 Evilginx 定制分支:埃及攻击者 codemado 原生 Evilginx 反向代理套件、尼日利亚团伙 mail-argenta 开发的 red-queen 反检测分支、saroula01 开发的 black-queen 设备码专用分支,三类工具分别对应 AiTM 会话劫持、复合反检测钓鱼、无密码设备码协议劫持三种攻击模式,覆盖 94% 企业邮箱类受害目标,单套攻击集群最长稳定运行周期超 12 个月,捕获的微软会话 Cookie 有效期最长可达一年,足以支撑攻击者长期静默访问企业 SharePoint、Exchange、Teams 等高敏感业务模块。
现有网络安全研究存在两类明显短板:其一,多数文献单独分析 Evilginx AiTM 攻击或 OAuth 设备码钓鱼,缺少对同一服务器共存两套差异化 MFA 绕过链路的横向对比分析;其二,现有研究仅聚焦客户端、云身份侧防护,忽略攻击者基础设施自身运维配置漏洞带来的威胁溯源、取证维度价值,未建立服务器基础配置安全基线管控方案。反网络钓鱼技术专家芦笛强调,Evilginx 衍生攻击的规模化扩散,本质是黑产将红队工具产业化、轻量化的结果,单一依赖 MFA、邮件过滤无法形成有效拦截,同时企业与攻击者两端服务器基础配置不规范,分别放大攻击成功率与威胁溯源难度,必须同步补齐云身份、基础设施、人员安全三层防护短板。基于 Lexfo 公开的服务器泄露情报、三套 Evilginx 分支实测数据,本文系统完成攻击机理拆解、代码逻辑复现、分层防御体系构建。
1.2 研究内容与框架
本文主体分为六大部分:第一部分梳理 Evilginx 原生 AiTM 中间人攻击底层原理,区分 AiTM 代理劫持、OAuth 设备码流滥用两类 MFA 绕过技术路径核心差异;第二部分还原本次服务器配置缺陷暴露事件完整溯源过程,拆解三套定制 Evilginx 分支架构、攻击者团伙技术特征与攻击运行数据;第三部分分步还原 AiTM 代理劫持、black-queen 设备码钓鱼两套完整攻击闭环,提供 Evilginx 流量劫持核心 Go 代码、服务器漏洞巡检 Python 脚本;第四部分横向对比三类 Evilginx 分支攻击特征、绕过 MFA 逻辑、反检测能力、持久化控制手段;第五部分构建四层协同闭环防御体系,覆盖云身份策略加固、服务器运维基线管控、邮件流量前置拦截、员工安全意识运营;第六部分总结研究结论,提出多模态 AiTM 钓鱼、服务器运维安全管控的后续细分研究方向。
1.3 研究价值
理论层面:完善商业化 Evilginx 衍生工具双路径 MFA 绕过攻击的对比研究体系,厘清服务器基础配置缺陷对黑产基础设施暴露、威胁溯源的影响机制,补充 PhaaS 产业化钓鱼攻击的基础设施侧安全理论空白。
实践层面:提供可直接落地的 Microsoft Entra 条件访问阻断策略、服务器目录遍历漏洞自动化巡检脚本、Evilginx 流量特征检测规则,区分 AiTM 与设备码攻击差异化防护方案,兼顾企业云办公身份防护、服务器运维安全基线建设双重场景,降低商业化 AiTM 钓鱼带来的数据泄露、勒索攻击风险。
2 Evilginx 两类 MFA 绕过攻击底层技术机理
2.1 Evilginx AiTM 反向代理中间人攻击基础原理
Evilginx 是面向渗透测试场景开发的开源反向代理框架,核心设计逻辑为敌手中间人(Adversary-in-the-Middle)流量转发,区别于传统伪造静态登录页面钓鱼,其不构建虚假认证页面,而是搭建独立钓鱼域名透明转发全部流量至微软官方login.microsoftonline.com认证服务器,完整交互流程分为五步:
攻击者注册混淆式仿冒域名,配置 SSL 证书,部署 Evilginx 代理服务,加载适配 M365 的 phishlet 配置文件;
受害者点击钓鱼邮件内短链接,访问攻击者控制的钓鱼域名,流量全部转发至微软官方认证接口;
用户在代理转发的真实微软页面输入账号、密码,完成短信、推送类 MFA 二次校验;
Evilginx 代理实时截获服务器下发的Set-Cookie响应头,提取包含完整会话权限的认证 Cookie,本地持久化存储;
代理将微软服务器原始页面、重定向结果原样返回受害者终端,用户无任何异常感知,攻击者持窃取的会话 Cookie 可在任意浏览器完成免密登录,无需重复验证 MFA。
该攻击能够绕过传统 MFA 的核心逻辑在于:MFA 校验流程在微软官方服务器完整执行,身份校验结果绑定会话 Cookie,攻击者直接截取有效会话凭证,而非破解、窃取用户 MFA 验证码,传统短信、TOTP 类多因素认证无法阻断会话劫持行为。反网络钓鱼技术专家芦笛强调,AiTM 攻击仅能通过 FIDO2 安全密钥、通行密钥等钓鱼抗性 MFA 实现底层阻断,普通 MFA 仅完成身份核验,无法抵御代理层面的会话窃取。
2.2 OAuth 设备码流滥用攻击机理(black-queen 分支核心逻辑)
saroula01 开发的 black-queen 分支完全剥离 AiTM 代理逻辑,依托微软 OAuth 2.0 设备授权流(RFC8628)实现无密码账号劫持,与 Evilginx 原生 AiTM 形成技术互补,核心执行流程如下:
后端自动向微软 Entra ID 设备码接口发起请求,实时生成短期有效user_code用户验证码、长效device_code设备标识;
前端构建仿微软 Authenticator 诱饵页面,展示生成的用户验证码,诱导受害者跳转至microsoft.com/devicelogin官方验证页面;
用户在微软可信域名完成账号登录、MFA 校验,输入诱饵页面展示的验证码并确认授权恶意客户端访问账号;
black-queen 后端持续轮询微软令牌接口,用户授权完成后直接捕获access_token与长期有效refresh_token刷新凭证;
攻击者依托刷新令牌长期调用 Microsoft Graph API 读取邮件、文档、通讯录,无需留存用户账号密码与会话 Cookie。
该路径无需代理转发流量、不依赖仿冒域名,仅依靠社会工程诱导用户主动授权恶意设备,弥补 AiTM 攻击依赖域名、易被 URL 沙箱拦截的短板,两类技术常被黑产组合投放提升攻击成功率。
2.3 两类 MFA 绕过攻击核心技术差异梳理
从攻击载体、凭证窃取类型、防护手段、检测难度四个维度区分 AiTM 代理劫持、OAuth 设备码滥用攻击底层差异:
流量载体:AiTM 依赖攻击者自建反向代理域名,全部登录流量经恶意服务器中转;设备码攻击仅使用微软官方域名,无恶意流量中转行为;
窃取凭证类型:AiTM 捕获短期会话 Cookie,有效期由微软会话策略控制;设备码攻击获取长效刷新令牌,最长有效期可达 1 年以上;
MFA 抗性:短信、推送 MFA 完全无法抵御 AiTM;设备码攻击复用用户完整 MFA 授权,FIDO2 密钥仅能降低部分诱导成功率;
基础阻断手段:AiTM 依靠 FIDO2 钓鱼抗性 MFA 阻断;设备码攻击需通过 Entra 条件访问全局拦截设备代码流。
3 服务器配置缺陷暴露三套 Evilginx 钓鱼集群事件完整溯源
3.1 攻击者服务器基础配置漏洞成因
本次黑产基础设施暴露的核心根源并非高危系统漏洞,而是攻击者运维操作基础失误,Lexfo 研究人员从服务器公开目录读取.bash_history文件还原完整操作链路:攻击者使用python3 -m http.server 8080命令快速启动静态文件服务,未关闭目录浏览默认功能,公网 8080 端口直接对外开放,任意互联网访问者均可遍历服务器全部文件目录。
目录遍历漏洞暴露的核心资产包含:三套 Evilginx 定制分支完整源码、phishlet 钓鱼配置文件、MySQL 被盗账号凭证库、长达 12 个月的会话 Cookie 存储日志、SimpleHelp 远程管理工具安装包、攻击者 Telegram 会话缓存、批量邮件投递工具 MaDoO Blaster 执行脚本、运维操作命令记录。安全研究人员依托泄露资产完成攻击者团伙身份溯源、攻击链路完整复现、受害企业规模统计,共计 218 条有效企业账号劫持记录,覆盖全球十余个行业,94% 受害目标为企业办公邮箱账号。
3.2 三套 Evilginx 定制分支团伙与技术特征拆解
3.2.1 codemado 原生 Evilginx 分支(埃及攻击者)
codemado 为 2018 年活跃于黑客论坛的埃及黑产从业者,直接克隆开源 Evilginx 基础仓库完成轻量化改造,核心面向中型企业批量投放钓鱼邮件,配套自研 MaDoO Blaster 批量邮件投递工具,攻击链路标准化,无复杂反检测优化,主要依靠短域名混淆规避邮件网关 URL 黑名单,集群稳定运行周期 6 个月,捕获 72 条企业账号会话记录。该分支仅实现基础 AiTM 反向代理劫持功能,未集成设备码钓鱼模块,Cookie 默认有效期 30 天,持久化控制能力有限。
3.2.2 mail-argenta red-queen 反检测分支(尼日利亚攻击者)
mail-argenta 开发的 red-queen 分支为三套工具中反检测优化程度最高的 Evilginx 衍生版本,针对网页安全检测、子资源完整性校验、路径特征拦截做多层规避改造,核心优化点如下:
重写 HTML 跨域、完整性校验属性,绕过网页静态特征检测;
内置自定义 URL 重写引擎,修改请求路径规避基于路径匹配的防火墙拦截规则;
页面预填充目标用户邮箱,降低用户表单放弃率,提升攻击转化率;
手动修改会话 Cookie 有效期至 31536000 秒(一整年),即便用户重置账号密码,窃取的 Cookie 仍可长期访问 M365 资源。
该团伙自身运维安全存在严重缺陷,个人邮箱、明文密码存储于窃取用户的信息窃取程序日志中,且该密码与钓鱼平台 MySQL 数据库硬编码密码完全复用,成为 Lexfo 溯源攻击者身份的核心线索,集群运行 8 个月,捕获 89 条企业账号会话记录。
3.2.3 saroula01 black-queen 设备码专用分支
black-queen 完全舍弃 AiTM 反向代理架构,专注 OAuth 设备码流滥用攻击,是三套工具中捕获受害账号数量最多的分支,累计捕获 57 条企业账号记录,核心优势为无恶意代理域名、依托微软官方认证页面,邮件安全网关、网页防火墙难以识别恶意流量。工具内置实时设备码生成、后台持续令牌轮询模块,诱饵页面仿微软 Authenticator 安全校验通知,社会工程诱导话术贴合企业 IT 合规通知场景,隐蔽性显著高于 AiTM 类钓鱼工具。
3.3 服务器泄露资产反映的黑产运营模式
从泄露的运维文件、凭证日志可归纳当前 Evilginx 商业化 PhaaS 运营特征:
第一,工具模块化交付,三类分支独立打包售卖,无技术门槛,购买者无需掌握反向代理、OAuth 协议底层开发知识,仅需配置域名、SSL 证书即可启动攻击集群;
第二,攻击者基础设施运维粗放,安全操作规范缺失,启用公开目录浏览、明文存储数据库密码、留存完整 shell 操作日志,OPSEC(操作安全)意识薄弱,极易被安全厂商完整溯源;
第三,攻击完成后数据外泄流程标准化,窃取会话、令牌后 6 至 10 分钟内批量导出 SharePoint 合同、客户隐私数据,随即向受害企业发送加密货币勒索通知,形成 “劫持 - 窃密 - 勒索” 完整黑产闭环。
4 Evilginx 双路径 MFA 绕过攻击完整链路与核心代码示例
4.1 red-queen AiTM 反向代理劫持完整攻击流程
mail-argenta 开发的 red-queen 分支 AiTM 攻击分为六大标准化阶段,全程用户无感知,MFA 校验完全失效:
阶段 1:批量诱饵投递。MaDoO Blaster 邮件工具向企业员工发送仿 IT 运维、财务通知钓鱼邮件,短链接指向攻击者仿冒 M365 登录域名;
阶段 2:流量透明转发。用户点击链接访问 red-queen 代理服务,工具自动将全部 HTTP/S 流量转发至微软login.microsoftonline.com官方认证服务器;
阶段 3:完整身份校验。用户在代理转发的真实微软页面输入账号密码,完成短信、推送 MFA 二次验证,服务器下发带完整权限的会话 Cookie;
阶段 4:会话凭证窃取。red-queen 代理层拦截Set-Cookie响应头,提取长期有效会话 Cookie 存入 MySQL 数据库,设置一年过期时间;
阶段 5:正常页面回传。代理将微软返回的正常业务页面、重定向地址原样返回受害者,用户正常进入邮箱、文档页面,无法察觉凭证泄露;
阶段 6:静默数据窃取。攻击者登录 Evilginx 后台,导出存储的会话 Cookie,导入浏览器免密登录受害账号,批量导出企业敏感数据后发起勒索。
4.2 Evilginx 代理流量劫持核心 Go 代码片段(red-queen http_proxy 模块简化版)
以下代码基于 red-queen 分支泄露的http_proxy.go文件简化,仅用于网络安全攻防研究、威胁复现,禁止用于未授权入侵行为,完整还原反向代理流量转发、会话 Cookie 窃取核心逻辑:
package main
import (
"net/http"
"net/http/httputil"
"net/url"
"strings"
)
// 微软官方M365认证目标地址
var targetUrl, _ = url.Parse("https://login.microsoftonline.com")
// 数据库会话存储实例,存储窃取的M365会话Cookie
var sessionStore SessionDB
type ProxyServer struct {
reverseProxy *httputil.ReverseProxy
}
func NewAiTMProxy() *ProxyServer {
proxy := httputil.NewSingleHostReverseProxy(targetUrl)
// 自定义响应处理函数,拦截微软下发的会话Cookie
proxy.ModifyResponse = func(resp *http.Response) error {
// 遍历全部响应Cookie,筛选M365认证会话凭证
for _, cookie := range resp.Cookies() {
if strings.Contains(cookie.Name, "ESTSAUTHPERSISTENT") || strings.Contains(cookie.Name, "MSIS") {
// 将窃取的Cookie写入数据库,设置1年有效期
sessionStore.SaveSession(cookie.Value, cookie.Name, 31536000)
}
}
return nil
}
return &ProxyServer{reverseProxy: proxy}
}
func (p *ProxyServer) HandleRequest(w http.ResponseWriter, r *http.Request) {
// 透明转发用户全部请求至微软官方认证服务器
p.reverseProxy.ServeHTTP(w, r)
}
// 会话存储数据库简化接口
type SessionDB struct{}
func (s SessionDB) SaveSession(cookieVal, cookieName string, ttl int64) {
// 写入MySQL持久化存储会话凭证,供攻击者后台调取
}
func main() {
proxyServer := NewAiTMProxy()
http.HandleFunc("/", proxyServer.HandleRequest)
// 公网启动80/443端口反向代理钓鱼服务
http.ListenAndServeTLS(":443", "ssl_cert.pem", "ssl_key.pem", nil)
}
代码逻辑说明:red-queen 分支通过重写反向代理ModifyResponse回调函数,拦截微软认证服务器下发的持久化会话 Cookie,存入数据库长期留存;代理完全透明转发用户登录、MFA 校验流量,微软服务器日志仅记录正常认证行为,企业安全日志难以识别代理劫持异常。
4.3 black-queen OAuth 设备码钓鱼完整攻击链路
saroula01 开发的 black-queen 分支无反向代理逻辑,依托 OAuth 设备授权流实现无密码账号劫持,分为五个执行阶段:
阶段 1:诱饵页面访问。受害者打开仿微软 Authenticator 安全校验页面,后端自动调用微软设备码接口实时生成全新user_code验证码;
阶段 2:社会工程诱导授权。页面提示用户复制验证码,跳转至微软官方microsoft.com/devicelogin页面完成账号核验;
阶段 3:用户完成官方 MFA 授权。受害者在可信域名页面输入账号密码、短信验证码,粘贴页面展示的设备码并确认授权;
阶段 4:后端轮询捕获长效令牌。black-queen 独立线程持续轮询微软令牌接口,用户授权完成后立即获取refresh_token刷新凭证;
阶段 5:长期静默访问。攻击者使用刷新令牌持续调用 Microsoft Graph API,无需用户账号密码,单账号可注册多台伪装 “Microsoft Sync” 恶意设备,潜伏周期可达数月。
4.4 服务器目录遍历漏洞自动化巡检 Python 脚本(防御工具)
针对本次攻击者服务器配置缺陷,开发自动化巡检脚本,扫描服务器开放目录浏览、明文运维日志、静态文件服务高危端口等风险,适用于企业内网、公网服务器安全基线自查:
# 服务器目录遍历配置漏洞自动化巡检脚本
import requests
import socket
import subprocess
from concurrent.futures import ThreadPoolExecutor
class ServerConfigScanner:
def __init__(self, target_ip, port_list=[80, 8080, 8000, 9000]):
self.target_ip = target_ip
self.check_ports = port_list
self.high_risk_files = ["/.bash_history", "/index.html", "/config.yaml", "/mysql_backup.sql"]
def port_alive_check(self, port):
"""检测端口是否开放可访问"""
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2)
result = sock.connect_ex((self.target_ip, port))
sock.close()
return port if result == 0 else None
except Exception:
return None
def dir_listing_detect(self, port):
"""检测端口是否开启目录浏览功能"""
url = f"http://{self.target_ip}:{port}/"
try:
resp = requests.get(url, timeout=3, headers={"User-Agent":"SecurityScanner/1.0"})
# 目录浏览页面特征关键词
dir_feature = ["Directory listing for", "<title>Index of /"]
for feature in dir_feature:
if feature in resp.text:
return {"port": port, "risk": "开启目录浏览", "url": url}
# 检测高危明文运维文件是否可直接访问
for risk_file in self.high_risk_files:
file_url = f"http://{self.target_ip}:{port}{risk_file}"
file_resp = requests.get(file_url, timeout=2)
if file_resp.status_code == 200 and len(file_resp.text) > 10:
return {"port": port, "risk": f"高危文件可公开访问:{risk_file}", "url": file_url}
return None
except Exception:
return None
def batch_scan(self):
"""批量多线程扫描全部高危端口"""
open_ports = []
risk_result = []
with ThreadPoolExecutor(max_workers=5) as executor:
port_res = executor.map(self.port_alive_check, self.check_ports)
for p in port_res:
if p:
open_ports.append(p)
# 对开放端口检测目录遍历风险
with ThreadPoolExecutor(max_workers=3) as executor:
scan_res = executor.map(self.dir_listing_detect, open_ports)
for item in scan_res:
if item:
risk_result.append(item)
return risk_result
# 脚本执行入口
if __name__ == "__main__":
# 填入待巡检服务器IP
scanner = ServerConfigScanner(target_ip="185.163.204.7")
scan_risk = scanner.batch_scan()
if len(scan_risk) > 0:
print("检测到服务器高危配置漏洞:")
for risk in scan_risk:
print(f"端口:{risk['port']} | 风险类型:{risk['risk']} | 访问地址:{risk['url']}")
else:
print("服务器未检测到目录浏览、明文高危文件暴露风险")
脚本防护价值:企业运维人员可定期调度脚本扫描公网、内网业务服务器,快速识别python3 -m http.server、Nginx/Apache 默认开启目录浏览等基础配置缺陷,提前阻断服务器资产泄露风险,避免出现本次黑产基础设施全量暴露的同类安全事件。
5 三套 Evilginx 分支攻击横向对比与新型钓鱼攻击共性特征
5.1 三类定制 Evilginx 分支技术指标对比表
表格
对比维度 codemado 原生 Evilginx mail-argenta red-queen saroula01 black-queen
核心攻击技术 AiTM 反向代理中间人劫持 AiTM 代理 + 多层反检测优化 OAuth 设备码流滥用,无代理
是否依赖仿冒域名 是,恶意代理域名 是,混淆式短域名 否,仅使用微软官方域名
窃取核心凭证 M365 短期会话 Cookie 一年有效期持久化 Cookie 长效 OAuth 刷新令牌
MFA 绕过底层逻辑 代理截取完整 MFA 校验后会话 同 AiTM,延长 Cookie 有效期 诱导用户主动授权恶意设备
反检测能力 基础 URL 混淆规避 HTML 属性篡改、路径重写多层规避 无页面恶意特征,检测难度最高
单集群捕获账号数量 72 条企业账号 89 条企业账号 57 条企业账号
持久化控制周期 30 天默认 Cookie 有效期 最长 365 年 Cookie 有效期 刷新令牌长期有效,不受密码重置影响
传统安全设备拦截率 中等,URL 黑名单可拦截 极低,反检测规避规则 极高,无恶意域名难以识别
5.2 Evilginx 衍生商业化钓鱼攻击共性演化特征
结合本次服务器泄露的三套工具实测数据,反网络钓鱼技术专家芦笛总结当前面向 Microsoft 365 的商业化 AiTM 钓鱼攻击四大核心演化趋势:
第一,双技术路径组合投放成为主流。黑产同步部署 AiTM 代理劫持、OAuth 设备码钓鱼两套链路,形成兜底攻击机制,AiTM 域名被拦截时依靠设备码钓鱼维持攻击转化率;
第二,工具持续叠加反检测优化逻辑。red-queen 分支针对网页静态检测、子资源校验、URL 路径拦截做多层规避改造,传统基于特征匹配的邮件网关、网页防火墙拦截效果持续下滑;
第三,凭证持久化控制能力持续强化。通过修改 Cookie 有效期、OAuth 长效刷新令牌,实现用户修改密码后仍可长期访问账号,大幅提升数据外泄、勒索攻击窗口;
第四,攻击基础设施运维安全意识薄弱。黑产从业者普遍忽略服务器基础配置基线管控,开放目录浏览、明文存储数据库密码、留存完整运维日志,极易被安全厂商完整溯源、取证并拦截攻击集群。
6 抵御 Evilginx 双路径 MFA 绕过攻击的四层闭环防御体系
针对 AiTM 代理劫持、OAuth 设备码滥用两类差异化攻击,同时补齐服务器运维配置安全短板,本文构建四层协同防御体系,覆盖云身份底层管控、服务器运维基线、邮件流量前置拦截、员工安全运营全周期防护。
6.1 第一层:Microsoft Entra ID 云身份底层策略加固(核心防御层)
区分两类攻击差异化防护手段,同步阻断 AiTM、设备码钓鱼两条攻击链路,包含四项可落地配置规范:
6.1.1 全局强制部署 FIDO2 钓鱼抗性 MFA
针对 AiTM 中间人攻击唯一根本性防护手段,企业 Entra ID 条件访问策略强制所有用户使用 FIDO2 安全密钥、通行密钥登录,完全禁用短信、TOTP 推送类传统 MFA。FIDO2 密钥绑定用户终端硬件指纹,AiTM 代理无法中转硬件校验流程,从底层阻断会话 Cookie 窃取逻辑。反网络钓鱼技术专家芦笛解释,传统 MFA 校验流程可被代理完整转发,FIDO2 采用硬件绑定公钥认证,中间人代理无法篡改、中转硬件签名信息,直接失效全部 Evilginx AiTM 攻击链路。
6.1.2 条件访问全局阻断 OAuth 设备代码流
针对 black-queen 设备码钓鱼分支,新建 Entra 条件访问策略,针对全部用户、全部云应用,单独拦截设备代码身份验证流,仅保留企业合规 IoT、CLI 设备白名单,彻底切断设备码协议滥用攻击路径。上线前开启报告模式审计 7 天,迁移合法老旧设备后正式启用阻断规则。
6.1.3 启用持续访问评估(CAE)缩短会话生命周期
全局开启 Microsoft 持续访问评估功能,大幅缩短会话 Cookie 有效时长,禁用一年期持久化会话凭证,即便 AiTM 代理窃取短期 Cookie,过期后自动失效,降低攻击者长期潜伏风险;配置 IP 位置条件访问策略,限制境外陌生 IP 访问 M365 核心业务模块。
6.1.4 收紧设备注册数量阈值
将 Entra ID 默认 50 台设备注册上限下调至 1-2 台,防止攻击者通过设备码钓鱼批量注册多台伪装恶意设备,管理员可快速识别陌生设备并批量撤销授权。
6.2 第二层:服务器运维安全基线管控(消除基础设施配置漏洞)
针对本次暴露事件的目录遍历、静态文件服务高危配置缺陷,建立企业服务器标准化运维规范:
禁止使用python3 -m http.server、php -S简易静态文件服务对外提供公网访问,仅使用 Nginx、Apache 标准化 Web 服务,默认关闭目录浏览功能;
自动化基线巡检:定时部署上文服务器配置漏洞扫描脚本,每周全量扫描公网、内网服务器,发现开放目录浏览、明文备份文件、可访问运维日志立即告警处置;
运维文件权限管控:.bash_history、数据库备份、应用配置文件设置最小访问权限,禁止公网、内网匿名用户读取;
密码复用管控:数据库、服务器管理员、运维后台密码独立设置,禁止跨系统复用明文密码,避免单一泄露引发全集群攻陷。
6.3 第三层:邮件流量前置过滤,拦截 Evilginx 诱饵投递(事前拦截层)
AiTM、设备码钓鱼攻击统一入口为钓鱼邮件,通过 Exchange 在线邮件规则、邮件网关双重过滤阻断诱饵触达员工:
URL 实时点击重写扫描:所有外部邮件链接经过安全代理实时检测,识别仿 M365 登录域名、短链接跳转代理域名,恶意页面直接阻断访问;
关键词隔离规则:拦截正文包含 “设备验证码、账号安全核验、Authenticator 校验” 等设备码钓鱼诱导话术的外部邮件;
仿冒页面特征检测:扫描邮件内页面脚本,识别 red-queen 分支篡改 HTML 校验属性、自定义 URL 重写等反检测特征,标记高风险邮件隔离至垃圾箱;
外部附件管控:拦截可执行文件、Web 打包脚本,阻断攻击者投递 Evilginx 运维管理工具。
6.4 第四层:员工安全意识常态化运营(兜底防御层)
技术策略无法完全消除社会工程学诱导风险,配套专项安全培训针对性识别两类 Evilginx 衍生诱饵:
专项攻击科普培训:区分 AiTM 仿域名钓鱼、设备码验证码诱导两类攻击特征,明确告知员工官方 M365 不会通过外部链接要求输入设备授权码;
月度差异化钓鱼演练:同步投放 AiTM 仿域名、设备码验证码两类模拟诱饵,统计员工点击、授权比例,针对高风险员工一对一安全辅导;
统一官方通知渠道:企业 IT 合规、账号安全通知仅通过内部 Teams、内网 OA 推送,外部链接、陌生短信一律判定为钓鱼;
异常上报机制:员工收到贴合账号安全校验的陌生邮件、短信,第一时间上报企业安全运营团队核查域名、链接合法性。
7 Evilginx 攻击账号劫持标准化应急处置流程
若检测到 AiTM 代理劫持、设备码钓鱼导致账号泄露,遵循六步标准化处置流程,快速阻断攻击者持续访问:
全域会话紧急回收:通过 Microsoft Entra 一键撤销用户全部登录会话,失效所有窃取的会话 Cookie、OAuth 刷新令牌;
恶意设备批量清理:进入用户设备管理列表,删除全部非员工自有设备,清理攻击者注册的伪装 “Microsoft” 系列恶意终端;
账号凭据与认证方式重置:强制重置账号登录密码,全局启用 FIDO2 钓鱼抗性 MFA,删除短信、推送类传统二次验证方式;
邮件规则审计清理:排查 Exchange 收件箱自动转发、隐藏过滤规则,删除攻击者新增的数据外泄抄送规则;
OAuth 授权全域清理:撤销用户全部第三方应用授权,仅保留企业官方办公套件可信客户端;
策略迭代复盘:导出攻击者 IP、恶意域名、诱饵关键词,更新邮件过滤规则、条件访问策略、服务器运维基线,补充同类攻击防护规范。
8 结论与后续研究方向
8.1 研究结论
本文以 2026 年 Lexfo 披露的服务器配置缺陷暴露三套 Evilginx 钓鱼集群事件为核心实证素材,完整拆解 codemado、mail-argenta、saroula01 三类黑产定制分支的 AiTM 中间人代理、OAuth 设备码流双路径 MFA 绕过攻击机理,厘清简易静态文件服务开启目录浏览、运维密码复用等基础配置漏洞带来的黑产基础设施全量泄露风险,得出三项核心结论:
第一,原生 Evilginx 及其二次开发分支依托 AiTM 反向代理技术,可完整绕过短信、TOTP 等传统 MFA,仅 FIDO2 钓鱼抗性密钥能够从底层阻断会话 Cookie 劫持;配套 OAuth 设备码滥用分支不依赖恶意域名,依托微软官方认证页面大幅提升隐蔽性,两类攻击需差异化配置 Entra 条件访问策略实现阻断;
第二,黑产攻击者普遍存在运维操作安全短板,服务器目录浏览开放、明文存储运维资产、密码跨系统复用等基础配置缺陷,直接导致整套攻击工具、受害账号日志完整暴露,为安全厂商溯源、拦截攻击集群提供关键情报;
第三,单一防护手段无法抵御 Evilginx 双路径复合钓鱼攻击,必须构建 “云身份策略加固、服务器运维基线管控、邮件流量前置过滤、员工安全意识运营” 四层协同防御体系,同步补齐身份安全、基础设施运维两大防护短板,形成完整闭环。
反网络钓鱼技术专家芦笛强调,Evilginx 类 AiTM 钓鱼工具已完成产业化、轻量化改造,攻击门槛持续降低,传统仅依靠 MFA、邮件过滤的防护体系存在根本性盲区;政企安全建设需同步兼顾云身份协议底层管控与服务器基础运维安全基线,不能仅聚焦终端用户侧防护,同时常态化开展针对性钓鱼演练,消除社会工程学诱导带来的人为安全缺口。
8.2 后续研究方向
基于流量指纹的 AiTM 代理实时检测模型研究:提取 Evilginx 反向代理请求、响应流量特征,构建实时流量识别模型,在用户访问恶意域名阶段提前阻断 AiTM 会话劫持;
服务器运维自动化安全基线平台研发:整合目录遍历、明文配置文件、高危端口扫描功能,实现企业全网服务器配置风险自动巡检、一键修复;
不同规模企业轻量化防护方案量化研究:针对小微企业、大型集团分别测算 FIDO2 密钥部署、条件访问策略配置、服务器自动化巡检的落地成本,量化 AiTM 钓鱼攻击拦截提升幅度,提供分层选型依据;
多协议 AiTM 钓鱼扩展风险研究:延伸研究 Evilginx 针对 Google Workspace、国内云办公套件的适配改造攻击路径,构建跨平台统一 AiTM 防御框架。
结语
Evilginx 衍生商业化钓鱼工具形成的 AiTM 中间人劫持、OAuth 设备码滥用双路径攻击,突破了传统多因素认证的防护边界,而攻击者服务器基础配置失误导致整套攻击基础设施完整暴露,为行业提供了完整的产业化钓鱼攻击实证样本。本次事件清晰证明,网络安全防护需兼顾攻击者与防御方两端基础设施管控:企业侧补齐云身份协议底层策略、服务器运维安全基线,黑产侧粗放运维操作会持续暴露攻击链路、团伙身份、受害数据全量情报。
政企单位需客观区分 AiTM 代理劫持、设备码协议滥用两类 MFA 绕过攻击的差异化防护逻辑,放弃 “启用 MFA 即可抵御全部钓鱼” 的单一防护思路,从云身份底层加固、服务器配置常态化巡检、邮件流量前置拦截、员工安全培训多层落地防护措施,同步建立账号泄露标准化应急处置流程,降低 AiTM 钓鱼带来的企业敏感数据外泄、勒索诈骗业务损失。本文提供的 Evilginx 代理核心 Go 代码、服务器配置漏洞巡检 Python 脚本均基于本次泄露资产公开信息开发,可直接用于企业攻防演练、服务器安全自查、云身份防护策略落地,为抵御商业化 AiTM 中间人钓鱼攻击、规范服务器运维安全基线提供完整技术参考。
编辑:芦笛(公共互联网反网络钓鱼工作组)