- Автор темы
- #1
Давайте просканируем цель с помощью Nmap, как мы всегда делаем, чтобы найти открытые порты и службы, работающие на этих портах. Для сканирования я использую command .
nmap -A -T4 -p- 10.10.10.161
Прежде всего, что такое Active Directory? По сути, Active Directory - это центральная система или, можно сказать, центральная база данных. Это служба, используемая администратором для управления ресурсами.
Время перейти к учетной записи пользователя
Мы собираемся использовать GetNPUsers.py скрипт из репозиториев Impacket для получения хэша имени пользователя и пароля этого пользователя.
Итак, как мы видим, мы нашли имя пользователя и хэш пароля этого пользователя. Теперь нам нужно взломать этот хэш. Я попробовал Hashcat, но по какой-то причине у меня это не сработало, поэтому я использовал john. Нам нужно указать формат хэша при использовании john, поэтому мы укажем формат – krb5asrep.
Да, мы получили пароль. Теперь давайте используем evil-winrm, чтобы получить оболочку с этими учетными данными. Чтобы установить 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 работает без обновления каких-либо пакетов. Я указываю на это, потому что я столкнулся с этой проблемой при выполнении этого окна.
Мы владели пользователем, так что теперь мы можем получить флаг пользователя из каталога рабочего стола этого пользователя.
За сценой – Как существует эта уязвимость? и что GetNPUsers.py сценарий сделал?
Если свойство "Не требует предварительной аутентификации Kerberos" (DONT_REQ_PREAUTH) установлено, то любой может запросить данные аутентификации для любого пользователя, и DC вернет зашифрованный TGT. Тот же сценарий существует в нашем случае для пользователя svc-установлен параметр alfresco ‘Не требовать предварительной аутентификации Kerberos’. Итак, мы пользуемся возможностью этого потока.
GetNPUsers.py скрипт создаст запрос аутентификации Kerberos (AS-REQ) и отправит его на сервер, затем сервер kerberos ответит AS-REP и передаст шифр из enc-части, и мы назвали его TGT. Хэш, который предоставляет нам скрипт, - это TGT. TGT не содержит пароля, он содержит временную метку, которая была зашифрована с помощью пароля пользователя. Итак, вот как работает скрипт, теперь оставшаяся часть - это инструмент взлома хэшей. Это немного сбивает с толку, какой алгоритм взломщик хэшей использовал для расшифровки этого типа хэша и предоставляет пароль, который используется для шифрования этой метки времени.
С нескольких минут мы ссылаемся на содержимое TGT как на временную метку, это явно звучит абсурдно, не зная, что в нем действительно содержится. Итак, вот скриншот, который я взял из документа RFC, чтобы показать, какие вещи содержит TGT.
Как вы можете видеть на скриншоте, мы используем команду IEX для загрузки файла, по сути, он не сохраняет файл на диске, а загружает его в память.
Чтобы запустить bloodhound, нам нужно использовать команду Invoke-Bloodhound, и она сгенерирует для нас zip-файл. Теперь нам нужно отправить этот zip-файл из целевого ящика на наш хост-компьютер, чтобы проанализировать его с помощью bloodhound, для этого мы будем использовать impacket-smbserver. Я сохраняю zip-файл в каталоге “smb”.
Теперь откройте bloodhound и импортируйте zip-файл.
Слишком много беспорядка здесь. Давайте сократим его, запросив кратчайшие пути к ценным целям.
Теперь мы видим, что наш пользователь может быть частью РАЗРЕШЕНИЯ EXCHANGE WINDOWS. Другой способ узнать это - посмотреть, к какой группе принадлежит наш пользователь. Посмотрите на скриншот ниже, поскольку мы видим, что наш пользователь является частью привилегированных ИТ-аккаунтов, поэтому мы можем добавить нашего пользователя в EXCHANGE с РАЗРЕШЕНИЕМ WINDOWS.
Итак, давайте добавим нашего пользователя в группу РАЗРЕШЕНИЙ EXCHANGE WINDOWS.
Теперь мы будем использовать aclpwn скрипт для автоматизации нашей работы. Теперь мы будем использовать aclpwn script для автоматизации нашей работы, в основном это инструмент, который взаимодействует с BloodHound для определения и использования путей повышения привилегий на основе ACL.
Все кажется хорошим. Давайте пойдем и убежим secretsdump.py скрипт для получения хэшей.
Теперь мы возьмем хэш администратора и передадим его wmiexec.py сценарий.
Ура! Мы получили корень после использования многих скриптов, не зная, что мы на самом деле сделали, поэтому пришло время понять, что мы на самом деле сделали и как вообще существует эта уязвимость.
За сценой – В чем заключается уязвимость и как эта уязвимость существует? и что мы делали до сих пор, чтобы получить root?
Я собираюсь объяснить все с точки зрения подхода "снизу вверх". Итак, мы использовали wmiexec для передачи хэша администратора, чтобы получить оболочку. Теперь, как мы получили хэш администратора? Для этого мы использовали secretsdump.py сценарий, по сути, это атака DC Sync. Если у пользователя есть разрешение, указанное ниже, установите
• Репликация изменений каталога
• Репликация изменений каталога Все
Затем мы можем запросить хэш пароля любого пользователя в домене, даже мы можем получить хэш пароля учетной записи krbtgt. Вот что secretsdump.py скрипт сделал для нас, чтобы получить хэш всех пользователей.
Интересная часть начинается сейчас, потому что у нашего пользователя не было вышеупомянутого разрешения в начале. Итак, как мы предоставили эти разрешения пользователям svc-alfresco для выполнения атаки DC Sync? Если вы помните, мы добавляем нашего пользователя в группу РАЗРЕШЕНИЙ EXCHANGE WINDOWS, поэтому по умолчанию группа РАЗРЕШЕНИЙ EXCHANGE WINDOWS имеет разрешение writeDACL, которое позволяет изменять ACL домена. Проще говоря, разрешения WriteDACL позволяют нам изменять разрешения, поэтому мы устанавливаем разрешение на репликацию каталога для нашего пользователя, чтобы мы могли проводить атаку DC Sync. Чтобы облегчить нашу жизнь, мы использовали aclpwn скрипт для автоматизации этой задачи.
Вот и все!
nmap -A -T4 -p- 10.10.10.161

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

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

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

