В предыдущей статье мы рассказывали, что одной из техник защиты от извлечения паролей из памяти Windows mimikatz-like утилитами является запрет получения debug-привилегии для администраторов системы с помощью групповой политики Debug Program . Однако недавно обнаружилось, что без прав отладки (в Windows это привилегия SeDebugPrivilege ), локальный администратор сервера не может установить или обновлять Microsoft SQL Server. Дело в том, что установщик SQL Server при запуске проверяет наличие привилегий SeSecurity. SeBackup и SeDebug, которые нужны ему для запуска процесса SQL Server и получения информации об успешном запуске SQL Server. Вот как это выглядит.
Во время установки SQL Server при выполнении предварительных проверок установщик спотыкается на проверке Setup account privileges .
Откроем теперь отчет установки SystemConfigurationCheck_Report.htm .
В логе есть более детальная информация, указывающая, что у процесса установки отсутствует флаг SeDebug:
(09) 2017-09-12 14:25:13 Slp: Initializing rule : Setup account privileges
(09) 2017-09-12 14:25:13 Slp: Rule is will be executed : True
(09) 2017-09-12 14:25:13 Slp: Init rule target object: Microsoft.SqlServer.Configuration.SetupExtension.FacetPrivilegeCheck
(09) 2017-09-12 14:25:13 Slp: Rule ‘HasSecurityBackupAndDebugPrivilegesCheck’ Result: Running process has SeSecurity privilege, has SeBackup privilege and does not have SeDebug privilege.
(09) 2017-09-12 14:25:13 Slp: Evaluating rule : HasSecurityBackupAndDebugPrivilegesCheck
(09) 2017-09-12 14:25:13 Slp: Rule running on machine: msk-sql10
(09) 2017-09-12 14:25:13 Slp: Rule evaluation done : Failed
Я решил поискать обходной путь получения прав SeDebugPrivilege без изменения или отключения политики Debug programs. И как оказалось, имеется довольно простой способ обхода этой политики при наличии прав локального администратора на сервере. В этом нам поможет утилита secedit, позволяющая управлять локальными политиками безопасности сервера.
Проверяем текущие привилегии:
whoami /priv
Экспортируем текущие права пользователей, настроенные групповыми политиками в текстовый файл:
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
SeDebugPrivilege Debug programs Enabled
Как вы понимаете, включение запретительной политики Debug programs не является панацей от получения права SeDebugPrivilege вредоносными программами, которые уже проникли на сервер с правами локального администратора, что может скомпрометировать все учетные записи пользователей/администраторов, работящих на сервере.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…