赞
踩
上篇文章介绍了kerberos的协议的认证流程以及可能出现的安全问题,也简要说了一下kerberoast攻击,本篇文章就具体介绍一下kerberoasting具体原理以及如何进行操作。
关于内网相关的文章已经发了两篇了,大家感兴趣的话可以找以前的文章看一下,后面会继续出关于内网方面的知识。
首先再来回顾一下Kerberoast协议的认证过程。kerberoast认证过程算上PAC可以说有四个个阶段。如下图所示
下面这张图总结了每个阶段可能出现的安全问题
从上图可以看出 kerberoasting攻击是在TGS REQ阶段的 。TGS REQ阶段是请求服务票据ST的过程,在这个阶段最终
会得到访问服务的票据,这个票据用服务账号的NTLM hash进行签名 。而且我们是可以获取到任意服务的ST,
加密算法为RC4-HMAC,如果获得这个ST票据,我们可以尝试穷举口令,模拟加密过程,进行破解。
一句话来说就是由于ST是用服务的Hash进行加密的,因此客户端拿到该ST后可以用于本地离线爆破。如果字典够牛逼,那么就很有可能爆破出SPN链接用户的明文密码
如果该服务在域内被配置为高权限运行,那么攻击者可能接管整个域。
其核心在于,攻击者和KDC协商ST加密的时候,协商的是使用RC4_HMAC_MD5加密算法,而该加密算法容易被破解,因为攻击者可以在本地进行离线爆破
Kerberoasting的前提:服务SPN必须注册在域用户账户下,因为机器账户的密码是随机生成的,基本爆破不了
这种方式的优点就是不用与服务器进行交互,减少了被发现的风险,而且我们 可以对所有的服务票据来进行尝试,增加破解的几率,直到拿到管理权限。
其中,域内注册的服务是用SPN进行表示的,我们可以通过查询SPN来获取域内注册了那些服务。
根据上面的介绍,那么整个的攻击过程可以总结如下:
kerberoasting攻击首先就是要获取请求服务的SPN,那么首先介绍一下SPN到底是什么以及常用的SPN操作。
SPN(ServicePrincipal Names)服务主体名称,是服务实例(比如:HTTP、MSSQL、MySQL等服务)的唯一标识符。 个人
认为就是服务实例注册到域控中的一个标识,域控用SPN来表示是那个服务。
Kerberos 身份验证:使用 SPN 将服务实例与服务登录帐户相关联
如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个 SPN。
SPN 始终包含运行服务实例的主机的名称,因此服务实例可以为其主机的每个名称或别名注册SPN。
一个用户账户下可以有多个SPN,但一个SPN只能注册到一个账户。
在内网中,SPN扫描通过查询向域控服务器执行服务发现。这对于红队而言,可以帮助他们识别正在运行重要服务的主机。SPN的识别是kerberoasting攻击的第一步。
格式:服务类型/对应机器名:服务端口[默认端口可不写]
<service class>/<host>:<port> <servername>
1、可以理解为服务的名称,常见的有www, ldap, SMTP, DNS, HOST等,例如mysql/WIN-
security.test:1433
2、host有两种形式,FQDN和NetBIOS名,例如WIN-test.security或者是WIN-test
3、如果服务运行在默认端口上,则端口号(port)可以省略
查询当前域内所有的SPN
setspn -Q /
可试读前30%内容
¥ 2.88 全文阅读
开通会员免费阅读 最低0.3元/天
PN
查询当前域内所有的SPN
setspn -Q /
可试读前30%内容
¥ 2.88 全文阅读
开通会员免费阅读 最低0.3元/天
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
如果你对网络安全入门感兴趣,那么你需要的话可以
点击这里 本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/833172
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。