Мы владели пользователем, так что теперь мы можем получить флаг пользователя из каталога рабочего стола этого пользователя.
За сценой – Как существует эта уязвимость? и что GetNPUsers.py сценарий сделал?
- Хорошо, итак, мы владели пользователем с помощью GetNPUsers.py , довольно увлекательно. Но возникает вопрос, что GetNPUsers.py сценарий действительно сработал? и в чем уязвимость?
Если свойство "Не требует предварительной аутентификации Kerberos" (DONT_REQ_PREAUTH) установлено, то любой может запросить данные аутентификации для любого пользователя, и DC вернет зашифрованный TGT. Тот же сценарий существует в нашем случае для пользователя svc-установлен параметр alfresco ‘Не требовать предварительной аутентификации Kerberos’. Итак, мы пользуемся возможностью этого потока.
GetNPUsers.py скрипт создаст запрос аутентификации Kerberos (AS-REQ) и отправит его на сервер, затем сервер kerberos ответит AS-REP и передаст шифр из enc-части, и мы назвали его TGT. Хэш, который предоставляет нам скрипт, - это TGT. TGT не содержит пароля, он содержит временную метку, которая была зашифрована с помощью пароля пользователя. Итак, вот как работает скрипт, теперь оставшаяся часть - это инструмент взлома хэшей. Это немного сбивает с толку, какой алгоритм взломщик хэшей использовал для расшифровки этого типа хэша и предоставляет пароль, который используется для шифрования этой метки времени.
С нескольких минут мы ссылаемся на содержимое TGT как на временную метку, это явно звучит абсурдно, не зная, что в нем действительно содержится. Итак, вот скриншот, который я взял из документа RFC, чтобы показать, какие вещи содержит TGT.

Пришло время выследить Root
Как мы знаем, этот ящик основан на AD, поэтому теперь нам нужно сделать для него больше перечислений, для этого нам нужна карта AD. Мы собираемся использовать Bloodhound для получения карты объявлений. Сначала мы загрузим скрипт SharpHound.ps1 и сохраним его в каталоге, я собираюсь сохранить его в каталоге с именем “www”, а затем запустить python SimpleHTTPServer в этом каталоге, чтобы мы могли загрузить файл с нашего компьютера в целевое поле.
Как вы можете видеть на скриншоте, мы используем команду IEX для загрузки файла, по сути, он не сохраняет файл на диске, а загружает его в память.
Чтобы запустить bloodhound, нам нужно использовать команду Invoke-Bloodhound, и она сгенерирует для нас zip-файл. Теперь нам нужно отправить этот zip-файл из целевого ящика на наш хост-компьютер, чтобы проанализировать его с помощью bloodhound, для этого мы будем использовать impacket-smbserver. Я сохраняю zip-файл в каталоге “smb”.

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

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

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

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

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

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

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

Ура! Мы получили корень после использования многих скриптов, не зная, что мы на самом деле сделали, поэтому пришло время понять, что мы на самом деле сделали и как вообще существует эта уязвимость.
За сценой – В чем заключается уязвимость и как эта уязвимость существует? и что мы делали до сих пор, чтобы получить root?
Я собираюсь объяснить все с точки зрения подхода "снизу вверх". Итак, мы использовали wmiexec для передачи хэша администратора, чтобы получить оболочку. Теперь, как мы получили хэш администратора? Для этого мы использовали secretsdump.py сценарий, по сути, это атака DC Sync. Если у пользователя есть разрешение, указанное ниже, установите
• Репликация изменений каталога
• Репликация изменений каталога Все
Затем мы можем запросить хэш пароля любого пользователя в домене, даже мы можем получить хэш пароля учетной записи krbtgt. Вот что secretsdump.py скрипт сделал для нас, чтобы получить хэш всех пользователей.
Интересная часть начинается сейчас, потому что у нашего пользователя не было вышеупомянутого разрешения в начале. Итак, как мы предоставили эти разрешения пользователям svc-alfresco для выполнения атаки DC Sync? Если вы помните, мы добавляем нашего пользователя в группу РАЗРЕШЕНИЙ EXCHANGE WINDOWS, поэтому по умолчанию группа РАЗРЕШЕНИЙ EXCHANGE WINDOWS имеет разрешение writeDACL, которое позволяет изменять ACL домена. Проще говоря, разрешения WriteDACL позволяют нам изменять разрешения, поэтому мы устанавливаем разрешение на репликацию каталога для нашего пользователя, чтобы мы могли проводить атаку DC Sync. Чтобы облегчить нашу жизнь, мы использовали aclpwn скрипт для автоматизации этой задачи.
Вот и все!
- Telegram