利用mysql提权的前提就是,服务器安装了mysql,mysql的服务没有降权,是默认安装以系统权限继承的(system权限),并且获得了root的账号密码。
如何判断一台windows服务器上的mysql有没有降权?
cmd命令net user 如果存在 mysql mssql这样用户或者类似的,通常就是它的mssql mysql服务已经被降权运行了。
如何判断服务器上是否开启了mysql服务?
开了3306端口,有的管理员会把默认端口改掉;另一个判断方法就是网站是否支持php,一般支持的话都是用mysql数据库的。
如何查看root密码?
在mysql的安装目录下找到user.myd这个文件,root就藏在里面,一般是40位cmd加密,一些php网站安装的时候用的是root用户,在conn.asp config.asp这些文件里。有时会显得很乱,这时就需要自己去组合,前17位在第一行可以找到,还有23位在第三行或是其他行,自己继续找。
可以直接用php脚本里“mysql执行”,或是上传个UDF.php,如果网站不支持PHP,可以去旁一个php的站,也可以把UDF.php上传到别的phpshell上也可以。
填入帐号密码之后,自然就是安装DLL了,点击“自动安装Mysql BackDoor” 显示导出跟创建函数成功后,紧接着执行增加用户的命令即可。
注意:5.0版本以下(包括5.0的)默认c:\windows\系统目录就可以了,5.1版本以上的不能导出到系统目录下创建自定义函数,只能导出在mysql安装目录下的lib/plugin目录中。
例如:D:/Program Files/MySQL/MySQL Server 5.1/lib/plugin/mysql.dll
如果密码看不见,或是组合不到40位,就本地安装一个mysql吧,
1、停止mysql服务
2、替换下载下来的3个文件(user.MYI user.MYD user.frm)
3、cmd切换到bin目录下,进入mysql安全模式,cmd命令:mysqld-nt --skip-grant-tables
4、重新打开一个cmd 切换到bin目录下,cmd命令:mysql -u root版本不同有可能是:mysql -uroot -proot
5、最后查询一下就出来了select user,password from mysql.user;
多读前辈的文章,受益非浅。
Re: 求root提权教程
从你的描述看,你是在尝试对一个服务器做权限提升,目标是从mysql root权限拿到系统root shell。因为“只支持php”,可能是环境里只能跑php脚本,而没法直接执行系统命令。 几点建议供参考: 1. **利用mysql的UDF提权** 既然你有mysql root密码,可以尝试通过导入自定义函数(UDF)来执行系统命令。需要确认mysql版本是否支持,以及插件目录是否可写。常见的做法是编译一个.so或.dll文件(对应linux/windows),然后用`CREATE FUNCTION`加载。你提到安装dll失败,可能是平台不匹配(比如linux服务器用不了dll)或者目录权限问题。可以先`select @@plugin_dir`看看插件目录,再用`into dumpfile`把文件写进去。 2. **利用mysql的into outfile写webshell** 如果你的目标是通过web访问执行命令,可以用`select ... into outfile`向web目录写入一个php一句话木马。前提是知道web根目录并且mysql用户有写权限。之后访问那个php文件即可执行系统命令。 3. **考虑内核漏洞提权** 如果系统本身比较老,可以查看内核版本后尝试对应的exploit(如脏牛、overlayfs等)。但需要你先把exploit传到服务器上再编译执行,这通常需要
页:
1
[2]