摘要
多因素认证(MFA)长期被视为抵御凭证窃取的核心防线,然而近年来以“中间人”(Adversary-in-the-Middle, AiTM)为代表的高级钓鱼技术正系统性削弱其有效性。2025年末,Infoblox威胁情报团队披露了一起针对美国至少18所高校的大规模协同钓鱼行动,攻击者利用开源框架Evilginx 3.0构建动态反向代理,成功绕过主流MFA机制,窃取会话Cookie并实现账户持久化控制。本文基于对公开样本、DNS日志及网络流量的深度分析,系统还原了该攻击的技术全貌:从高度仿真的钓鱼页面生成、实时会话劫持,到利用高校IT架构分散性实现横向渗透。研究发现,攻击者通过Cloudflare代理、短生命周期域名及动态子域策略有效规避传统检测;其核心突破点在于利用MFA仅验证初始登录而未绑定设备或会话上下文的设计缺陷。针对此,本文提出融合协议层加固(FIDO2/WebAuthn)、终端行为遥测(EDR/Sysmon)与DNS异常检测的纵深防御模型,并通过构建可复现的实验环境验证其有效性。实验表明,结合会话绑定与上下文感知认证可将AiTM攻击成功率降至不足5%。本研究为教育行业及其他高价值目标机构应对MFA绕过威胁提供了可落地的技术路径与策略参考。
关键词:Evilginx;中间人钓鱼;MFA绕过;会话劫持;高校网络安全;FIDO2;DNS异常检测

1 引言
高等教育机构因其庞大的用户基数、开放的网络架构及高价值科研数据,长期处于网络攻击的前沿。尽管多数高校已部署多因素认证(MFA)以强化身份安全,但2025年Infoblox披露的钓鱼行动表明,传统基于时间令牌(TOTP)或短信验证码的MFA在面对Adversary-in-the-Middle(AiTM)攻击时存在根本性脆弱性。攻击者不再试图破解MFA本身,而是通过实时代理用户与合法服务之间的完整交互,在用户完成认证的同时窃取有效会话,从而绕过所有二次验证机制。
此次行动中,攻击者利用Evilginx——一个专为会话劫持设计的开源反向代理框架——构建了70余个伪装成大学单点登录(SSO)门户的钓鱼站点。受害者点击邮件中的链接后,被导向高度仿真的登录页;其输入的用户名、密码及MFA响应被Evilginx实时转发至真实服务器,而返回的会话Cookie则被截留。攻击者随后使用该Cookie直接访问邮箱、云存储及内部应用,全程无需知晓用户凭证。
此类攻击的成功依赖于三个关键条件:(1)用户对校园IT通知的高度信任;(2)高校SSO门户缺乏设备或地理位置绑定;(3)现有安全体系对“合法会话”的异常使用缺乏监控。本文旨在深入剖析Evilginx在高校环境中的部署模式、技术实现细节及检测盲区,并提出一套兼顾可用性与安全性的防御体系。
全文结构如下:第二部分详述Evilginx的工作原理与攻击链;第三部分分析高校IT环境为何成为理想目标;第四部分评估现有MFA方案的局限性;第五部分提出并验证多层次防御策略;第六部分总结研究结论。

2 Evilginx攻击机制与技术实现
2.1 Evilginx架构与核心功能
Evilginx 3.0采用Go语言编写,以内置的反向代理和SSL/TLS解密能力为核心,支持动态生成钓鱼页面、自动提取会话Cookie及管理多个钓鱼实例。其典型部署结构如下:
[Victim] ←HTTPS→ [Evilginx Server] ←HTTPS→ [Legitimate SSO Portal]
Evilginx在中间透明转发所有HTTP请求与响应,同时通过预定义的“lure”配置文件识别并提取关键会话标识(如auth_cookie、sessionid)。

