В предыдущей статье мы рассказали, что одним из способов защиты от мимикац-подобных инструментов является отключение привилегии отладки для системных администраторов с помощью политики Debug Program. Однако недавно выяснилось, что без привилегии отладки (в Windows это SeDebugPrivilege) администратор локального сервера не может установить или обновить Microsoft SQL Server. Дело в том, что при запуске программа установки SQL Server проверяет наличие привилегий SeSecurity, SeBackup и SeDebug. Ему необходимо запустить процесс SQL Server и получить информацию об успешном запуске SQL Server. Вот как это выглядит.
Во время установки SQL Server программа установки выполняет предварительные проверки и выявляет некоторые проблемы с Привилегии учетной записи установки.
Если щелкнуть ссылку Failed, можно увидеть следующее сообщение:
Учетная запись, под которой выполняется установка SQL Server Setup, не имеет одного или всех следующих прав: права на резервное копирование файлов и каталогов, права на управление аудитом и журналом безопасности и права на отладку программ. Чтобы продолжить, используйте учетную запись с обоими этими правами. Дополнительные сведения см. на сайтах https://msdn.microsoft.com/en-us/library/ms813696.aspx, https://msdn.microsoft.com/en-us/library/ms813959.aspx и https://msdn.microsoft.com/en-us/library/ms813847.aspx.
Теперь откройте SystemConfigurationCheck_Report.htm отчет.
Как вы можете видеть, при проверке HasSecurityBackupAndDebugPrivilegesCheck правило, программа установки обнаружила, что текущий процесс не имеет ни одной из следующих привилегий:
- SeSecurity — управление журналами аудита и безопасности
- SeBackup — разрешения на резервное копирование файлов и папок
- SeDebug — права на отладку программ
В журнале есть подробная информация о том, что процесс установки не имеет флага SeDebug.
(09) 2017-12-12 11:15:13 Slp: Initializing rule : Setup account privileges (09) 2017-12-12 11:15:13 Slp: Rule is will be executed : True (09) 2017-12-12 11:15:13 Slp: Init rule target object: Microsoft.SqlServer.Configuration.SetupExtension.FacetPrivilegeCheck (09) 2017-12-12 11:15:13 Slp: Rule ‘HasSecurityBackupAndDebugPrivilegesCheck’ Result: Running process has SeSecurity privilege, has SeBackup privilege and does not have SeDebug privilege. (09) 2017-12-12 11:15:13 Slp: Evaluating rule : HasSecurityBackupAndDebugPrivilegesCheck (09) 2017-12-12 11:15:13 Slp: Rule running on machine: rom-sql10 (09) 2017-12-12 11:15:13 Slp: Rule evaluation done : Failed
Я решил поискать обходное решение для получения SeDebugPrivilege без изменения или отключения политики отладочных программ. Оказалось, что существует довольно простой способ обойти эту политику, если у вас есть привилегии локального администратора на вашем сервере. Адрес secedit нам поможет инструмент, позволяющий управлять локальными политиками безопасности сервера.
Проверьте текущие привилегии:
whoami /priv
Как видно, в текущем токене пользователя нет привилегии SeDebugPrivilege.
Экспортируйте текущие права пользователя, установленные групповыми политиками, в текстовый файл:
secedit /export /cfg secpolicy.inf /areas USER_RIGHTS
Используя любой текстовый редактор, откройте secpolicy.inf и добавьте строку в [Privilege Rights] в раздел, который включает привилегии Debug Programs для группы локальных администраторов.
SeDebugPrivilege = *S-1-5-32-544
Сохраните файл. Теперь примените новые права пользователя:
secedit /configure /db secedit.sdb /cfg secpolicy.inf /overwrite /areas USER_RIGHTS
Выйдите из системы и снова войдите в нее, и с помощью secpol.msc убедитесь, что привилегии Debug Program назначены группе локальных администраторов. То же самое показано в результатах команды whoami /priv:
SeDebugPrivilege Debug programs Enabled
Теперь вы можете запустить установку или обновить SQL Server. Но помните, что SeDebugPrivilege назначается временно и будет сброшен при следующем цикле обновления GPO (после выхода пользователя из системы).
Вы должны понимать, что если вы включите политику отладки программ, это не защитит вас полностью от получения SeDebugPrivilege вредоносным программным обеспечением, которое уже проникло на ваш сервер с правами локального администратора, и может скомпрометировать все учетные записи пользователей/администраторов, работающих на сервере.