NTLM 中继攻击的几种非主流玩法

news2024/11/22 9:36:28

在企业组织中的常见的一种安全风险是凭证重用,当攻击者攻击 NT LAN Manager 身份验证协议(以下简称 NTLM 身份验证)时就会出现这样的风险,而这个协议通常会在 微软的 活动目录 中默认启用。

NTLM 认证中的不安全性已经被安全研究人员发现超过15年了。该协议可以被滥用,通过一个称为“中继”的过程劫持受害者的会话,该过程通过将受害者的凭证转发到与预期不同的服务来滥用受害者的凭证。在许多情况下,NTLM身份验证仍然受到默认的支持和启用,尽管它已经被更安全的Kerberos取代,成为默认的身份验证方法。

在本博文中,我们将演示如何使用NTLMrelayx将凭证中继到LDAP、IMAP和MSSQL,NTLMrelayx是著名的smbrelayx工具。 为了抵御这种攻击,你可以执行以下措施:

·如果可能,在组织中完全禁用 NTLM 并切换到 Kerberos。

·如果无法禁用 NTLM ,请参考本博客文章中讨论的设置和指导原则章节,以降低凭证重用的风险。

NTLM 中继攻击解释

NTLM 认证是一种基于挑战-响应的协议。 挑战-响应协议使用一个共享的秘密(在本例中是用户密码)来验证客户端。 服务器发送一个挑战,客户端回复这个挑战的响应如果挑战与服务器计算的挑战相匹配,则身份验证将被接受。NTLM身份验证是一个复杂的协议,这里对它的解释比较简单。可以在http://davenport.sourceforge.net/ntlm.html 中找到非常详细的描述。

NTLM 身份验证流程

NTLM身份验证协议有三个步骤:

1.协商身份验证:NTLM身份验证的第一步是协议的协商,以及客户端支持哪些特性。在此阶段,客户端向服务器发送身份验证请求,包括客户端接受的NTLM版本。

2.服务器挑战:服务器用自己的消息进行响应,表明它接受哪个NTLM版本,以及它想使用哪个特性。此消息还包含一个“挑战”值,这在身份验证中非常重要。

3.身份验证响应:客户端根据挑战发送回响应,并包含密码所属的用户名和域。

在交换了这3条消息之后,服务器将返回一条消息,表明身份验证成功,或者身份验证失败。根据使用的协议,客户端与服务器之间的会话现在经过了身份验证。这个过程如下图所示:
在这里插入图片描述

滥用 NTLM

作为攻击者,如果能够说服客户端连接到攻击者,则此过程可能会被滥用。下一节将解释如何做到这一点。一旦攻击者拥有一个愿意进行身份验证的已连接的客户端,那么他们就可以轻松地在客户端和服务器之间将这3条消息转发给服务器,直到挑战-响应周期结束。
在这里插入图片描述
在对连接进行身份验证时,攻击者可以简单地向客户端发送错误消息,或者删除连接。 然后,攻击者可以使用会话从中继身份验证的用户的上下文与服务器交互。

交叉协议的中继攻击

NTLM 身份验证被封装在其他协议中,但是无论覆盖的协议是什么,消息都是相同的。 这允许在其他协议中使用 NTLM 消息。 例如,使用 HTTP 进行身份验证的客户端会在“ Authorization”标头中发送 NTLM 身份验证消息。 攻击者可以从 HTTP 头中提取这些消息,并在其他协议中使用它们,比如 SMB。

NTLM支持多种协议,例如SMB、HTTP(S)、LDAP、IMAP、SMTP、POP3和MSSQL。

获取流量

还有一点还没有解释,那就是如何让客户端连接到攻击者而不是真正的服务器。有几种方法可以获得中继的通信流量:

·以不安全方式解析IP的主机的流量

·滥用自动发现协议产生的流量

·通过中间人攻击获得的流量

不安全的名称解析协议

我们会经常遇到使用不安全协议的名称解析通信流量。 通常将工作站或服务器配置为联系网络中不存在的主机,以及主机名无法使用DNS解析的主机。 当这种情况发生时,Windows 工作站会退回到名称解析协议,如 NBNS 和 LLMNR,它们依赖广播流量要求同一网络中的主机将主机名解析为 IP 地址。 因为这个流量可以被同一网段中的所有主机查看(取决于防火墙配置) ,所以任何主机都可以回复请求。 这使得攻击者有机会伪造请求名称的地址。 这个过程如下图所示。
在这里插入图片描述

自动发现协议

