Вверх

 
  • Комплексное ИТ обслуживание Вашего бизнеса 24 часа 7 дней в неделю!
  • IP телефония со знанием дела. Установка и настройка.
  • Поставки оборудования по выгодным ценам

03.03.2014 - Запуск приложений от имени учетной записи с правами администратора

Доброго времени суток уважаемый посетитель. В сегодняшней статье я предлагаю тебе рассмотреть ни как обычно установку и конфигурирование серверов и клиентских станций с самого начала, а обычные будни системного администратора. А рассматривать мы будем запуск определенного приложения из-под имени администратора, рассмотрим какие существуют решения и чем они отличаются. Причиной, по которой администраторы сталкиваются с этой проблемой довольна проста, в нашей практикте ит-аутсорсинга, мы довольно часто сталкиваемся с ситуацией, когда приложение (особенно отечественных разработчиков) не ориентированно на UAC, а почему так, спросите у разработчиков приложения. Тестировать будем в виртуальной среде Hyper-V на виртуальной машине второго поколения с ОС Windows 8.1.

Разнообразие присутствует

Рассматривать мы будем три утилиты:

-          RunAs

-          ExecAS

-          AdmiLink

RunAs

RunAs - запускает конкретные средства и программы с разрешениями, отличными от тех, которые предоставляет текущая учетная запись. Эта утилита не является сторонней, она входит в поставку ОС Windows. Справка по утилите runas /?

Тестировать будем на встроенной утилите msconfig.exe, которая входит в ОС Windows. Запуск этой утилиты осуществляется только с учетной записи имеющие права администратора.

ВНИМАНИЕ! Запуск утилиты будет осуществляется из-под учетной записи доменного администратора. В реалии не рекомендуется этого делать, лучше создать отдельную учетную запись для подобных моментов.

Итак, попробуем воспользоваться устроенной утилитой RunAs, для этого запустим командную строку и напишем следующее

 Встроенная Утилита RunAs

Далее потребуется ввести пароль:

Попрошу заметить, что вводимый пароль не будет отображаться

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

После удачного ввода пароля и имени учетной записи, откроется окно msconfig.exe

Запуск конфигурации системы с использованием RunAs

Теперь создадим ярлык для запуска msconfig.exe из-под учетной записи администратора.

Создание ярлыка с использованием RunAs

Нажмем «Далее» и запустим ярлык.

Ввод пароля для запуска

После удачного ввода пароля запустится уже известный msconfig.exe.

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

И еще, пароль при запуске ярлыка нужно будет вводить каждый раз, что не удобно для пользователя, если вы заходите облегчить жизнь ему, использовав параметр «/savecred», то вы создадите огромную дыру в системе безопасности.

Вот пример для создания огромной дырки:

Вы захотели облегчить жизнь пользователю, добавляем параметр «/savecred»

Использование параметра "/savecred"

Запускаем ярлык и вводим пароль, при первом запуске утилита предлагает ввести пароль

Ввод пароля администратора домена утилиты RunAs

Вводим пароль и говорим прощай! При повторном запуске утилита не будет требовать пароль, а точнее она теперь вообще не будет его требовать, вы подумаете «Ну и что!». А давайте попробуем в свойствах ярлыка изменить запускаемую утилиту, например, на cmd.exe.

Изменение запускаемого приложения в свойствах ярлыка

Пытаемся запустить и ….

Запуск командной строки средствами RunAs

«Мать твою! Он только что почистил arp-кэш». Я думаю если вы используете «/savecred», то вы вряд ли знаете, что такое arp-кэш и что для его очистки нужны права администратора.

 

ExecAS

Утилита ExecAs предназначена для запуска любых программ с правами, отличными от прав текущего пользователя. Можно применять для запуска программы Locker с правами администратора из-под ограниченной учетной записи. Это позволяет запретить операторам доступ к файлам базы данных программы Locker и вообще к запуску любых нежелательных программ кроме Locker-a.

ExecAs очень простая утилита, с которой сможет работать даже школьник.

Положительной чертой является ее простота.

Отрицательной чертой является отсутствие работы с доменными учетными записями.

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

Запуск приложений с использованием утилиты ExecAs

При первом запуске, приложение сразу предлагает ввести имя учетной записи и пароль, а также указать путь до приложения которое нужно запустить. Будем запускать cmd.exe о имени локального администратора. Попрошу заметить, что вводимая учетная запись указывается без имени машины. Для добавления приложения нажимаем на значок папки, который находится в конце строки «Программа».

Задаем параметры учетной записи для запуска приложения

Нажимаем «Записать». Наше приложение будет под номером 1.

Приложение в ExecAs 

Закрываем ExecAs и снова запускаем.

Запуск командной строки с использованием утилиты ExecAs

Как мы видим, cmd.exe сразу запустилось при запуске ExecAs. Дело в том, что если у вас одно приложение в списке запускаемых приложений в ExecAs, то это приложение будет сразу запускаться, это довольно хорошо, но если у вас к примеру, больше одного приложения?

Открываем cmd, переходим в каталог с приложением ExecAs, и запускаем его с параметром ниже

Добавление приложений для запуска в ExecAs

Теперь мы можем добавить еще одно приложение, к примеру калькулятор

Список запускаемых приложений

Теперь если мы закроем и откроем ExecAs, мы увидим окно выше, этого не должно произойти. Для этого есть параметр NN – номер запускаемой программы.

Создадим два ярлыка, один для запуска cmd, другой для калькулятора.

Создание ярлыка для запуска приложения с использование утилиты ExecAs

Создание ярлыка для запуска приложения с использование утилиты ExecAs

Запускаем оба ярлыка

