...

среда, 4 декабря 2013 г.

[Из песочницы] Управляемые учётные записи служб (Managed Service Accounts)

image



Есть способ, который позволяет узнать пароль администратора в случае, если какая-либо служба запускается от его имени.

Пароли учетных записей, от которых запускаются службы Windows, хранятся в зашифрованном виде в реестре (LSA Secrets) по пути:

HKEY_LOCAL_MACHINE/Security/Policy/Secrets


Существуют способы, которые позволяют извлечь пароли из LSA Secrets:



  • Скопировать путь реестра во временный путь, а затем расшифровать зашифрованные пароли

  • Использовать теневые копии

  • Использовать специальные утилиты для работы с процессом lsass.exe




Попробуем получить пароль от учетной записи под которой запускается служба SQL Server.

Имеется:

Контроллер домена на Windows Server 2012 R2

SQL Server Express 2012

При установке SQL Server, для запуска службы, специально укажем существующую доменную учётную запись (пароль меньше 14 символов).

Piccy.info - Free Image Hosting


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

Запустим PowerShell от имени администратора и выполним команду: gsecdump-v2b5.exe -l

Результат:


Piccy.info - Free Image Hosting


Чтобы защититься от такого рода атак в Windows Server 2008 R2 был придуман механизм Managed Service Accounts.

Managed Service Accounts являются управляемыми учетными записями в домене, которые обеспечивают автоматическое управление паролями и упрощенное управление именами служб-участников, включая делегирование управления другим администраторам.

Преимущества управляемых учетных записей служб:



  • Автоматическая смена паролей. По умолчанию смена пароля – раз в 30 дней

  • Сложный пароль. Используется комплексный автоматически генерируемый пароль из 240 символов в случайном порядке (первая половина — буквы английского алфавита, вторая половина — цифры и другие символы)

  • Отсутствие избыточных прав

  • Возможность использования одного MSA на нескольких серверах (gMSA). В случае, когда требуется, чтобы все экземпляры служб использовали один и тот же субъект, например для использования в службе NLB

  • Управление SPN




Автоматическое обновление SPN при переименовании

— учетной записи сервера

— свойства dnshostname учетной записи сервера

— изменении свойства addition¬aldnshostname учетной записи сервера

— изменении свойства additionalsam¬accountname учетной записи сервера

Сервисы и службы, которые поддерживают MSA:



  • IIS

  • AD LDS

  • SQL Server 2008 R2 SP1, 2012

  • MS Exchange 2010, 2013




Требования MSA:


  • Уровень домена и леса – Windows Server 2008 R2

  • Windows Server 2008 R2, Windows 7 (Professional, Enterprise, Ultimate)

  • .Net Framework 3.5x

  • Модуль администрирования Active Directory для PowerShell

  • Установленный патч 2494158




Если лес и домен не имеют уровень 2008 R2 (MSA) и 2012 (gMSA) нужно поднять уровень леса командой:

adprep /forestprep

И уровень домена, командой:

adprep /domainprep в каждом домене, в котором необходимо создать и использовать управляемые учетные записи службы.

Включение MSA в PowerShell

1) Выполнить командлет: Import-Module ActiveDirectory

2) Чтобы создать учётную запись MSA нужно выполнить командлет:

New-ADServiceAccount serviceaccount –RestrictToSingleComputer

где serviceaccount – имя учетной записи MSA

RestrictToSingleComputer – параметр означает, что MSA будет привязан только к одному серверу.

Можно зайти в Active Directory Users and Computers и убедиться, что MSA был создан (чтобы появился раздел Managed Service Accounts, нужно включить в оснастке View — Advanced Features).

Piccy.info - Free Image Hosting


3) Чтобы привязать MSA к серверу нужно выполнить командлет:

Add-ADComputerServiceAccount -Identity server -ServiceAccount serviceaccount

где server – имя сервера, который будет соотнесён с MSA

serviceaccount – имя учетной записи MSA

Чтобы проверить, что операция выполнена успешно, нужно зайти в оснастку Active Directory Users and Computers, перейти в свойства сервера и посмотреть атрибут msDS-HostServiceAccount

Piccy.info - Free Image Hosting


4) Установка управляемой учетной записи службы на локальном компьютере

Нужно выполнить командлет:

Install-ADServiceAccount -Identity serviceaccount

где serviceaccount – имя учетной записи MSA

