Меню

10 способов обхода системы user account control в windows

Метод обхода UAC в Windows 10 позволяет установить вредоносное приложение

Метод эксплуатирует принцип автоматического повышения привилегий, действующий для доверенных файлов Microsoft.

Студент из Германии, известный в Сети как Кристиан Б. (Christian B), обнаружил новый метод обхода функции Контроля учетных записей в Windows (UAC), позволяющий установить на системе вредоносное приложение. Описанный исследователем метод является вариацией способа обхода UAC, представленного экспертом Мэттом Нелсоном (Matt Nelson) в августе минувшего года.

В то время как техника Нелсона основана на использовании программы Event Viewer (eventvwr.exe), предназначенной для удаленного или локального просмотра журнала событий, новый метод задействует файл fodhelper.exe (управление опциональными функциями в Windows 10).

Оба метода эксплуатируют принцип автоматического повышения привилегий, действующего для различных доверенных файлов Microsoft. Поскольку fodhelper.exe является доверенным файлом, при его исполнении Windows 10 не будет отображать окно UAC.

Исследователь обнаружил, что при исполнении fodhelper.exe Windows обращается к двум ключам реестра для дополнительных команд. Отредактировав значение одного из ключей (HKCU:\Software\Classes\ms-settings\shell\open\command\(default), эксперт смог внедрить команды, исполняющиеся с повышенными правами в контексте процесса fodhelper.exe.

Как отмечается, данная техника может эксплуатироваться вредоносным ПО на зараженных компьютерах. К примеру, вредонос может использовать скрипты для редактирования значения ключа реестра, внедрить вредоносные команды и запустить файл fodhelper.exe, который прочитает и исполнит их без ведома пользователя.

Вышеописанный метод был протестирован на компьютере под управлением Windows 10.0.15063 и не требует подключения вредоносной DLL-библиотеки или внедрения файла на диск. Исследователь опубликовал PoC-код атаки на GitHub.

Контроль учетных записей пользователей (User Account Control, UAC) — функция Windows, позволяющая предотвратить несанкционированные изменения в ОС. UAC обеспечивает защиту, запрашивая разрешение или пароль администратора перед совершением потенциально опасных действий или при изменении параметров, которые могут оказать влияние на работу других пользователей.

Подписывайтесь на каналы «SecurityLab» в Telegram и Twitter, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Источник статьи: http://www.securitylab.ru/news/486246.php

Представлен новый метод обхода защиты UAC в Windows 10

Новая техника предполагает подмену пути к исполняемому файлу в доверенной папке.

Специалист компании Tenable Дэвид Уэллс (David Wells) описал новую технику обхода защитного механизма ОС Windows 10, известного как User Account Control (UAC, контроль учетных записей), предполагающую подмену пути к исполняемому файлу в доверенной папке.

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

Однако Уэллс обнаружил новый способ, позволяющий обойти функционал и запустить недоверенный исполняемый файл без всяких уведомлений от UAC. Для автоматического повышения прав файл должен быть сконфигурирован определенным образом, подписан надлежащей цифровой подписью и запускаться из доверенной папки, такой как C:\Windows\System32. Как выяснил исследователь, в ходе одной из проверок программа запуска Appinfo.dll (AIS) вызывает API RtlPrefixUnicodeString и подтверждает, что путь к исполняемому файлу начинается с C:\Windows\System32\.

Уэллсу удалось создать папку с именем C:\Windows \ (после Windows следует пробел) с помощью API CreateDirectory и добавления \\?\ к имени директории (для обхода фильтров в Windows). Затем в новой папке он создал папку System32. Далее исследователь скопировал подписанный исполняемый файл winSAT.exe из настоящей папки C:\Windows\System32 в созданную им папку.

При исполнении C:\Windows \System32\winSAT.exe Appinfo.dll передает файл API GetLongPathNameW, который преобразует его в вид C:\Windows\System32\winSAT.exe, удаляя лишний пробел. Система проверяет конвертированную строку, а затем проводит остальные проверки (включая конечный запрос на повышение прав) оригинального пути исполняемого файла (с лишним пробелом).

С помощью данного метода эксперту удалось повысить привилегии фальшивой библиотеки WINMM.dll (импортированной winSAT.exe), добавленной в поддельную папку C:\Windows\System32\. PoC-код новой техники обхода UAC опубликован на GitHub. Более подробную информацию о новом методе можно найти здесь .

Подписывайтесь на каналы «SecurityLab» в Telegram и Twitter, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Источник статьи: http://www.securitylab.ru/news/496431.php

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

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

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

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

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

  • 256Color – 8-ми разрядный цвет (256)
  • 640×480 – Запуск с разрешением 640×480
  • DisableThemes – Отключение визуальных эффектов
  • Win98 – Запустить программу в режиме совместимости с Windows 98/Windows ME
  • Win2000 – Запустить программу в режиме совместимости с Windows 2000
  • WINXPSP3 – Запустить программу в режиме совместимости с Windows XP
  • VistaSP2 – Запустить программу в режиме совместимости с Windows Vista
  • Win7RTM – Запустить программу в режиме совместимости с Windows 7
  • Win8RTM – Запустить программу в режиме совместимости с Windows 8

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

Установленные настройки будут существовать до тех пор, пока есть сама переменная __COMPAT_LAYER. И переменную можно убить, остановив исполнение консольной команды, где она была прописана. Либо вручную направив “пустую” команду конкретному исполнительному файлу в виде

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

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

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

  • asInvoker – запуск с ограниченными правами до момента, пока расширенные права не затребуются отдельной командой или со стороны другого запущенного от имени администратора процесса.
  • highestAvailable – административный уровень; нужны права администратора, если пользователь админ; если пользователь не принадлежит к административной группе, доступ к функциям программы и её возможностям будет ограничен.
  • requireAdministrator – требует административных прав; программа вообще не запустится, пока ей не предоставятся права.

В общем, учитывая тот факт, что редкая программа использовала “безобидные” функции и никуда по закоулкам системы не лазала, мало что в Windows можно запустить без предоставления ей расширенных прав. Т.е. минуя окно UAC. Частично решить этот вопрос и было призвано добавление переменой к пакету __COMPAT_LAYER=RunAsInvoker . Она заставляла систему отпихивать в сторону запрашиваемый уровень прав в виртуальной среде операндом asInvoker. К слову сказать, примерно такие же возможности достигаются утилитами SigCheck и Process Explorer от Sysyinternals. А с помощью Resource Hacker манифест можно просматривать напрямую. Но не суть.

СРАЗУ

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

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

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

  • открываем Блокнот и вводим код:

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

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

Распакуйте и расположите его на Рабочем столе. Суть работы с ним проста: зацепите ярлык нужного файла .exe и перетащите на распакованный батник . Программа запустится без окна предупреждения со стороны Контроля учётных записей. Способ не всегда срабатывает при обращении к ярлыкам, созданным именно системой (в момент установки программы) из-за витиеватых настроек символьных ссылок. Потому, кому такой способ придется по душе, советую создать ярлык на рабочем столе самостоятельно с указанием на Расположение объекта. Либо воспользоваться другими способами.

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

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

cmd.exe /c SET __COMPAT_LAYER=RunAsInvoker & START “”

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

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

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

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

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

  • NotePad++ и ему подобного на русском, укажите кодировку Windows-1251
  • Блокнота, задайте в поле команды @=”Запуск без окна UAC” вместо указанного имя типа “No_UAC”, чтобы контекстное меню выглядело без кракозябров:

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

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

Источник статьи: http://computer76.ru/2020/04/29/launch-programme-with-no-uac/


Adblock
detector