在本次演示中,Kali-Linux 系统将作为攻击方,Metasploitable2 系统将作为受害方。
目标是默认运行在 3306 端口上的 mysql 数据库。
本文将使用 metasploit 框架。为此,需要在攻击方系统上打开一个新终端,然后执行 msfconsole 命令。
msfconsole
首先,打开一个辅助模块进行扫描以识别所使用的 mysql 版本会很有帮助。为此,需要使用 use 命令,并指定用于执行扫描的模块路径 module auxiliary/scanner/mysql/mysql_version 。
use auxiliary/scanner/mysql/mysql_version
模块加载完成后,可以使用 show options 命令查看选项,随后需要对其进行设置。
show options

必须设置 RHOSTS 选项,因为 Required 列显示为 yes,而 Current Setting 列目前为空。
要设置某个选项,需要使用 set 命令,后面跟上选项名 RHOSTS,再跟上它的值 192.168.133.128,即我们目标的 IP 地址。(IP 需自行调整)
set RHOSTS 192.168.133.128
如果目标数据库开放的端口不是 3306,则需要使用 RPORT 选项进行更改。
使用 run 命令来启动所选模块。
run

该扫描获取 MYSQL 所使用的版本,不会造成任何危害。
这里获取到的版本是 5.0。
到了这一步,有多种方式可以用来进入数据库。
最直接的方式是使用某个拥有权限的用户(例如 root 用户)的登录凭据。
当然,最常用的方法是暴力破解攻击,即尝试大量不同的用户名/密码组合。
要执行这种攻击,需要使用另一个模块,其路径为 auxiliary/scanner/mysql/mysql_login,需通过 use 命令指定。
use auxiliary/scanner/mysql/mysql_login
与前面的模块一样,最好还是查看一下选项。
show options

需要再次输入远程目标的 IP 地址 RHOSTS。
set RHOSTS 192.168.133.128
需要通过 USERPASS_FILE 选项设置用于尝试登录的密码列表。metasploit 目录中已经有一个合适的列表,其路径为 /usr/share/metasploit-framework/data/wordlists/root_userpass.txt
set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpass.txt
用户名选项 USERNAME 已经设置为 root,如有需要可以更改。
要启动暴力破解攻击,需要再次使用 run 命令。
run

系统在 Success : 'root: ' 一行提示它已成功登录。
root 后面没有密码,说明该账户没有设置密码保护。这是因为目标是专门设计得极其脆弱的 Metasploitable 2。
既然已经找到了凭据,就可以使用 mysql -u username -h ip_address -p 命令建立远程连接。
mysql -u root -h 192.168.128.133 -p

现在可以轻松地浏览数据库管理系统的内容了。

还有其他页面可供了解更多有关渗透测试的内容。
