Domain Escalation: Неограниченное делегирование

Дата: 01.09.2022. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Domain Escalation: Неограниченное делегирование
Изображение: Kevin Ku (Unsplash)

В этой статье пойдет речь о Domain Escalation. Неограниченное делегирование – это определенная привилегия в домене, которая может быть предоставлена учетным записям компьютеров или пользователей.

Введение

После выхода Windows 2000 Microsoft в новых версиях своей ОС представила опцию, с помощью которой можно было проходить проверку подлинности учетной записи на сервисе в сети от имени другого аккаунта. Это стало возможным благодаря делегированию. Неограниченное делегирование возможно при использовании метода TGT (англ. «ticket granting ticket» — мандата для получения мандата).

Делегирование Kerberos

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

Классический пример того, когда делегирование крайне необходимо, связан с аутентификацией на веб-сервере с использованием Kerberos или других протоколов. Сервер зачастую предпочитает взаимодействовать с бэкэндом SQL или файловым сервером.

Виды делегирования Kerberos:

  • Неограниченное делегирование
  • Ограниченное делегирование
  • Ограниченное делегирование на основе ресурсов (RBCD)

Уникальный идентификатор экземпляра сервиса (SPN)

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

Неограниченное делегирование

Первоначально эта функция появилась в Windows Server 2000, но она все еще доступна для обеспечения обратной совместимости. По сути, если пользователь запрашивает служебный билет на сервере, где разрешено неограниченное делегирование, сервер извлекает TGT пользователя и кэширует его в своей памяти для последующего использования. Это означает, что сервер может притворяться этим пользователем для любого ресурса в домене.

В учетной записи компьютера администратор может настроить следующий параметр для получения неограниченного делегирования.

  • Пользователи и компьютеры Active Directory -> Компьютеры -> Доверять этому компьютеру делегирование служб (только Kerberos)

Ключевыми особенностями неограниченного делегирования являются:

  • Обычно привилегия предоставляется компьютерам, на которых запущены такие службы, как IIS и MSSQL, поскольку этим компьютерам требуется некоторое серверное подключение к другим ресурсам.
  • Получив право на делегирование, компьютер запрашивает TGT пользователя и сохраняет его в своей кэш-памяти.
  • С помощью TGT компьютер может получать доступ к внутренним ресурсам от имени прошедшего проверку пользователя.
  • Суть в том, что сами системы также могут запрашивать доступ к любому ресурсу в домене, используя TGT.

Хакер может злоупотреблять неограниченным делегированием, запрашивая TGS для доменных служб, используя делегированный пользователем TGT.

Получение TGT с помощью неограниченного делегирования

Нужно провести атаку на компьютер, где включено делегирование. Таким образом, предполагается, что хакер уже успел скомпрометировать его.

Идеальные условия:

  • Злоумышленник скомпрометировал систему DC1$, где запущена IIS с проверкой подлинности Kerberos.
  • Злоумышленник имеет доступ к системе, подключенной к домену (в данном случае, есть окно PowerShell, запущенное в ОС).
  • Пользователь является администратором системы.

На деле у хакера может и не быть прямого доступа к системе DC. Для демонстрации практической части была запущена IIS на DC.

Перед получением TGT нужно изучить системы, где включено неограниченное делегирование. Это можно сделать с помощью PowerShell и модуля AD.

Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties trustedfordelegation,serviceprincipalname,description

Помимо этого, можно использовать скрипт Powerview, который является частью фреймворка PowerSploit, созданного для обеспечения безопасности с применением PowerShell. Скрипт доступен по ссылке.

После компрометации системы AD пользователь может установить и использовать Powerview.

Import-Module .\powerview.ps1
Get-NetComputer -Unconstrained

Теперь в целевой системе нужно запустить Rubeus в режиме мониторинга. После этого всякий раз, когда пользователь подключается или аутентифицируется в DC1$, Rubeus будет сбрасывать TGT пользователя.

rubeus.exe monitor /monitorinterval:10 /targetuser:dc1$ /nowrap

Нужно дождаться, когда привилегированные пользователи подключатся к DC1$, и служба IIS будет активной. В данном практическом примере это было сделано вручную, использовался модуль IWR.

Invoke-WebRequest http://dc1.offense.local -UseDefaultCredentials -UseBasicParsing

Как можно увидеть на картинке выше, Rubeus захватил новый мандат для получения мандата (TGT) от пользователя IGNITE\Administrator.

Хакер может использовать этот TGT для получения доступа к любому ресурсу, запросив TGS. Для выполнения данной цели часто применяется Rubeus asktgs.

Заключение

В статье продемонстрирован метод неограниченного делегирования. Как и следует из названия, нет никаких ограничений на то, как система, имеющая права делегирования, использует аутентификационные данные пользователя. Лазейки в системе безопасности заставили Microsoft добавить ограниченное делегирование.

Автор переведенной статьи: Harshit Rajpal.

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

Об авторе Игорь Б

Представитель редакции CISOCLUB. Добавляю статьи на сайт.
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован.