当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

作者:精品下载站 日期:2024-12-14 22:50:05 浏览:13 分类:玩电脑

启用调试程序策略时如何获取 SeDebugPrivilege


在上一篇文章中,我们提到防御类似 mimikatz 的工具的方法之一是使用调试程序策略禁用系统管理员的调试权限。然而,最近发现,如果没有调试权限(Windows 中为 SeDebugPrivilege),本地服务器管理员无法安装或更新 Microsoft SQL Server。问题是,启动时,SQL Server 安装程序会检查是否有 SeSecurity、SeBackup 和 SeDebug 权限。它需要运行SQL Server进程并获取SQL Server成功启动的信息。这是它的样子。

在 SQL Server 安装期间,安装程序会执行初步检查并识别安装帐户权限的一些问题。

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

如果单击“失败”链接,您会看到以下消息:

规则“安装帐户权限”失败。
运行 SQL Server 安装程序的帐户不具有以下一项或全部权限:备份文件和目录的权限、管理审核和安全日志的权限以及调试程序的权限。要继续,请使用具有这两项权利的帐户。有关详细信息,请参阅 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。

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

现在打开SystemConfigurationCheck_Report.htm报告。

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

可以看到,在检查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

可以看到,用户当前的token中没有SeDebugPrivilege。

将组策略设置的当前用户权限导出到文本文件:

secedit /export /cfg secpolicy.inf /areas USER_RIGHTS

使用任何文本编辑器打开 secpolicy.inf 并将字符串添加到[权限]部分,为本地管理员组启用调试程序权限。

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

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

注意。本地管理员组的 SID S-1-5-32-544 可以更改为任何其他 SID。要将组名或用户名转换为 SID,请参阅如何将 SID 转换为用户名,反之亦然。

保存文件。现在应用新的用户权限:

secedit /configure /db secedit.sdb /cfg secpolicy.inf /overwrite /areas USER_RIGHTS

注意。您必须确认覆盖当前设置。

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

注销并再次登录,并使用 secpol.msc 确保将调试程序权限分配给本地管理员组。 whoami /priv 命令的结果也显示了相同的结果:

SeDebugPrivilege                Debug programs                            Enabled

[玩转系统] 启用调试程序策略时如何获取 SeDebugPrivilege

现在您可以运行安装或更新 SQL Server。但请记住,SeDebugPrivilege 是临时分配的,它将在下一个 GPO 更新周期(用户注销后)重置。

您应该了解,如果启用“调试程序”策略,它不会完全保护您免受已经以本地管理员权限渗透到您的服务器的恶意软件获取 SeDebugPrivilege 的影响,并且可能会危及在服务器上工作的所有用户/管理员帐户。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