Claims to windows token service что это

Обновлено: 03.07.2024

Эксперт OTUS — Александр Колесников поделился с нами полезной статьёй, которую написал специально для студентов курса "Пентест. Практика тестирования на проникновение".

Мы же в свою очередь приглашаем всех желающих принять участие в бесплатном демо-уроке на тему: "Windows AD сбор информации, эскалация привилегий. Эксплойты и уязвимости последних 5ти лет."

Предыдущая статья рассказывала о том, как эксплойты используют технику копирования токена для повышения привилегий. В этой статье мы попытаемся рассмотреть еще одну технику модификации токенов, а также постараемся узнать, как задаются привилегии, которые помещаются в Primary Token.

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

Настройка тестового стенда

Для экспериментов подойдет пара виртуальных машин, которые работают по NAT сети. Две потому что нет другого способа проводить ядерную отладку операционной системы. А NAT сеть, чтобы были отладочные символы, с ними проще и быстрее искать данные без исходного кода. Настройка отладчика есть на просторах сети, но все же ниже будет пару строк как это делается для операционной системы Windows 10 1909.

1. Устанавливаем отладчик. Для операционной системы Windows есть только Windbg Preview, установим его:

2. Переводим целевую операционную систему в отладочный режим:

Перезагружаем систему. И открываем вторую машину, которая будет содержать отладчик:


После перезагрузки системы:

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

Token

Официальная документация гласит, что основные данные, которые существуют в операционной системе касательно привилегий пользователя хранятся в специальной структуре, которая называется Primary Token. В прошлой статье мы не останавливались подробно на части, которая описывается Se* привилегиями. Наиболее интересные привилегии, которые могут быть использованы для эскалации привилегий, вывода из строя ОС:

Служба SharePoint Claims to Windows Token Service (C2WTS) необходима для просмотра отчетов в собственном режиме в веб-части средства просмотра отчетов служб SQL Server Reporting Services.

Служба SharePoint Claims to Windows Token Service (C2WTS) требуется для служб SQL Server Reporting Services в режиме интеграции с SharePoint в случае, если необходимо использовать проверку подлинности Windows для источников данных, которые находятся за пределами фермы SharePoint. Служба C2WTS необходима, даже если источники данных находятся на одном компьютере с общей службой. Однако в этом случае ограниченное делегирование не требуется.

Интеграция служб Reporting Services с SharePoint больше не доступна после выхода SQL Server 2016.

Настройка веб-части средства просмотра отчетов (собственный режим)

Веб-часть средства просмотра отчетов можно использовать для внедрения отчетов служб SQL Server Reporting Services в собственном режиме на сайте SharePoint. Эта веб-часть доступна для SharePoint 2013 и SharePoint 2016. В SharePoint 2013 и SharePoint 2016 действует проверка подлинности на основе утверждений. В результате этого C2WTS необходимо настроить соответствующим образом, а в Reporting Services нужно настроить проверку подлинности Kerberos для правильного отображения отчетов.

Выполните шаги из раздела, посвященного настройке службы c2WTS.

Интеграция с режимом SharePoint

Этот раздел относится только к службам SQL Server 2016 Reporting Services и более ранним версиям.

Служба SharePoint Claims to Windows Token Service (C2WTS) требуется для служб SQL Server Reporting Services в режиме интеграции с SharePoint в случае, если необходимо использовать проверку подлинности Windows для источников данных, которые находятся за пределами фермы SharePoint. Она также требуется, когда пользователь получает доступ к источникам данных с помощью проверки подлинности Windows, так как для связи между интерфейсным веб-сервером и общей службой Reporting Services всегда используется проверка подлинности на основе утверждений.

Основные шаги для настройки службы C2WTS

Токены, созданные службой C2WTS, работают только при наличии ограниченного делегирования (ограничение набором определенных служб) и заданном параметре using any authentication protocol (Использовать любой протокол проверки подлинности) (переход протокола).

Если в среде используется делегирование, ограниченное Kerberos, то внешние источники данных и служба SharePoint Server должны находиться в одном домене Windows. Любая служба, использующая службу токенов Claims to Windows Service (c2WTS), должна применять делегирование, ограниченное Kerberos, чтобы разрешить c2WTS использовать передачу протокола Kerberos для перевода утверждений в учетные данные Windows. Эти требования являются достоверными для всех общих служб SharePoint. Дополнительные сведения см. в разделе Планирование проверки подлинности Kerberos в SharePoint 2013.

