Harvesting Tickets from Linux
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Linux’te Kimlik Bilgilerinin Depolanması
Linux sistemleri kimlik bilgilerini üç tür önbellekte saklar: Dosyalar ( /tmp dizininde), Kernel Keyring’leri (Linux kernelindeki özel bir bölüm) ve İşlem Belleği (tek işlem kullanımı için). /etc/krb5.conf içindeki default_ccache_name değişkeni kullanılan depolama türünü gösterir; belirtilmemişse varsayılan FILE:/tmp/krb5cc_%{uid} olur.
MIT/Heimdal ayrıca post-exploitation sırasında aramanız gereken ek backends’leri destekler:
DIR:/run/user/%{uid}/krb5ccdizin tabanlı çoklu ticket önbellekleri için (modern dağıtımlarda systemd-logind varsayılanı).KEYRING:persistent:%{uid}veyaKEYRING:sessionccache’leri kernel keyring içine saklamak için (KEY_SPEC_SESSION_KEYRING,KEY_SPEC_USER_KEYRING, vb.).KCM:%{uid}SSSD’nin Kerberos Cache Manager daemon’u (kcm) ticket depolamayı yönettiğinde.MEMORY:unique_idkütüphaneler (gssproxy,sshd, vb.) tarafından oluşturulan işlem-yerel önbellekler için.
Bir shell elde ettiğinizde, dosyaları kopyalamaya başlamadan önce hangi cache backend’in kullanıldığını öğrenmek için ilgili daemon’ların (ör. Apache, sshd, gssproxy) /proc/<pid>/environ içinden KRB5CCNAME’i dökün.
Aktif Önbellekleri Listeleme
Yüksek değerdeki ticket’leri kaçırmamak için çıkarmadan önce önbellekleri listeleyin:
$ klist -l # list caches registered in the local keyring/KCM
$ klist -A # show all ticket-granting tickets in the current cache
$ sudo keyctl get_persistent @u
$ sudo keyctl show `keyctl get_persistent @u`
$ sudo ls -al /tmp/krb5cc_* /run/user/*/krb5cc*
$ sudo find /proc -maxdepth 2 -name environ -exec sh -c 'tr "\0" "\n" < {} | grep -H KRB5' \;
The combination of klist, keyctl, and /proc inspection quickly reveals whether credentials live in files, keyrings, or KCM so you can pick the right dumping technique.
Credentials’ı Çıkarma
The 2017 paper, Kerberos Credential Thievery (GNU/Linux), outlines methods for extracting credentials from keyrings and processes, emphasizing the Linux kernel’s keyring mechanism for managing and storing keys.
Keyring Extraction Overview
The keyctl system call, introduced in kernel version 2.6.10, allows user space applications to interact with kernel keyrings. Credentials in keyrings are stored as components (default principal and credentials), distinct from file ccaches which also include a header. The hercules.sh script from the paper demonstrates extracting and reconstructing these components into a usable file ccache for credential theft. Remember that keyring-stored ccaches may live under KEYRING:persistent:%{uid} (permanent across logins), KEYRING:session (cleared on logout), or even KEY_SPEC_THREAD_KEYRING for services spawning helper threads—so always enumerate all keyring types for the compromised UID.
Manual KEYRING Workflow
You can manually harvest tickets without helper scripts whenever default_ccache_name is set to KEYRING::
$ KRING=$(keyctl get_persistent @u)
$ keyctl show $KRING # note the key serial of each ccache blob
$ keyctl pipe <serial> > /tmp/ccache_dump # write raw blob to disk
$ KRB5CCNAME=/tmp/ccache_dump klist # validate the stolen cache
Eğer birden fazla principal saklanmışsa, seri başına keyctl pipe adımını tekrarlayın; sonra çıkarılan ccache’i diğer makinelerden yeniden oynatmadan önce kerbtool (aşağıya bak) veya ticketConverter.py gibi araçlarla Windows-dostu .kirbi/.ccache biçimine dönüştürün.
File/DIR Önbellek Hırsızlığı — Hızlı Kazanımlar
Kimlik bilgiler FILE: veya DIR: önbellekleri olarak saklandığında, basit dosya işlemleri genellikle yeterlidir:
$ sudo cp /tmp/krb5cc_1000 /tmp/websvc.ccache
$ sudo cp -r /run/user/1000/krb5cc /tmp/user1000_dircc
$ chmod 600 /tmp/*.ccache && chown attacker /tmp/*.ccache
Dizin önbellekleri her hizmet bileti için bir dosya içerir, bu nedenle TGT + TGS çiftlerini bozulmadan tutmak için tüm dizini sıkıştırıp exfiltrate edin. Araçlarınızı doğrudan dizine de yönlendirebilirsiniz: KRB5CCNAME=DIR:/tmp/user1000_dircc impacket-psexec ....
Dumping KCM-Managed Caches
SSSD’nin Kerberos Cache Manager (kcm), kimlik bilgisi depolamayı /var/run/kcm/kcmsock (veya /run/.heim_org.h5l.kcm-socket) üzerinden proxy’ler ve şifrelenmiş blob’ları .secrets.mkey ile birlikte /var/lib/sss/secrets/ içinde saklar. Attack flow:
- KCM kullanımını
/etc/krb5.conf(default_ccache_name = KCM:) veyaklist -lçıktıları aracılığıyla tespit edin. - Eğer UID 0’a sahipseniz veya
kcmSELinux domain’inin bir parçasıysanız, yönetim aracıyla önbellekleri listeleyin:
$ sudo kcm_ctl list # lists UID + cache IDs handled by kcm
$ sudo kcm_ctl get 1000 0 > /tmp/1000.kcm.ccache
$ KRB5CCNAME=/tmp/1000.kcm.ccache klist
- Offline approach: copy
/var/lib/sss/secrets/secrets.ldbplus/var/lib/sss/secrets/.secrets.mkey, then runSSSDKCMExtractor(or similar PoCs) to decrypt and reassemble ccaches without touching the live socket. This is especially useful in forensics or when socket ACLs block you but disk access is possible.
Çevrimdışı yaklaşım: diskten /var/lib/sss/secrets/secrets.ldb ile /var/lib/sss/secrets/.secrets.mkey dosyalarını kopyalayın, ardından canlı sokete dokunmadan ccaches’i şifre çözmek ve yeniden oluşturmak için SSSDKCMExtractor (veya benzeri PoC’lar) çalıştırın. Bu, adli tıp için veya soket ACL’leri sizi engellediğinde ama disk erişimi mümkünse özellikle kullanışlıdır.
Because the kcm daemon honors UID-based ACLs enforced by SSSD, privilege escalation to root (or compromising sssd_kcm) is usually required, but once achieved you can dump every user’s TGT in seconds.
Kcm daemon’u SSSD tarafından uygulanan UID tabanlı ACL’lere uyduğu için genellikle root’a ayrıcalık yükseltmesi (veya sssd_kcm’i ele geçirmek) gerekir; ancak bu sağlandığında her kullanıcının TGT’sini saniyeler içinde dökebilirsiniz.
Ticket Extraction Tooling
Tickey
Building on the principles of the hercules.sh script, the tickey tool is specifically designed for extracting tickets from keyrings, executed via /tmp/tickey -i. It enumerates kernel keyrings, reconstructs the serialized ccaches, and writes MIT-compatible cache files you can immediately feed to klist, impacket-*, or kerberoast tooling.
hercules.sh script ilkelerine dayanarak, tickey aracı keyrings’den ticket çıkarmak için özel olarak tasarlanmıştır ve /tmp/tickey -i ile çalıştırılır. Kernel keyrings’i enumerate eder, serialized ccaches’i yeniden oluşturur ve hemen klist, impacket-* veya kerberoast araçlarına verebileceğiniz MIT-uyumlu cache dosyaları yazar.
Kerbtool
kerbtool is a modern Go utility that runs natively on Linux and can parse, convert, and request Kerberos tickets. Two handy use cases when harvesting from Linux boxes:
kerbtool, Linux üzerinde native çalışabilen modern bir Go aracıdır ve Kerberos ticket’larını parse edebilir, dönüştürebilir ve talep edebilir. Linux makinelerinden ticket toplarken iki kullanışlı kullanım durumu:
# Convert a stolen MIT ccache into a .kirbi usable by Windows tooling
$ ./kerbtool --convert --in /tmp/websvc.ccache --out websvc.kirbi
# Use an extracted cache to request additional TGS tickets without touching the victim again
$ KRB5CCNAME=/tmp/websvc.ccache ./kerbtool --ask --spn cifs/fileserver.lab.local
Implant host’unuzda hem tickey hem de kerbtool bulunması, Linux, Windows ve platformlar arası Kerberos saldırı zincirleri arasında sorunsuzca geçiş yapmanızı sağlar.
Referanslar
- https://www.tarlogic.com/en/blog/how-to-attack-kerberos/
- https://docs.pagure.org/sssd.sssd/design_pages/kcm.html
- https://github.com/jfjallid/kerbtool
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
HackTricks

