|
|
|
|
移动端

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

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

作者:效率源来源:今日头条|2018-05-10 17:18

人工智能+区块链的发展趋势及应用调研报告


「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

 

数据库取证

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

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:ProgramDataMySQLMySQL Server 5.7Data’文件夹为MySQL数据库的数据目录,将需要附加的数据库数据文件复制拷贝到该文件夹中;

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

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

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

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

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

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

2.重置MySQL数据库登录密码

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

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

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

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

3.启动MySQL服务

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

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

「效率源技术实战」如何对有访问密码的MySQL数据库进行取证?

注意事项

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

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

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

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

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

【编辑推荐】

  1. 实测分享给你:数据库中的常用操作 如何备份和恢复 详细给你介绍
  2. MySQL实战篇:建立高性能的MySQL技巧
  3. 二十种实战调优MySQL性能优化的经验
  4. 关系型数据库为什么能活这么久?
  5. 2018数据库技术发展趋势
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

高质量程序设计指南:C++/C语言(第3版)

本书以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。它是作者多年从事软件开发工作的经验总结。本书共17章,第1章到第4...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