APP下载

NTLM中继攻击技术浅析

2019-12-07兰沂梅

网络安全技术与应用 2019年12期
关键词:中间人服务端中继

◆吴 红 兰沂梅 罗 晨

NTLM中继攻击技术浅析

◆吴 红 兰沂梅 罗 晨

(国网四川省电力公司眉山供电公司 四川 620010)

本文对NTLM认证协议的认证过程进行了研究,介绍了在不安全的网络环境中利用NTLM中继攻击获取服务器权限的可能方式,并通过搭建环境模拟实现了利用NTLM中继攻击得到服务器最高权限的过程。最后,本文总结了针对于此类攻击的防御办法。

网络安全;NTLM协议;中间人攻击;NTLM中继攻击;远程代码执行

Windows质询/响应(NTLM)是在包含运行Windows操作系统的系统和独立系统的网络上使用的身份验证协议。NTLM认证协议作为一种历史遗留协议,被广泛用于Windows操作系统各内部组件及服务,是作为身份验证的基础架构[1]。其认证过程简单,必需的通信流量较小,在对通信安全性要求较低,性能要求较高的网络环境中很适合。NTLM认证本身隐含着一种极为危险的攻击面,即中间人攻击。当用户与服务器通信时,若信道本身遭到攻击者破坏与窃听,则攻击者可能充当“中间人”的角色,假冒用户的身份与服务器通信,从而危及服务器的安全,该攻击方式被称为“NTLM中继攻击”[2]。NTLM中继操作较为简单,并能造成极大的危害,例如远程代码执行,敏感信息读取等。

NTLM中继攻击自出现起至今已存在十余年。2008年MS08-068漏洞影响范围巨大,危害可观,它利用NTLM中继将用户的凭据反射到受害者计算机上,从而导致远程代码执行[3]。自那以后,微软阻止了在SMB协议,即Windows文件共享服务所使用协议中的NTLM反射攻击,这是一种NTLM中继攻击的变种。2016年,安全研究员发现NTLM反射攻击仍能在HTTP协议到SMB及DCE/RPC协议到SMB中工作;2019年,又有研究员发现绕过SMB到LDAP协议(在微软活动目录数据库中使用)限制的方式,这使得NTLM中继攻击的威力更上一层楼,这个漏洞的出现让NTLM中继攻击在2019年再次热门了起来。

1 NTLM认证与中继攻击

这里从三个方面对NTLM中继攻击进行研究:

1.1 NTLM认证

NTLM是一种质询/响应认证方案,其认证过程分为三步:

(1)协商(Type1消息)

客户端向服务器发送Type 1消息。这主要包含客户端支持和服务器请求的功能列表。

(2)质询(Type2消息)

服务器响应Type 2消息。其中包含服务器支持和同意的功能列表。但最重要的是,它包含服务器生成的挑战数(Challenge)。

(3)响应(Type3消息)

客户端使用Type 3消息回复挑战数。其中包含有关客户端的若干信息,包括客户端用户的域和用户名。它还包含对Type 2挑战的一个或多个响应。

NTLM认证大体过程如图1所示:

NTLM认证中,挑战(Challenge)是服务器生成的一个8字节的随机数,而响应则包含客户端使用用户的密码hash与该挑战经过单向函数计算后得出的一组数据[4]。由于服务端也持有用户的密码hash,则它能通过相同的计算来比较响应是否正确,从而确定用户是否认证成功。

1.2 NTLM中继攻击

NTLM中继攻击属于一种中间人攻击。在NTLM认证中,攻击者若处于客户端和服务端信道之间,则他能转发并修改往来的任何消息,如图2所示:

图2 NTLM中继攻击流程

在图2中,对于客户端,攻击者扮演服务器的角色;对服务端,他扮演客户端的角色。攻击者首先转发客户端所发送的Type1消息到服务端,并获取服务端的响应。由于服务端并不知道客户端的真实身份,它会发送挑战。当攻击者收到该挑战后,将挑战发回客户端。客户端计算出响应,将响应发送给攻击者,攻击者再次发送到服务端。这样,在服务端看来,攻击者已经是经过验证的合法客户端,因此攻击者能假冒真正的客户端做任何他有权限做的操作。

1.3 NTLM中继在SMB协议中的使用状况