也许在过去的几年里,对于黑客们来说,最臭名昭著的功能恐怕是 Windows 代理自动检测(WPAD)功能。这个特性将通过DNS查找一个名为WPAD的主机名,如果不能通过上面描述的LLMNR和NBNS成功查找到,则连接到它能找到的第一个主机。 滥用这一特性变得更加容易,因为当提示进行身份验证时,工作站会自动尝试使用 NTLM 身份验证进行身份验证,然后可以被攻击者执行中继攻击。 微软在2016年6月已经对其中的几个方面进行了修补,但有时我们仍然会在网络中遇到这种问题。

中间人攻击

中间人攻击(man-in-middle attack,即攻击者接管受害者的流量),这种攻击在企业网络中常常具有破坏性,尤其是在使用 ARP 欺骗等技术时。 然而,当企业设备连接到不受信任的网络(例如公共 WiFi 网络)时,攻击者可以攻击受害者并截获不受 TLS 保护的流量,将其重定向到受害者工作站受信任的位置。 然后,受害者将自动验证是否启用了自动内部网检测(这是默认的设置)。
在这里插入图片描述

使用 ntlmrelayx 在任何地方中继 NTLM

有几个工具可以滥用 NTLM 身份验证。 其中之一就是 smbrelayx,它是 Core Security 的 impacket 库的一部分。 NTLMrelayx 是由我们团队开发的 smbrelayx 工具的扩展和部分重写。 它具有广泛的协议中继功能。 该工具接受多个目标,循环遍历每个目标以找到需要验证的系统。 该工具提供了一个 SMB 和 HTTP 服务器,它可以从这些服务器中继 NTLM 身份验证到 SMB、 HTTP、 IMAP、 LDAP 和 MSSQL。

中继到 SMB

中继到 SMB 是一种典型的攻击手法,这已经是 smbrelayx 中的一部分功能。这种攻击会中继到 SMB 允许攻击者在禁用 SMB 签名的主机上执行文件,如果被中继的用户在该主机上具有管理特权。 对于非管理员用户,ntlmrelayx 添加了启动 smbclient shell 的选项,该选项允许攻击者与共享进行交互,例如下载或上传文件。 这种攻击可以通过交互式标志(- i)来完成,它将生成一个本地 TCP shell,可以与例如 netcat 进行连接。

中继到 LDAP

中继到 LDAP 是 ntlmrelayx 中的一个新增功能。 LDAP 是一个有趣的协议,因为它用于直接查询目录,目录中包含许多对攻击者来说有趣的信息。 更有趣的是,在默认情况下,域中的所有帐户(包括计算机帐户)都可以读取大多数此类信息。 这就是 ntlmrelayx 与我们团队开发的另一个工具 ldapdomaindump 集成的地方。 这个工具试图从域内收集尽可能多的信息,包括用户、他们的组成员、域计算机和域策略。

除了收集信息之外,还可以通过 LDAP 写入目录。 如果 ntlmrelayx 遇到具有域管理员权限的用户,它将创建一个新的域管理员帐户,这将立即让攻击者完全控制域:

中继到 IMAP

在现代版本的 Exchange 中,默认情况下不启用 NTLM 身份验证,但许多组织会通过其 Exchange 服务器上的 IMAP 支持 NTLM 身份验证。 这允许中继到 IMAP,让攻击者直接访问受害者的电子邮件。 当中继到 IMAP 时,ntlmrelayx 可以选择在电子邮件中搜索关键字,或者只是下载用户指定收件箱中的所有最新电子邮件。

中继到 MSSQL

中继到 MSSQL 目前只是作为一个概念证明存在,但是可以在命令行上指定查询,这将在数据库中的受害者上下文中执行。

缓解

那么,企业组织该如何应对这些攻击呢? 上述所有攻击都滥用了 NLTM 身份验证协议,因此唯一完整的解决方案是完全禁用 NTLM 并切换到 Kerberos。 然而,许多组织的遗留产品或操作系统不支持 Kerberos 身份验证,因此禁用NTLM会对业务产生很大的影响。作为一个缓解因素,有几个设置可以进行启用,以最大限度地减少继电保护的风险。

·启用 SMB 签名: SMB 签名将通过要求所有流量都进行签名来防止中继到 SMB。 签名需要用户密码来验证消息,因此中继连接的攻击者不能发送任何将被服务器接受的流量,因为攻击者没有受害者的密码。

·启用 LDAP 签名: 与 SMB 签名类似,LDAP 签名可以防止中继到 LDAP 的无签名连接。 应该注意的是,通过 TLS 连接到 LDAP 被认为是有签名的,因此此设置不能防止通过 TLS 对 LDAP 的中继攻击。

