• Добро пожаловать на сайт - Forumteam.bet !

    Что бы просматривать темы форума необходимо зарегестрироваться или войти в свой аккаунт.

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

HTB: Взлом Forest

Benzema

Публикатор
Команда форума
Регистрация
27.01.18
Веб-сайт
netysaita.com
TG
@@qq
1665945592007.png
Давайте просканируем цель с помощью Nmap, как мы всегда делаем, чтобы найти открытые порты и службы, работающие на этих портах. Для сканирования я использую command .

nmap -A -T4 -p- 10.10.10.161

forest-htb-2-1024x696.png

Перечисление​

Первое, что я сделал, это перечисление SMB с помощью rpcclient, и это дает мне список имен пользователей, но я не могу найти это полезным, поэтому я не добавил скриншот этого. Теперь из результата nmap мы можем сказать, что это поле связано с active Directory, и в то время я явно не имею ни малейшего представления о active Directory, даже я не знаю, что это значит: ’) Поэтому один из моих друзей предложил канал VBscrub на Youtube, чтобы узнать об active directory. И я говорю вам, ребята, что стоит посмотреть его видео, он так подробно все объяснил. В любом случае, вот ссылка на его канал.

Прежде всего, что такое Active Directory? По сути, Active Directory - это центральная система или, можно сказать, центральная база данных. Это служба, используемая администратором для управления ресурсами.

Время перейти к учетной записи пользователя

Мы собираемся использовать GetNPUsers.py скрипт из репозиториев Impacket для получения хэша имени пользователя и пароля этого пользователя.

forest-htb-3.png

Итак, как мы видим, мы нашли имя пользователя и хэш пароля этого пользователя. Теперь нам нужно взломать этот хэш. Я попробовал Hashcat, но по какой-то причине у меня это не сработало, поэтому я использовал john. Нам нужно указать формат хэша при использовании john, поэтому мы укажем формат – krb5asrep.

forest-htb-4.png

Да, мы получили пароль. Теперь давайте используем evil-winrm, чтобы получить оболочку с этими учетными данными. Чтобы установить evil-winrm на свой компьютер, используйте следующие команды

sudo apt-get update && sudo apt-get upgrade
sudo gem install evil-winrm
Ну, нет необходимости обновлять все ваши пакеты, но если вы используете последнюю версию Kali Linux, то вам следует это сделать, потому что в новом Kali Linux я столкнулся с проблемой при установке любого пакета с помощью gem. Итак, если вы используете любой другой дистрибутив Linux, я думаю, что gem install evil-winrm работает без обновления каких-либо пакетов. Я указываю на это, потому что я столкнулся с этой проблемой при выполнении этого окна.

Да, мы получили пароль. Теперь давайте используем evil-winrm, чтобы получить оболочку с этими учетными данными. Чтобы установить evil-winrm на свой компьютер, используйте следующие команды

sudo apt-get update && sudo apt-get upgrade
sudo gem install evil-winrm

Ну, нет необходимости обновлять все ваши пакеты, но если вы используете последнюю версию Kali Linux, то вам следует это сделать, потому что в новом Kali Linux я столкнулся с проблемой при установке любого пакета с помощью gem. Итак, если вы используете любой другой дистрибутив Linux, я думаю, что gem install evil-winrm работает без обновления каких-либо пакетов. Я указываю на это, потому что я столкнулся с этой проблемой при выполнении этого окна.

forest-htb-5.png

Мы владели пользователем, так что теперь мы можем получить флаг пользователя из каталога рабочего стола этого пользователя.

За сценой – Как существует эта уязвимость? и что GetNPUsers.py сценарий сделал?

  • Хорошо, итак, мы владели пользователем с помощью GetNPUsers.py , довольно увлекательно. Но возникает вопрос, что GetNPUsers.py сценарий действительно сработал? и в чем уязвимость?
Прежде всего, Kerberos - это протокол аутентификации компьютерной сети, который работает на основе запросов, позволяя узлам обмениваться данными в открытой сети, чтобы безопасным образом подтвердить свою личность друг другу. Kerberos используется в Active Directory. Во время предварительной аутентификации пользователь вводит свои учетные данные, которые будут использоваться для шифрования метки времени, а затем DC (контроллер домена) расшифрует ее, чтобы подтвердить, что были использованы правильные учетные данные, если все идеально, он выдаст TGT с этой меткой времени.

Если свойство "Не требует предварительной аутентификации Kerberos" (DONT_REQ_PREAUTH) установлено, то любой может запросить данные аутентификации для любого пользователя, и DC вернет зашифрованный TGT. Тот же сценарий существует в нашем случае для пользователя svc-установлен параметр alfresco ‘Не требовать предварительной аутентификации Kerberos’. Итак, мы пользуемся возможностью этого потока.

