点击上方蓝字“小谢取证”一起玩耍
前言
近年来对WD进行远程勘验的需求越来越多,如何快速对网站取证成为关键所在,本期特邀服务器技术大牛阿玮以常见网站部署场景(宝塔面板搭建的网站、传统Web服务器搭建的网站及Docker容器搭建的网站)为切入点来介绍WD中云服务器远勘的取证思路及关键要素。
引言
WD打击过程中常见云服务器的踪影。面对云服务器取证要快勘快取,由于云服务器控制管理非常容易,可由多人远程维护,很容易在打击过程中被WD以外人员警惕而造成数据灭失。云服务器数据也就成为易丢失数据,并且勘查难度高,提取困难重重。该指南目的在于介绍WD场景下如何做好云服务器远勘的取证工作,帮助大家日常工作中能更高效取证。通过一个典型例子介绍不同部署方式下如何准确快速的提取云服务器上的关键数据。
一、宝塔面板搭建的网站
进入目标服务器后,首先设置“set +o history”,后续指令不会在目标机留下痕迹
1、宝塔程序辨别
· Linux环境下宝塔面板是通过“bt”指令执行相关操作,可以通过执行该命令判断是否安装宝塔面板
· 输入“bt 14”获取面板访问信息
方式二:
· Windows环境下宝塔面板是以“exe”的程序开启
2、面板网站数据库固定
(根据当前已有账号密码进行登录、或现场人员获取、或已有浏览器记录中登录)
· 进入面板后首先查看“网站”、“Ftp”、“数据库”三个模块,了解宝塔面板部署情况
网站模块:查看已经部署网站个数、域名情况等,对部署站点列表进行截图
ftp模块:查看已经配置ftp账号信息,点开密码对记录情况进行截图,并记录ftp账号、密码、目录
数据库模块:查看已经部署数据库,点开密码对数据库记录进行截图,并记录数据库账号、密码,注意root密码也要记录
· 网站数据固定
根据部署站点的目录进行打包固定(*注意可能存在一些非宝塔面板网站目录*)
找到网站目录打包,linux系统通过tar指令打包。
tar cvzf wwwroot-backup.tar.gz /www/wwwroot
打包完成,通过xftp工具或者finalshell工具直接下载。
· 备份数据库
如果没有备份,点击该处,进行备份
制作当前备份,并下载,如果有备份记录,逐一下载
点击下载后浏览器自动下载
如果备份记录较多,并且数据较大,可通过目录完整打包备份(*一定要对当前数据库先做备份*)
宝塔面板数据库默认备份目录在/www/backup/database,同样使用tar指令打包
tar cvzf database-bak.tar.gz /www/backup/database
同样通过xftp工具或者finalshell工具直接下载
· 备份ftp目录下数据
查看根目录路径,同样使用tar方式进行固定,具体可以参考网站及数据库备份方式。
· 其他数据固定(如网站日志、网站配置、历史命令记录等)
二、非宝塔建站的网站
1、发现网站及数据库固定
· 使用netstat -tunpl 指令检测当前运行服务器端口及对应的进程信息
· 关注网站、数据库进程
网站服务进程
数据库进程
· 根据网站服务类型获取当前加载的网站配置,根据配置文件找到网站原始数据
(1)Nginx服务
nginx -T > nginx-all.txt 获取当前加载所有网站配置并导出,,后面将nginx-all.txt导出。根据这份配置文件从中找到关键网站源码、网站日志等并固定
网站日志
根据网站配置对网站源码、网站日志打包固定
上述网站则固定
网站目录/www/wwwroot/xxxx |
网站访问日志/www/wwwlogs/xxxx.log |
(2)Apache服务
Apache Http服务器Linux系统中对应的进程httpd,默认配置httpd.conf
· 通过netstat -tunpl 查找apache http 服务进程
· 查看进程id所属httpd进程情况
· 找到httpd服务进程后,执行/www/server/apache/bin/httpd -V找到加载网站配置文件
HTTPD_ROOT是指apache所在程序根目录
SERVER_CONFIG_FILE 是指apache加载的网站配置文件,使用的是程序根目录相对路径
因此网站加载配置文件绝对路径是/www/server/apache/conf/httpd.conf
· 查看conf文件,如果存在子配置也要查看子配置的网站并进行固定
· 进入子配置一并查找对应网站目录、日志路径,后续根据路径进行固定
(3)Mysql数据库服务
· ps -ef | grep mysqld 查看数据库进程情况
· 找到数据库目录,可进行打包固定
· 通过xftp或者finalshell工具下载
三、通过容器所部署的网站
确定是否安装容器docker info,如果返回结果则存在容器
1、发现容器
· 使用docker ps -a 发现所有容器
2、固定挂载目录
· 查看容器详情固定挂载目录docker inspect [容器ID],如数据库容器
· 找到bind字段确定主机系统与容器系统的目录或文件映射关系,主要数据目录及配置文件
· 通过tar工具打包下载相应数据文件夹,
如tar cvzf database.tar.gz /root/volumes/data/mysqldata
3、制作容器镜像并导出
· 通过docker commit [容器ID] [镜像名:标签],如docker commit a8 mysqlbak:v1
提交容器镜像
· 通过docker save 导出文件名 镜像ID,制作镜像包供导出,如docker save -o mysql.bak.tar 22
总结:
针对云服务器取证是为了远程提取重要核心数据。因此如何做到又快又全的提取数据是日常工作必备的手段。该指南梳理常用分析及提取手段,能更好帮助取证人员聚焦重要数据,更高效做好远程固定工作。
敬请各位大佬关注:小谢取证