запуск приложения без uac

Как запускать программу без Контроля учётных записей?

В одной из предыдущих статей блога мы разбирали тему запуска определённых программ без «назойливого» окна Контроля учётных записей. Там мы разбирали вариант обхода Контроля для конкретной программы с помощью Планировщика заданий. Таким методом пользуются сами программы ещё на этапе собственной установки в Windows (например, программа очистки CCleaner). Что до меня, избавляться от этой «назойливости» отключением UAC полностью как функции я КРАЙНЕ не рекомендую. Несмотря на то, что система открыто позволяет это сделать, а настройки отключения Контроля находятся в, что называется, шаговой доступности, я не всегда порой понимаю, зачем Microsoft вообще позволяет это пользователям делать. Но, так или иначе, вопрос о том, как избежать появления окна для отдельных программ насущен. Так что вернёмся к этой теме и рассмотрим вопрос как запускать программу без окна Контроля учётных записей. В конце статьи маленькая видеоиллюстрация на тему, как всё это дело выглядит вживую.

Про что в статье?

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

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

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

Такой подход к запуску любого исполнительного файла позволяет использовать один из самых интересных вариантов исключения окна Контроля учётных записей с помощью простого батника. То бишь batch-скрипта. Т.е. скрипт вы запустили, окно UAC не появилось. Но повторный запуск программы вновь заставит окно Контроля появиться как ни в чём не бывало, предотвращая несанкционированный запуск. Таким образом, окно UAC не появляется ИМЕННО тогда, когда это нужно пользователю.

Откуда растут ноги или кусок теории про App-V

Microsoft App-V, она же функция виртуализации приложений — компонент серверных и настольных операционных систем, функция которых разделять и изолировать устанавливаемые извне приложения со стороны от самой ОС-и и остальных программ. Программа «перехватывается» системой и динамически (в режиме онлайн) обрабатывается для показа пользователю. В нашем случае используется одна из главных возможностей функции App-V (но далеко не единственных) — Совместимость приложений различных поколений для одной и той же платформы. И от версии к версии системы менялся подход самой App-V по отношению к устанавливаемым в Windows программам. Так, в Windows XP, не имея административных прав, пользователь с некоторыми программами полноценно вообще работать не мог. А вот со времён появления Vista все приложения обязали использовать файл-манифест, уточняющий запрашиваемый уровень прав. Среди них были:

СРАЗУ

Установка переменной __COMPAT_LAYER (первые символы — двойное подчёркивание) не повышает уровень ваших привилегий до административных. Если у вашей учётной записи таковых не имеется. Она именно не позволяет появиться окну Контроля и разрешает программе запуститься от имени любого пользователя. Таким образом использование перемененной безопасно до тех пор, пока некто не заполучит чудесным образом права Администратора. Так что любая вариация с переменными RunAsHighest (заставит UAC появиться, если права Администратора есть) или RunAsAdmin (инициирует окно Контроля всегда) относительно безопасны.

Как запускать программу без Контроля учётных записей с помощью батника?

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

закроем его, присвоив произвольное имя, но с расширением .bat. Чтобы так сделать, вам придётся заставить Windows отображать скрытые файлы и папки.

запуск приложения без uac

Или скачать готовый приготовленный мною батник в архиве по ссылке:

Как запускать программу без Контроля учётных записей с ярлыка?

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

cmd.exe /c SET __COMPAT_LAYER=RunAsInvoker & START «»

Т.е. вместо, допустим

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

Вариант три: настройки реестра

С той же целью вы можете прописать в контекстном меню исполнительных файлов особый пункт. Назовём его, скажем, Запуск без окна UAC.

Для этого в текстовом редакторе типа NotePad++ (Window-возный Блокнот не подойдёт для русской локали) пропишите вот этот код:

Сохраните файл с расширением .reg. Если соберётесь прописать контекстный пункт вручную с помощью:

Если от пункта устанете или ошибётесь на первых порах в названии, удалите параметр из cmd от имени администратора:

Как всегда, можете скачать готовый вариант reg-файла с К76 в архиве:

Источник

Как отключить UAC для определенной программы в Windows 10?

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

