![]() |
Запуск переименованных exe
Подскажите, есть ли способ ограничить в Windows 2003 Server следующее поведение:
Если переименовать исполняемый .exe-файл, поменяв у него расширение на .cmd, приложение всё равно запускается. Из-за этого в сети огромная брешь. |
oji, пока что непонятно из-за чего «огромная брешь». По умолчанию и то, и другое — исполняемые файлы, наряду с прочими (pathext). Как у Вас организованы текущие ограничения?
|
В папке разрешён запуск нескольких приложений, и запрещено их изменение. Но! В этой же папке программа генерирует и запускает .cmd и .vbs скрипты, присваивая имена, которые сложно подогнать под шаблоны, поэтому разрешён также запуск *.cmd и *.vbs из указанной папки, а также запись в неё новых файлов. Повлиять на разработчика у меня лично нет возможности, поэтому приходится мириться с таким поведением ПО
Проблема в том, что если взять любой .exe-файл и поменять у него расширение на .cmd и положить в папку с программой, то он запустится. При этом, например, в Windows 7 такого не происходит — переименованный .exe не выполняется. |
И я не соглашусь, что и то, и другое — исполняемые файлы.
.exe да, исполняемый, но .cmd — это скриптовая последовательность для интерпретатора cmd.exe. В Windows 7 и, вероятно, в более новых ОС от Microsoft интерпретатор cmd.exe закрывается, наткнувшись на некорректный скрипт (в данном случае это переименованный исполняемый файл), в то время как в Windows 2003 и в XP (проверил только что) интерпретатор запускает исполняемый файл. Вопрос в том, можно ли как-то повлиять на такое поведение и запретить скриптовому интерпретатору запускать исполняемые файлы. |
Цитата:
|
Ограничение организовано через групповые политики, стандартными средствами MS:
Несколько правил для SRP (Software Restriction Policies):
И правила для File & Folder Permissions:
Однако к решению это не имеет отношения, так как проблема на уровне cmd.exe, который вместо остановки при запуске некорректного скрипта (переименованного в .cmd из .exe), всё равно запускает его — неожиданное лично для меня поведение системы, которого нет в более новых версиях ОС. И вопрос в том, возможно ли изменить поведение интерпретатора cmd.exe на то, которое наблюдается в Windows 7 — не запускать файлы, являющиеся не последовательностью команд, а переименованными .exe? Потому как это неочевидное поведение создало брешь в системе безопасности, позволив непривилегированному пользователю запускать любые программы из папки с этим приложением, просто изменив расширение. Кардинально запретить пользователю cmd.exe также нет возможности, иначе перестаёт работать указанная выше программа. |
Попробуйте переорганизовать разрешение на *.cmd во что-то более конкретное. Скажем, на хэш нужных cmd.
|
К сожалению, cmd генерируются с случайными именами и различным содержимым.
|
Тогда никак.
|
Время: 15:17. |
Время: 15:17.
© OSzone.net 2001-