前言
2021年中旬,specterops发布了一项针对域证书服务(adcs)的利用白皮书,文档中提到了19种对adcs服务的利用。本篇主要是分析文中提出的ntlm
relay to adcs窃取证书的攻击流程,原理和抓包分析。
相关内容
ADCS介绍
Active Directory证书服务(Active Directory Certificate
Services,下文简称ADCS)可以向用户,机构和服务颁发证书,收到证书的个体可以使用证书进行域内的身份认证,本篇中要利用的是ADCS配置的WEB证书请求服务。
NTLM认证简介
NTLM协议是windows系统的一项身份认证协议,NTLM认证是一种Challenge/Response 验证机制,由三种消息组成:通常称为type
1(协商),type 2(质询)和type 3(身份验证)。
认证流程图和简单介绍如下:

-
用户登录客户端电脑
-
客户端向服务器发送type1(协商)消息,它主要包含客户端和服务器请求的功能列表,此消息会指定会话所需的安全特性
-
服务器使用type2(质询)进行响应,包含服务器支持和同意的功能列表。更重要的是,这一步会返回服务器生成的Server Chanllenge标志和协商的安全特性
-
客户端用type 3消息(身份验证)回复质询。用户接收到步骤3中的challenge之后,使用用户hash与challenge进行加密运算得到response,将response,username,challenge发给服务器
-
服务器拿到type 3之后,使用challenge和用户hash进行加密得到response2与type 3发来的response进行比较,结果一致则认证通过。如果服务器没有用户的哈希,则会把上述消息发送给域控,域控会使用challenge和用户哈希加密得到respons2发送给服务器,这一步在本文中不做分析
Ntlm是嵌入式协议,它没有自己的传输依赖项,常见的应用层协议有:HTTP,SMB,
HTTP。NTLM不提供服务器的身份验证,因此ntlm认证的应用程序容易受到来自欺骗服务器的攻击,这也是ntlm relayx的原因所在。
原理介绍
当攻击者能够获取到某个实体的ntlm认证请求,就可以将这份请求转发到攻击者想要访问的服务,并以该实体身份通过身份认证。在本文中,就是通过转发获取到的ntlm请求到adcs服务上,并为其申请证书,完成身份窃取。当ntlm请求的发起方是域控时,则可以获取到域控机器账户的证书,进而使用域控证书完成域认证进行DCsync,获取域管权限。
让服务器向攻击者发起ntlm请求的方案很多,在实战中的利用通常要通过网络环境分析选择,这里只简单介绍两种:
-
**打印机漏洞:**Windows的MS-RPRN协议用于打印客户机和打印服务器之间的通信,默认情况

最低0.47元/天 解锁文章
1314

被折叠的 条评论
为什么被折叠?