·启用扩展的身份验证保护: 扩展的身份验证保护有助于防止一些中继攻击,确保用于连接到服务器的 TLS 通道与客户端验证时使用的通道相同。 此设置主要适用于 IIS。

·启用 SPN 目标名称验证: SPN 目标名称验证是另一个缓解措施,它通过验证客户端认为正在对其进行身份验证的目标名称来防止中继到SMB。如果名称与服务器不匹配,则拒绝身份验证。

·确保内部网站使用 HTTPS: 当内部网站通过不安全的 HTTP 协议访问时,用户无法验证连接的真实性。 通过强制所有内部网站只能使用 HTTPS,中继服务的效率就会大大降低。

防止中继攻击的常规安全加固措施

除了这些特定的服务器端测量之外,以下常规加固可以防止NTLM中继攻击:

·禁用内部网络自动检测: 如果域中需要 NTLM 认证,请确保浏览器(主要是 Internet Explorer)只自动认证到可信任的网站。 通过组策略,可以禁用自动内部网络检测,并且只能自动认证到应该应用自动认证的内部网站白名单。 正如前面提到的,这里强烈建议只使用 HTTPS 网站。

·禁用 Windows 代理自动检测: 虽然 WPAD 的安全问题已经大部分由微软 MS16-077 安全更新解决,但仍然建议通过组策略禁用 WPAD。

·禁用 LLMNR/NBNS:: 在配置良好的网络中通常不需要这些不安全的名称解析协议。 禁用它们会减少攻击者进行名称解析欺骗的可能性,从而使攻击者更难欺骗受害者连接到攻击者的服务器。

如何获得 ntlmrelayx

NTLMrelayx 已经提交到了 Impacket 代码仓库,你可以在 Impacket 示例目录中找到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Vue CLI脚手架