Настройте учетную запись домена службы C2WTS.

Рекомендуется запускать C2WTS с использованием собственного удостоверения домена.

Создайте учетную запись Active Directory и зарегистрируйте ее как управляемую учетную запись на сервере SharePoint.

Настройте службу C2WTS для использования управляемой учетной записи, выбрав "Центр администрирования SharePoint > Безопасность > Configure Service Accounts (Настройка учетных записей служб) > Windows Service - Claims to Windows Token Service (Служба Windows — утверждения для службы маркеров Windows)".

Добавьте учетную запись службы C2WTS в группу локальных администраторов на каждом сервере, где будет использоваться служба C2WTS. Для веб-части средства просмотра отчетов это будут интерфейсные веб-серверы (WFE). Для режима интеграции с SharePoint это будут серверы приложений, на которых запущена служба Reporting Services.

Настройте делегирование для учетной записи службы C2WTS.

Для учетной записи необходимо настроить ограниченное делегирование со сменой протоколов. Кроме того, ей требуются разрешения на делегирование для служб, с которыми она будет обмениваться данными (например, ядро СУБД SQL Server, службы SQL Server Analysis Services). Для настройки делегирования можно использовать оснастку "Active Directory — пользователи и компьютеры". Также потребуются права администратора домена.

Любые параметры, настраиваемые для учетной записи службы C2WTS на вкладке делегирования, должны соответствовать основной учетной записи службы. Для веб-части средства просмотра отчетов это будет учетная запись службы для веб-приложения SharePoint. Для режима интеграции с SharePoint это будет учетная запись службы Reporting Services.

Например, если разрешить учетной записи службы C2WTS делегировать полномочия службе SQL Service, потребуется выполнить то же самое с учетной записью службы Reporting Services для режима интеграции с SharePoint.

Щелкните правой кнопкой мыши каждую учетную запись службы и откройте диалоговое окно свойств. В диалоговом окне перейдите на вкладку Делегирование .

Вкладка делегирования отображается, только если объекту назначено имя субъекта-службы (SPN). Службе C2WTS не требуется имя субъекта-службы для учетной записи службы C2WTS, однако без этого имени вкладка Делегирование отображаться не будет. Другой способ настройки ограниченного делегирования заключается в использовании специальной программы, например ADSIEdit.

Основными параметрами, приведенными на вкладке делегирования, являются следующие:

  • Установка параметра Доверять этому пользователю делегирование только определенных служб
  • Установка параметра Использовать любой протокол проверки подлинности

Выберите Добавить , чтобы добавить службу, которая является адресатом делегирования.

Выберите Пользователи или компьютеры. * и введите учетную запись, в которой размещена служба. Например, если SQL Server выполняется под учетной записью с именем sqlservice, введите sqlservice . Для веб-части средства просмотра отчетов это будет учетная запись службы для экземпляра Reporting Services (собственный режим).

Настройте параметр AllowedCallers службы C2WTS.

Для службы C2WTS требуется, чтобы идентификаторы вызывающих объектов были явно перечислены в файле конфигурации C2WTShost.exe.config. Служба C2WTS принимает запросы от всех пользователей системы, прошедших проверку подлинности, только если она настроена на это. В этом случае вызывающим является группа Windows WSS_WPG. Файл C2WTShost.exe.confi хранится в следующем расположении:

Изменение учетной записи службы в центре администрирования SharePoint (для службы C2WTS) добавит эту учетную запись в группу WSS_WPG.

\Program Files\Windows Identity Foundation\v3.5\c2WTShost.exe.config

В следующем примере показан файл конфигурации:

Запустите (перезапустите, если служба уже работает) службу Claims to Windows Token из центра администрирования SharePoint на странице управления службами на сервере. Служба должна быть запущена на сервере, который будет выполнять действие. Например, при наличии сервера, который является интерфейсным веб-сервером, и другого сервера, который служит сервером приложений, где работает общая служба SQL Server Reporting Services, службу C2WTS необходимо запустить только на сервере приложений. Если вы используете веб-часть средства просмотра отчетов, служба C2WTS требуется только на веб-сервере.

