
Атака Kerberos с делегированием, ограниченным на основе ресурсов, извне с использованием Impacket
В этом репозитории описывается практическая атака на делегирование на основе ресурсов Kerberos в домене Windows Active Directory.
Отличие от других распространённых реализаций в том, что атака запускается из-за пределов домена Windows, а не с компьютера, входящего в домен (обычно Windows).
Атака реализована только с использованием Python3 Impacket (и его зависимостей). Протестировано на Arch с актуальной версией Impacket (на момент написания 0.9.21).

Кратко, без углубления в детали, атака нацелена на компьютер домена, а именно на субъекты служб, связанные с целевым компьютером домена.
В качестве предварительных условий нам потребуется:
msDS-AllowedToActOnBehalfOfOtherIdentity объекта компьютера в домене)MachineAccountQuota)Путь атаки на очень высоком уровне:
msDS-AllowedToActOnBehalfOfOtherIdentity целевого компьютераПреимущество:
Обычные инструменты для этой атаки работают на компьютере Windows, входящем в домен, с использованием:
msDS-AllowedToActOnBehalfOfOtherIdentityЭта реализация использует чистый Impacket из-за пределов домена.
Используя пример addcomputer.py из Impacket, создадим фиктивный компьютер (назовём его evilcomputer):
addcomputer.py -computer-name 'evilcomputer$' -computer-pass ev1lP@sS -dc-ip 192.168.33.203 ecorp.local/test:ohW9Lie0
Реализован скрипт rbcd.py, который находится в этом репозитории и добавляет дескриптор безопасности только что созданного EVILCOMPUTER в свойство msDS-AllowedToActOnBehalfOfOtherIdentity целевого компьютера.
./rbcd.py -f EVILCOMPUTER -t WEB -dc-ip 192.168.33.203 ecorp\\test:ohW9Lie0
Скрипт активно использует классы Python из примера ntlmrelayx.py в Impacket. Для справки и примера вызова запустите скрипт без параметров.
Теперь всё готово для злоупотребления ограниченным делегированием с помощью запроса S4U2Self и получения олицетворённого служебного билета для целевого компьютера. Используем пример скрипта getST.py из Impacket:
getST.py -spn cifs/WEB.ecorp.local -impersonate admin -dc-ip 192.168.33.203 ecorp.local/EVILCOMPUTER$:ev1lP@sS
Приведённая выше команда получает служебный билет CIFS от имени целевого пользователя домена admin и сохраняет его в файле admin.ccache.
После добавления пути к файлу в переменную KRB5CCNAME билет становится доступным для клиентов Kerberos.
export KRB5CCNAME=`pwd`/admin.ccache
klist
Подробнее о злоупотреблении делегированием на основе ресурсов:
И одна из самых полных презентаций об атаках на Kerberos: