03.03.2014 - Запуск приложений от имени учетной записи с правами администратора
Доброго времени суток уважаемый посетитель. В сегодняшней статье я предлагаю тебе рассмотреть ни как обычно установку и конфигурирование серверов и клиентских станций с самого начала, а обычные будни системного администратора. А рассматривать мы будем запуск определенного приложения из-под имени администратора, рассмотрим какие существуют решения и чем они отличаются. Причиной, по которой администраторы сталкиваются с этой проблемой довольна проста, в нашей практикте ит-аутсорсинга, мы довольно часто сталкиваемся с ситуацией, когда приложение (особенно отечественных разработчиков) не ориентированно на UAC, а почему так, спросите у разработчиков приложения. Тестировать будем в виртуальной среде Hyper-V на виртуальной машине второго поколения с ОС Windows 8.1.
Разнообразие присутствует
Рассматривать мы будем три утилиты:
- RunAs
- ExecAS
- AdmiLink
RunAs
RunAs - запускает конкретные средства и программы с разрешениями, отличными от тех, которые предоставляет текущая учетная запись. Эта утилита не является сторонней, она входит в поставку ОС Windows. Справка по утилите runas /?
Тестировать будем на встроенной утилите msconfig.exe, которая входит в ОС Windows. Запуск этой утилиты осуществляется только с учетной записи имеющие права администратора.
ВНИМАНИЕ! Запуск утилиты будет осуществляется из-под учетной записи доменного администратора. В реалии не рекомендуется этого делать, лучше создать отдельную учетную запись для подобных моментов.
Итак, попробуем воспользоваться устроенной утилитой RunAs, для этого запустим командную строку и напишем следующее
Далее потребуется ввести пароль:
Попрошу заметить, что вводимый пароль не будет отображаться
После удачного ввода пароля и имени учетной записи, откроется окно msconfig.exe
Теперь создадим ярлык для запуска msconfig.exe из-под учетной записи администратора.
Нажмем «Далее» и запустим ярлык.
После удачного ввода пароля запустится уже известный msconfig.exe.
Вопрос напрашивается сам собой, позволит ли администратор, пользователю знать пароль от учетной записи имеющей права администратора, имя от которого легко посмотреть в свойствах ярлыка?
И еще, пароль при запуске ярлыка нужно будет вводить каждый раз, что не удобно для пользователя, если вы заходите облегчить жизнь ему, использовав параметр «/savecred», то вы создадите огромную дыру в системе безопасности.
Вот пример для создания огромной дырки:
Вы захотели облегчить жизнь пользователю, добавляем параметр «/savecred»
Запускаем ярлык и вводим пароль, при первом запуске утилита предлагает ввести пароль
Вводим пароль и говорим прощай! При повторном запуске утилита не будет требовать пароль, а точнее она теперь вообще не будет его требовать, вы подумаете «Ну и что!». А давайте попробуем в свойствах ярлыка изменить запускаемую утилиту, например, на cmd.exe.
Пытаемся запустить и ….
«Мать твою! Он только что почистил arp-кэш». Я думаю если вы используете «/savecred», то вы вряд ли знаете, что такое arp-кэш и что для его очистки нужны права администратора.
ExecAS
Утилита ExecAs предназначена для запуска любых программ с правами, отличными от прав текущего пользователя. Можно применять для запуска программы Locker с правами администратора из-под ограниченной учетной записи. Это позволяет запретить операторам доступ к файлам базы данных программы Locker и вообще к запуску любых нежелательных программ кроме Locker-a.
ExecAs очень простая утилита, с которой сможет работать даже школьник.
Положительной чертой является ее простота.
Отрицательной чертой является отсутствие работы с доменными учетными записями.
Итак, после создания локальной ученой записи с ограниченными правами и учетной записи с права администратора, запустим ExecAs.
При первом запуске, приложение сразу предлагает ввести имя учетной записи и пароль, а также указать путь до приложения которое нужно запустить. Будем запускать cmd.exe о имени локального администратора. Попрошу заметить, что вводимая учетная запись указывается без имени машины. Для добавления приложения нажимаем на значок папки, который находится в конце строки «Программа».
Нажимаем «Записать». Наше приложение будет под номером 1.
Закрываем ExecAs и снова запускаем.
Как мы видим, cmd.exe сразу запустилось при запуске ExecAs. Дело в том, что если у вас одно приложение в списке запускаемых приложений в ExecAs, то это приложение будет сразу запускаться, это довольно хорошо, но если у вас к примеру, больше одного приложения?
Открываем cmd, переходим в каталог с приложением ExecAs, и запускаем его с параметром ниже
Теперь мы можем добавить еще одно приложение, к примеру калькулятор
Теперь если мы закроем и откроем ExecAs, мы увидим окно выше, этого не должно произойти. Для этого есть параметр NN – номер запускаемой программы.
Создадим два ярлыка, один для запуска cmd, другой для калькулятора.
Запускаем оба ярлыка
Не забываем про номер программы, который можно изменять при добавлении запускаемой программы, и который можно посмотреть в списке запускаемых программ.
AdmiLink
AdmiLink - утилита, при помощи которой Администратор может создать ярлык, дающий возможность пользователям с ограниченными правами запускать конкретную (без возможности подмены!) программу с правами Администратора (или любого другого пользователя) без (интерактивного) ввода пароля.
Типичным применением программы AdmiLink является администрирование защищенных систем, в которых пользователь работает в основном под своей ограниченной учетной записью, и только отдельные, строго ограниченные Администратором функции запускает под Администратором, не зная его пароля и не имея возможности запускать другие, несанкционированные программы.
Другим типичным примером является использование AdmiLink для запуска потенциально опасных программ, например, Web браузера, с пониженными правами без ввода пароля. Так, чтобы избежать заражения машины вирусом, можно запускать Web браузер под учетной записью ограниченного пользователя, что резко снижает вероятность повреждения системы. Чтобы не вводить каждый раз пароль ограниченного пользователя, на Рабочем Столе можно сделать ярлык для запуска Web браузера под ограниченным пользователем.
Как работает AdmiLink
В состав пакета входит две программы: AdmiRun и AdmiLink.
AdmiRun - простая консольная задачка, которая умеет только одно - запускать другие программы от имени Администратора (или любого другого пользователя). При инсталляции AdmiRun копируется в каталог Windows, чтобы быть доступной в любом каталоге. AdmiRun может работать как в пакетном режиме (в командных файлах), так и для интерактивного запуска программ (через ярлык на Рабочем столе). Формат вызова можно получить, набрав AdmiRun /? Разумеется, для запуска программ от имени Администратора нужно знать пароль. С другой стороны, из соображений безопасности открыто передавать пароль нельзя, иначе вся система защиты лишается смысла. Выход состоит в передаче зашифрованной учетной записи (учетная запись = пользователь + домен + пароль). Учетную запись AdmiRun получает демонстративно открыто, через командную строку, однако понять из нее ничего нельзя - учетная запись передается как зашифрованнный ключ. Ключ привязан к конкретному исполняемому файлу, без этого файла AdmiRun просто не сможет расшифровать учетную запись. Поэтому если пользователь попробует запустить другую программу с таким же ключем, он потерпит неудачу. Более того, для того, чтобы сделать жизнь хакеров повеселее, ключи генерируются с использованием случайных чисел и никогда не повторяются.
Итак, после установки AdmiLink, советую при установке убрать галочку с создания всех ярлыков и запускать утилиту только с каталога где она установлена, запускам AdmiLink.
1) В поле «Задать имя исполняемого файла интересующей программы» укажем путь, нажав на значок дискеты. В нашем случае это будет cmd.exe
2) Поле «Задать командную строку для исполняемого файла» оставим пустым.
Этот шаг необязателен, если параметры отсутствуют. Кроме того, имейте в виду, что можно указать привязку шифрования учетной записи к командной строке, чтобы нельзя было получить права Администратора, подменив параметры командной строки в ярлыке.
Например, делая ярлык c:\windows\system32\control.exe timedate.cpl для коррекции системного времени, не забудьте привязать шифрование к командной строке, иначе, отредактировав ярлык, можно будет запустить, например, c:\windows\system32\control.exe nusrmgr.cpl и получить доступ к управлению пользователями, что совсем нехорошо.
3) Поле «Задать стартовый каталог запускаемой программы…» обычно заполняется автоматически
4) Задать режим отображения окна программы.
- SHOW - запускать программу, видимую на экране. Это обычный режим для интерактивных программ.
- HIDE - запускать программу, не видимую на экране. Это режим для служебных программ, работающих в фоновом режиме.
Переходим на вкладку «Accout»
5) В поле «Имя домена» указываем NetBios имя или полное имя домена, в нашем случае test.lan.
6) В поле «Имя пользователя» можем вписать Администратор или нажать «…» для выбора учетной записи.
7) Вводим пароль и его подтверждение и жмем «Тестировать».
Нажимаем любую клавишу. Если появилось сообщение «Account is good to use» значит все хорошо и идем дальше.
8) Жмем «Сгенерировать ключ запуска AdmiRun», без этого ключа запуск приложения пройдет неудачно.
9) Переходим на вкладку «Link» и задаем имя ярлыку
10) Задаем каталог, и не забываем про ту учетную запись из-под которой запущен AdmiLink
11) Задать файл и индекс картинки для ярлыка. Обычно это поле заполняется автоматически. По умолчанию предполагается, что картинка берется из исполняемого файла программы с индексом 0.
12) Нажимаем «Сгенерировать командную строку» и видим волшебную абракадабру
13) Жмем «Создать ярлык сейчас»
После нажатия на «Создать ярлык сейчас» создается ярлык и сбрасываются все поля.
Запускаем ярлык
Попробуем изменить запускаемую программу в свойствах ярлыка, например, на калькулятор
Попытаемся запустить ярлык
Попрошу заметить, что привязка к MAC, IP и командной строке не производилась.
К заключению. Не забывайте, что в запущенной программе с правами администратора, можно открыть вкладку «Файл» если она конечно есть и делать с ОС все что угодно. Это уже проблемы безопасности скорее ОС, так что будьте осторожны.
Все, люди, мир Вам!
Автор ag | Просмотров 116193
Комментарии (0)
Есть что сказать? Пишите нам ->