Kali Linux, Kali Linux для продвинутого тестирования на проникновение, Kerberos

#107 Kali Linux для продвинутого тестирования на проникновение. Компрометация Kerberos.

Здравствуйте, дорогие друзья.

Другой набор более сложных (и более поздних) атак — это использование уязвимостей Microsoft Kerberos в среде Active Directory. Успешная атака приводит к тому, что злоумышленники скомпрометируют контроллеры домена, а затем повышают привилегии до уровня администратора предприятия и администратора схемы с использованием реализации Kerberos.

Ниже приведены типичные шаги, когда пользователь входит в систему с именем пользователя и паролем в среде на основе Kerberos:

  1. Пароль пользователя преобразуется в NTLM-хеш с отметкой времени, а затем отправляется в Центр распространения ключей (Key Distribution Center (KDC)).
  2. Контроллер домена проверяет информацию о пользователе и создает билет на предоставление билета (Ticket-Granting Ticket(TGT)).
  3. Доступ к этому Kerberos TGT возможен только через службу Kerberos (KRBTGT).
  4. Затем TGT передается контроллеру домена от пользователя для запроса билета на предоставление услуги (TGS).
  5. Контроллер домена проверяет сертификат привилегированной учетной записи (PAC). Если это разрешено, чтобы открыть билет, TGT фактически копируется для создания TGS.
  6. Наконец, пользователю предоставляется доступ к услугам.

Злоумышленники могут манипулировать этими билетами Kerberos на основе доступных хэшей паролей. Например, если Вы уже взломали систему, подключенную к домену, и извлекли учетные данные локального пользователя и хэши паролей, следующим шагом будет идентификация хеша пароля KRBTGT для создания золотого билета; из-за этого группам криминалистики и реагирования на инциденты будет немного сложнее определить причину атаки.

В этом разделе мы рассмотрим, как легко создать золотой билет. Мы можем использовать уязвимость всего за один шаг, используя инструмент Empire, предполагая, что у нас есть компьютер, подключенный к домену, с обычным пользователем домена и правами локального администратора на этом компьютере.
Все контроллеры Active Directory отвечают за обработку запросов билетов Kerberos, которые затем используются для аутентификации пользователей домена. Учетная запись пользователя krbtgt используется для шифрования и подписи всех билетов Kerberos, созданных в данном домене, а затем контроллеры домена используют пароль этой учетной записи для расшифровки билетов Kerberos, для цепочки проверки. Пентестерам следует помнить, что большинство учетных записей служб, включая krbtgt, не имеют срока действия пароля или изменения пароля, а имя учетной записи обычно остается тем же.
Мы будем использовать пользователя домена с низким уровнем привилегий, и доступом локального администратора, для создания токена, передачи хеша контроллеру домена и генерации хеша, для указанной учетной записи. Этого можно достичь с помощью следующих шагов:

  1. Перечислите все учетные данные, собранные с помощью инструмента Empire, выполнив команду Credentials; Если мы не видим krbtgt, мы воспользуемся агентом, работающим на контроллере домена, для получения хеш-значения. В этом случае мы запустим CrackMapExec на контроллере домена, указав в качестве значения Exchangeadmin, и будем взаимодействовать с агентом.
  2. Следующим шагом является идентификация процесса, который выполняется на уровне привилегий, украсть токен и запустить следующую команду с использованием PID-команды Steal_token в инструменте Empire, как показано на рисунке ниже:
Stealing a session token of a high-privilege user
  1. Теперь мы готовы работать от имени администратора с контроллера домена, на котором работает домен mastering.kali.fourthedition. Вывод должен включать SID домена и необходимый хэш пароля:
 Output of DCSync and successfully capturing the password hash of krbtgt

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

 Validating the hash value of krbtgt in PowerShell Empire
  1. Наконец, когда мы получим хеш Kerberos, этот хэш можно будет передать контроллеру домена, для выдачи золотого билета. Теперь мы можем использовать пользователя с низким уровнем привилегий, normaluser, и запустить модуль Golden_ticket с правильным идентификатором учетных данных, и любым именем пользователя для модуля. Когда модуль будет успешно выполнен, Вы сможете увидеть сообщение, как показано на следующем снимке экрана, и запустить модуль золотого билета с любым пользователем:
  1. Успешное выполнение модуля должно предоставить нам детали, показанные на рисунке ниже:
Creating the golden ticket using krbtgt and an invalid user

7. А злоумышленники могут проверить сгенерированный билет Kerberos, с помощью klist независимо от того, находится ли сгенерированный билет в сеансе или нет, как показано на рисунке ниже:

Validating the cached tickets on the target machine

8. С помощью золотого билета, злоумышленник сможет просматривать любые файлы на контроллере домена или любую систему в домене с этим золотым билетом и удалять данные:

Successful exploitation of the golden ticket attack

Этого также можно добиться, выполнив следующую команду из mimikatz в скомпрометированной системе, если у злоумышленника есть сеанс удаленного рабочего стола на целевом контроллере домена, с помощью следующей команды:
kerberoserberos::golden /admin:Administrator /domain:Mastering.kali. fourthedition /id:ACCOUNTID /sid:DOMAINSID /krbtgt:KRBTGTPASSWORDHASH /ptt

Запустив команду, злоумышленники проходят аутентификацию под любым пользователем, даже несуществующим пользователем, включая уровни администратора предприятия и администратора схемы. В рамках того же билета злоумышленники также могут выполнить DCSync с помощью Mimikatz, как показано на рисунке ниже:

Performing DCSync using Mimikatz on a low-privilege user using the golden ticket

Еще одна подобная атака — атака «серебряного билета» Kerberos, о которой мало говорят. Эта атака снова подделывает TGS, но он подписан учетной записью службы; это означает, что атака по принципу «серебряного билета» ограничивается любой службой, направленной на сервер. Инструмент PowerShell Empire можно использовать для использования той же уязвимости, с использованием модуля credentials/mimikatz/silver_ticket, предоставив хэш rc4/NTLM для параметров.

Резюме

В этом разделе мы рассмотрели методологию повышения привилегий и изучили различные методы и инструменты, которые можно использовать для достижения нашей цели теста на проникновение.
Сначала мы начали с обычного повышения привилегий на уровне системы, используя ms18_8120_win32k_ privesc на Windows Server 2008 и используя bypassuac_fodhelper на компьютерах с Windows 10. Мы сосредоточились на использовании Meterpreter для получения контроля на уровне системы, а позже подробно рассмотрели использование инструмента Empire; затем мы собрали учетные данные с помощью сетевых анализаторов паролей. Мы также использовали Responder, и выполняли ретрансляционные атаки NTLM для получения удаленного доступа к системе, а также использовали Responder для перехвата паролей различных систем в сети, использующей SMB.
Мы полностью скомпрометировали Active Directory, используя структурированный подход. Наконец, мы воспользовались правами доступа в Active Directory, используя PowerShell Empire и скомпрометированную учетную запись Kerberos, и выполнили атаку «золотого билета» с помощью инструмента Empire.
В следующем разделе мы узнаем, как злоумышленники используют различные методы для обеспечения доступа к скомпрометированной системе, в соответствии с методологией cyber kill chain. Мы также углубимся в то, как переносить данные из внутренних систем во внешние.

На этом все. Всем хорошего дня!

Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.