Comments 31
без сохранения пароля вводить пароль администратора под ограниченным пользовательским сеансом не рекомендуется, <…>, иначе пользователь может запросто перехватить пароль.Я совсем не Windows-админ, поэтому могу ошибаться, но разве UAC-пароль вводится не в специальном режиме «Secure Desktop», для доступа к которому кейлоггеру требуются права администратора?
Вот, например, тут описывается, как сделать такой кейлоггер:
0xpat.github.io/Malware_development_part_7
Из любого диалога Open/Save можно запустить cmd.exe
А из того же калькулятора, через окно About — браузер.
Запускать от админа прогу и надеяться, что её никогда не взломают - ну так себе защита.
Мсье, вы сейчас ненавязчиво опустили всю многомиллиардную индустрию разработчиков ПО со всеми их отделами качества и тестирования, не говоря уже о подобной ей индустрии поиска и эксплуатации уязвимостей.
Надо им всем сказать чтоб уволили всех нафиг и наняли одного молодого сис. админа с юношеским максимализмом)
Попробуйте повысить себе права через калькулятор и у вас ничего не выйдетУ меня не вышло запустить calculator Win10 с повышенными правами. При запуске через UAC флаг Elevated принудительно сбрасывается. А через RunAs с другим юзером пароль принимается, но ничего не происходит — процесс не создаётся. Видимо это из-за того, что UWP-приложение. Так что пример некорректный.
В линуксах проблему suid-reexec'ов довольно легко решить с помощью запрета определённых системных вызовов.
Например, у того же systemd есть SystemCallFilter, и если в него включить только нужное, то всё ненужное (например, @process,@privileged)
само отпадёт.
+sudo на определенную программу с жестко ограниченными параметрами, можно и без ввода пароля пользователем.
sudo не решит проблемы reexec'а. Если в sudo-запущенной программе есть exec или может быть выполнен код пользователя, то это проблема уровня CVE. А методов "подгрузить код" больше, чем кажется. Начиная от вываливания в дебаггеры, и заканчивая всякими неожиданными местами для плагинов, скриптов и т.д. Условный wc/cat это не касается (они вылизаны до невозможности), но у многих других - запросто. Например, казалось бы, невинный less. Но у него можно сохранять в файлы во время пагинации, и если где-то less оказался с sudo, то всё, прощай безопасность.
Если речь идёт о единовременном ручном вмешательстве, то техник с правами локального администратора может подключиться удалённо к рабочему столу и запустить нужную программу либо вручную (если у пользователя отсутствуют права администратора, а программа их требует, запрос ввода credentials появится автоматически) либо удалённо с помощью PsExec. Для таких случаев стоит заранее правильно настроить credentials caching.
Честно говоря, в 2021 году уже практически не осталось программ, которыми могут пользоваться не-администраторы и которые не могут быть использованы в ограниченной среде без прав администратора. Во многих случаях нужно просто почитать документацию, возможно, скачать другую версию/другой инсталлятор программы — часто на сайтах производителей есть отдельный раздел для IT.
Правда, аудитом безопасности не заморачивался.
По поводу UAC: «До появления UAC решал эту задачу...».
В середине нулевых годов возникла задача: обеспечить рядовому сотруднику возможность перезапускать вручную сервис IIS в любой момент времени.
Для перезапуска сервиса требовались администраторские права, которых у сотрудника не было.
Решение: я как сисадмин создал в планировщике задач task, который перезапускает сервис IIS по требованию (on demand). Затем создал shortcut к этому таску, и разместил его в отдельном каталоге на файловом сервере. Дал сотруднику права read & execute на доступ к этому каталогу и шорткату.
Результат: когда возникала необходимость перезапустить сервис IIS, сотрудник заходил в указанный каталог, и кликал на указанный шорткат. Работало как часы много месяцев, пока не отпала необходимость в перезапуске сервиса.
Итог: таким образом, с помощью Task Scheduler удалось обойти ограничение операционной системы Windows на запуск администраторских задач пользователем без администраторских прав.
Проблема использования RunAs на серверах