常见的Windows提权

常见的Windows提权

1、简介

提权可以分为纵向提权和横向提权

纵向提权:低权限角色获得高权限角色的角色

横向提权:获取同级别角色的权限

总结:

系统内核溢出漏洞提权
数据库提权
错误的系统配置提权
组策略首选项提权
WEB中间件漏洞提权
DLL劫持提权
滥用高危权限令牌提权
第三方软件/服务提权等

2、系统内核溢出漏洞提权

此提权方法是用系统本身存在的一些漏洞,未曾打补丁而暴露出来的提权方法,依托可以提升权限的exp和他们的补丁编号,进行提权。

通常利用缓冲区溢出的提权步骤如下:

  1. 信息搜集,查看当前权限,进程,版本,补丁等
  2. 根据收集到到的信息确定可利用漏洞
  3. 根据漏洞查找EXP
  4. 使用EXP提权

2.1 信息搜集常用命令

目标系统的名称、版本和补丁:systeminfo | findstr /L /C:OS /c:KB

主机名称:hostname

环境变量:SET

当前用户权限:whoami

查看所有用户:net usr

查看管理员用户组:net localgroup administrators

查看远程终端在线用户:query user

查看进程:tasklist

2.2 搜索EXP

  1. Searchsploit搜索EXP
  2. MSF搜索EXP
  3. exploitDB:https://www.exploit-db.com/

2.3 辅助提权工具

https://github.com/ianxtianxt/win-exp- https://github.com/SecWiki/windows-kernel-exploits
https://www.adminxe.com/CompareSys/
https://i.hacking8.com/tiquan

3、数据库提权

数据库提权就是利用执行数据库语句、利用数据库函数等方式提升服务器用户的权限。

mysql——udf提权
数据库提权——mof提权
数据库提权——反弹端口提权
数据库提权——启动项提权

3.1 数据库提权思路

  1. 如果已经上传了webshell,可以从中获取数据库的连接文件(为了获取数据库密码)

    通过读取一些数据库配置文件:命令规则(data、sql、inc、config、conn、database等)

    —通过mysql数据库的usr表,数据库安装文件:安装目录下data/mysql/user.myd

    frm:描述表结构文件,字段长度,myi:索引信息,myd:数据库信息文件,存储数据信息

  2. 获取当前mysql的一个数据库连接信息,通常包含地址、端口、账号、密码、库名五个信息

  3. 数据库具有create,insert,delete权限

  4. 寻找存在可读写的文件目录一般是在回收站或tmp,用于上传提权工具或者写入脚本

3.2 MySql

3.2.1 udf提权

udf是mysql的一个扩展接口,也称为用户自定义函数,用户通过自定义函数来实现在mysql中无法方便实现的功能,当攻击者已知root账号和密码,就可以利用root权限,创建带有调用cmd函数的“udf.dll”。当我们把udf.dll导出指定文件夹引入mysql时候,其中的调用函数拿出来当作mysql函数来使用。

3.2.2 mof提权

mof文件是mysql数据库的扩展文件

存放路径(C:/windows/system32/wbem/mof/nullevt.mof),其作用是每隔5秒就会去监控进程创建和死亡。

mof文件每5秒就会执行,而且是系统权限,我们可以通过load_file将文件写入/wbme/mof,然后系统每5秒就会执行一次我们上传的mof,mof当中是一段vbs脚本,通过通过控制vbs脚本让系统执行命令,进行提权。

4、错误的系统配置提权

查看是否存在可利用的错误系统配置,例如路径未加引号或未指定可执行文件路径等,总而言之就是因为管理员在配置一些软件的时候存在漏洞导致可以提权的方式。

4.1 Tusted Servuce Paths提权

windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。

提权条件如下:

  1. 服务器路径没有用引号引起来
  2. 服务的路径中存在空格
  3. 服务以最高权限启动后
  4. 当前权限具有到对应目录下写文件

4.2 PATH环境变量提权

PATH环境变量包含很多目录列表,某些执行程序的方法仅依赖PATH环境变量来确定未提供程序路径时搜索程序的位置

5、组策略首选项提权

SYSVOL是活动目录里面的一个用于存储公共文件服务副本的共享文件夹,在域中的所有域控制器之间进行复制。SYSVOL文件夹是在安装活动目录时自动创建的,主要用来存放登录脚本、组策略数据及其他域控制器需要的域信息等。SYSVOL在所有经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享。整个SYSVOL目录在所有的域控制器中是自动同步和共享的,所有的域策略均存放在C:\Windows\SYSVOL\DOMAIN\Policies目录中。

在一般的域环境中,所有机器都是脚本化部署的,数据量通常很大。网络管理员往往会使用域策略进行统一的配置和管理。大多数组织在创建域环境后,会要求加入域的计算机使用域用户密码进行登录验证。尽管如此,安全问题依旧还是存在。通过组策略统一修改的密码,虽然强度有所提高,但所有机器的本地管理员密码都是相同的。攻击者一旦获得一台机器的本地管理员密码,就相当于获得了整个域中所有机器的本地管理员密码。

5.1 常见的组策略首选项(GPP)
  • 映射驱动器(Drives.xml)
  • 创建本地用户
  • 数据源(DataSources.xml)
  • 打印机配置(Printers.xml)
  • 创建/更新服务(Services.xml)
  • 计划任务(ScheduledTasks.xml)
5.2 攻击思路
  • 批量修改域中机器本地管理员密码
  • 获取组策略的凭据
  • 手动查找cpassword
  • 使用powershell获取cpassword
  • 使用Metasploit查找cpassword
  • 使用Empire查找cpassword
  • 其他组策略首选项

6、WEB中间件漏洞提权

详情转文

7、DLL劫持提权

7.1 原理

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

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

7.2 攻击思路

  1. 收集进程加载的dll
  2. msf制作dll木马
  3. 替换dll
  4. 启动软件

8、滥用高危权限令牌提权

令牌时系统临时密钥,相当于账号和密码,用于决定是否允许这次请求和判断这次请求是属于哪个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。令牌最大的特点时不可预测,黑客或软件无法猜测出令牌

假冒令牌可以假冒一个网络中的另一个用户进行各类操作。所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击。

9、第三方软件/服务提权等

第三方软件提权,就是利用第三方软件存在的漏洞来进行获取一个权限的操作。

posted @ 2023-07-09 12:07  B0like  阅读(178)  评论(0编辑  收藏  举报