当前位置: 主页 > 关于效率源 > 行业洞察 > 热点技术

【技术实战】如何对有访问密码的MySQL数据库进行取证?

2018-05-09 17:14

数据库取证

众所周知,数据库是信息系统中不可或缺的部分,随着大数据时代的到来,数据库已经成为犯罪分子的目标,大量数据库被用于存放网络盗窃和网络诈骗中产生的数据;将数据库的数据提取出来,成为了打击犯罪的重要手段之一。


MySQL数据库

MySQL是一种开放源代码的关系型数据库管理系统。从目前的数据库市场占有率来看,Oracle、MySQL、SQL Server三大数据库产品遥遥领先,呈三足鼎立局面。而随着互联网行业的快速发展,MySQL因其开源免费易用等优势,市场占有率不断攀升,成为互联网公司最受欢迎的数据库。而在不少的犯罪案件中我们也常常看到MySQL数据库的身影。

今天,小编就要跟大家分享的是一种MySQL数据库数据提取的方法。


案例背景

某案件需要对已扣押的本地服务器中MySQL数据库存进行取证,办案人员急需获取镜像中MySQL数据库的数据记录,但是却无法找到MySQL数据库的登录密码

需求:获取镜像中MySQL数据库的记录

难题:如何对有访问密码的MySQL数据库进行取证?

检材:服务器镜像文件一份


案例思路分析

因为没有数据库登录密码,无法获取数据库数据。为了保证数据库数据的完整性,并且能够通过SQL语句方便快捷查询到用户所需的数据,我们需模拟出与嫌疑人相同的数据库环境。针对上述案例,我们可以通过附加mysql数据库并修改密码的方法来获取数据库数据,具体操作思路和步骤如下:

提取案例服务器中数据库文件;

将提取的数据库文件附加到新的电脑;

附加完成后重置MySQL的密码;

登录MySQL查看导出数据库记录。

从上述案件中得知,已经获取案件相关服务器镜像,因此只需附加mysql数据库并重置登录密码即可提取数据库数据。下面将详细讲述这两个步骤的具体操作方法。


具体操作步骤


附加MySQL数据库

1)在目标电脑上安装与嫌疑人使用的数据库相同版本的数据库,mysql安装过程本文档不详细介绍,网上很多mysql的安装教程;

2)MySQL安装完毕后,断开MySQL服务。‘C:\ProgramData\MySQL\MySQL Server 5.7\Data’文件夹为MySQL数据库的数据目录,将需要附加的数据库数据文件复制拷贝到该文件夹中;

3)重新启动MySQL,若能正常启动,即附加成功。

PS:附加数据库的注意事项

1)如何快速确定镜像中MySQL的存放路径?

mysql数据库都具有ibdata1这个关键文件,可以通过检索这个文件快速定位到mysql数据文件的存放路径;

2)如何确定嫌疑人使用的MySQL数据库具体版本号?

安装在目标电脑上的MySQL版本号需要和镜像中的MySQL数据库版本相同, 确定mysql数据库版本的方法:使用winhex打开任意一个提取到mysql数据库中的.frm文件,如图所示:

11.jpg

3)重启MySQL报错怎么解决?

在将数据文件复制完毕后,重启数据库时如若报错,可在任务管理器中将mysqld.exe进程结束后把复制过来的日志文件删除或剪切到其他位置,再次启动MySQL服务,此时MySQL服务可正常启动,附加成功。如图所示:

22.jpg

2

重置MySQL数据库登录密码

附加MySQL数据库后,需要登录密码才能访问数据库数据,因为没有登录密码,因此需要重置MySQL数据库的登录密码到达访问提取数据库记录数据的目的,具体步骤如下:

1)修改MySQL数据库的C:\ProgramData\MySQL\MySQL Server 5.7中的my.ini配置文件,然后将修改好的my.ini复制到C:\Program Files\MySQL\MySQL Server 5.7中;如图所示将配置文件中的basedir修改为MySQL数据库应用程序所在路径,datadir修改为MySQL数据库数据文件存放路径:

33.jpg

2)在cmd命令行中切换至C:\Program Files\MySQL\MySQL Server 5.7\bin路径,关闭mysql服务执行命令mysqld --skip-grant-tables,该命令的作用是跳过用户验证。注意在执行了该命令后此cmd命令行无法继续操作了,需要重新打开一个cmd命令行切换到bin路径下;

44.jpg

3)在新打开的cmd命令行,直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库;

55.jpg

4)输入show database;可以看到所有数据库说明成功登录;

66.jpg

5)其中mysql库就是保存用户名的地方。输入use mysql;选择mysql数据库;

77.jpg

6)更改root密码;MySQL版本高于5.7.1输入update user set authentication_string=password("123456") where user="root";

88.jpg

7)刷新数据库mysql> flush privileges;之后退出MySQL: mysql>quit;此时MySQL密码已经重置成功;

99.jpg

PS:重置MySQL密码的注意事项

1)针对‘重置MySQL步骤6’中更改root密码,如若MySQL版本低于5.7,需输入update user set password=password("123456") where user="root";

2)在重置密码后重新启动MySQL服务,若MySQL服务无法启动;造成该错误的原因是日志文件发生错误,采用之前同样的解决方法:在任务管理中将mysqld.exe进程结束后把日志文件删除或者剪切到其他路径。

100.jpg


3

启动MySQL服务

1)重置MySQL的登录密码,启动MySQL服务,此时可以使用Navicat for MySQL管理器输入账号与修改后的密码后即可连接到MySQL数据库,访问数据并提取相关记录。

111.jpg

2)打开数据表,查看数据。

1222.jpg

注意事项

在采用上述方法对MySQL数据库进行取证时也要注意以下几点:

1、确保从服务器中获取到的数据库的完整性,不然会导致附加失败;

2、确保搭建环境附加数据库的电脑具有足够的空间,不然会因为空间不足导致附加失败;

3、确保搭建环境中MySQL数据库版本与服务器中的MySQL数据库版本完全一致;

4、以上操作涉及到很多专业技能方面的,如有必要可找寻专业的公司协助完成。