提权概述

提权,网络术语,提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。

Windows:user –> administrator

Linux:user –> root

提权条件

  • 拥有webshell、普通用户权限
  • 拥有某些软件的账号密码
  • 本地或远程服务器上存在漏洞
  • 拥有漏洞利用工具代码

操作系统内核漏洞提权

介绍

利用window系统中没有打补丁的内核溢出漏洞进行攻击。

1.查看当前用户权限

1
whoami /groups

2.查看系统安全补丁

1
2
systeminfo
wmic qfe get Caption,Description,HotFixiD,InstalledOn

3.与可以进行提权的内核溢出漏洞exp进行对比

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

4.执行EXP

实战演练

  1. 利用其它漏洞获取一个shell,查看权限为普通用户
1
meterpreter > getuid

image-20230606000405740

1
2
meterpreter > shell
whoami /groups

image-20230606093932292

  1. 使用post/multi/recon/local_exploit_suggester进行提权漏洞检测

image-20230605212101590

  1. 我们可以选择一个漏洞进行利用例如MS_2018_8120进行利用

image-20230605235454327

  1. 配置好参数后run,查看系统当前权限为SYSTEM权限

image-20230606000113453

image-20230606100012402

Windows操作系统配置错误提权

系统服务配置错误提权

介绍

Windwos系统服务文件在操作系统启动时加载和执行,并在后台调用可执行文件。如果一个低权限的用户对这类系统服务的可执行文件具有写权限,就可以将其替换成任意可执行文件,并随着系统服务的启动获得系统权限。

系统服务权限配置错误有两种可能:

  • 服务未运行,攻击者会使用任意服务替换原来的服务,然后重启服务
  • 服务正在运行且无法终止,这种情况适用于绝大多数漏洞利用场景,攻击者通常会利用DLL劫持技术并尝试和重启服务来提权

实战演练

  1. 首先获取了一个shell,具有普通用户权限

image-20230606101907522

image-20230606101939033

  1. 利用exploit/windows/local/service_permissions模块进行检查,选择AGGRESSIVE选项,可以利用目标机器每一个有缺陷的服务。

image-20230606103053027

可信任服务路径漏洞

介绍

Windows服务通常是以System权限运行的,所以系统在解析服务所对应的文件路径中的空格会以系统权限运行。

例如:有个文件路径”C:\Program Files\Some Folder\Service.exe”

则对于每一个空格,Windows都会尝试寻找并执行与空格前面名字相匹配的程序,操作系统会对你路径中空格的所有可能情况进行尝试,直到一个能匹配的程序。

  • C:\Program.exe
  • C:\Progarm Files\Some.exe

如果一个按上述规则命名的可执行程序上传到受影响的目录中,那么服务一旦重启,则会以System权限运行。

漏洞利用可能的情况:

  • 如果该路径与服务相关,就会任意创建一个服务或者Service模板
  • 如果路径与可执行文件有关,就任意创建一个可执行文件

注册表键AlwaysInstallElevated

介绍

注册表键AlwaysInstallElevated是一个策略设置项,如果启用了,任何权限的用户都能以NT AUTHORITY\SYSTEM权限来安装恶意的MSI文件。

image-20230606105441626

组策略首选项提权

介绍

管理员在域中新建组策略后,操作系统会自动在SYSVOL共享目录中生成一个XML文件,该文件保存了该组策略更新后的密码,使用AES-256加密。但是微软在2012年公布了AES-256的私钥,导致保存在XML文件中的密码可以被解密。在SYSVOL中可以找到包含cpassword的XML文件

绕过UAC提权

介绍

在权限不够的情况下,访问系统盘的根目录,Windows目录、Program Files目录,以及读写系统登录数据库等操作都要进行UAC的认证才能进行。

实战演练

  1. 首先获取一个shell,权限是普通用户权限,但是该用户必须在管理员组中,并且设置UAC为仅在程序试图更改我的计算机时通知我。

image-20230606112846262

  1. 接着使用exploit/windows/local/bypassuac模块,配置好选项后运行发现成功绕过,获取SYSTEM权限

image-20230606113413798

image-20230606113254419

令牌窃取提权

介绍

这个提权方式是针对Kerberos协议,通过入侵服务器,在客户端登录时窃取客户端的令牌,从而获取其权限。但前提是需要获取SYSTEM权限的令牌。

总结

本篇文章总结了常见的Windows提权方式。

本文采用CC-BY-SA-3.0协议,转载请注明出处
Author: Sally