Флаг RunAsInvoker позволяет запустить приложение с маркером, унаследованным от родительского процесса. При этом отменяется обработка манифеста приложения, и обнаружение процессов установщика. Данный параметр не предоставляет права администратора, а только блокирует появление окна UAC.

В качестве примера мы отключим появление запроса User Account Control для редактора реестра (regedit.exe). Несмотря на то, что у моей учетной записи есть права администратора, при запуске утилиты все равно появляется запрос UAC на подтверждение запуска.

запуск приложения без uac

Отключение UAC для программы с помощью Application Compatibility Toolkit

Нам понадобится утилита Application Compatibility Toolkit, которая входит в состав Windows ADK. Скачать актуальную версию Windows ADK для Windows 10 можно здесь.

Запустите скачанный файл adksetup.exe и при установке (программе нужен доступ в Интернет) выберите только Application Compatibility Toolkit.

запуск приложения без uac

В системе появится две версии Application Compatibility Administrator — 32-х и 64-х битная версия. Запустите версию Application Compatibility Administrator в зависимости от разрядности приложения, для которого вы хотите подавить запрос UAC.

запуск приложения без uac

Запустите утилиту Compatibility Administrator (32-bit) с правами администратора (!). В разделе Custom Databases, щелкните ПКМ по элементу New Database и выберите пункт Create New-> Application Fix.

запуск приложения без uac

В открывшемся окне нужно указать имя приложения (regedit), производителя (Microsoft) и путь к исполняемому файлу ( C:\Windows\regedit.exe ).

запуск приложения без uac

Пропустите следующее окно мастера настройки (Compatibility Mode), нажав Next. В окне Compatibility Fixes отметьте опцию RunAsInvoker.

При желании можно убедиться, что приложение может работать без UAC, нажав на кнопку тестового запуска (Test Run).

запуск приложения без uac

В окне Matching Information вы можете указать какие параметры приложения нужно проверять (версию, чексумму, размер и т.д.). Я оставил включенными проверки COMPANY_NAME,PRODUCT_NAME и ORIGINAL_FILENAME, чтобы не пересоздавать файл исправления после очередного обновления Windows 10 и обновлении версии файла regedit.

запуск приложения без uac

Нажмите Finish и укажите имя файла, в который нужно сохранить созданный пакет исправления совместимости, например regedit.sdb. В этом файле будут содержаться инструкции по запуску приложения с заданными опциями совместимости. запуск приложения без uac

Осталось применить пакет с исправлением совместимости к вашему приложению. Сделать это можно непосредственно из консоли Compatibility Administrator (выбрав в меню пункт Install), либо из командной строки. запуск приложения без uac

Если все сделали правильно, появится сообщение об успешном применении пакета.

запуск приложения без uac

После установки пакета, соответствующая запись появится в списке установленных программ Windows (Programs and Features).

запуск приложения без uac

Попробуйте теперь запустить приложение в сессии пользователя без прав локального администратора. Теперь оно должно запуститься без появления запроса UAC.

Теперь проверьте, с какими привилегиями запущено данное приложение. Для этого в Task Manager на вкладке процессов добавьте столбец “Elevated”. Убедитесь, что процесс regedit.exe запущен от пользователя в непривилегированном режиме ( Elevated=No ).

запуск приложения без uac

В таком процесс редактора реестра пользователь может редактировать только собственные ветки реестра, но при попытке отредактировать/создать что-то в системной HKLM, появляется ошибка “You don’t have the requisite permissions”.

запуск приложения без uac

В дальнейшем это исправление совместимости можно распространить на компьютеры пользователей с помощью групповых политик. Тем самым можно добиться отключения проверки системы контроля учетных записей (UAC) для определенных приложений на множестве компьютеров в домене Active Directory.

Чтобы удалить исправление совместимости, выполните команду

sdbinst –u c:\ps\regedit.sdb

Включить флаг RUNASINVOKER для программы через реестр

В Windows 10/8.1/7 вы можете включить флаг совместимости RUNASINVOKER через реестр. Флаг совместимости приложения можно выставить для одного пользователя или для всех пользователей компьютера:

Например, для regedit нужно в ветке реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers создать новый строковый параметр (REG_SZ) вида:

