跳转至

服务注册表权限弱点

对手可能通过劫持服务使用的注册表项来执行他们自己的恶意有效负载。对手可能会利用服务注册表项权限中的漏洞,将原本指定的可执行文件重定向到他们控制的文件,以便在服务启动时启动他们自己的代码。Windows 在 HKLM\SYSTEM\CurrentControlSet\Services 下的注册表中存储本地服务配置信息。可以通过服务控制器、sc.exe、PowerShellReg 等工具操作存储在服务注册表项下的信息。对注册表项的访问通过访问控制列表和用户权限进行控制。(引用: Registry Key Security)(引用: malware_hides_service) 如果用户和组的权限设置不正确,并允许访问服务的注册表项,对手可能会更改服务的 binPath/ImagePath 以指向他们控制的不同可执行文件。当服务启动或重新启动时,对手控制的程序将执行,允许对手在服务设置为执行的帐户上下文(本地/域帐户、SYSTEM、LocalService 或 NetworkService)中建立持久性和/或提升权限。 对手还可能更改服务注册表树中的其他注册表项。例如,可以更改 FailureCommand 键,以便在服务失败或故意损坏时在提升的上下文中执行服务。(引用: Kansa Service related collectors)(引用: Tweet Registry Perms Weakness) Performance 键包含驱动程序服务性能 DLL 的名称和 DLL 中几个导出函数的名称。(引用: microsoft_services_registry_tree) 如果 Performance 键尚不存在,并且对手控制的用户具有 Create Subkey 权限,对手可能会在服务的注册表树中创建 Performance 键以指向恶意 DLL。(引用: insecure_reg_perms) 对手还可能添加 Parameters 键,该键存储驱动程序特定数据,或其他自定义子键以建立持久性或启用其他恶意活动。(引用: microsoft_services_registry_tree)(引用: troj_zegost) 此外,如果对手使用 svchost.exe 启动他们的恶意服务,可以使用 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename\Parameters\ServiceDll 标识服务的文件。(引用: malware_hides_service)