Команда RunAs | TEHADM FORUM

Admilink и его армия

Попыток преодолеть небезопасность стандартного runas предпринято множество, тысячи их. Самые известные — AdmiLink, CPAU, Encrypted RunAs и другие. Всех их объединяет конечный способ запуска, который мы разберём далее. В целом алгоритм работы этих программ такой: берём имя и пароль пользователя, от имени которого будет выполняться запуск целевой программы (как правило с правами администратора), добавляем к нему путь и контрольную сумму исполняемого файла (чтобы его нельзя было подменить на произвольный), и всю эту информацию дико шифруем, чтобы расшифровать могла только авторская программа, и желательно только на том же компьютере.

Проблема в том, что вся эта защита не имеет никакого смысла, поскольку имя и пароль администратора можно перехватить тогда, когда он уже будет расшифрован. Дополнительная проблема в том, что авторы этих программ об этом не подозревают и убеждают системных администраторов в безопасности своих разработок:

Runas из коробки

В системе есть родная утилита runas, позволяющая выполнять задачу запуска от другого имени, однако пользоваться ей нужно осторожно и в целях безопасности её нельзя применять для запуска программ с повышенными привилегиями, но можно наоборот — администратору запускать программы с правами обычного пользователя, хотя технически возможны оба варианта. Почему так?

Параметр /savecred позволяет сохранить пароль для пользователя, от имени которого запускается программа, в профиле пользователя, который запускает программу. Однако этот же сохранённый пароль RunAs использует и для запуска любых других программ, запуск которых может инициировать пользователь, у которого сохранён пароль.

Всё пропало?

Какие меры нужно принять, если на вашем сервере использовался такой способ запуска программ для пользователей? В первую очередь нужно поменять пароли администраторов и провести аудит системы, не было ли взлома с использованием этой уязвимости. Если у вас был запрещён запуск всех посторонних программ, это слегка снижает градус проблемы, но только слегка — нужно убедиться, что пользователям не были доступны для записи те папки, из которых им был разрешён запуск программ, а добраться до них можно разными способами: кроме проводника, где доступ к ФС можно ограничить твиками, как минимум в систему встроены командная строка и PowerShell, запретить их запуск ограниченным пользователям тоже нужно было заранее.

Имея же учётные данные администратора на руках, пользователь уже не ограничен ничем и все данные на таком сервере следует считать скомпрометированными. Помните, что безопасность сервера это комплексная мера, и она достигается суммой правильно настроенных параметров, многие из которых здесь не упомянуты.

Есть ли альтернативы?

Они как бы и есть, и их как бы нет. На данный момент мне известно об одной — RunAsRob, которая использует другой метод: вместо запуска программы от имени другого пользователя она по заранее сформированному списку разрешённых программ временно выдаёт права администратора запускаемой программе посредством службы, работающей от имени системы.

Благодаря такому подходу исключается утечка учётных данных, а разграничивать доступ к целевым программам нужно NTFS-правами. На данный момент я не могу её рекомендовать, так как она платная и глючная, однако за неимением других в крайнем случае можно использовать эту. Для неинтерактивных программ однозначно лучше использовать планировщик с вызовом по событию в журнале.

Команда runas

Команда

RunAS

используется для запуска из командной строки приложений под учетной записью пользователя, имя которого передается в качестве параметра командной строки. В Windows 7, и более поздних, данная команда, при стандартных настройках безопасности, не позволяет получить администраторские привилегии, как это происходит в режиме

:/>  Как ускорить медленный внешний жесткий диск в «Windows 10»?

Запустить от имени Администратора

.

Синтаксис

Расшифровка значений
/profile

Производит загрузку профиля конкретного юзера. Если ничего не задавать, то данный параметр станет применяться всегда.

/no profile

В данном случае, профиль юзера не станет загружаться. Преимуществом использования параметра можно назвать ускорение загрузки. Главным недостатком является вероятность возникновения сбоев.

/env

Локальная среда юзера не станет применяться. Вместо неё предусматривается действующая сетевая среда.

/netonly

Применение прописанных данных о юзере исключительно при осуществлении доступа с другого устройства.

/smartcard

Устанавливается поддержка учетных сведений с использованием специальной смарт-карты.

/showtrustlevels

Предусматривается выдача перечня параметров.

/trustlevel

Задается степень проверки подлинности, с применением которой должна осуществляться конкретная программа.

/

user

: уч_зап

Здесь можно указать конкретного юзера, учетная запись которого станет применяться для выполнения приложений. Следует использовать специальные форматы представления информации.

program

В данном параметре надо прописать некоторую команду или приложение для активации через заданную ранее учетную запись.

