编者按
书接上文,此为第四部分:服务器取证与Docker容器分析及网站复建
第四部分:服务器取证与Docker容器分析及网站复建
55.通过对小型集群服务器分析,该服务器系统类型是?(10分)
查看/etc/centos-release文件,得知系统是centos 发行版。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
具体操作系统位数可以通过查看根目录下有无lib64文件来判断。还有办法就是仿真起来系统,执行 uname -a 或者 cat /proc/version来查看位数情况。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
56.通过对小型集群服务器分析,该服务器系统时区是?(10分)
执行命令“timedatectl”即可查看服务器的时区情况。
57.通过对小型集群服务器分析,该服务器的sshd端口是多少?(答案格式:填写数字 如:10) (10分)
通过查看/etc/ssh/sshd_config,发现端口字段被注释了。不太确定端口号,直接开仿真系统来查看。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
执行lsof -i:22,发现确实运行了sshd;或者执行“netstat -lnpt”
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
58.小型集群服务器涉案网站的域名?(答案格式填写小写字母 . 数字组合 如:www.sina.com) (10分)
通过对该镜像的初步查看,管理系统是基于宝塔面板的,于是奔着/www/server去了。结果发现该目录下没有panel目录,想到backup目录可能会有备份,于是去/www/backup/panel/2021-11-24/data/中提取default.db,在domain字段里找到域名。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
59.涉案网站做了反向代理操作,使用的策略是什么?(答案格式:填写汉字 如:负载均衡) (5分)
通过对宝塔配置文件的梳理,发现/www/wwwroot/www.huarun.com的网站文件已被删除,数据恢复失败。按上题思路查找备份文件,打开
/www/backup/file_history/www/server/panel/vhost/nginx/www.huarun.com.conf文件,经过资料查询,确定负载均衡策略为轮询。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
60.Docker中数据库容器的运行日志是在哪里,写出完整路径?(答案格式填写小写字母与数字等组合 如: /www/wwroot123/ab344/) (5分)
通过取证工具发现Docker下的数据库容器。双击容器名称为“huarundb”的容器,这时候会打开其配置文件,在LogPath字段中找到运行日志的目录。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
/var/lib/docker/containers/05821c99dcc43ce6eb571fe19869cd2e877d53f321f2502225c77d42def8ef6d/。
62.涉案网站管理后台登录密码的加密算法?(5分)
由于网站代码几乎被清空,所以我们寄托希望于docker中。使用搜索功能,全局搜索PHP文件,发现存放网站程序的docker容器路径为:
/var/lib/docker/overlay2/29d5af348f07510f0e62ef7451e012dd7266d369d4549475ee4f0f017d50ffb3/diff/var/www/html
根据网站结构判断是ThinkPHP框架,根据经验猜测登录函数存放在 /application/admin/controller/Login.php ,具体加密算法代码在第43行。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
答案:md5(md5($pass.$salt))。
63.涉案网站的数据库是否开启general日志?(答案格式填写是或者否) (5分)
这题自己把自己给坑了,由于我是将数据库复现到本地的环境里,于是误把本地环境变量中的general日志当成涉案环境的,犯了个错误,惭愧惭愧。好久没有捣鼓docker了,相关命令也忘记的差不多了,于是就偷懒请教了大佬,这里大家可以参考他的思路:
将server.E01仿真起来以后,查看IP和开放端口,发现已开放ssh(22)端口,以MobaXterm连接进行演示。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
先看一下docker状态。执行命令“systemctl status docker”,发现状态为未开启,接着执行命令“systemctl start docker”启动docker。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
查看docker容器并尝试启动MySQL所在的容器。执行命令“docker ps -a”查看所有容器,确定MySQL所在的容器,尝试使用命令“docker start 058 -i”启动该容器,结果失败。通过报错内容可知,MySQL容器的my.cnf文件出错。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
修复数据库配置文件。使用命令“docker cp 058:/etc/mysql/my.cnf /tmp/my.cnf”将容器内的配置文件导出到/tmp目录下,通过查看该文件得知是该配置文件的关键字段被注释掉,删除注释符并覆盖原始文件即可。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
启动MySQL容器。执行命令“docker start 058”,这次发现可以正常启动MySQL容器了。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
进入MySQL容器并查看环境变量。执行命令“docker exec -it 058 /bin/bash”进入容器的命令行,通过执行“history”命令找到数据库root用户的密码。使用密码连接进MySQL,执行SQL语句“show variables like 'general_log';”来查看环境变量。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
64.用户名"yw0218"的提现余额是多少元?(答案格式填写数字 保留小数点后二位 如:123.12) (5分)
首先复现涉案环境。众所周知MySQL数据库的物理数据文件为*.myd ,检索镜像中的myd文件,发现存放MySQL的docker容器路径为
/var/lib/docker/volumes/3cef552498685a24b5238ac338effa6169c8be39e71468e3dae184adbe59b2ab/_data/huarun ,导出该文件夹。
建议大家提前准备一个带有宝塔面板的虚拟机。刚好近几天做了一下《2020GA-CNAS 014-1273》,顺手将网站架设在该服务器上复现涉案环境。
创建数据库,上传数据。通过宝塔操作数据库,添加“huarun”数据库,使用文件管理器将我们前面打包的myd文件上传并解压,完成后记得修改权限并删除压缩包。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
添加站点并上传网站程序。创建站点时记得设置PHP版本为5.x,上传解压网站程序并设置好相应的权限。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
修改数据库配置文件及本地hosts。前面我们知道网站程序是ThinkPHP框架的,其数据库配置文件在application/database.php中,同时修改绑定本地hosts。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
访问后发现网站404,经检查网站没有作伪静态处理。具体原因在于,网站程序认为其网站入口应该简写成index,但是相关请求发送到后端时,服务器认为不存在index文件(只有index.php文件)。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
宝塔的站点里开启伪静态。修改站点的伪静态,宝塔已经提前帮我们写好了规则,选择保存即可。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
访问域名,发现是一个基于微盘交易系统、名为“华润”的杀猪盘。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
修改管理员密码。前面了解到管理员密码的加密算法为:
md5(md5($data['password'].$result['utime'])),
生成算法为:明文密码+utime 进行一次MD5,再对该结果进行一次MD5。Navicat连接到数据库,按该算法修改管理员密码:将wp_htgly表的upwd字段值修改为4b96bf63a06b6ae35426838d32bee049,明文密码为123456。
访问后台/admin,使用用户名hr888进入后台。在用户管理页面中检索用户名“yw0218”,找到该用户的余额。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
65.曾经的用户名为"fang25"的用户,其提现银行卡号是多少?(格式:填写数字:111111111111111111) (5分)
翻遍数据库并没有操作日志表,忽然想到前面翻MySQL容器的相关文件夹时发现的general_log日志。
打开/var/lib/docker/volumes/3cef552498685a
24b5238ac338effa6169c8be39e71468e3dae184adbe59b2ab/_data/05821c99dcc4.log,找到用户名“fang25”的原用户名为“tepulang”。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
后台查找用户“tepulang”的银行卡。在用户管理页面的银行卡列表中检索该用户名,找到其银行卡号。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
66.曾经的用户名为"fang25"的用户,其于2021-10-22日充值金额为多少元?(格式:填写数字取整 如:123) (5分)
在用户管理页面的充值列表功能中检索用户名,找到其当日充值的金额。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
67.曾经的用户名为"fang25"的用户,其于2021-10-22日进行利益一笔交易,其成交价格为多少元?(格式:填写数字 保留小数点后三位 如:123.123) (5分)
后台一番查找后并没有找到“成交价格”,怀疑是跟股票相关的专业术语,问了主办方结果遭到出题人吐槽“不要老怀疑我们出错题了”,实际在复现过程中跟前几名选手交流心得时候发现确实有出错题的情况。末了,试探性地问了下,难道不是在后台管理系统里吗?看其痛苦的表情,推测在前台系统里。
修改前台账号密码,进入用户中心查找。继续在wp_userinfo表中修改upwd,根据前台用户加密算法可知,密文是由明文密码+utime,进行一次MD5的结果。
直接修改该表的upwd为:7f0c3851c35a2ad98a9b651fa3cec1f5,明文密码为123456。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
登录前台并查看成交价格。使用账号tepulang/123456 登录失败,提示账号已被冻结,需要“解冻”。通过分析userinfo表发现ustatus字段是区分用户是否被冻结的关键,1为冻结、0为正常,修改为0即可。在用户中心中查找历史明细,找到交易金额。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
68.通过查看后台可以看出一共有多少产品?(答案格式填写数字 如:123) (5分)
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
69.一共有多少用户被禁用?(答案格式填写数字 如:123) (5分)
前面提到过ustatus字段,因此我们只需要统计多少用户这个字段为1。(需要注意的是,如果有测试的数据,适当排除)。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
70.根据设置规则,单笔提现最大金额是多少?(格式:填写数字取整 如:123) (5分)
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
71.交易账号为”Ywei520”的用户在交易平台上委托金额是多少元?(格式:填写数字 保留小数点后一位 如:123.1) (5分)
在订单管理页面的交易流水中,检索该用户,下方会自动统计其委托总金额。
![如解剖麻雀般地回忆一场小型电子数据取证竞赛(4) 如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)]()
【编者按】文中所提到的解题思路和技术运用仅供研究,请勿用于违法犯罪。
原文始发于微信公众号(信息时代的犯罪侦查):如解剖麻雀般地回忆一场小型电子数据取证竞赛(4)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/1200576.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论