запуск приложения без uac

Если нужно включить режим совместимости приложения для всех пользователей компьютера, этот параметр нужно создать в ветке реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers.

Bat файл для запуска приложения в режиме RunAsInvoker

Есть еще вариант для запуск приложения без прав администратора и подавлением запроса UAC (см. статью).

Просто создайте bat файл со следующим кодом:

Set ApplicationPath=»C:\windows\regedit.exe»
cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» %ApplicationPath%»

запуск приложения без uac

При запуске этого bat файла под пользователем, указанное приложение запустится без появления запроса UAC.

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

Источник

Упрощаем запуск приложений в Windows от имени администратора без отключения UAC

запуск приложения без uac

запуск приложения без uac

Некоторым приложениям для работы в Windows требуются повышенные права, и запускать их необходимо от имени администратора. При этом выводится запрос «Контроля учетных записей пользователя» (User Account Control или UAC), в котором система просит Вашего согласия на запуск приложения.

запуск приложения без uac

Многие пользователи неправильно полагают, что «Контроль учетных записей пользователя» лишь мешает, и отключают его. При этом серьёзно страдает безопасность компьютера, т.к. согласия пользователя на запуск приложений больше не требуется, и любая вредоносная программа может беспрепятственно запускаться и работать. Наличие антивируса также не может на 100% гарантировать безопасность компьютера.

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

Для запуска приложения от имени администратора можно воспользоваться несколькими способами:

В качестве примера будем запускать командную строку (cmd) от имени администратора.

Нажмите правой клавишей мыши по значку нужного приложения и выберите пункт «Запуск от имени администратора«:

запуск приложения без uac

Нажмите Пуск, в строке поиска наберите нужную команду и нажмите Ctrl+Shift+Enter.

запуск приложения без uac

Щелкните правой клавишей мыши по нужному ярлыку и выберите пункт «Свойства«.

Перейдите на вкладку «Ярлык«, нажмите «Дополнительно«, установите флажок «Запускать от имени администратора«:

запуск приложения без uac

Или перейдите на вкладку «Совместимость» и установите флажок «Выполнять эту программу от имени администратора«:

запуск приложения без uac

Далее запуск от имени администратора осуществляется двойным щелчком по ярлыку.

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

Указываем Имя для новой задачи и ставим флажок «Выполнять с наивысшими правами«:

Переходим на вкладку Действия, нажимаем «Создать«, в следующем окне нажимаем «Обзор«:

запуск приложения без uac

Указываем путь к нужному приложению и нажимаем «Открыть«:

Нажимаем «ОК«:

запуск приложения без uac

И ещё раз «ОК«:

Закрываем планировщик и переходим к созданию ярлыка.

запуск приложения без uac

В поле Расположение объекта вводим:

Задаём название ярлыка:

Ярлык создан и готов к использованию.

запуск приложения без uac

Перейдите на вкладку «Ярлык» и нажмите «Сменить значок«:

запуск приложения без uac

«Обзор. «

запуск приложения без uac

Указываем путь к программе:

Выбираем нужный значок и закрываем оба окна кнопкой «ОК«:

запуск приложения без uac

запуск приложения без uac

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

Утилита для автоматизации «Способа №4»

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

Работа с утилитой сводится к двум простым шагам:

запуск приложения без uac

Автоперевод фокуса на запущенную программу

Специфика запуска приложений из планировщика состоит в том, что фокус на окно не переводится и, например чтобы набрать команду в командной строке приходится дополнительно щёлкать по окну. Такое поведение может помочь в автоматизации рутинных операций по расписанию, но для «Способа №4» это не всегда удобно.

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

Добавляем при создании задачи:

Использование команды start

Программа или сценарий:

Использование утилиты NirCmd

Программа или сценарий:

Запуск диалога «Выполнить» от имени администратора

По аналогии с запуском командной строки способом №4 можно настроить запуск диалогового окна «Выполнить«, и введённые в него команды также будут запущены от имени администратора. Удобство этого подхода заключается в том, что список ранее использованных команд сохраняется, и можно выбрать нужную из списка.

запуск приложения без uac

При создании задачи в планировщике, в окне «Создание действия» укажите:

