Почему не стоит задавать пароли через Group Policy Preferences | Windows для системных администраторов

Почему не стоит задавать пароли через Group Policy Preferences

Предпочтения групповых политик (GPP — Group Policy Preferences) – мощное расширение технологии групповых политик Windows, упрощающая работу по настройке и управлению парком компьютеров, и являющаяся своего рода заменой скриптам в GPO. Одной из возможностей GPP – возможность управления паролями локальных и сервисных учетных записей, широко используемая многими администраторами, которые даже не подозревают о небезопасности этой технологии. В этой статье мы поговорим, почему не стоит использовать  возможности Group Policy Preferences по управлению паролями.

В Group Policy Preferences существуют 5 различных политик, позволяющих задать пароль пользователя/администратора.

  • Локальные учетные записи (Local Users and Group) – с помощью GPP администратор может создать/изменить локальную учетную запись и задать ее пароль (достаточно часто эта политика используется для смены пароля локального администратора на всех ПК организации) Управление пользователями через Group Policy Preferences
  • Сетевые диски (Drive Maps) – GPP позволяют подключить (смапить) пользователю сетевой диск с определенным именем пользователя и паролем Подключить сетевой диск через Group Policy Preferences
  • Источники данных (Data Sources) –  при создании источника данных можно задать имя пользователя и пароль учетной записи, под которой будет выполняться подключение. Источники данных  в Group Policy Preferences
  • Задания планировщика Windows (Scheduled Tasks) – задания планировщика можно запускать из-под определенного пользователя Управление заданиями планировщика в GPP
  • Службы (Services) – GPP позволяют указать учетную запись и ее пароль, из под которой будет запускаться конкретная служба (вместо ученой записи Local System) gpp - управление системными службами Windows

После того, как администратор сохраняет пароль в любой из перечисленных выше политик GPP, он сохраняется в каталоге соответствующей GPO в специальном XML файле и дальнейшем храня на контроллерах домена в папке SYSVOL. Пароль в XML файле хранится в зашифрованном виде, однако для шифрования/расшифровки пароля используется крайне нестойкий симметричный алгоритм  AES 32 (это отмечает даже сама Microsoft).

Допустим, администратор с помощью GPP настроил политику, меняющую пароль локального администратора на всех ПК. Система в этом случае сохранит зашифрованный пароль в каталоге GPO в файле groups.xml. Посмотрим на содержимое этого файла (файл в нашем примере хранится в каталоге \\winitpro.ru\SYSVOL\winitpro.ru\Policies\{POLICY_ID}\Machine\Preferences\Groups):

Важно. Доступ к файлам, хранящимся в GPO, имеют все авторизованные пользователи домена. Это означает, что в зашифрованном виде просмотреть пароль сможет любой пользователь.

Поле cpassword в конфигурационном файле GPP