The SharePoint Claims to Windows Token Service (C2WTS) is required if you want to view native mode reports within the SQL Server Reporting Services Report Viewer web part.

C2WTS is also required with SQL Server Reporting Services SharePoint mode if you want to use Windows authentication for data sources that are outside the SharePoint farm. C2WTS is needed even if your data source(s) are on the same computer as the shared service. However in this scenario, constrained delegation is not needed.

Reporting Services integration with SharePoint is no longer available after SQL Server 2016.

Report Viewer (Native Mode) web part configuration

The Report Viewer web part is a custom web part that can be used to view SQL Server Reporting Services (native mode) reports within your SharePoint site. You can use the web part to view, navigate, print, and export reports on a report server. The Report Viewer web part is associated with report definition (.rdl) files that are processed by a SQL Server Reporting Services report server or a Power BI Report Server. This Report Viewer web part can’t be used with Power BI reports hosted in Power BI Report Server.

SharePoint Server 2013, SharePoint Server 2016, and SharePoint Server 2019 all make use of claims authentication. As a result, C2WTS needs to be configured properly and Reporting Services needs to be configured for Kerberos authentication for reports to render correctly.

Configure your Reporting Services (Native Mode) instance for Kerberos Authentication by determining the SSRS Service account, setting an SPN, and updating the rsreportserver.config file to use RSWindowsNegotiate Authentication Type. Register a Service Principal Name (SPN) for a Report Server

SharePoint mode integration

This section only applies to SQL Server 2016 Reporting Services and earlier.

The SharePoint Claims to Windows Token Service (C2WTS) is required with SQL Server Reporting Services SharePoint mode if you want to use Windows Authentication for data sources that are outside the SharePoint farm. This is true even if the user accesses the data sources with Windows Authentication because the communication between the web front-end (WFE) and the Reporting Services shared service will always be Claims Authentication.

Steps needed to configure c2WTS

The tokens created by C2WTS will only work with constrained delegation (constrains to specific services) and the configuration option "using any authentication protocol"(Protocol Transition).

If your environment will use Kerberos constrained delegation, then the SharePoint Server service and external data sources need to reside in the same Windows domain. Any service that relies on the Claims to Windows token service (c2WTS) must use Kerberos constrained delegation to allow c2WTS to use Kerberos protocol transition to translate claims into Windows credentials. These requirements are true for all SharePoint Shared Services. For more information, see Plan for Kerberos authentication in SharePoint 2013.

Configure the C2WTS service domain account.

As a best practice C2WTS should run under its own domain identity.

Create an Active Directory account and register the account as a managed account in SharePoint Server.

Configure C2WTS Service to use the managed account through SharePoint Central Administration > Security > Configure Service Accounts > Windows Service - Claims to Windows Token Service