в поле «Программа или сценарий«:

в поле «Добавить аргументы«:

В справочнике по командам Windows вы найдете множество команд, которые можно запускать из командной строки или окна «Выполнить«.

Быстрое создание задания в планировщике из командной строки

Все вышеперечисленное делается за 30 секунд. В качестве примера используется задание, запускающие окно «Выполнить». В командной строке, запущенной с правами администратора, выполните:

Schtasks.exe /Create /RL Highest /TN Run /SC ONCE /ST 14:00 /TR «cmd.exe /c start rundll32 shell32.dll,#61»

Теперь остается создать ярлык, прописав в нем команду:

Реализовать запуск от имени администратора из командной строки можно несколькими способами:

С первыми двумя вариантами всё понятно, займёмся последним.

Существует несколько нужных нам утилит: Elevate от Johannes Passing (рассмотрим на её примере), PowerToys от Michael Murgolo и т.д.

Скачиваем утилиту, распаковываем. Запускаем командную строку, вводим нужную команду, синтаксис совсем нехитрый:

запуск приложения без uac

Выведется запрос UAC и приложение запустится от имени администратора.

Примечание: В контекстном меню Windows 7 есть очень удобная функция копирования пути файла: зажмите Shift, щёлкните правой клавишей мыши по файлу, выберите пункт «Копировать как путь«.

запуск приложения без uac

Запуск программ пользователем от имени администратора без ввода пароля администратора

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

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

запуск приложения без uac

запуск приложения без uac

Но нерешаемых проблем нет, я попробовал совместить запуск AdmiLink-ом и «Способ №5»:

— попытка завершилась успешно:

запуск приложения без uac

Пользователю выводится стандартный запрос UAC, но ввод пароля администратора не требуется.

Источник

FUCK UAC! 10 способов обхода системы User Account Control в Windows

запуск приложения без uac

Содержание статьи

В каждой версии Windows (начиная с Vista) есть стандартный компонент UAC (User Account Control). Он включен по умолчанию и не дает пользователю «выстрелить себе в ногу», запустив какую-нибудь малварь с правами админа. В этой статье мы расскажем, как использовать «контроль учетных записей» в своих целях — например, запустить любой код с правами администратора или даже как системный процесс.

WARNING

UAC как огромный баг

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

Белый список для черных шляп

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

Провести атаку типа DLL hijack сравнительно просто, хотя и здесь не обходится без подводных камней. Они свои в каждой версии ОС, а также зависят от настроек, учетной записи, разрядности ОС, установленных компонентов и патчей.

запуск приложения без uac Доступ в \system32\ запрещен

У пользователя нет прав доступа на запись в системный каталог, а администратор должен подтвердить это действие через UAC. Чтобы наш код получил необходимые права без лишних вопросов, используем другой трюк — с автономным установщиком обновлений Windows.

запуск приложения без uac Архив с нашей библиотекой

Скормим этот архив автономному установщику обновлений (Windows Update Standalone Installer).

запуск приложения без uac Утилита sysprep как встроенный бэкдор

Это происходит потому, что wusa и sysprep находятся в белом списке, а все приложения из этого списка могут поднимать себе права без участия UAC. Наш же код из подгружаемой установщиком библиотеки унаследует права родительского процесса sysprep.exe и также будет считаться доверенным.

запуск приложения без uac Использование sysprep для обхода UAC

Рассмотренный выше трюк совместного использования wusa и sysprep представляет собой модифицированный метод Лео Дэвидсона (Leo Davidson). Исходный вариант был применим только к непропатченной Windows 7 и был описан еще в 2009 году в рассылке компьютерного сообщества Оксфордского университета. Копия приводится на его сайте, который из-за обилия подобного кода внесен в списки потенциально опасных.

Автоматическое повышение привилегий

Вот пример использования объекта IFileOperation для копирования файла в системный каталог.

Метод внедрения своей библиотеки в процесс explorer.exe рассматривается в этом примере.

запуск приложения без uac Создаем список программ из белого списка UAC

В зависимости от используемой программы из белого списка и версии Windows можно подменить ту или иную библиотеку (см. таблицу).

