Найти тему
PRO:PENTEST

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

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

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

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

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

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

<img src="https://img2.teletype.in/files/56/f9/56f99b85-869c-4396-af74-f978bd513def.png" itemprop="contentUrl">
<img src="https://img2.teletype.in/files/56/f9/56f99b85-869c-4396-af74-f978bd513def.png" itemprop="contentUrl">

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

<img src="https://img2.teletype.in/files/13/22/1322e8f2-1225-4a09-9e86-e8fe2828b977.png" itemprop="contentUrl">
<img src="https://img2.teletype.in/files/13/22/1322e8f2-1225-4a09-9e86-e8fe2828b977.png" itemprop="contentUrl">

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

<img src="https://img1.teletype.in/files/44/38/4438b4e3-4a88-4cf3-89e0-a98443353f8e.png" itemprop="contentUrl">
<img src="https://img1.teletype.in/files/44/38/4438b4e3-4a88-4cf3-89e0-a98443353f8e.png" itemprop="contentUrl">

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

<img src="https://img3.teletype.in/files/21/cd/21cd11b3-bd05-42a3-ae29-8179623afe31.png" itemprop="contentUrl">
<img src="https://img3.teletype.in/files/21/cd/21cd11b3-bd05-42a3-ae29-8179623afe31.png" itemprop="contentUrl">

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

<img src="https://img4.teletype.in/files/bd/36/bd365d04-0db9-4f82-a95a-9e06d0c0e58d.png" itemprop="contentUrl">
<img src="https://img4.teletype.in/files/bd/36/bd365d04-0db9-4f82-a95a-9e06d0c0e58d.png" itemprop="contentUrl">

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

<img src="https://img4.teletype.in/files/74/41/7441ee7a-7656-4955-af0c-dd3a96783277.png" itemprop="contentUrl">
<img src="https://img4.teletype.in/files/74/41/7441ee7a-7656-4955-af0c-dd3a96783277.png" itemprop="contentUrl">

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

<img src="https://img2.teletype.in/files/97/f2/97f2a354-cf27-4260-9fc7-5b1f619f2a15.png" itemprop="contentUrl">
<img src="https://img2.teletype.in/files/97/f2/97f2a354-cf27-4260-9fc7-5b1f619f2a15.png" itemprop="contentUrl">

Выполняем Dcync:

<img src="https://img4.teletype.in/files/f9/ae/f9aed261-cac6-4fe3-8273-4eef5e6054c0.png" itemprop="contentUrl">
<img src="https://img4.teletype.in/files/f9/ae/f9aed261-cac6-4fe3-8273-4eef5e6054c0.png" itemprop="contentUrl">

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

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

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

<img src="https://img3.teletype.in/files/a9/0d/a90d0696-1b96-448e-a17a-aa8b1584a923.png" itemprop="contentUrl">
<img src="https://img3.teletype.in/files/a9/0d/a90d0696-1b96-448e-a17a-aa8b1584a923.png" itemprop="contentUrl">

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

<img src="https://img3.teletype.in/files/e0/94/e094c379-8117-4e3d-84e3-4a78936864e7.png" itemprop="contentUrl">
<img src="https://img3.teletype.in/files/e0/94/e094c379-8117-4e3d-84e3-4a78936864e7.png" itemprop="contentUrl">

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

  1. service name неправильно проставляется почему-то, префикс службы CIFS не прописывается должным образом:
<img src="https://img1.teletype.in/files/02/de/02de6431-c0e3-49be-b31d-f41bd47eeaed.png" itemprop="contentUrl">
<img src="https://img1.teletype.in/files/02/de/02de6431-c0e3-49be-b31d-f41bd47eeaed.png" itemprop="contentUrl">

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

<img src="https://img3.teletype.in/files/a8/6b/a86ba02e-9060-4578-ac12-1a20a61deab3.png" itemprop="contentUrl">
<img src="https://img3.teletype.in/files/a8/6b/a86ba02e-9060-4578-ac12-1a20a61deab3.png" itemprop="contentUrl">
  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

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

<img src="https://img1.teletype.in/files/85/d8/85d86fda-ee5d-4dbe-92f0-384993c4047a.png" itemprop="contentUrl">
<img src="https://img1.teletype.in/files/85/d8/85d86fda-ee5d-4dbe-92f0-384993c4047a.png" itemprop="contentUrl">
  1. После выполнения команды выше, где мы явно прописываем SPN и у нас валидно запрашивается билет, далее мы можем выполнять, например, DCSync атаку:
<img src="https://img4.teletype.in/files/ff/61/ff616b28-f81a-4f29-a312-8a84d3aa3ec5.png" itemprop="contentUrl">
<img src="https://img4.teletype.in/files/ff/61/ff616b28-f81a-4f29-a312-8a84d3aa3ec5.png" itemprop="contentUrl">

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