Запуск приложения от имени администратора используя утилиту ExecAs

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

 

AdmiLink

AdmiLink - утилита, при помощи которой Администратор может создать ярлык, дающий возможность пользователям с ограниченными правами запускать конкретную (без возможности подмены!) программу с правами Администратора (или любого другого пользователя) без (интерактивного) ввода пароля.

Типичным применением программы AdmiLink является администрирование защищенных систем, в которых пользователь работает в основном под своей ограниченной учетной записью, и только отдельные, строго ограниченные Администратором функции запускает под Администратором, не зная его пароля и не имея возможности запускать другие, несанкционированные программы.

Другим типичным примером является использование AdmiLink для запуска потенциально опасных программ, например, Web браузера, с пониженными правами без ввода пароля. Так, чтобы избежать заражения машины вирусом, можно запускать Web браузер под учетной записью ограниченного пользователя, что резко снижает вероятность повреждения системы. Чтобы не вводить каждый раз пароль ограниченного пользователя, на Рабочем Столе можно сделать ярлык для запуска Web браузера под ограниченным пользователем.

Как работает AdmiLink

В состав пакета входит две программы: AdmiRun и AdmiLink.

AdmiRun - простая консольная задачка, которая умеет только одно - запускать другие программы от имени Администратора (или любого другого пользователя). При инсталляции AdmiRun копируется в каталог Windows, чтобы быть доступной в любом каталоге. AdmiRun может работать как в пакетном режиме (в командных файлах), так и для интерактивного запуска программ (через ярлык на Рабочем столе). Формат вызова можно получить, набрав AdmiRun /? Разумеется, для запуска программ от имени Администратора нужно знать пароль. С другой стороны, из соображений безопасности открыто передавать пароль нельзя, иначе вся система защиты лишается смысла. Выход состоит в передаче зашифрованной учетной записи (учетная запись = пользователь + домен + пароль). Учетную запись AdmiRun получает демонстративно открыто, через командную строку, однако понять из нее ничего нельзя - учетная запись передается как зашифрованнный ключ. Ключ привязан к конкретному исполняемому файлу, без этого файла AdmiRun просто не сможет расшифровать учетную запись. Поэтому если пользователь попробует запустить другую программу с таким же ключем, он потерпит неудачу. Более того, для того, чтобы сделать жизнь хакеров повеселее, ключи генерируются с использованием случайных чисел и никогда не повторяются.

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

интерфейс AdmiLink

1)      В поле «Задать имя исполняемого файла интересующей программы» укажем путь, нажав на значок дискеты. В нашем случае это будет cmd.exe

Путь до исполняемого файла в свойствах запуска утилиты AdmiLink

2)      Поле «Задать командную строку для исполняемого файла» оставим пустым.

Этот шаг необязателен, если параметры отсутствуют. Кроме того, имейте в виду, что можно указать привязку шифрования учетной записи к командной строке, чтобы нельзя было получить права Администратора, подменив параметры командной строки в ярлыке. 
Например, делая ярлык c:\windows\system32\control.exe timedate.cpl для коррекции системного времени, не забудьте привязать шифрование к командной строке, иначе, отредактировав ярлык, можно будет запустить, например, c:\windows\system32\control.exe nusrmgr.cpl и получить доступ к управлению пользователями, что совсем нехорошо.

3)      Поле «Задать стартовый каталог запускаемой программы…» обычно заполняется автоматически

4)      Задать режим отображения окна программы.

Переходим на вкладку «Accout»

5)      В поле «Имя домена» указываем NetBios имя или полное имя домена, в нашем случае test.lan.

Доменные учетные записи в AdmiLink

6)      В поле «Имя пользователя» можем вписать Администратор или нажать «…» для выбора учетной записи.

7)      Вводим пароль и его подтверждение и жмем «Тестировать».

Тестирование введенных данных

Нажимаем любую клавишу. Если появилось сообщение «Account is good to use» значит все хорошо и идем дальше.

8)      Жмем «Сгенерировать ключ запуска AdmiRun», без этого ключа запуск приложения пройдет неудачно.

Генерация ключа для запуска AdmiRun

9)      Переходим на вкладку «Link» и задаем имя ярлыку

 Создание ярлыка для запуска утилиты от имени другой учетной записи с использованием AdmiLink

10)   Задаем каталог, и не забываем про ту учетную запись из-под которой запущен AdmiLink

11)   Задать файл и индекс картинки для ярлыка. Обычно это поле заполняется автоматически. По умолчанию предполагается, что картинка берется из исполняемого файла программы с индексом 0.

12)   Нажимаем «Сгенерировать командную строку» и видим волшебную абракадабру

Генерация кода для командной строки

13)   Жмем «Создать ярлык сейчас»

Ярлык для запуска приложения от имени другого пользователя

После нажатия на «Создать ярлык сейчас» создается ярлык и сбрасываются все поля.

Запускаем ярлык

Запуск приложения от имени другого пользователя с использованием AdmiLink

Попробуем изменить запускаемую программу в свойствах ярлыка, например, на калькулятор

Изменение запускаемой программы в свойствах ярлыка

Попытаемся запустить ярлык

Система защиты от подмены запускаемых приложений в AdmiLink

Попрошу заметить, что привязка к MAC, IP и командной строке не производилась.

 

К заключению. Не забывайте, что в запущенной программе с правами администратора, можно открыть вкладку «Файл» если она конечно есть и делать с ОС все что угодно. Это уже проблемы безопасности скорее ОС, так что будьте осторожны.

Все, люди, мир Вам!

Комментарии (0)


Есть что сказать? Пишите нам ->

Новости IT рынка