章节概述: 使用Vue CLI脚手架初始化脚手架分析脚手架结构render函数修改默认配置ref属性props配置项mixin混入plugin插件scoped样式Todo-List案例WebStorage自定义事件绑定解绑全局事件总线消息的订阅与发布$nextTick过渡与动画 提示(我没有使用markdo…

c++ 常用总结(二)

1. ① 可变参数... 、__VA_ARGS__与##__VA_ARGS__ 结论:##__VA_ARGS__中##的作用就是去掉前面多余的,号 ,在使用自定义打印的时候,推荐##__VA_ARGS__而不是__VA_ARGS__ C语言##__VA_ARGS__的用法_fengwang0301的博客-CSDN博客 例1 __VA…

良心推荐!数学建模基础知识-MATLAB快速上手,最适合新手学习的Matlab快速入门教程

目录 1. 如何打开matlab的文件 第一种方法: 第二种创建脚本文件的方法。 2. 如何运行一段代码 写在命令行 写在脚本 3.some tips about matlab 工作区储存的数据 如何加入断点&如何终止运行&代码分节 1. 如何打开matlab的文件 我们写的源代码可以…

探索对抗样本生成方法:保护机器学习模型的安全性

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

Comparable和Comparator的用法和区别

文章目录 前言 在这里给大家整理了一下comparable和comparator的用法和区别,这些在以后代码和面试中可能也会出现,那么,就跟着我一起去看看吧! 一 .Comparable 1.Comparable是什么? public interface Comparable<T> comparable是个接口,此接口强行对实现它的每个类的对…

22 memcpy 的调试

前言 同样是一个 很常用的 glibc 库函数 不管是 用户业务代码 还是 很多类库的代码, 基本上都会用到 内存数据的拷贝 不过 我们这里是从 具体的实现 来看一下 它的实现 主要是使用 汇编 来进行实现的, 因此 理解需要一定的基础 测试用例 就是简单的使用了一下 memcpy,…

【Linux】10. 进程地址空间

1. 虚拟地址的引出 2. 感性理解 3. 区域划分 在理解虚拟地址空间之前首先了解区域划分是什么 在小学期间的三八线&#xff0c;让桌子分割成两个区域&#xff0c;类比到地址空间也是这样划分的。 操作系统需要对进程管理&#xff0c;进程存在不同的区域映射不同的虚拟地址 这…

【GAMES101】作业0学习总结

本系列博客为记录笔者在学习GAMES101课程时遇到的问题与思考。 GAMES101&#xff1a;课程官网GAMES101&#xff1a;B站视频GAMES101&#xff1a;相关文件下载(百度网盘) 一、环境搭建 以下说明两种环境搭建方法&#xff0c;一种为用原视频所提及的VirtualBox一键搭建环境&…

随笔-涨薪了

突然想起来上个月工资&#xff0c;绩效部分是按照1.01发的&#xff0c;多了10块钱&#xff0c;这也是一年半来第一次涨薪了&#xff0c;就去小龙、小虎我仨的小群里面嘚瑟一下&#xff1a; 我&#xff1a;两年来第一次涨薪&#xff0c;涨了12。 小龙&#xff1a;羡慕。 小虎…

11-CSS-概述、与HTML的结合方式

一、概述 CSS&#xff08;层叠样式表&#xff09;是一种用于控制网页外观和布局的样式语言。它可以独立于 HTML 或 XHTML 文档&#xff0c;以及任何标记语言使用&#xff0c;因此可以用于设计不同类型的文档&#xff0c;如 XML、SVG、XUL 等。CSS 提供了广泛的样式选择器&…

6.Java流在Android中的应用

字节流有哪些? 以输出流为例,输入流除PrintStream外,和输出流是一一对应的 OutputStream ByteArrayOutputStreamPipedOutputStreamFilterOutputStream BufferedOutputStreamDataOutputStreamPrintStream FileOutputStreamObjectOutputStream 使用案例 DataOutputStream dos…

生信刷题之ROSALIND——Part 5 (PERM, PRTM, REVP)

公众号搜索《生信er》&#xff0c;内容更多&#xff0c;更精彩~ 目录 公众号搜索《生信er》&#xff0c;内容更多&#xff0c;更精彩~1、Enumerating Gene OrdersProblemSample DatasetSample OutputexampleCodeOutput 2、Calculating Protein MassProblemSample DatasetSample…

产品经理如何分析业务需求

目录 背景方案一&#xff1a;汇总所有推课的功能二&#xff1a;设置推课机器人的方法三&#xff1a;方法之间的关系四&#xff1a;方法合并五&#xff1a;方法汇总 总结 背景 现在我们开始设计第三版AR***&#xff0c;我负责的部分是推课部分&#xff0c;在领导的一步步引导之…

51单片机(十二)AT24C02(I2C)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

车企招聘高薪车载开发岗位,如何抓住机会进入该领域?

随着智能化、电动化和网联化的趋势不断加强&#xff0c;车载应用正在成为汽车和信息技术产业的一个重要领域。未来的车载应用将会实现智能驾驶、舒适性、智能信息娱乐等领域的创新&#xff0c;为车辆和车主带来更好的用户体验。 从行业来看&#xff0c;车载应用的相关企业不断…

Azkaban学习——单机版安装与部署

目录 1.解压改名 2.修改装有mysql的虚拟机的my.cnf文件 3.重启装有mysql的虚拟机 4.Datagrip创建azkaban数据库&#xff0c;执行脚本文件 5.修改/opt/soft/azkaban-exec/conf/azkaban.properties文件 6.修改commonprivate.properties 7.传入mysql-connector-java-8.0.29…

最简单的helm教程

最简单的Helm教程 学习前置条件 你得了解Kubernetes&#xff0c;拥有实际的使用经验那是最好不过了 Helm是什么&#xff1f; 我们打开Helm的官网&#xff1a;Helm的官网 可以看到官网的第一页就告诉了我们Helm是什么。 **Helm是Kubernetes&#xff08;k8s&#xff09;的包…

第十二届蓝桥杯青少组省赛Python真题,包含答案

目录 一、选择题 二、编程题 第十二届蓝桥杯青少组省赛Python真题 一、选择题 第 1 题 单选题 设s="Hello Lan Qiao,执行print(s[4:11])输出的结果为 () 答案:D 第 2 题 单选题 循环语句for iin range (8,4,2) : 执行了几次循环 ()

进腾讯了,38k....

大家好&#xff0c;最近有一位老同学成功去了腾讯&#xff0c;特意找他要了一些面试相关的资料&#xff0c;内容涵盖测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等质量非常高&#xff01;&…

SM2椭圆曲线公钥密码算法--密钥对与数字签名

1. SM2国密算法介绍 SM2算法全称是SM2椭圆曲线公钥密码算法&#xff08;SM是商用密码的拼音缩写&#xff09;&#xff0c;是一种基于“椭圆曲线”的密码ECC(Elliptic Curve Cryptography)。2016年&#xff0c;SM2成为中国国家密码标准。 在商用密码体系中&#xff0c;SM2主要用…