Показать полную графическую версию : Запуск переименованных 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 (проверил только что) интерпретатор запускает исполняемый файл. Вопрос в том, можно ли как-то повлиять на такое поведение и запретить скриптовому интерпретатору запускать исполняемые файлы.
В папке разрешён запуск нескольких приложений, и запрещено их изменение. »
Повторяю — каким образом?
И я не соглашусь, что и то, и другое — исполняемые файлы. »
Если Вы не поняли — в данном контексте трактовка «исполняемые» такая:
set pathext
Не более.
Ограничение организовано через групповые политики, стандартными средствами MS:
Несколько правил для SRP (Software Restriction Policies):
Разрешение на запуск двух .exe приложений
Разрешение запуска *.cmd
Разрешение запуска *.vbs
Запрет на запуск всего остального
И правила для File & Folder Permissions:
Разрешение на запись в папку
Запрет на изменение двух исполняемых .exe-файлов
Однако к решению это не имеет отношения, так как проблема на уровне cmd.exe, который вместо остановки при запуске некорректного скрипта (переименованного в .cmd из .exe), всё равно запускает его — неожиданное лично для меня поведение системы, которого нет в более новых версиях ОС. И вопрос в том, возможно ли изменить поведение интерпретатора cmd.exe на то, которое наблюдается в Windows 7 — не запускать файлы, являющиеся не последовательностью команд, а переименованными .exe? Потому как это неочевидное поведение создало брешь в системе безопасности, позволив непривилегированному пользователю запускать любые программы из папки с этим приложением, просто изменив расширение.
Кардинально запретить пользователю cmd.exe также нет возможности, иначе перестаёт работать указанная выше программа.
WindowsNT
17-01-2013, 08:32
Попробуйте переорганизовать разрешение на *.cmd во что-то более конкретное. Скажем, на хэш нужных cmd.
К сожалению, cmd генерируются с случайными именами и различным содержимым.
WindowsNT
17-01-2013, 12:26
Тогда никак.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.