March 20

Траблы с ручной эксплуатацией спуфинга sAMAccountName?

Всем Привет! Недавно столкнулся с трудностями эксплуатации ручным способом уязвимости noPac на своих лекциях по атакам на сетевую инфраструктуру. На проектах всего пару раз использовал ручной способ, а так пользовался всегда этим эксплоитом.

Мануал по разбору данной вулны брал с хабра.

Отдельная и большая благодарность @snovvcrash за оперативную помощь в решении вопроса!

Выполнял полностью все в соотвествии с инфструкцией на тачке с HTB. Ниже перечислены шаги, которые я выполнил:

Проверяем что сервер уязвим:

Проверяем сколько тачек можем завести в домене:

Добавляем и проверяем что Машинная УЗ создалась:

Меняем название тачки при помощи скрипта:

Получаем TGT с помощью getTGT.py:

Меняем название тачки при помощи скрипта обратно:

Получаем TGS на Administrator (тут затык, пошел к автору данной статьи - @snovvcrash. Он очень быстро определил в чем была проблема, о которой будет написано немного ниже):

Выполняем Dcync:

Ничего не получается… Можете не обращать внимание на то, что вылетает у меня ошибка socket error or timeout, потому что хост был доступен, я выполнил попытку доступа через smbclient.py с машины, которая находилась в одной сети с DC, результат оставался такой же - билет невалидный:

А если я эксплуатирую при помощи эксплоита, то все отрабатывает хорошо:

Если используем noPac:

У нас кешируется билетик, который мы можем переиспользовать вручную:

Теперь время описать, что обнаружил @snovvcrash:

  1. service name неправильно проставляется почему-то, префикс службы CIFS не прописывается должным образом:

Должно быть так:

  1. Исследователь обнаружил, что вот в этом коммите сломали предыдущее поведение: https://github.com/ThePorgs/impacket/commit/4dc134e30c0a4011278cdda3f720f0fc1b0764e9

И теперь когда выставляешь флаг -self, надо обязательно указывать явно имя службы:

python3 examples/getST.py -dc-ip 172.16.5.5 -spn 'CIFS/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL' -altservice 'CIFS/ACADEMY-EA-DC01.INLANEFREIGHT.LOCAL' inlanefreight.local/ACADEMY-EA-DC01 -k -no-pass -impersonate administrator -self

Автор мануала вычислил это через сравнение коммитов:

  1. После выполнения команды выше, где мы явно прописываем SPN и у нас валидно запрашивается билет, далее мы можем выполнять, например, DCSync атаку:

Еще больше интересных статей в моем ТГ канале: https://t.me/pro_pentest