欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Mysql数据库渗透及漏洞利用总结

来源:本站整理 作者:佚名 时间:2019-03-07 TAG: 我要投稿

Mysql数据库是目前世界上使用最为广泛的数据库之一,很多著名公司和站点都使用Mysql作为其数据库支撑,目前很多架构都以Mysql作为数据库管理系统,例如LAMP、和WAMP等,在针对网站渗透中,很多都是跟Mysql数据库有关,各种Mysql注入,Mysql提权,Mysql数据库root账号webshell获取等的,但没有一个对Mysql数据库渗透较为全面对总结,针对这种情况我们开展了研究,虽然我们团队今年正在出版《网络攻防实战研究——漏洞利用与提权》,但技术的进步有无止境,思想有多远,路就可以走多远,在研究mysql数据库安全之余,对Mysql如何通过msf、sqlmap等来进行扫描、漏洞利用、提权、Mysql密码破解和获取webshell等进行了详细研究。

1.1 Mysql信息收集
1.端口信息收集

Mysql默认端口是3306端口,但也有自定义端口,针对默认端口扫描主要利用扫描软件进行探测,推荐使用:

(1)iisputter,直接填写3306端口,IP地址填写单个或者C段地址。

(2)nmap扫描nmap -p 3306 192.168.1.1-254

特定目标的渗透,可能需要对全端口进行扫描,可以使用Nmap对某一个IP地址进行全端口扫描,端口扫描软件还有sfind等DOS下扫描的工具。

2.版本信息收集

(1)msf查看版本信息auxiliary/scanner/mysql/mysql_version模块,以扫描主机192.168.157.130为例,命令为:

ActionScript
use auxiliary/scanner/mysql/mysql_version
set rhosts 192.168.157.130run
(2)mysql查询版本命令:

ActionScript
SELECT @@version`、`SELECT  version();
(3)sqlmap通过注入点扫描确认信息:

ActionScript
sqlmap.py -u url --dbms mysql
(4)phpmyadmin管理页面登录后查看localhost->变量->服务器变量和设置中的version参数值。

3.数据库管理信息收集

Mysql管理工具有多种,例如phpmyadmin网站管理,Navicat for MySQL以及MysqlFront等客户端工具。这些工具有的会直接保存配置信息,这些信息包含数据库服务器地址和数据库用户名以及密码,通过嗅探或者破解配置文件可以获取密码等信息。

4.msf信息收集模块

(1)mysql哈希值枚举

ActionScript
use auxiliary/scanner/mysql/mysql_hashdumpset username rootset password root
run
(2)获取相关信息

ActionScript
use auxiliary/admin/mysql/mysql_enumset username rootset password root
run
获取数据库版本,操作系统名称,架构,数据库目录,数据库用户以及密码哈希值。

(3)执行mysql语句,连接成功后可以在msf执行sql语句,跟sqlmap的--sql-shell模块类似。

ActionScript
use auxiliary/admin/mysql/mysql_sql
(4)将mysql_schem导出到本地 /root/.msf4/loot/文件夹下

ActionScript
use auxiliary/scanner/mysql/mysql_schemadump
(5)文件枚举和目录可写信息枚举

ActionScript
auxiliary/scanner/mysql/mysql_file_enum
auxiliary/scanner/mysql/mysql_writable_dirs
没有测试成功过,需要定义枚举目录和相关文件,觉得基本没有啥用。

1.2Mysql密码获取
1.2.1暴力破解

Mysql暴力破解主要有几种:

1.网页在线连接破解

可以使用burpsuite和phpMyAdmin多线程批量破解工具。 下载:https://portswigger.net/burp/、http://pan.baidu.com/s/1c1LD6co

2.msf通过命令行进行暴力破解

msf破解mysql密码模块auxiliary/scanner/mysql/mysql_login,其参数主要有BLANK_PASSWORDS、BRUTEFORCE_SPEED、DB_ALL_CREDS、DB_ALL_PASS、DB_ALL_USERS、PASSWORD、PASS_FILE、Proxies、RHOSTS、RPORT、STOP_ON_SUCCESS、THREADS、USERNAME、USERPASS_FILE、USER_AS_PASS、USER_FILE、VERBOSE参数。对单一主机仅仅需要设置RHOSTS、RPORT、USERNAME、PASSWORD和PASS_FILE,其它参数根据实际情况进行设置。

(1)场景A:对内网获取root某一个口令后,扩展渗透

ActionScript
use auxiliary/scanner/mysql/mysql_loginset RHOSTS 192.168.157.1-254set password rootset username root
run
执行后对192.168.157.1-254进行mysql密码扫描验证。

(2)场景B:使用密码字典进行扫描

ActionScript
use auxiliary/scanner/mysql/mysql_loginset RHOSTS 192.168.157.1-254set pass_file /tmp/password.txtset username root
run
3.使用nmap扫描并破解密码

(1)对某一个IP或者IP地址段进行nmap默认密码暴力破解并扫描

ActionScript
nmap --script=mysql-brute 192.168.157.130nmap --script=mysql-brute 192.168.157.1-254
(2)使用root账号root密码进行mysql密码验证并扫描获取指定IP地址的端口信息以及mysql数据库相关信息

ActionScript
nmap -sV --script=mysql-databases --script-argsmysqluser=root,mysqlpass=root 192.168.157.130
(3)检查root空口令

ActionScript
nmap --script mysql-empty-password 192.168.195.130
4.使用hscan工具对mysql口令进行扫描,需要设置扫描IP地址段以及数据库口令字典及用户名字典。

1.2.2源代码泄露

1.网站源代码备份文件

一些网站源代码文件中会包含数据库连接文件,通过查看这些文件可以获取数据库账号和密码。一般常见的数据库连接文件为config.php、web.config、conn.asp、db.php/asp、jdbc.properties、sysconfig.properties、JBOSS_HOME\docs\examples\jca\XXXX-ds.xml。以前有一款工具挖掘鸡可以自定义网站等名称对zip/rar/tar/tar.gz/gz/sql等后缀文件进行扫描。

2.配置备份文件

使用ultraedit等编辑文件编辑数据库配置文件后,会留下bak文件。

1.2.3文件包含

本地文件包含漏洞可以包含文件,通过查看文件代码获取数据库配置文件,进而读取数据库用户名和密码。

1.2.4其它情况

有些软件会将IP地址、数据库用户名和密码写进程序中,运行程序后,通过cain软件进行嗅探,可以获取数据库密码。另外Mysql客户端管理工具有的管理员会建立连接记录,这些连接记录保存了用户名、密码和连接IP地址或者主机名,通过配置文件或者嗅探可以获取用户名和密码。

[1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载