Skip to main content

服务提权

服务提权,是Windows平台提升权限的经典途径,但实际上服务提权又可以根据根源分为3种更具体的不当配置,甚至一些CVE或者exploit-db上应用漏洞也是相同原理。服务提权可以分为这三类:

1:配置不当的服务权限

攻击者对于服务本身具有特定权限,例如修改服务的二进制文件路径、停止/启动服务、修改其他服务参数等。因此,利用手法可以是将服务二进制文件指定为攻击者的载荷。此外,由于还可以修改服务的其他参数,例如是否自启动,可以实现主机持久化。在下一个章节我们会进行介绍。

 

2:未用引号引用的服务路径

因为文件夹或者文件是允许存在空格的,例如文件夹 “C:\program files”,但如果不加引号,即 C:\program files,Windows会把 C:\program 当成目标文件夹。并且当服务区解析二进制文件的地址的时候,例如该二进制文件地址为 “C:\Program Files\Weak Services\Unquoted Service.exe” ,那么从前往后依次解析到的是

C:\Program.exe

C:\Program Files\Weak.exe

C:\Program Files\Weak Services\Unquoted.exe

因此,如果我们想要利用,可以在上述任一一路径丢入一个二进制文件。但需要注意的是,我们需要对响应的文件夹具有写权限。

如果还是有些不理解,大家可以记住这样的模式:对于一个二进制文件的地址如果是 "C:\A B\C D\E F.exe"

我们可以在 C:\ 丢入A.exe,即 C:\A.exe

我们可以在 C:\A B 丢入C.exe,即 C:\A B\C.exe

我们可以在 C:\A B\C D\ 丢入 E.exe,即 C:\A B\C D\E.exe

 

3:配置不当的服务二进制文件

攻击者对于该服务的二进制文件具有修改权。因此,常规的利用手法是用生成一个恶意的服务二进制文件,替换掉原有的服务二进制文件。之后,该服务就会执行恶意的二进制文件。

 

不过不用过于担心,powerup.sql脚本如果发现了上述任一类型,也就是只要是实际可利用的脆弱服务,它能帮助我们自动利用。