Пример
Допустим нам надо запустить под пользователем программу, которая например в моем случае выдавала ошибку при запуске через пользователя, а с учетки администратора запускалась без проблем.

  1. Открываем командную строку (Win R), и вводим:
  2. Жмем ОК. Появится окно командной строки с предложением: Введите пароль для admin
  3. Вводим его и жмем Enter.

Но таким способом замучаешься каждый раз запускать приложение

. Проще сделать ярлык запуска программы.

  1. Создаем новый ярлык. ПКМ на рабочем столе СоздатьЯрлык
  2. В окно, куда требуется ввести расположение объекта, вводим нашу команду:
    Обращаем внимание на новый ключ /savecred, он сохранит вводимый пароль другого пользователя в диспетчере паролей Windows и при следующем запуске команды runas под этим же пользователем с ключом /savecred система автоматически воспользуешься сохраненным паролем, а не будет запрашивать его повторно.

§

Команда

RunAS

используется для запуска из командной строки приложений под учетной записью пользователя, имя которого передается в качестве параметра командной строки. В Windows 7, и более поздних, данная команда, при стандартных настройках безопасности, не позволяет получить администраторские привилегии, как это происходит в режиме

Запустить от имени Администратора

.

Синтаксис

Расшифровка значений
/profile

Производит загрузку профиля конкретного юзера. Если ничего не задавать, то данный параметр станет применяться всегда.

/no profile

В данном случае, профиль юзера не станет загружаться. Преимуществом использования параметра можно назвать ускорение загрузки. Главным недостатком является вероятность возникновения сбоев.

/env

Локальная среда юзера не станет применяться. Вместо неё предусматривается действующая сетевая среда.

/netonly

Применение прописанных данных о юзере исключительно при осуществлении доступа с другого устройства.

/smartcard

Устанавливается поддержка учетных сведений с использованием специальной смарт-карты.

/showtrustlevels

Предусматривается выдача перечня параметров.

/trustlevel

Задается степень проверки подлинности, с применением которой должна осуществляться конкретная программа.

/

user

: уч_зап

Здесь можно указать конкретного юзера, учетная запись которого станет применяться для выполнения приложений. Следует использовать специальные форматы представления информации.

program

В данном параметре надо прописать некоторую команду или приложение для активации через заданную ранее учетную запись.

Пример
Допустим нам надо запустить под пользователем программу, которая например в моем случае выдавала ошибку при запуске через пользователя, а с учетки администратора запускалась без проблем.

  1. Открываем командную строку (Win R), и вводим:
  2. Жмем ОК. Появится окно командной строки с предложением: Введите пароль для admin
  3. Вводим его и жмем Enter.
:/>  Редактор реестра на Windows 10: что это такое и как его открыть

Но таким способом замучаешься каждый раз запускать приложение

. Проще сделать ярлык запуска программы.

  1. Создаем новый ярлык. ПКМ на рабочем столе СоздатьЯрлык
  2. В окно, куда требуется ввести расположение объекта, вводим нашу команду:
    Обращаем внимание на новый ключ /savecred, он сохранит вводимый пароль другого пользователя в диспетчере паролей Windows и при следующем запуске команды runas под этим же пользователем с ключом /savecred система автоматически воспользуешься сохраненным паролем, а не будет запрашивать его повторно.

Утилита runas для безопасного удаленного администрирования windows | настройка серверов windows и linux

Обновлено 29.03.2022

Все привет сегодня расскажу про утилиту RunAs для безопасного удаленного администрирования Windows.

Одна из самых непротиворечивых концепций безопасности гласит, что без крайней необходимости работать под учетной записью администратора не следует. Особенно под учетной записью администратора домена. Однако, решение административных задач, требующих повышенных привилегий, эта концепция не отменяет. Удаленный доступ к серверу через Remote Desktop – это лишние телодвижения, да и, опять же, небезопасно. Наиболее подходящий путь – локальный запуск нужных оснасток управления с использованием команды RunAs, которая позволяет администратору выполнять любые задачи в системе, зарегистрировавшись в ней с использованием учетной записи рядового пользователя.

Для управления удаленными серверами Windows я использую пакеты Administrative Toolsдля своей клиентской ОС. Они доступны для загрузки с сайта Microsoft. 

Установив соответствующий вашей системе пакет администрирования, вы получите доступ прямо со своего компьютера к большинству оснасток управления серверами, таких как Active Directory Domains and Trusts, Active Directory Sites and Services, Active Directory Users and Computers, Distributed File System, DNS, Group Policy Editor, DHCPи пр.