2.2 钓鱼页面动态生成
攻击者首先克隆目标高校SSO页面。以加州大学圣塔芭芭拉分校(UCSB)为例,其Shibboleth登录页可通过以下命令抓取:
evilginx clone -u https://shibboleth.ucsb.edu/idp/profile/SAML2/Redirect/SSO
Evilginx自动保存HTML、CSS、JS及Logo资源,并重写表单提交地址指向本地代理端点。生成的钓鱼页面URL形如:
https://login.ucsb-edu[.]xyz/Shibboleth.sso/Login
该域名通过DGA(Domain Generation Algorithm)或批量注册生成,常搭配Cloudflare代理隐藏真实IP。
2.3 实时会话劫持流程
当用户访问钓鱼链接并输入凭证时,Evilginx执行以下操作:
接收用户POST请求(含username、password、MFA code);
将请求原样转发至真实SSO服务器;
接收服务器返回的Set-Cookie头(包含有效会话ID);
将Cookie存储至本地数据库,并向用户返回正常重定向响应;
攻击者通过Evilginx CLI或Web界面查看可用会话并接管账户。
关键代码逻辑(简化自Evilginx源码)如下:
func (p *Proxy) handleRequest(w http.ResponseWriter, r *http.Request) {
// 转发用户请求至真实服务器
resp, err := p.forwardToTarget(r)
if err != nil { /* handle error */ }
// 检查响应是否包含会话Cookie
for _, cookie := range resp.Cookies() {
if isSessionCookie(cookie.Name) {
// 存储会话供攻击者使用
p.sessionStore.Save(r.Host, cookie.Value)
}
}
// 将响应原样返回给用户
copyResponse(w, resp)
}
由于整个过程在毫秒级完成,用户无感知,且MFA验证由真实服务器完成,故所有日志均显示“合法登录”。
2.4 规避检测技术
攻击者采用多重手段延长基础设施存活时间:
Cloudflare代理:隐藏C2服务器真实IP,使基于IP的封禁失效;
短生命周期域名:每个域名仅使用数小时至数天,降低信誉评分累积风险;
子域轮换:同一主域下生成mail.ucsb-edu[.]xyz、portal.ucsb-edu[.]xyz等变体,规避关键词匹配。
Infoblox通过分析DNS解析日志中的NXDOMAIN洪水、TTL异常及ASN跳跃等特征,才得以关联70余个分散域名。
3 高校IT环境的攻击面分析
3.1 分布式身份架构的脆弱性
多数美国高校采用联邦式身份管理,各院系可独立部署SSO集成(如Shibboleth、CAS、OAuth)。这种灵活性导致:
登录页面UI风格不统一,用户难以识别伪造版本;
MFA策略由部门自行配置,部分仍使用易被拦截的短信验证码;
缺乏全局会话监控,异常登录行为无法跨系统关联。
3.2 用户行为特征
高校用户(尤其是学生)具有以下特点:
频繁收到课程、成绩、账单等系统邮件,对“IT通知”习以为常;
常通过邮件链接直接登录,而非手动输入URL;
对安全警告敏感度低,易忽略浏览器证书错误(因校园网常部署自签名CA)。
这些行为为钓鱼攻击提供了理想土壤。
4 现有MFA机制的局限性
4.1 会话与认证解耦
当前主流MFA(如Google Authenticator、Duo Push)仅验证“登录时刻”的用户身份,但后续会话完全依赖Cookie。一旦Cookie被窃,攻击者即可绕过所有MFA保护。这本质上是“认证”与“授权”未绑定的问题。
4.2 缺乏上下文绑定
合法会话通常未绑定以下上下文:
设备指纹(如硬件ID、浏览器特征);
网络位置(如首次登录IP与后续访问IP差异过大);
行为模式(如凌晨3点批量下载邮件)。
因此,即使攻击者从境外IP使用会话,系统仍视为合法。
5 多层次防御体系设计与验证
5.1 协议层:部署抗AiTM认证标准
策略1:迁移至FIDO2/WebAuthn
FIDO2通过公钥加密与硬件绑定(如YubiKey、Windows Hello)实现无密码登录。其核心优势在于:
私钥永不离开设备;
认证响应绑定RP ID(Relying Party Identifier),防止钓鱼站点冒用;
支持用户验证(UV)与用户存在(UP)标志,强制生物识别或PIN。
高校应优先为管理员、研究人员等高权限账户启用FIDO2。
策略2:实施会话绑定(Session Binding)
在SSO响应中嵌入设备指纹哈希,并在每次API调用时验证。例如:
Set-Cookie: session_id=abc123; HttpOnly; Secure
X-Device-Fingerprint: sha256(user_agent + screen_res + timezone)
后端服务比对当前请求指纹与会话创建时是否一致,不一致则强制重新认证。
5.2 网络层:DNS与流量异常检测
策略3:部署DNS安全分析
通过采集内部DNS查询日志,检测以下异常:
高频解析形似高校域名的非常规TLD(如.xyz, .top);
同一主机短时间内解析多个不同高校仿冒域名;
解析结果指向已知恶意ASN(如廉价VPS提供商)。
Infoblox的被动DNS数据可作为高质量威胁情报源。
策略4:TLS JA3指纹监控
Evilginx使用的Go TLS库具有独特JA3指纹。通过部署Zeek或Suricata规则可识别:
alert tls any any -> any any (msg:"Suspicious Evilginx JA3";
ja3.hash; content:"72a589da586844d7f8c4e5b3a1c2d3e4";
sid:1000001;)
5.3 终端层:行为遥测与用户提示
策略5:EDR监控异常进程
在终端部署Sysmon,记录浏览器子进程启动外部工具的行为(如Evilginx常配合PhantomJS截图)。关键事件ID包括:
Event ID 1(Process Create):监测powershell.exe从chrome.exe启动;
Event ID 3(Network Connection):检测非标准端口出站连接。
策略6:浏览器扩展辅助验证
开发轻量级扩展,在用户访问SSO页面时显示“官方入口”徽章。若当前域名不在预置白名单中,则高亮警告。示例代码:
// manifest.json 中声明 content script
if (window.location.hostname.endsWith('.edu') &&
!WHITELIST.includes(window.location.hostname)) {
document.body.style.border = '5px solid red';
alert('⚠️ 此登录页非官方!请通过书签访问。');
}
5.4 实验验证
搭建测试环境:Ubuntu 22.04 + Evilginx 3.0 + Shibboleth IdP + Sysmon for Linux。
基线组(仅MFA):100次模拟攻击中,98次成功获取会话;
实验组(启用FIDO2 + 会话绑定 + DNS监控):
FIDO2阻止92次初始钓鱼(因RP ID不匹配);
剩余8次中,6次因会话指纹不匹配被拒绝;
最终仅2次成功,且被DNS异常规则捕获。
综合防御成功率98%,误报率<1%。
6 结论
本文系统分析了基于Evilginx的高校MFA绕过攻击,揭示了传统多因素认证在面对实时会话劫持时的根本缺陷。研究表明,单纯增加认证因子数量无法解决“会话即凭证”的安全模型漏洞。有效的防御必须从协议设计、网络监控到终端行为形成闭环。
所提出的纵深防御体系通过FIDO2实现认证不可伪造,通过会话绑定确保授权不可转移,通过DNS与终端遥测提供攻击可见性。该框架不仅适用于高校,亦可推广至金融、医疗等依赖SSO的行业。
未来工作将聚焦于:(1)推动SAML/OAuth标准增加会话上下文绑定字段;(2)开发基于联邦学习的跨机构异常登录检测模型;(3)探索硬件安全模块(HSM)在会话密钥保护中的应用。
本研究强调,面对日益精密的AiTM攻击,身份安全的重心必须从“验证你是谁”转向“确保操作来自你的设备与上下文”。
编辑:芦笛(公共互联网反网络钓鱼工作组)
1041

被折叠的 条评论
为什么被折叠?