Add the C2WTS service account to the local Administrators group on each server that C2WTS will be used. For the Report Viewer web part, this will be the Web Front End (WFE) servers. For SharePoint integrated mode, this will be the application servers where the Reporting Services service is running.

  • Grant the C2WTS account the following permissions in the local security policy under Local Policies > User Rights Assignment:
    • Act as part of the operating system
    • Impersonate a client after authentication
    • Log on as a service

    Configure delegation for the C2WTS service account.

    The account needs Constrained Delegation with Protocol Transitioning and permissions to delegate to the services it is required to communicate with (i.e. SQL Server Database Engine, SQL Server Analysis Services). To configure delegation you can use the Active Directory Users and Computer snap-in and will need to be a domain administrator.

    Whatever settings you configure for the C2WTS service account, on the delegation tab, needs to match the main service account being used. For the Report Viewer web part, this will be the service account for the SharePoint web application. For SharePoint integrated mode, this will be the Reporting Services service account.

    For example, if you allow the C2WTS service account to delegate to a SQL Service, you need to do the same on the Reporting Services service account for SharePoint integrated mode.

    Right-click each service account and open the properties dialog. In the dialog click the Delegation tab.

    The delegation tab is only visible if the object has a Service Principal Name (SPN) assigned to it. C2WTS does not require an SPN on the C2WTS Account, however, without an SPN, the Delegation tab will not be visible. An alternative way to configure constrained delegation is to use a utility such as ADSIEdit.

    Key configuration options on the delegation tab are the following:

    • Select Trust this user for delegation to specified services only
    • Select Use any authentication protocol

    Select Add to add a service to delegate to.

    Select Users or Computers. * and enter the account that hosts the service. For example, if a SQL Server is running under an account named sqlservice, enter sqlservice . For the Report Viewer web part, this will be the service account for the Reporting Services (Native Mode) Instance.

    Select OK to get out of the dialogs.

    Configure C2WTS AllowedCallers.

    C2WTS requires the 'callers' identities explicitly listed in the configuration file, C2WTShost.exe.config. C2WTS does not accept requests from all authenticated users in the system unless it is configured to do so. In this case the 'caller' is the WSS_WPG Windows group. The C2WTShost.exe.confi file is saved in the following location:

    Changing the service account within SharePoint Central Admin, for the C2WTS service, will add that account to the WSS_WPG group.

    \Program Files\Windows Identity Foundation\v3.5\c2WTShost.exe.config

    The following is an example of the configuration file:

    Start (stop and start if already started) the Claims to Windows Token Service through SharePoint Central Administration on the Manage Services on Server page. The service should be started on the server that will be performing the action. For example if you have a server that is a WFE and another server that is an Application Server that has the SQL Server Reporting Services shared service running, you only need to start C2WTS on the Application Server. C2WTS is only required on a WFE server if you are running the Report Viewer web part.

    Служба Служба c2WTS (Claims to Windows Token Service) является компонентом платформы Windows® Identity Foundation (WIF) и извлекает UPN-утверждения из маркеров безопасности, отличных от Windows, таких как SAML и X.509, и создает маркеры безопасности Windows уровня олицетворения. Это позволяет приложению проверяющей стороны выполнять олицетворение пользователя. Оно может требоваться для доступа к серверным ресурсам, например базам данных SQL Server, находящимся на внешнем компьютере по отношению к компьютеру, на котором выполняется приложение проверяющей стороны.

    c2WTS — это служба Windows, которая устанавливается в составе WIF. Однако по причинам безопасности c2WTS используется исключительно по желанию. Служба запускается вручную и выполняется с локальной системной учетной записью. Кроме того, администратор должен вручную задать для c2WTS список разрешенных вызывающих сторон. По умолчанию этот список пуст. Дополнительные сведения см. в разделе Инструкции: запрос маркера в c2WTS. WIF вызывает c2WTS с помощью IPC, и c2WTS не открывает никаких сетевых портов.

    Примечание.
    Если служба c2WTS включена и для привязки задан защищенный диалог в режиме Cookie, c2WTS будет использоваться для воссоздания удостоверения Windows из UPN-имени, которое сериализовано в файле Cookie защищенного диалога. Это означает, что проверка подлинности может завершиться сбоем при переключении между защищенным диалогом в режиме Cookie и в режиме сеанса, если служба c2WTS включена, но неправильно настроена.

    Как использовать c2WTS для получения маркера безопасности Windows

    Существует два способа использования c2WTS: через mapToWindows или через вызов метода UpnLogon по требованию. Если приложению постоянно требуются маркеры безопасности Windows уровня олицетворения, то можно включить свойство mapToWindows атрибута samlSecurityTokenRequirement в элементе <securityTokenHandlers> . С другой стороны, если маркеры безопасности Windows уровня олицетворения требуются приложению только в определенных случаях, то можно программно вызывать метод UpnLogon при необходимости. Имейте в виду, что для успешного вызова этого метода свойство useWindowsTokenService должно иметь значение true и должна быть добавлена конфигурация c2WTS с соответствующим списком вызывающих сторон.

    WIF предоставляет метод UpnLogon, который может вызывать приложение проверяющей стороны, передавая UPN-утверждение, полученное из службы STS. Затем WIF вызывает локальную службу c2WTS с помощью IPC. UpnLogon возвращает удостоверение WindowsIdentity, которое представляет пользователя. На следующем рисунке показан принцип действия.

      Запрос клиента поступает в приложение проверяющей стороны. Для обработки этого запроса проверяющей стороне требуется доступ к внешнему ресурсу. Для этого приложение проверяющей стороны должно выполнить олицетворение пользователя.

    © Корпорация Майкрософт (Microsoft Corporation), 2008.Все права защищены.

    Читайте также: