Данная уязвимость была обнаружена в Windows 2000
Server с запущенной службой терминалов. Сущность уязвимости: групповая политика не будет применена к
пользователю, если количество соединений к общему ресурсу, содержащему объект групповой политики, превысит количество установленных пользовательских лицензий.

Подробнее

Групповая политика (Group Policies) — это набор правил, применяемых к группе пользователей. Т.е. при использовании групповой политики, исчезает необходимость настраивать разрешения/ограничения для каждого конкретного пользователя — достаточно объединить их в некие группы и единожды применит групповую политику.

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

Правила групповой политики применяются к пользователю когда он входит в систему. Если вход в систему разрешен, происходит чтение и применение групповой политики. Для Microsoft было бы гораздо лучше, если бы успешно примененная групповая политика сохранялась в профиле пользователя, когда он покидает систему (однако этого не происходит,
хотя по идее должно — это и есть одна из
главных ошибок, дальше станет ясно почему).

Объект групповой политики хранится (Group
Policy Object — именно он накладывает на
пользователя установленные ограничения
при входе в систему) на общем ресурсе (Share) сервера, контролирующего вход в домен. Как и любой другой общий ресурс, он может быть недоступен, если количество соединений к нему ограничено количеством пользовательских лицензий. К примеру: по дефолту Windows 2000 Server идет с пятью пользовательскими лицензиями (т.е. не более пяти одновременных соединений с сервером). Эта, в принципе разумная вещь, может
закрыть доступ к объекту групповой политики
(а следовательно и никаких ограничений на
юзера и положат, благополучно предоставив
полный доступ) если количество одновременных подключений превысит эту цифру (в нашем случае достаточно шестого подключения).

Сценарий

Существует некий Win2000 Server с запущенной службой терминалов. Служба терминалов доступна только для одного удаленного пользователя. Администратор домена разработал групповую политику, в соответствии с которой пользователь службы терминалов может запускать всего одну программу (пусть это будет notepad.exe). Все остальное для удаленного пользователя заблокировано.

Использование

  1. Пользователь службы терминалов соединяется с сервером.
  2. Не закрывая соединения, пользователь открывает еще одно соединение. Результат тот же — пожалуйте использовать notepad.exe 😉 Поэтому, по тому же сценарию открывается нужное количество соединений, пока количество соединений станет равным количеству пользовательский лицензий.
  3. Пользователь открывает еще одно соединение (допустим, шестое). Система разрешает вход пользователя и…
    запрещает доступ к объекту групповой политики!!! Групповая политика остается незадействованной
    (А если бы она сохранялась в профиле
    пользователя? Вот то-то и оно…), а это значит прощай все ограничения, здравствуй cmd.exe и paint.exe %-)!

Стоит отметить, что групповая политика продолжает действовать для первых пяти соединений (в нашем примере), но не действует на шестое. У нас нет возможности каким-либо образом изменить групповую политику, либо запретить ее применение — наша доля пользоваться удобным случаем…

Защита

Отключить слежение за лицензиями, либо, как компромисс — сильно увеличить их количество.
Сменить систему лицензирования: с лицензирования «на сервер» перейти к лицензированию «на рабочее место». Вот каким сообщением отреагировал на эту попытку мой сервер:

Нарушение лицензионного соглашения

!!! Вы запросили выполнение изменения, которое нарушает лицензионное соглашение. Лицензия на этот продукт разрешает только одноразовое изменение режима лицензирования от «на сервер» к лицензированию «на рабочее место».

Отметить выполнение этого запроса?

ДА НЕТ ОТМЕНА

Думал я, надо признаться, недолго…

Оставить мнение

Check Also

Антиотладка. Теория и практика защиты приложений от дебага

К методам детектирования отладки прибегают многие программисты: одни хотели бы уберечь сво…