Skip to content

ticketer: add -rodcNo flag for RODC golden ticket support#2169

Open
Greylorn wants to merge 1 commit into
fortra:masterfrom
Greylorn:rodc-golden-ticket
Open

ticketer: add -rodcNo flag for RODC golden ticket support#2169
Greylorn wants to merge 1 commit into
fortra:masterfrom
Greylorn:rodc-golden-ticket

Conversation

@Greylorn
Copy link
Copy Markdown

@Greylorn Greylorn commented Apr 6, 2026

Summary

When forging a golden ticket using an RODC's krbtgt key, the ticket's kvno must
encode the RODC number in the high 16 bits so the writable DC can identify which
krbtgt key was used. Without this, the DC returns KRB_AP_ERR_BAD_INTEGRITY.

This adds a -rodcNo flag (matching the existing convention in secretsdump.py
and keylistattack.py) that encodes the kvno as (rodcNo << 16) | key_version.

Usage:
ticketer.py -aesKey <rodc_krbtgt_aes> -domain-sid
-domain -rodcNo 8245 Administrator

No change in behavior when -rodcNo is not specified.

Test plan

  • Tested against Windows Server 2019 DC + RODC environment
  • Forged TGT with krbtgt_8245 AES256 key and -rodcNo 8245
  • Writable DC accepted the ticket and issued a valid TGS for cifs/DC01
  • Used the TGS to access C$ as Administrator via smbclient

When forging a golden ticket using an RODC's krbtgt key, the ticket's kvno must
encode the RODC number in the high 16 bits so the writable DC can identify which
krbtgt key was used. Without this, the DC returns KRB_AP_ERR_BAD_INTEGRITY.

This adds a -rodcNo flag (matching the existing convention in secretsdump.py
and keylistattack.py) that encodes the kvno as (rodcNo << 16) | key_version.

No change in behavior when -rodcNo is not specified.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in review This issue or pull request is being analyzed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants