Kerberoast攻击分析
前言
我将使用chatGPT在前言对一些基础性知识进行解释。
需要说明,图片托管在github上,国内IP访问github资源加载速度极慢或者加载失败,请尽量使用国外IP访问。
什么是Kerberoast攻击
Kerberoast是一种用于攻击 Windows 域环境中使用的 Kerberos 身份验证协议的攻击技术。Kerberos 是一种安全的身份验证协议,用于在 Windows 域环境中进行用户身份验证和授权。在 Kerberos 协议中,用户会向 Kerberos 服务器请求一个安全令牌(ticket),用于在 Windows 域环境中访问资源。
Kerberoast 攻击利用了 Kerberos 协议中的漏洞,通过获取 Kerberos 中的服务票据(Service Ticket),并对其进行离线攻击,从而获取到目标用户的明文密码。攻击者可以利用 Kerberoast 攻击来在不知道用户密码的情况下获取到用户的密码哈希值,然后使用密码破解工具对其进行破解,最终获取到用户的明文密码。由于攻击者可以在离线环境中进行攻击,因此 Kerberoast 攻击可以避免被 Kerberos 协议的防护机制所检测到。
什么是SPN
SPN(Service Principal Name)是指服务主体名称,是 Kerberos 身份验证协议中用于标识服务实例的唯一标识符。SPN 通常由服务名称和主机名组成,用于标识服务在网络上的唯一实例,帮助 Kerberos 协议正确地将服务票据(Service Ticket)授予给服务实例。
在 Windows 域环境中,SPN 是非常重要的,因为 Kerberos 身份验证协议是 Windows 域环境中最常用的身份验证协议。如果 SPN 配置不正确,可能会导致 Kerberos 身份验证协议无法正常工作,从而影响到整个域环境的安全和稳定性。
SPN的类型
- 一种是注册在活动目录的机器帐户(Computers)下。当一个服务的权限为 Local System 或 Network Service 时,则 SPN 注册在机器帐户(Computers)下。
- 另一种是注册在活动目录的域用户帐户(Users)下,当一个服务的权限为一个域用户时,则 SPN 注册在域用户帐户(Users)下。
域环境下执行命令:setspn -q */*
查看当前域内所有SPN,SPN分类如下:
以CN开头的每一行代表一个帐户,其下的信息是与该帐户相关联的SPN,默认有三个:
域控制器:CN=DC,OU=Domain Controllers,DC=laosec,DC=cn
域用户帐户:CN=krbtgt,CN=Users,DC=laosec,DC=cn
机器帐户:CN=WIN7,CN=Computers,DC=laosec,DC=cn
工具
mimikatz
从内存中提取明文密码、散列、PIN 码和 kerberos 票据现在已广为人知。**mimikatz
**还可以执行 pass-the-hash、pass-the-ticket 或 build Golden tickets。
Rubeus
Rubeus是一个 C# 工具集,是可以针对Kerberos协议进行攻击的工具,可以发起Kerberos请求,并将请求票据导入内存中,Rebeus提供了大量的用于Kerberos攻击的功能,比如TGT请求/ST请求/AS-REP Roasting攻击/Kerberoasting攻击/委派攻击/黄金票据/白银票据等。
Hashcat
hashcat工具的简介与使用可以参考:本文
工具的简介与使用互联网解释的比我好,上面工具罗列了他们的github地址,请参考
环境介绍
域控:Windows service 2016
同时安装SQL Server 2008 R2
同时创建用户mssql,密码sky@1321
实验
1 |
|
注册一条服务类为MSSQLSvc,主机为demo.test.com,端口为1433,注册在mssql域用户下
1 |
|
查看当前所有域
1 |
|
请求SPNKerberos票据——单个服务
1 |
|
查看缓存中的所有票据
使用Rubeus和mimikatz都可以导出票据
1 |
|
mimikatz:kerberos::list /export
1 |
|
在kali安装kerberoast,使用kerberoast的tgsrepcrack.py离线破解票据ex.kirbi
rubeus:
因为hashcat的运行模式,在虚拟机破解报错,我们在真机运行以下命令,尝试破解
1 |
|
成功,可以看到密码sky@1321
注意
注册主机名要和后面请求票据时保持一致。
demo是主机名,test.com是域控网址。
zidian.txt是包含密码的字典,可能不包含你设置账户的密码,可以自行添加
-m 13100是破解的模式,可以这篇文章选择