Зашифрованный пароль содержится в значении поля CPASSWORD. Самое интересное заключается в том, что Microsoft сама на MSDN выложила в паблик 32 битный AES ключ, используемый для шифрования пароля (http://msdn.microsoft.com/en-us/library/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be.aspx#endNote2)

ключ aes на msdn-е

Соответственно, специалисту ничего не мешает написать скрипт, позволяющий расшифровать значение пароля, хранящегося в XML файле (алгоритм AES симметричный и при наличии ключа шифрования без труда позволяет получить исходный текст).

Примечание. Скрипт, позволяющий расшифровать пароль, хранящийся в GPP  можно получить тут: Get-GPPPassword. Естественно, мы выкладываем этот скрипт в ознакомительными целями и не в коем случае не стоит его использовать в корыстных целях.

В Windows Server 2012 / Windows Server 2012 R2 разработчики Microsft добавили предупреждение о небезопасности хранения паролей в таком виде. При попытке указать пароль через GPP появляется предупреждающее окно:

This password is stored as part of the GPO in SYSOL and is discoverable, although obscured.

Предупреждение GPP в Windows Server 2012

Также важно отметить тот файкт, что в MetaSploit-е модуль получения и расшифровки паролей, хранящихся в GPP присутствует еще с 2012 года. Это означает, что злоумышленники практически в автоматическом режиме могут реализовать это вектор атаки.

Ну что, вы и в дальнейшем планируете использовать Group Policy Preferences для управления паролями?

Совет. В качестве решения по управления паролями локальных администраторов Microsoft предлагает LAPS. Подробнее о нем в статье MS LAPS – управление паролями локальных администраторов в домене
Еще записи по теме: Group Policy
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

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

Оставить комментарий
  1. Сергей | 12.12.2013

    Уважаемый автор, а как Вы меняете пароли локального администратора?
    У меня пока схема такая. При запуске ПК он пытается асинхронно открыть страничку IIS’a по определенному урлу, после чего на сервере запускается утилита меняющая пароль этому ПК.

    Ответить
    • Павел | 28.02.2014

      Сергей, не могли бы вы по подробней рассказать про данный механизм.
      Спасибо.

      Ответить
      • Сергей | 28.02.2014

        Павел, вот осбуждение смены пароля локального админа, ближе к концу предложен вариант с веб сервером. http://social.technet.microsoft.com/Forums/ru-RU/ff37eb08-31ad-4495-9403-f6bf71e463ab/-?forum=scrlangru
        Правда мне пришлось его переделать (из-за кривости моих рук не на всех ПК срабатывал), нужно было ковырять права на доступ по сети к ПК, иначе часто скрипт не мог получить доступ к ПК, чтобы сменить пароль. Пришлось воспользоваться утилитой pspasswd.exe. Конечно не совсем секьюрно получается, ибо пароль передается в открытом виде, н оменя пока устраивает. А вообще я планирую, в дальнейшем, как и автор данного сайта заблокировать встроенную учетку админа. Там будет намного меньше проблем.

        Ответить
        • Павел | 03.03.2014

          Спасибо, будем делать.
           

          Ответить
          • Сергей | 03.03.2014

            Если не затруднит, расскажите потом о своих результатах )

            Ответить
          • Павел | 10.03.2014

            Я не стал городить огород:
            http://1drv.ms/N102ot
             
            Есть корпоративная система хранения паролей, которая позволяет обращаться к паролям посредствам API.
            В ней внесены пароли локальных админов, которые генерируются автоматически после окончания срока действия.
            Нужно было, что бы они были синхронизированы с локальными учетными записями администраторов в подразделениях компании, кок можно безопасней.
            Вот с Вашей подачи и родилась сия процедура.

            Ответить
  2. Дмитрий | 12.12.2013

    Про небезопасность задание паролей через gpo но какова альтернатива? Через logon скрипты не лучше ведь.

    Ответить
    • itpro | 18.12.2013

      Я предпочитаю совсем отключать учетную запись локального администратора. Если же в ней возникнет необходимо — ее всегда можно локально активировать и сбросить пароль. Согласен, неудобно, но в грамотно организованной сети — к использованию локальных учеток прибегать практически не приходится…
      Возможно, я бы подумал о скрипте, удаленно меняющем пароли лок.админа, через тот же WMI или PoSH, однако это не спасет от перехвата трафика.
      А вообще, у всех методик есть свои сильные и слабые стороны и логон скрипты, ничем не лучше. 100% безопасного метода смены паролей локальных администраторов, увы не существует…

      Ответить
  3. Владимир | 13.12.2013

    Миром правят не президенты, они просто паяцы, а некая надмирная финансовая олигархия, использующая для управления древнейший принцип – хлеба и зрелищ этим двуногим.
    Microsoft, как и прочие финансовые пирамиды, верой и правдой служит политике этой олигархии. Национализм, шовинизм, терроризм, наркомания, алкоголизм, голод, интернет и прочее-прочее являются составляющими частями зрелищной политики. Все это нам, а не им.
    А вот что страшно для них – это ИНАКОМЫСЛИЕ за закрытыми наглухо компьютерными системами и сетями. Это непредсказуемая бомба, пострашнее любой термоядерной. Поэтому Microsoft и далее будет блудить языком о безопасности, паролях, политиках, настройках, а руками эти системы открывать.

    Ответить
  4. Станислав | 14.12.2013

    политика GPP смены пароля, читается компьютером
    ну да, по умолчанию дается доступ на чтение пользователем… так что мешает сделать запрет на чтение этой политики?

    Ответить
    • Сергей | 14.12.2013

      Даже если дать права только компьютерам, никто не мешает запустить любой процесс от System и прочитать файлы политики.

      Ответить
  5. Сергей | 11.03.2014

    Павел, интересно у вас получилось. А можете подсказать, какие  правила в фаерволе необходимо разрешить, чтобы смена пароля проходила успешно?

    Ответить
    • Павел | 13.03.2014

      Сори, за ожидание — много работы.
      С фаерволом есть вопросы:
      На стороне сервера — все просто входящие правило для 81 порта, а вот с клиентов пока руки не дошли… в процессе

      Ответить
      • Сергей | 13.03.2014

        Да ничего, сам тоже завален )
        Буду ждать результата, воспользуюсь, так сказать, чужим трудом )

        Ответить
      • Павел | 19.03.2014

        На стороне сервера:
        разрешить подключение для протокола TCP и локального порта 81, профиль: Домен
        На стороне клиента:
        для $namePC = [System.Net.Dns]::GetHostByAddress($ipPC).HostName необходимо разрешить подключение для протокола UDP и локального порта 137, область: только для IP=X.X.X.X сервера, профиль: Домен
        для $Admin.SetPassword($PasswordProperties.Password) необходимо разрешить подключение для протокола TCP и локального порта 445, область: только для IP=X.X.X.X сервера, профиль: Домен
        Я не стал устанавливать действие «Разрешить только безопасное подключение» в правилах для фаервола, но это возможно в принципе.

         

        Ответить
        • Сергей | 19.03.2014

          Павел, огромнейшее спасибо.
          Как разгребу текущие дела переделаю свой вариант на Ваш.

          Ответить
          • Pavel | 21.07.2014

            Прошлый вариант — работал только в виртуальной тестовой среде, текущий боевой вариант, проходит апробацию в одном из подразделений http://1drv.ms/N102ot. Пока все довольны.

            Ответить
            • Den | 22.12.2014

              Павел, а ссылочка ваша битая. Можете обновить?

            • Pavel | 22.12.2014

              Просто я убрал общий доступ от директории OneDrive. Хорошо я сделаю для вас. После обеденного перерыва сегодня.

  6. Pavel | 22.12.2014

    Вот ссылка http://1drv.ms/1AX7zYJ. Пользуйтесь на здоровье.

    Ответить
    • Den | 22.12.2014

      Павел, спасибо большое! Слил. Если требуется — можете закрывать. Буду пробовать.

      Ответить
  7. itpro | 07.05.2015

    В качестве продолжения темы предлагаю познакомится с официальным решение Microsoft по управлению паролями локальных администраторов в домене Local Administrator Password Solution

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.27MB/0.00167 sec