пятница, 20 марта 2015 г.

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


Требуется: На рабочей станции пользователь без привилегий должен запускать программу, которая работает только с правами администратора.
 
Стандартное решение: Воспользоваться штатной программой run as, в самом простом виде имеющей синтаксис следующего вида RUNAS  /user:\ program (for example cmd). Пароль можно передать с помощью конвейера echo |, или с помощью ключа /savecred.  Но у этого решения есть существенный недостаток, пароль передается в открытом виде, что недопустимо. Конечно, можно написать скрипт с помощью VBS и зашифровать его. Но мы не будем заниматься этим, а воспользуемся сторонними решениями, так называемыми 3-rd party программами.

Сторонние решенияCPAU (http://www.joeware.net/freetools/tools/cpau/) и RunasSpc (http://www.robotronic.de/runasspcEn.html).
Эти программы позволяют шифровать строку запуска, и затем уже запускать зашифрованный файл.

Примеры:

CPAU:
cpau -u localhost\admin -p PaSsWOrD -ex «C:\Windows\notepad.exe» -enc -file ExNonAdmin.job -lwp (создаем зашифрованный файл запуска)
cpau -dec -file ExNonAdmin.job -lwp (запускаем созданный выше файл)

RunasSpc:
runasspc /cryptfile:»ExNonAdmin.spc» /program:»C:\Windows\notepad.exe» /domain:»localhost» /user:»admin» /password:»PaSsWOrD» (создаем зашифрованный файл запуска)
runasspc /cryptfile:»ExNonAdmin.spc» /quiet (запускаем созданный выше файл)

К сожалению, у обеих программ нашлись недостатки: CPAU имеет проблемы в безопасности, дело в том, что если подложить ей любой запускной файл, имеющий то же имя, что и наш исходный файл, например, вместо notepad.exe мы подсунем virus.exe переименованный в notepad.exe, то мы сможем запустить вирус с правами администратора. Конечно, чтобы такое сделать пользователь должен знать какой exe’шник мы запускаем. То есть, в принципе, ушлого пользователя мы тоже сможем запутать при желании, но придется поколдовать с обманками. RunasSpc таким недостатком не обладает, и она just it work, поскольку сертификат вероятно учитывает размер файла, или какие-то контрольные суммы. И все бы ничего, но программа Free for only Private Use, что лицензионно чистые предприятия ставит перед фактом покупки лицензии.

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