GetNPUsers.py скрипт создаст запрос аутентификации Kerberos (AS-REQ) и отправит его на сервер, затем сервер kerberos ответит AS-REP и передаст шифр из enc-части, и мы назвали его TGT. Хэш, который предоставляет нам скрипт, - это TGT. TGT не содержит пароля, он содержит временную метку, которая была зашифрована с помощью пароля пользователя. Итак, вот как работает скрипт, теперь оставшаяся часть - это инструмент взлома хэшей. Это немного сбивает с толку, какой алгоритм взломщик хэшей использовал для расшифровки этого типа хэша и предоставляет пароль, который используется для шифрования этой метки времени.

С нескольких минут мы ссылаемся на содержимое TGT как на временную метку, это явно звучит абсурдно, не зная, что в нем действительно содержится. Итак, вот скриншот, который я взял из документа RFC, чтобы показать, какие вещи содержит TGT.

forest-htb-6.png

Пришло время выследить Root​

Как мы знаем, этот ящик основан на AD, поэтому теперь нам нужно сделать для него больше перечислений, для этого нам нужна карта AD. Мы собираемся использовать Bloodhound для получения карты объявлений. Сначала мы загрузим скрипт SharpHound.ps1 и сохраним его в каталоге, я собираюсь сохранить его в каталоге с именем “www”, а затем запустить python SimpleHTTPServer в этом каталоге, чтобы мы могли загрузить файл с нашего компьютера в целевое поле.

forest-htb-7.png

Как вы можете видеть на скриншоте, мы используем команду IEX для загрузки файла, по сути, он не сохраняет файл на диске, а загружает его в память.

Чтобы запустить bloodhound, нам нужно использовать команду Invoke-Bloodhound, и она сгенерирует для нас zip-файл. Теперь нам нужно отправить этот zip-файл из целевого ящика на наш хост-компьютер, чтобы проанализировать его с помощью bloodhound, для этого мы будем использовать impacket-smbserver. Я сохраняю zip-файл в каталоге “smb”.

forest-htb-8.png

Теперь откройте bloodhound и импортируйте zip-файл.

forest-htb-9.png

Слишком много беспорядка здесь. Давайте сократим его, запросив кратчайшие пути к ценным целям.

forest-htb-10.png

Теперь мы видим, что наш пользователь может быть частью РАЗРЕШЕНИЯ EXCHANGE WINDOWS. Другой способ узнать это - посмотреть, к какой группе принадлежит наш пользователь. Посмотрите на скриншот ниже, поскольку мы видим, что наш пользователь является частью привилегированных ИТ-аккаунтов, поэтому мы можем добавить нашего пользователя в EXCHANGE с РАЗРЕШЕНИЕМ WINDOWS.

forest-htb-11.png

Итак, давайте добавим нашего пользователя в группу РАЗРЕШЕНИЙ EXCHANGE WINDOWS.

forest-htb-12.png

Теперь мы будем использовать aclpwn скрипт для автоматизации нашей работы. Теперь мы будем использовать aclpwn script для автоматизации нашей работы, в основном это инструмент, который взаимодействует с BloodHound для определения и использования путей повышения привилегий на основе ACL.

forest-htb-13-1024x139.png

Все кажется хорошим. Давайте пойдем и убежим secretsdump.py скрипт для получения хэшей.

forest-htb-14.png

Теперь мы возьмем хэш администратора и передадим его wmiexec.py сценарий.

forest-htb-15.png

Ура! Мы получили корень после использования многих скриптов, не зная, что мы на самом деле сделали, поэтому пришло время понять, что мы на самом деле сделали и как вообще существует эта уязвимость.

За сценой – В чем заключается уязвимость и как эта уязвимость существует? и что мы делали до сих пор, чтобы получить root?

Я собираюсь объяснить все с точки зрения подхода "снизу вверх". Итак, мы использовали wmiexec для передачи хэша администратора, чтобы получить оболочку. Теперь, как мы получили хэш администратора? Для этого мы использовали secretsdump.py сценарий, по сути, это атака DC Sync. Если у пользователя есть разрешение, указанное ниже, установите

• Репликация изменений каталога

• Репликация изменений каталога Все

Затем мы можем запросить хэш пароля любого пользователя в домене, даже мы можем получить хэш пароля учетной записи krbtgt. Вот что secretsdump.py скрипт сделал для нас, чтобы получить хэш всех пользователей.

Интересная часть начинается сейчас, потому что у нашего пользователя не было вышеупомянутого разрешения в начале. Итак, как мы предоставили эти разрешения пользователям svc-alfresco для выполнения атаки DC Sync? Если вы помните, мы добавляем нашего пользователя в группу РАЗРЕШЕНИЙ EXCHANGE WINDOWS, поэтому по умолчанию группа РАЗРЕШЕНИЙ EXCHANGE WINDOWS имеет разрешение writeDACL, которое позволяет изменять ACL домена. Проще говоря, разрешения WriteDACL позволяют нам изменять разрешения, поэтому мы устанавливаем разрешение на репликацию каталога для нашего пользователя, чтобы мы могли проводить атаку DC Sync. Чтобы облегчить нашу жизнь, мы использовали aclpwn скрипт для автоматизации этой задачи.

Вот и все!
 
Telegram
@qq
Сверху Снизу