5) Тестирование MSA (Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2)

Нужно выполнить командлет:

Test-ADServiceAccount serviceaccount

где serviceaccount – имя учетной записи MSA

Вернёт значение True или False

6) Установить для службы Windows запуск от имени MSA и перезапустить службу.

В конце имени MSA не забудьте указать знак $

Поле пароль нужно оставить пустым.

Piccy.info - Free Image Hosting


Проверим с помощью утилиты gsecdump пароль для учётной записи службы

Piccy.info - Free Image Hosting


В Windows Server 2012 появились Групповые управляемые учетные записи служб (Group Managed Service Accounts).

Они позволяют привязывать управляемую учетную запись не к одному серверу, а к нескольким.

Это может потребоваться, например, для использования в службе балансировки сетевой нагрузки.


Требования:



  • Уровень схемы – Windows Server 2012

  • Контроллер домена Windows Server 2012 (R2) на котором запущена служба Microsoft Key Distribution Service

  • Windows Server 2012, 2012 R2, 8, 8.1

  • Модуль администрирования Active Directory для PowerShell


Включение gMSA в PowerShell

1) Проверить, что включена служба Microsoft Key Distribution Services

“Служба распространения ключей использует общий секрет для создания ключей учетной записи. Эти ключи периодически изменяются. В дополнение к прочим атрибутам групповых управляемых учетных записей служб контроллер домена Windows Server 2012 вычисляет пароль для ключа, предоставленного службами распространения ключей. Обратившись к контроллеру домена Windows Server 2012, узлы Windows Server 2012 и Windows 8 могут получить текущий и предыдущий пароль.”

2) Создать Root Key

За создание Root Key отвечает командлет:

Add-KdsRootKey

Чтобы создать новый Root Key нужно выполнить командлет:

Add-KdsRootKey –EffectiveImmediately

В таком случае ключ будет доступен через 10 часов, пока не среплицируется.

Можно выполнить командлет:

Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

В таком случае, ключ будет доступен сразу (-10 часов начала работы)

3) Создать gMSA

Выполнить командлет:

New-ADServiceAccount serviceaccount -DNSHostName test.test.com –PrincipalsAllowedToRetrieveManagedPassword $test

где serviceaccount – имя учетной записи gMSA

test.test.com – имя сервера, на котором был создан Root Key

$test – имя сервера, который может обращаться к KDS для получения информации


Можно зайти в Active Directory Users and Computers и убедиться, что gMSA был создан (чтобы появился раздел Managed Service Accounts, нужно включить в оснастке View — Advanced Features).

Piccy.info - Free Image Hosting


4) Установка управляемой учетной записи службы на локальном компьютере

Нужно выполнить командлет:

Install-ADServiceAccount -Identity serviceaccount

где serviceaccount – имя учетной записи gMSA

5) Тестирование MSA (Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2)

Нужно выполнить командлет:

Test-ADServiceAccount serviceaccount

где serviceaccount – имя учетной записи MSA

Вернёт значение True или False

6) Установить для службы Windows запуск от имени gMSA и перезапустить службу.

В конце имени gMSA не забудьте указать знак $

Поле пароль нужно оставить пустым.

Piccy.info - Free Image Hosting


Проверим с помощью утилиты gsecdump пароль для учётной записи службы

Piccy.info - Free Image Hosting


Удалить MSA/gMSA можно с помощью командлета Uninstall-ADServiceAccount


Задавать параметры MSA/gMSA можно с помощью командлета Set-ADServiceAccount

Задание периода смены пароля:

Set-ADServiceAccount serviceaccount -ManagedPasswordIntervalInDays 60

где serviceaccount – имя учетной записи gMSA

60 – период, через который сменится пароль

Задание криптоалгоритмов Kerberos для использования MSA

Варианты: RC4, AES128, AES256

Set-ADServiceAccount serviceaccount -KerberosEncryptionType RC4, AES128, AES256

Задание SPN

Set-ADServiceAccount serviceaccount -ServicePrincipalNames @{Add=«добавляемый SPN»}


Задание NetBIOS имени для сервиса (SAMAccountName)

Если не задано, используется идентификатор Name

Если задано, имя отображения в AD будет из Name, а идентификатор для логина из SAMAccountName

Set-ADServiceAccount serviceaccount –SamAccountName test


MSA – это ещё один способ, который позволяет повысить безопасность.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий