Уподобання групових політик (GPP – Group Policy Preferences) – потужне розширення технології групових політик Windows, яка спрощує роботу з налаштування і управління парком комп’ютерів, і є свого роду заміною скриптів в GPO. Однією з можливостей GPP – можливість управління паролями локальних і сервісних облікових записів, широко використовувана багатьма адміністраторами, які навіть не підозрюють про небезпеку цієї технології. У цій статті ми поговоримо, чому не варто використовувати можливості Group Policy Preferences з управління паролями.

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

Після того, як адміністратор зберігає пароль у будь-який з перерахованих вище політик 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-e

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

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

У Windows Server 2012 / Windows Server 2012 R2 розробники Microsft додали попередження про небезпеку зберігання паролів в такому вигляді. При спробі вказати пароль через GPP з’являється попередження вікно:

Цей пароль зберігається як частина об’єкта групової політики в SYSOL і є доступним для пошуку, хоча і затемненим.

Попередження GPP в Windows Server 2012

Також важливо відзначити той файкт, що в MetaSploit-е модуль отримання і розшифровки паролів, що зберігаються в GPP присутній ще з 2012 року. Це означає, що зловмисники практично в автоматичному режимі можуть реалізувати це вектор атаки.

Ну що, ви і надалі плануєте використовувати Group Policy Preferences для управління паролями?

Leave a Reply

Your email address will not be published. Required fields are marked *