最新0day漏洞:CVE-2023-23397
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
现在只对常读和星标的公众号才展示大图推送,建议大家能把迪哥讲事(growing0101)“设为星标”,否则可能就看不到了啦!
这两天看到 Microsoft 修补了 Microsoft Outlook 中一个有意思的漏洞。漏洞描述如下:
Microsoft Office Outlook包含一个权限升级漏洞,允许对另一个服务进行NTLM Relay攻击,以认证为用户。
但是并没有提供该漏洞如何利用的具体细节,尽管如此,但Microsoft提供了一个脚本(具体地址见文末)来审计你的Exchange服务器,以查找可能被用来利用该漏洞的邮件项目。
通过研究这个脚本可以知道,它专门寻找邮件项中的PidLidReminderFileParameter属性,并在发现时提供了 "清除 "它的选项(代码这里我把它写到下面,主要是ps脚本)。
try {
if ($CleanupAction -eq "ClearItem") {
$item.Delete([Microsoft.Exchange.WebServices.Data.DeleteMode]::HardDelete)
} else {
if (-not $item.RemoveExtendedProperty($mailInfo["PidLidReminderFileParameter"])) {
Write-Host ("Failed to clear property for entry number: $entryCount, Line number: $($entryCount + 1)") -ForegroundColor Red
$invalidEntries.Add($entryCount)
continue
}
深入了解这个属性是什么,我们发现以下定义。
这个属性控制当邮件项目的提醒被触发时,Outlook客户端应该播放什么文件名,这意味着该属性接受一个文件名,而这个文件名有可能是一个UNC路径,以便触发NTLM验证。在进一步分析了可用的属性之后,我们还注意到了PidLidReminderOverride属性,其描述如下:
考虑到这一点,这里我们应该设置PidLidReminderOverride这个属性,以便触发Outlook解析我们在PidLidReminderFileParameter中的恶意UNC。
尝试开始建立一个漏洞....
利用这个问题的第一步是创建一个Outlook MSG文件,这些文件是CFB格式的复合文件。为了加快这些文件的生成,这里利用了.NET
的MsgKit库。
回顾MsgKit库,我们发现Appointment类定义了一些属性,以便在保存MSG文件之前添加到邮件项目中。
为了创建我们的恶意calendar appointment,我扩展了Appointment类,添加了我们需要的PidLidReminderOverride和PidLidReminderFileParameter属性,如上所示。在这一点上,我们只需要创建一个新的appointment并保存它,然后再发送给我们的受害者。
这个漏洞特别有趣,因为它将触发对一个IP地址(即受信任的Intranet区域或受信任站点之外的系统)的NTLM身份验证,并且在打开电子邮件时立即发生,而不管用户是否选择了加载远程图像的选项.
这个漏洞值得优先修补,因为它非常容易被利用。
免费星球
推荐阅读