安全

使用 Metasploit 攻击 MYSQL 数据库 - 对 Metasploitable 的暴力破解攻击

本文以 Kali-Linux 作为攻击方、Metasploitable2 作为受害方,演示如何使用 Metasploit 框架针对默认运行在 3306 端口的 mysql 数据库进行渗透测试:先扫描版本,再通过暴力破解攻击获取登录凭据并远程连接数据库。

· 2 分钟阅读 · 难度 中级 · 基于 Metasploitable 2

在本次演示中,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
Illustration 1 — Hacker une base de donnée de type MYSQL avec Metasploit - Attaque bruteforce sur Metasploitable

必须设置 RHOSTS 选项,因为 Required 列显示为 yes,而 Current Setting 列目前为空。

要设置某个选项,需要使用 set 命令,后面跟上选项名 RHOSTS,再跟上它的值 192.168.133.128,即我们目标的 IP 地址。(IP 需自行调整)

set RHOSTS 192.168.133.128

如果目标数据库开放的端口不是 3306,则需要使用 RPORT 选项进行更改。

使用 run 命令来启动所选模块。

run
Illustration 2 — Hacker une base de donnée de type MYSQL avec Metasploit - Attaque bruteforce sur Metasploitable

该扫描获取 MYSQL 所使用的版本,不会造成任何危害。

这里获取到的版本是 5.0。

到了这一步,有多种方式可以用来进入数据库。

最直接的方式是使用某个拥有权限的用户(例如 root 用户)的登录凭据。

当然,最常用的方法是暴力破解攻击,即尝试大量不同的用户名/密码组合。

要执行这种攻击,需要使用另一个模块,其路径为 auxiliary/scanner/mysql/mysql_login,需通过 use 命令指定。

use auxiliary/scanner/mysql/mysql_login

与前面的模块一样,最好还是查看一下选项。

show options
Illustration 3 — Hacker une base de donnée de type MYSQL avec Metasploit - Attaque bruteforce sur Metasploitable

需要再次输入远程目标的 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
Illustration 4 — Hacker une base de donnée de type MYSQL avec Metasploit - Attaque bruteforce sur Metasploitable

系统在 Success : 'root: ' 一行提示它已成功登录。

root 后面没有密码,说明该账户没有设置密码保护。这是因为目标是专门设计得极其脆弱的 Metasploitable 2。

既然已经找到了凭据,就可以使用 mysql -u username -h ip_address -p 命令建立远程连接。

mysql -u root -h 192.168.128.133 -p
Illustration 5 — Hacker une base de donnée de type MYSQL avec Metasploit - Attaque bruteforce sur Metasploitable

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

Illustration 6 — Hacker une base de donnée de type MYSQL avec Metasploit - Attaque bruteforce sur Metasploitable

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