Получаване на привилегия SeDebugPrivilege с активирана политика за отстраняване на грешки

В предишна статия говорихме за това как един от методите на защита за извличане на пароли от паметта на Windows с помощта на помощни програми, подобни на mimikatz, е да предотврати привилегиите за отстраняване на грешки за системните администратори от използването на груповата политика на програмата Debug. Наскоро обаче беше открито, че без разрешения за отстраняване на грешки (в Windows това е привилегия SeDebugPrivilege), администраторът на локалния сървър не може да инсталира или актуализира Microsoft SQL Server. Факт е, че инсталаторът на SQL Server при стартиране проверява за привилегии на SeSecurity. SeBackup и SeDebug, от които той се нуждае, за да стартира процеса на SQL Server и да получи информация за успешното стартиране на SQL Server. Ето как изглежда.

По време на инсталирането на SQL Server, когато извършва предварителни проверки, инсталаторът препъва проверка Настройка на привилегии на акаунта.

Щраквайки върху връзката „Failed“, можете да видите следното съобщение:

Правило „Привилегии за настройка на акаунта“ не бе успешно.
Профилът, който работи с настройка на SQL Server, няма едно или всички от следните права: правото да архивирате файлове и директории, правото да управлявате одита и дневника за сигурност и правото за отстраняване на грешки в програмите. За да продължите, използвайте акаунт с двете права. За повече информация вижте https://msdn.microsoft.com/en-us/library/ms813696.aspx, https://msdn.microsoft.com/en-us/library/ms813959.aspx и https: // msdn .microsoft.com / bg-us / library / ms813847.aspx.


Сега отворете отчета за инсталиране SystemConfigurationCheck_Report.htm.

Както можете да видите, инсталаторът при проверка на правилото HasSecurityBackupAndDebugPrivilegesCheck определи, че текущият процес няма една от следните привилегии:

  • SeSecurity - управление на одита и дневника за сигурност
  • SeBackup - права за архивиране на файлове и директории
  • SeDebug - правото за отстраняване на грешки в програми

В дневника има по-подробна информация, показваща, че процесът на инсталиране няма флаг SeDebug:

(09) 2017-09-12 14:25:13 Slp: Правило за инициализиране: Настройка на привилегии на акаунта
(09) 2017-09-12 14:25:13 Slp: Правилото ще бъде изпълнено: Вярно
(09) 2017-09-12 14:25:13 Slp: Целеви обект на правило за иницииране: Microsoft.SqlServer.Configuration.SetupExtension.FacetPrivilegeCheck
(09) 2017-09-12 14:25:13 Slp: Правило 'HasSecurityBackupAndDebugPrivilegesCheck' Резултат: Изпълняващият процес има привилегия SeSecurity, има привилегия SeBackup и няма привилегия SeDebug.
(09) 2017-09-12 14:25:13 Slp: Правило за оценка: HasSecurityBackupAndDebugPrivilegesCheck
(09) 2017-09-12 14:25:13 Slp: Правило работи на машина: msk-sql10
(09) 2017-09-12 14:25:13 Slp: Извършената оценка на правилото: Неуспешна

Реших да потърся решение за получаване на права на SeDebugPrivilege, без да променям или деактивирам правилата за програми за отстраняване на грешки. И както се оказа, има доста прост начин да заобиколите тази политика, ако имате права на локален администратор на сървъра. Помощта secedit ще ни помогне в това, като ви позволява да управлявате местните политики за сигурност на сървъра.

Проверете текущите привилегии:

whoami / priv

Както можете да видите, сега в текущия потребителски маркер няма привилегия SeDebugPrivilege .

Ние експортираме текущите потребителски права, конфигурирани от групови правила, в текстов файл:

secedit / export / cfg secpolicy.inf / области USER_RIGHTS

Сега, използвайки всеки тестов редактор, трябва да отворите файла secpolicy.inf за редактиране и да добавите ред в секцията [Права на привилегия], която предоставя права за програми за отстраняване на грешки на групата на местните администратори.

SeDebugPrivilege = * S-1-5-32-544

забележка. SID на групата на местните администратори S-1-5-32-544 може да бъде заменен с всеки друг. Процесът на преобразуване на група или потребителско име в SID е описан в статията Как да разберете SID на потребителя по име и обратно

Запазете файла. Сега трябва да приложите новите потребителски права:

secedit / configure / db secedit.sdb / cfg secpolicy.inf / презаписване / области USER_RIGHTS

забележка. Потвърдете презаписването на текущите настройки.

Сега трябва да стартирате влизането / влизането и с помощта на secpol.msc се уверете, че правата за програма за отстраняване на грешки са присвоени на групата от местни администратори. Същата команда whoami / priv потвърждава това:

Програмите за отстраняване на грешки SeDebugPrivilege са активирани

Вече можете да започнете инсталирането / актуализациите на SQL Server. Но си струва да се има предвид, че привилегията SeDebugPrivilege в този случай е назначена само временно и те ще бъдат нулирани при следващото актуализиране на груповата политика (но след излизане от потребителя).

Както разбирате, включването на политиката за забрана на програми за отстраняване на грешки не е панацея за получаване на права на SeDebugPrivilege от злонамерени програми, които вече са влезли в сървъра с права на локален администратор, които могат да компрометират всички акаунти на потребител / администратор, работещи на сървъра..