利用Metasploit来攻击Mysql

2015-06-14 28,907

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。Mysql是中小型网站的首选数据库

0x01.判断Mysql数据库版本

nmap的指纹识别可以精确的判断数据库的版本号,而metasploit提供的模块的特点就是能够判断数据库是否允许外链
msf > use auxiliary/scanner/mysql/mysql_version
msf auxiliary(mysql_version) > set RHOSTS 10.211.55.10
1
如果允许外链则可以显示版本号
1

0x02.如果数据库允许外链,则能暴力破解密码

这个模块没有默认字典,新建了一个简单的passs.txt
msf > use auxiliary/scanner/mysql/mysql_login
1
如果破解成功
4

0x03.枚举数据库信息

msf > use auxiliary/admin/mysql/mysql_enum
1
枚举的信息包括mysql版本号,操作系统架构,路径和密码hash等一些信息
2

0x04.导出密码hash

这个函数可以导出在当前登陆用户权限下可以查看账户的密码hash,多少有点鸡肋
msf > use auxiliary/scanner/mysql/mysql_hashdump
1
2
然后破解
3

0x05.Mysql认证漏洞利用

这个模块利用的是CVE-2012-2122,在一次测试网易的过程中发现一枚,提交给NSRC了。

mysql任意用户密码概率登陆漏洞,按照公告说法大约256次就能够蒙对一次、All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are vulnerable.

             CVE ID: CVE-2012-2122

MariaDB是为MySQL提供偶然替代功能的数据库服务器。MySQL是开源数据库。

MariaDB 5.1.62, 5.2.12、5.3.6、5.5.23之前版本和MySQL 5.1.63、5.5.24、5.6.6之前版本在用户验证的处理上存在安全漏洞,可能导致攻击者无需知道正确口令就能登录到MySQL服务器。

用户连接到MariaDB/MySQL后,应用会计算和比较令牌值,由于错误的转换,即使memcmp()返回非零值,也可能出现错误的比较,造成MySQL/MariaDB误认为密码是正确的,因为协议使用的是随机字符串,该Bug发生的几率为1/256。MySQL的版本是否受影响取决于程序的编译方式,很多版本(包括官方提供的二进制文件)并不受此漏洞的影响。

也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。按照公告说法大约256次就能够蒙对一次。

1

0x06.UDF提权

Metasploit提供的exploit适应于5.5.9以下,我这边的mysql版本号为5.5.20,已经超出了版本限制,提权一直不成功,
2

0x07.利用Mof提权

这个模块的好处是通过用户名和密码可以直接返回一个meterpreter会话
msf > use exploit/windows/mysql/mysql_mof
1

2

 

【本文由安全脉搏s1r1u5  原创 转载请注明来自安全脉搏 分享技术 悦享品质 】

本文作者:s1r1u5

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/33433.html

Tags:
评论  (8)
快来写下你的想法吧!
  • 小鱼 2016-08-29 17:47:54

    msf auxiliary(mysql_login) > set PASS_FILE /root/pass.txt
    PASS_FILE => /root/pass.txt
    msf auxiliary(mysql_login) > exploit
    [-] Auxiliary failed: Msf::OptionValidateError The following options failed to validate: PASS_FILE.
    你好,我在提取密码的时候出现上述错误,请问为何出现这种情况

    • SecPulse 企业认证 2016-08-30 15:22:52

      @小鱼 可能是root/pass.txt路径不对 或者是文本编码不对 check一下文本位置及设置的所有参数

    • 卡布达 2017-08-01 21:10:46

      @小鱼 你的问题解决了没,我现在也遇到这样的问题了,求解答

    • liulangmao915 2018-02-12 20:41:45

      @小鱼 我完全不知道什么原因,然后新建了个new.txt替换原来那个,就行了[em_45]

  • 111 2016-10-26 16:38:42

    那是因为你没有在该目录下创建该文件夹

  • 111 2016-10-26 16:40:23

    为什么我在run mysql_login模块的时候,一直在跳出的是mysql_version的外链提示信息。

  • 111 2016-10-26 16:43:16

    没有问题,已经解决了

  • SecPulse 企业认证 2017-10-25 16:48:13

    利用Msf辅助模块检测和渗透Mysql

s1r1u5

文章数:2 积分: 6

山东安云信息技术有限公司安全攻防研究员

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号