В этой статье я подробно расскажу о проблемах, с которыми столкнётся каждый системный администратор, использующий в своей работе возможность запуска программ от имени другого пользователя, в большинстве случаев от имени администратора. Если вы — тот самый сисадмин, прочитайте её внимательно, скорее всего вам требуется срочная смена своего пароля.
Зачем это вообще нужно? Бывают ситуации, когда пользователю с ограниченными правами требуется выполнить программу, которой для выполнения специфической работы требуются повышенные права. Например, программисту нужно предоставить возможность завершать определённые процессы бухгалтерской программы, некоторым пользователям из бухгалтерии требуется возможность переключать ключи безопасности в интерактивном режиме и так далее. Часть этих задач можно выполнять неинтерактивно, при этом несколько страдает удобство, поскольку пользователь не видит интерфейс программы и может разве что получить системное сообщение о завершении работы программы, об этом способе подробно рассказал мой коллега Вадим Стеркин в своём блоге: Как выполнять задачи с полными правами обычным пользователем без ввода пароля администратора. Способ отличный для своих задач, в моей же статье речь пойдёт о рисках и безопасности выполнения интерактивных программ от имени других пользователей, где полной автоматизации достичь нельзя и есть необходимость взаимодействия с интерфейсом.
Как исправить ошибку «Другой пользователь»
Самое важное, что должен уяснить администратор — из запущенной программы с повышенными правами не должно быть возможности запустить другую произвольную программу, поскольку права автоматически наследуются. Прежде чем вообще планировать создавать ярлык для запуска, следует самостоятельно убедиться, что в программе нет окон открытия других файлов или запуска справки с собственной программой обработки, где дополнительно можно вызвать диалог открытия других файлов справки, и тому подобные в данном случае уязвимости, которые позволят пользователю запустить произвольную программу с правами администратора. Ещё пример — программа при определённых или редких обстоятельствах открывает логи в блокноте, а уже там есть диалог открытия других файлов, вот и готовая уязвимость. То есть целевая программа должна быть изучена администратором вдоль и поперёк (а ещё лучше — написана самостоятельно), чтобы пользоваться ей было действительно безопасно.
RunAs из коробки
В системе есть родная утилита runas, позволяющая выполнять задачу запуска от другого имени, однако пользоваться ей нужно осторожно и в целях безопасности её нельзя применять для запуска программ с повышенными привилегиями, но можно наоборот — администратору запускать программы с правами обычного пользователя, хотя технически возможны оба варианта. Почему так? Параметр /savecred позволяет сохранить пароль для пользователя, от имени которого запускается программа, в профиле пользователя, который запускает программу. Однако этот же сохранённый пароль RunAs использует и для запуска любых других программ, запуск которых может инициировать пользователь, у которого сохранён пароль.
Как исправить — Неправильное имя пользователя или пароль в Windows 10
Рассмотрим это на примере: у нас есть Admin с правами администратора, User1 с необходимостью запуска программы от имени администратора, и все остальные пользователи, которые эту программу запускать не должны, назовём их условно User2, а тестовая программа — калькулятор (calc). Когда администратор хочет запустить программу от имени пользователя для проверки или из планировщика, он может сохранить пароль User1 в своём профиле, выполнив команду «runas /savecred /user:User1 calc», ввести пароль User1 и в дальнейшем для этой команды пароль запрашиваться не будет, но также он не будет запрашиваться и для других программ, помимо калькулятора. При этом User2, который выполнит у себя эту же команду, столкнётся с необходимостью ввода пароля для User1, поскольку в его профиле этот пароль заранее не сохранён. Такой сценарий допустим и безопасен, ведь администратор и так имеет полные права. Однако если мы выполним команду «runas /savecred /user:Admin calc» от имени User1 и введём пароль администратора, User1 сможет запускать любые программы от имени администратора, что полностью разрушает модель безопасности.
Вывод — использовать родной runas в составе системы для повышения прав на постоянной основе (с сохранением пароля) категорически нельзя, эта уязвимость должна быть очевидна каждому сисадмину. Да и без сохранения пароля вводить пароль администратора под ограниченным пользовательским сеансом не рекомендуется, если там заранее не были предприняты меры предосторожности, которые не позволяют запускать произвольные программы (SRP, AppLocker), иначе пользователь может запросто перехватить пароль. А мы переходим к неочевидным уязвимостям.
AdmiLink и его армия
Попыток преодолеть небезопасность стандартного runas предпринято множество, тысячи их. Самые известные — AdmiLink, CPAU, Encrypted RunAs и другие. Всех их объединяет конечный способ запуска, который мы разберём далее. В целом алгоритм работы этих программ такой: берём имя и пароль пользователя, от имени которого будет выполняться запуск целевой программы (как правило с правами администратора), добавляем к нему путь и контрольную сумму исполняемого файла (чтобы его нельзя было подменить на произвольный), и всю эту информацию дико шифруем, чтобы расшифровать могла только авторская программа, и желательно только на том же компьютере. Проблема в том, что вся эта защита не имеет никакого смысла, поскольку имя и пароль администратора можно перехватить тогда, когда он уже будет расшифрован. Дополнительная проблема в том, что авторы этих программ об этом не подозревают и убеждают системных администраторов в безопасности своих разработок:
Так вот, AdmiLink — это очень неплохой «кирпич» в системе защиты, задачей которого является БЕЗОПАСНЫЙ ЗАПУСК программ. Безопасный запуск означает, что:
Пользователь сможет запускать нужную программу с нужными правами.
Пользователь не сможет узнать пароль Администратора через ярлык запуска.
Пользователь не сможет запустить не разрешенную Администратором программу, даже подменив исполняемый файл или командную строку в ярлыке.
admilink.ru/admilink.htm#NotProtected
Как работает RunAs и аналоги
Этот момент хорошо разобрал Mick Grove в своей статье Capturing credentials from ‘Encrypted RunAs’ software ещё в 2013 году. Он заметил, что любой подобный софт не изобретает велосипед, а использует для запуска программ от имени другого пользователя стандартную функцию CreateProcessWithLogonW, которой в качестве параметров нужно передавать логин и пароль в открытом виде. А это в свою очередь означает, что запросы к функциям можно перехватить и просто прочитать их параметры, получив на руки логин и пароль администратора. Для мониторинга здесь использовалась бесплатная программа API Monitor, и что самое важное, для её запуска не нужны права администратора, она отлично работает в пользовательском пространстве, поскольку обращение к функции CreateProcessWithLogonW происходит именно в контексте пользователя, а уже сама функция осуществляет запуск процесса с заданными учётными данными, что и следует из её названия.
Получение учётных данных администратора происходит по следующей цепочке:
- Пользователь с ограниченными правами запускает ярлык, в котором хорошо зашифрованы данные для запуска программы.
- RunAs или его аналоги проверяют корректность шифра и целостность программы, затем извлекают данные и в открытом виде передают их функции CreateProcessWithLogonW.
- В это же время API-мониторинг перехватывает данные, переданные функции в качестве параметров, чем делает бессмысленным шифрование пароля и полностью компрометирует учётные данные администратора.
Всё пропало?
Какие меры нужно принять, если на вашем сервере использовался такой способ запуска программ для пользователей? В первую очередь нужно поменять пароли администраторов и провести аудит системы, не было ли взлома с использованием этой уязвимости. Если у вас был запрещён запуск всех посторонних программ, это слегка снижает градус проблемы, но только слегка — нужно убедиться, что пользователям не были доступны для записи те папки, из которых им был разрешён запуск программ, а добраться до них можно разными способами: кроме проводника, где доступ к ФС можно ограничить твиками, как минимум в систему встроены командная строка и PowerShell, запретить их запуск ограниченным пользователям тоже нужно было заранее. Имея же учётные данные администратора на руках, пользователь уже не ограничен ничем и все данные на таком сервере следует считать скомпрометированными. Помните, что безопасность сервера это комплексная мера, и она достигается суммой правильно настроенных параметров, многие из которых здесь не упомянуты.
Есть ли альтернативы?
Они как бы и есть, и их как бы нет. На данный момент мне известно об одной — RunAsRob, которая использует другой метод: вместо запуска программы от имени другого пользователя она по заранее сформированному списку разрешённых программ временно выдаёт права администратора запускаемой программе посредством службы, работающей от имени системы. Благодаря такому подходу исключается утечка учётных данных, а разграничивать доступ к целевым программам нужно NTFS-правами. На данный момент я не могу её рекомендовать, так как она платная и глючная, однако за неимением других в крайнем случае можно использовать эту. Для неинтерактивных программ однозначно лучше использовать планировщик с вызовом по событию в журнале.
В вышеупомянутой статье дополнительно указывается Just Enough Administration (JEA), однако моё исследование этого инструмента показало, что им не получится пользоваться полноценно для интерактивного запуска приложений с окнами — так как процессы запускаются от имени другого виртуального администратора, то окна программ не будут видны для текущего пользователя. JEA может помочь в организации запуска автоматических скриптов и просмотра вывода результатов консольных программ, это определённо информативнее планировщика, но для работы с оконными приложениями не годится.
Можно ли запретить в системе мониторинг API для ограниченных пользователей и этим решить проблему перехвата системных функций — на данный момент мне не известно. Если вам есть что добавить к этой статье, оставьте свой комментарий.
P. S. RestAdmin — концепция безопасного Run As Admin (решение было разработано после этой статьи).
Источник: habr.com
Как запустить программу в Windows 10 от другого пользователя
Порой пользователи Windows заинтересованы в том, как запустить любую программу, вне зависимости от администраторских разрешений. Для этого существуют различные способы. От них во многом зависит, насколько успешно удастся выполнять поставленные перед собой задачи.
Причины запуска программы от другого пользователя

При загрузке ОС пользователи выбирают администратора. От его имени запускаются приложения. Важно понимать, что в каждом случае учитывают параметры запуска. Это позволяет в дальнейшем полноценно пользоваться программами. Необязательно перезагружать ПК или ноутбук, устанавливать повторно приложение.
Способы запуска
В наши дни существуют различные способы, отличающиеся высоким уровнем эффективности. Планируя запустить программу в Windows 10, важно учитывать доступные варианты и их особенности.
Графический интерфейс Windows

Способ – простой. Основные этапы:
- Нажимают клавишу Shift и удерживают. Теперь нажимают на ярлык кнопкой мышки (именно правой).
- В контекстном меню выбирают соответствующий пункт.
- Вводят имя и пароль интересующего администратора.
Больше никаких действий не требуются. Если программа содержит данные учетной записи, сведения загружаются. Изменения впоследствии сохраняются. По такой схеме пользователи успешно пользуются приложением, вне зависимости от администраторского имени.
Иногда потребуется найти программу, если ярлыка нет на рабочем столе. Это также возможно. Процесс – удобный, быстрый. Приложение можно найти. В выполнении поставленной задачи поможет панель задачи.
Командная строка

Не всегда пользователям удается пройти процесс по простой схеме. Иногда возникает потребность запустить программу в командной строке Windows. Вариант – чуть сложнее. Подойдет команда RUNAS.
Несмотря на это, есть определенная и понятная схема действий:
- Открывают специальную строку для введения команды.
- Потребуется ввести команду с указанием имени пользователя. Она выполняется.
- Иногда требуется ввести пароль. Иначе вход запрещается. Главная причина – исключение рисков.
Программу открывают от имени указанного пользователя. С помощью командной строки удается полноценно пользоваться приложением.
Сторонние утилиты

Пользователям будут удобными специальные утилиты, являющиеся сторонними. Предлагаются разные варианты. Например, утилита Run As позволяет запустить любую программу. Для проведения процедуры добавляется команда с нужными ключами к ярлыку программы или в окне через «Win+R». Команду можно добавить к ярлыку с сохранением пароля учетной записи после первого запуска.
Это упростит дальнейшие действия, если требуется неоднократно использовать программу.
На рабочем столе создают ярлык нужного приложения. Находят ярлык ПО. Затем появится путь к программе, где прописывают команду для использования специальной утилиты. Это требуется для создания ярлыка. Подойдет для последующего открытия любой программы с участием нескольких администраторов ПК или ноутбука.
Зная, как запустить программу Windows, каждый пользователь выбирает подходящий вариант для себя с учетом особенностей организации рабочего процесса и удобства.
Источник: os-helper.ru
Ремонт Кто-то еще использует эту ошибку ПК (исправлено)
Когда вы просите компьютер остановить или перезагрузить компьютер, Windows сначала проверяет, есть ли у других учетных записей пользователей Windows активные сеансы. Это происходит, если вы заблокировали сеанс Windows и вошли в систему с другой учетной записью пользователя перед выходом из системы.

Если Windows определяет, что другой пользователь не вышел из системы правильно, отображается сообщение «Кто-то еще использует этот компьютер». Этот другой пользователь может потерять несохраненные данные в открытых приложениях, если вы принудительно перезапустите его. Обычно лучше остановиться на этом и позволить другому Логин пользователя, сохраните его работу и выйдите из системы до остановки.
В Windows вы можете нажать «Все равно завершить работу», если уверены, что у другого пользователя нет открытого задания для сохранения. Это заставит другую учетную запись пользователя выйти из системы и закрыть все открытые приложения. Несохраненные данные будут потеряны.
Если вы являетесь единственным подключенным пользователем, это сообщение не появляется, и Windows переходит непосредственно к следующему шагу.
Обновление за май 2023 года:
Теперь вы можете предотвратить проблемы с ПК с помощью этого инструмента, например, защитить вас от потери файлов и вредоносных программ. Кроме того, это отличный способ оптимизировать ваш компьютер для достижения максимальной производительности. Программа с легкостью исправляет типичные ошибки, которые могут возникнуть в системах Windows — нет необходимости часами искать и устранять неполадки, если у вас под рукой есть идеальное решение:
- Шаг 1: Скачать PC Repair «Параметры входа».
- Прокрутите экран «Параметры подключения» и в разделе «Конфиденциальность» снимите флажок «Использовать информацию о подключении», чтобы автоматически завершить установку устройства после обновления или перезагрузки. Закройте приложение «Настройки».
- Выполните шаги с 1 по 3 для каждой из учетных записей пользователей в системе, затем перезагрузите компьютер и убедитесь, что проблема решена.
- Нажмите Ctrl + Shift + Enter, чтобы открыть диспетчер задач.
- В интерфейсе диспетчера задач выберите вкладку «Пользователи» в горизонтальном меню вверху.
- Затем перейдите в список «Пользователи», щелкните правой кнопкой мыши пользователя, который больше не вошел в систему, и выберите «Отключить» в появившемся контекстном меню.
- Попробуйте повторить действие, которое ранее вызывало ошибку «Кто-то еще использует этот компьютер», и посмотрите, решена ли проблема.
- Бесплатные инструменты автоматического выключения, перезагрузите компьютер Windows в установленное время
- (Исправлено) Ошибка установщика Windows Метод восстановления 27555
- Исправлено: ошибка синего экрана WDF_VIOLATION
- Руководство по ремонту: ошибка BSN 0x0000001a (исправлена)
Выход из предыдущего пользователя

Оказывается, эта проблема также может быть вызвана неполным отключением предыдущего пользователя. Несколько пользователей Windows, которые также столкнулись с этой проблемой, сообщили, что они смогли решить проблему с помощью диспетчера задач, чтобы отключить пользователя, который предотвращал выключение или перезапуск.
Вот краткое руководство по отключению предыдущего пользователя от диспетчера задач:
Совет экспертов: Этот инструмент восстановления сканирует репозитории и заменяет поврежденные или отсутствующие файлы, если ни один из этих методов не сработал. Это хорошо работает в большинстве случаев, когда проблема связана с повреждением системы. Этот инструмент также оптимизирует вашу систему, чтобы максимизировать производительность. Его можно скачать по Щелчок Здесь

CCNA, веб-разработчик, ПК для устранения неполадок
Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.
Сообщение Просмотров: 672
Источник: windowsbulletin.com