запуск приложения без uac Стандартные компоненты и подменяемые библиотеки

Методы перебора этих вариантов собраны в одну PowerShell-утилиту.

ISecurityEditor

Удивительно, что большинство методов обхода «контроля учетных записей» были умышленно заложены самими разработчиками Windows. Провал «Висты» маркетологи связали с неудобным поведением нового компонента, и в «семерке» UAC постарались сделать менее назойливым. Для этого пришлось делать костыли из белого списка и метода автоматического повышения привилегий (без подтверждения пользователем) у сорока с лишним системных программ. К функции autoElevate были написаны COM-интерфейсы: документированный IFileOperation (который разбирался выше) и недокументированный ISecurityEditor, об использовании которого мы поговорим сейчас.

Непропатченные системы встречаются до сих пор. Пример обхода UAC с использованием уязвимой версии ISecurityEditor приводится здесь.

Метод системных заплаток

Следующий способ обхода UAC был взят на вооружение хакерской группой Dridex. В нем используется метод системных заплаток (Shims), позволяющий запускать программы в режиме совместимости. В версиях Windows 7/8/8.1 этот встроенный компонент был реализован с ошибками. Одна из них заключалась в том, что можно создать собственную базу Shim DataBase, а в ней указать ссылку на свой файл как на «исправленную» версию системного файла из белого списка. Таким образом можно запускать произвольный код, и UAC будет молчать.

Поэтапно схема от Dridex выглядела так:

sdbinst.exe –q %temp%*.sdb

Схожий метод обхода UAC использует и BackDoor.Gootkit. Сначала с помощью библиотеки apphelp.dll он создает в заражаемой системе свою базу данных Shim. В ней через функцию RedirectEXE он указывает, что для программы сетевого клиента SQL Server ( cliconfg.exe ) есть «исправленная» версия. В качестве «исправленного» файла записывается ссылка на компонент трояна. Поскольку в манифесте cliconfg.exe мы также можем увидеть знакомые строки AutoElevate=true, UAC позволяет ему загрузиться без лишних вопросов в Windows 7–8.1.

Для работы с Shim DataBase есть готовый набор функций WinAPI в стандартной библиотеке apphelp.dll. Исходный код одной из реализаций метода Shim для обхода UAC приводится здесь.

Методы использования Shim DataBase для обхода UAC подробно разбирались на конференции Black Hat 2015.

Сборка бок о бок

Обход UAC во время тихой очистки диска

Начиная с Windows 8.1, Microsoft стала активно фиксить накопившиеся баги в реализации UAC. Поэтому одни механизмы обхода «контроля учетных записей» пришлось модифицировать, а другие — попросту забыть. Windows 10 лишена многих недостатков, и старые трюки с ней обычно не прокатывают, но есть и новые!

В июле этого года Мэтт Грэбер (Matthew Graeber aka @mattifestation) и Мэтт Нельсон (Matt Nelson aka @enigma0x3) реализовали этот прием обхода UAC как PowerShell-скрипт.

Сами авторы пишут, что метод работает со множеством ограничений. Он оказывается жизнеспособным только при запуске под админом в 32-разрядной ОС с настройками безопасности по умолчанию. Несмотря на великий соблазн, под юзером метод не работает, так как при таком запуске cleanmgr.exe не выполняет распаковку во временный каталог и в нем нечего подменять.

Еще несколько лазеек в Windows

запуск приложения без uac Интерфейс принтера позволяет сохранить любой код как файл в системном каталоге

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

запуск приложения без uac Запуск чего угодно от админа без подтверждения в UAC

В домене UAC не реагирует на действия удаленного пользователя, если тот является локальным админом. Утилита PsExec Tool от Марка Руссиновича при старте с опцией –h скрыто запускает указанный экзешник на удаленной системе. Для повышения его привилегий на чужом компьютере может использоваться локально хранимый токен. Готовый эксплоит для этого также есть в Metasploit, а сам метод подробно разбирается здесь.

Иногда удобен быстрый способ внедрения своего кода через RunDll. В общем случае для этого достаточно отправить команду

Поэтому, если выполнить команду

запуск приложения без uac Запускаем калькулятор как системный процесс

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *