Silver Tickets

Silver Tickets

Many a time, the user and group permissions in the service ticket are not verified by the application. Also, Privileged account certificate (PAC) validation (Which is an optional process) is not done by the application and domain controller. If this is enabled, the user authenticating to the service and its privileges are validated by the domain controller.

With a service account password or hash, We can forge our service ticket to access the resource with any permission that we desire. This type of ticket is known as a silver ticket.

In general, we need to collect the following three pieces of information to create a silver ticket:

  1. SPN password hash

  2. Domain SID (Domain user SID)

  3. Target SPN

Step 1: To check if our current user has access to a resource of HTTP SPN or any SPN.

# Example:
iwr -UseDefaultCredentials http://web04

# To check the list of SPN for users present.
Import-Module .\PowerView.ps1
Get-NetUser -SPN | select samaccountname,serviceprincipalname

Now we will collect all the information needed to forge the silver ticket as stated before.

Step 2: Run mimikatz to extract the AD cached credential.

Step 3: Domain SID Collection (excluding the identifier)

We can collect this from our current domain user using mimikatz output also.

Step 4: Targeting the SPN

The last list item is the target SPN. For this example, we'll target the HTTP SPN resource on WEB04 (HTTP/web04.corp.com:80) because we want to access the web page running on IIS.

Step 5: Creating a Silver Ticket

Since silver and golden tickets represent powerful attack techniques, Microsoft issued a security patch to update the PAC structure. This patch requires the PAC_REQUESTOR field to be validated by a domain controller, preventing the forgery of tickets for non-existent domain users when the client and KDC are in the same domain. Without this patch, one could create silver tickets for users that do not exist. This update has been enforced since October 11, 2022.

TIP:

Last updated