Для запуска любой из оснасток с привилегиями доменного администратора, применим командуRunAs. Например, запустим оснастку Active Directory Users and Computers от имени пользователя admin, принадлежащего к домену domain.ru:

Синтаксис RunAs достаточно прост, чаще всего с ней используются следующие ключи:

1) /user – имя пользователя;

2) /netonly – использование полномочий только для доступа к удаленным ресурсам;

3) /env – использование текущего окружения, без создания окружения, характерного для указанного ключем /user пользователя;

4) /profile – загрузка профиля пользователя;

5) /noprofile – загрузка профиля пользователя не будет осуществляться.

По аналогии можно запускать любую из оснасток, входящих в состав Administration Tools:

Active Directory Domains and Trusts — domain.msc

Active Directory Sites and Services — dssite.msc

Active Directory Users and Computers — dsa.msc

Computer Management — compmgmt.msc

Distributed File System — dfsgui.msc

DNS — dnsmgmt.msc

DHCP – dhcpmgmt.msc

Group Policy Editor — gpedit.msc

Local Security Settings — secpol.msc

Routing and Remote Access — rrasmgmt.msc

Посмотреть полный список оснасток можно тут.

 Материал сайта msconfig.ru

Утилита runas командная строка

Утилита RUNAS командной строки не содержит сложного синтаксиса, и довольно проста в своем применении. Она позволяет запустить программу через командную строку от имени другого пользователя без завершения текущего сеанса работы. Как правило, ее используют администраторы для выполнения мелких системных команд. Например:

:/>  Не запускается explorer exe Windows 7 - почему не загружается, как перезапустить процесс, инструкция со скриншотами

Утилита start – командная строка

Данная утилита предоставляет ряд дополнительных параметров:

И так, давайте познакомимся с основным синтаксисом данной утилиты:

START [“заголовок”] [/Dпуть] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [команда/программа] [параметры]

При условии, что команда/программа определяет внутреннюю команду командной строки (DIR, COPY…) или пакетный файл, то для их запуска в новом окне (при условии, что не указан ключ /В) автоматически производится запуск программы CMD.

EXE из командной строки с ключом /K. При таком условии новое окно не будет закрыто после выполнения команды. При условии, что выполняется не внутренняя утилита CMD и не пакетный файл, то эта программа запускается в графическом или текстовом окне.

При условии, что первым элементом командной оболочки будет слово CMD без расширения и пути к файлу, то обработчик команд заменит его на значение переменной COMSPEC (полный путь к командному интерпретатору). Если же первым элементом является имя выполняемой программы без расширения, то будет использовано значение переменной среды РАТНЕХТ, это даст возможность определить расширения имен исполняемых Файлов и порядок поиска нужного файла. Как правило, переменная РАТНЕХТ содержит следующие значения:

РАТНЕХТ=.СОМ;.ЕХЕ;.ВАТ;.CMD

При условии, что не будет найдено ни одного файла с заданными по дефолту расширениями, то интерпретатор команд проверит, не соответствует ли данное имя имени каталога. Если это так, то утилита START произведет запуск проводника и откроет в нем заданный каталог.

“заголовок” – определяет заголовок создаваемого окна. Например:

START “Копирование данных” copier.bat

/путь – данный параметр указывает рабочий каталог при открытии нового командного окна.

/I – данный ключ говорит, что новой операционной средой станет исходная среда, переданная командным интерпретатором cmd.exe, а не текущая среда командного окна.

/MIN – данный параметр говорит, что запуск команды/программы через командную строку происходит в свернутом виде, если же используется /МАХ – то в развернутом (максимизированном) окне.

/SEPARATE – выполнение 16 разрядного приложения в отдельной области памяти

/SHARED – выполнение 16 разрядного приложения в общей области памяти

Ключи /LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL задают приоритет запускаемой задачи.

/WAIT – запустить программу из командной строки с ожиданием ее окончания

/В – выполнение происходит без создания нового окна (конечно, если это возможно). Таким образом, если с этим ключом запускается внутренняя команда cmd.exe или пакетный файл, то новая копия командного интерпретатора будет запущена в текущем командном окне.

Примеры применения утилиты START:

Нужно запустить из окна командной строки в качестве основного процесса Microsoft Word с автоматическим открытием двух заданных файлов (имя одного из файлов содержит пробел, поэтому оно взято в кавычки):

START /MAX winword.exe “Мой документ.doc” docum.doc

Открытие окна просмотра для каталога мои документы на текущем диске:

START “Мои документы”

Открытие окна просмотра для текущего каталога:

START .

Открытие файла Мой любимый документ.doc из папки Мои документы в стандартном окне:

START “С:Мои документыМой любимый документ.doc”

Оставьте комментарий

Adblock
detector