提权概述
提权,网络术语,提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。
Windows:user –> administrator
Linux:user –> root
提权条件
- 拥有webshell、普通用户权限
- 拥有某些软件的账号密码
- 本地或远程服务器上存在漏洞
- 拥有漏洞利用工具代码
操作系统内核漏洞提权
介绍
利用window系统中没有打补丁的内核溢出漏洞进行攻击。
1.查看当前用户权限
1 | whoami /groups |
2.查看系统安全补丁
1 | systeminfo |
3.与可以进行提权的内核溢出漏洞exp进行对比
https://github.com/SecWiki/windows-kernel-exploits
4.执行EXP
实战演练
- 利用其它漏洞获取一个shell,查看权限为普通用户
1 | meterpreter > getuid |

1 | meterpreter > shell |

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

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

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


Windows操作系统配置错误提权
系统服务配置错误提权
介绍
Windwos系统服务文件在操作系统启动时加载和执行,并在后台调用可执行文件。如果一个低权限的用户对这类系统服务的可执行文件具有写权限,就可以将其替换成任意可执行文件,并随着系统服务的启动获得系统权限。
系统服务权限配置错误有两种可能:
- 服务未运行,攻击者会使用任意服务替换原来的服务,然后重启服务
- 服务正在运行且无法终止,这种情况适用于绝大多数漏洞利用场景,攻击者通常会利用DLL劫持技术并尝试和重启服务来提权
实战演练
- 首先获取了一个shell,具有普通用户权限


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

可信任服务路径漏洞
介绍
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文件。

组策略首选项提权
介绍
管理员在域中新建组策略后,操作系统会自动在SYSVOL共享目录中生成一个XML文件,该文件保存了该组策略更新后的密码,使用AES-256加密。但是微软在2012年公布了AES-256的私钥,导致保存在XML文件中的密码可以被解密。在SYSVOL中可以找到包含cpassword的XML文件。
绕过UAC提权
介绍
在权限不够的情况下,访问系统盘的根目录,Windows目录、Program Files目录,以及读写系统登录数据库等操作都要进行UAC的认证才能进行。
实战演练
- 首先获取一个shell,权限是普通用户权限,但是该用户必须在管理员组中,并且设置UAC为仅在程序试图更改我的计算机时通知我。

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


令牌窃取提权
介绍
这个提权方式是针对Kerberos协议,通过入侵服务器,在客户端登录时窃取客户端的令牌,从而获取其权限。但前提是需要获取SYSTEM权限的令牌。
总结
本篇文章总结了常见的Windows提权方式。
Author: Sally
