MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。Mysql是中小型网站的首选数据库
nmap的指纹识别可以精确的判断数据库的版本号,而metasploit提供的模块的特点就是能够判断数据库是否允许外链
msf > use auxiliary/scanner/mysql/mysql_version
msf auxiliary(mysql_version) > set RHOSTS 10.211.55.10
如果允许外链则可以显示版本号
这个模块没有默认字典,新建了一个简单的passs.txt
msf > use auxiliary/scanner/mysql/mysql_login
如果破解成功
msf > use auxiliary/admin/mysql/mysql_enum
枚举的信息包括mysql版本号,操作系统架构,路径和密码hash等一些信息
这个函数可以导出在当前登陆用户权限下可以查看账户的密码hash,多少有点鸡肋
msf > use auxiliary/scanner/mysql/mysql_hashdump
然后破解
这个模块利用的是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次就能够蒙对一次。
Metasploit提供的exploit适应于5.5.9以下,我这边的mysql版本号为5.5.20,已经超出了版本限制,提权一直不成功,
这个模块的好处是通过用户名和密码可以直接返回一个meterpreter会话
msf > use exploit/windows/mysql/mysql_mof
【本文由安全脉搏s1r1u5 原创 转载请注明来自安全脉搏 分享技术 悦享品质 】