Linux Server Analysis¶
一、Mysql 数据库¶
除了使用容器运行数据库外,MySQL 还可以直接安装在主机上,直接在Linux 文件目录中留下痕迹。
数据库取证一般遵循以下步骤:
1、系统镜像可以仿真,并且能够直接使用MySQL 进行交互的,考虑去除root 用户密码,使用SQL语句检查整个数据库的内容
2、系统无法仿真的,或者仿真之后无法运行MySQL 的,考虑在不损坏或者已备份MySQL相关目录的前提下,修复运行环境,运行MySQL
3、系统无法仿真或者MySQL 文件目录不完整,单独排查MySQL 配置和数据目录中的文件
- 确定MySQL 数据文件的存放路径: 搜索ibdata1 文件:
find / -name ibdata1
-
确定MySQL 版本:用16进制编辑器打开任意一个.frm 文件,检查0x34 和0x33 的位置,例如0x34 为0xC6,0x33 为0x29 ,则MySQL 版本为0xC629,即5.07.29
-
复制整个MySQL 数据目录,删除ib_logfile 文件,转移到新安装的MySQL 环境中,检索其中的数据
-
跳过root 密码:在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中[mysqld] 下添加
skip-grant-tables
-
重启MySQL 服务,使用root 登录
二、文件服务器(FTP,SMB,NAS)¶
磁盘阵列参考:
FTP¶
可以在CentOS 或Ubuntu 使用vsftpd 配置FTP 服务。FTP服务使用TCP 21端口验证身份信息,使用TCP 20端口传输数据。
- /etc/vsftpd/vsftpd.conf vsftpd 的核心配置文件
- /etc/vsftpd/ftpusers 黑名单文件,此文件里的用户不允许访问 FTP 服务器
- /etc/vsftpd/user_list 白名单文件,此文件里的用户允许访问 FTP 服务器
- /etc/vsftpd.chroot_list 允许访问FTP 服务器的用户列表
** 配置文件也可能直接存放在/etc 目录下
vsftpd.conf 配置文件中的相关设置有:
配置变量 | 配置说明 |
---|---|
local_root | 登录FTP 服务器后所在目录 |
xferlog_enable | Yes: 启用日志 |
pasv_address | 服务器所在IP地址 |
vsftp的日志文件保存在 /var/log/vsftpd.log,其中包含的信息有尝试登录此FTP 服务器的IP地址等
Samba¶
Samba 是使用SMB 协议的一款软件。SMB 协议用来在Linux 与Windows 系统之间无痛共享存储与打印机
NAS¶
NAS 通常用来将大容量磁盘挂载在网络上,形成网络存储。在电子取证领域,时常需要分析大容量磁盘,但其实NAS 本身的配置等内容不常出现。
NAS 本身不代表任何协议,它可以使用FTP,Samba,甚至HTTP 等协议传送文件。
//TODO: 考虑是否有补充的必要
三、防火墙(iptables)¶
四、SSH¶
使用SSH 来远程连接Linux 主机。
被连接的主机:安装SSH server
进行连接的主机:安装SSH client
查看SSH 连接日志、SSH config 文件可以检索到曾经连接过这台主机的客户机IP地址。
常见的几个文件:
文件名 | 说明 |
---|---|
/var/log/secure | 日志文件,记录登录历史记录 |
~/.ssh/config | ssh 配置文件,用来进行快速密钥认证登录,其中可能记录了私钥 |
~/.ssh/authorized_keys | 记录公钥 |
密钥认证基本流程:
使用ssh-keygen 命令生成一对密钥,私钥放在主机A 的config 文件里(当然需要编辑host等字段),公钥放在主机B 的authorized_keys 内,主机A 则可以无需密码通过SSH 连接主机B。
参考:
1、http://www.xlysoft.net/detail/7-314-1194.html 效率源科技 如何对有访问密码的MySQL数据库进行取证
2、https://blog.csdn.net/hancoder/article/details/100988807 ubuntu下ftp的配置