由于NTLM认证仅是诸多认证协议中的一种,在真实世界中,它必须与其他协议相配合使用[5]。SMB协议是Windows文件共享服务所使用的协议。Windows文件共享服务默认开启并绑定445端口,高权限用户能使用该服务执行命令。SMB协议可以使用NTLM认证作为其认证协议,因此,使用NTLM中继攻击能使攻击者获取到访问SMB服务的权限,进而执行命令,危及服务器安全。

互联网上有很多开源的工具能使攻击者实施此类攻击,其中最著名也是最成熟的工具是Impacket工具包中的ntlmrelayx。Impacket是Python的网络协议库,其中实现了smb、ldap、kerberos等多种协议,并有大量使用该库的工具。在实验环境如下:

攻击者IP:172.17.129.177;客户端IP:172.17.8.4;

服务端IP:172.17.129.163。

“操作员是服务端”缺点如下:

攻击者启动smbrelay,命令为:smbrelayx.py -h 172.17.129.163 -c whoami。

该工具监听445端口,并转发NTLM认证至-h指定的服务器。在客户端上,执行:dir \172.17.129.177”命令模拟访问smbrelay所启动的smb服务器。

Dir命令后接UNC路径,即以\开头的URL,Windows将以SMB协议访问该地址。

Smbrelay接收到访问请求后,将启动NTLM中继过程。从攻击者到服务器的三次认证捕获流量如图3所示:

图3 攻击者到服务器之间的NTLM流量

从客户端到攻击者的三次认证捕获流量如图4所示:

图4 客户端到攻击者之间的NTLM流量

比较上面两张图可以看出,三次认证的流量几乎是一模一样的,这也说明攻击者在认证中扮演着中间人的角色,负责转发双方的流量。当攻击者假冒客户端认证成功后,他便能通过若干DCE/RPC调用在服务器上写入木马并启动。

最终smbrelay将能执行任意代码,如图5所示,攻击者执行whoami命令,查看服务器上用户:

图5 攻击者得到恶意命令执行的结果

2 NTLM中继攻击防范

NTLM中继攻击虽然危害巨大,但微软早已准备大量应对方案。NTLM认证协议属于历史遗留协议,其本身并不安全,必要时也可放弃使用,转而使用更安全的Kerberos协议[6]。管理员可在本地安全策略中限制传入与传出的NTLM流量。

同时在SMB服务器上启用SMB签名。SMB签名可对SMB协议中的数据包进行数字签名,以防止中间人攻击,这是一种非常有效的方式。

图6 启用SMB数字签名

3 结束语

本文对NTLM协议的通信机制做了简单介绍,举例实现了对在SMB服务中扮演认证角色的NTLM协议的中继攻击,并对防范此种NTLM协议中继攻击做了介绍。NTLM技术的应用十分广泛,针对NTLM协议的攻击方式也多种多样,如何能彻底解决NTLM技术在应用中的安全问题,仍需要进一步的研究。

[1]潘志刚.从Windows2003服务器远程登录失败以识NTLM协议[J]. 电大理工大学学报,2013(2):39-41.

[2]邱奇志. 剖析Windows的用户验证机制[J].现代计算机(专业版),2005(02):61-64+78.

[3]肖道举,郭杰,陈晓苏.一种对中间人攻击的防范策略的研究[J].计算机工程与科学,2004(09):9-10+17.

[4]黎松,段海新,李星.域间路由中间人攻击的实时检测系统[J].清华大学学报(自然科学版),2015(11):1229-1234.

[5]汪定,马春光,翁臣,等.强健安全网络中的中间人攻击研究[J].计算机应用,2012(01):48-50+71.

[6]徐恒,陈恭亮,杨福祥. 密钥交换中中间人攻击的防范[J].信息安全与通信保密,2009(02):96-98.

猜你喜欢

中间人服务端中继
夹在妻子和弟弟中间,怎样当好中间人?
自适应多中继选择系统性能分析
基于非专用中继节点的双跳中继用频规划*
重庆转口贸易优势分析及政策建议——利用信息不对称和中间人理论
“鹊桥号”成功发射
新时期《移动Web服务端开发》课程教学改革的研究
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
一种基于无线蜂窝网络的共享中继模型
跟杨绛学做“中间人”