22HuNan服务器
检材链接
链接:https://pan.baidu.com/s/1WD4M4u4gYOrwejX-oWz6rQ
提取码:huri
--来自百度网盘超级会员V4的分享
案情介绍
基本案情:某地警方接到报案称某网站疑似传销平台,经调查,获取到网站服务器镜像,请分析镜像,回答以下问题。
题目解析
前期工作(相信大佬都轻轻松松,这里不再过多介绍)
镜像仿真+火眼解析+基础信息查看+历史命令查看+网络配置+xshell连接
三个镜像,全部放到火眼里解析,前面两个web的猜测是网站服务器,最后一个是数据库服务器
我们xftp一下,看看各个服务器中都有什么
web.e01(乍一看是前端的字样,点进去一看确实有dist文件,确定是前端)
web.e02(前面那个是前端,那么这个就是后端程序了)
的确是一个后端程序,因为看到了jar包
至此,基本可以确定网站的架构--前后端分离,站库分离,数据库在data.e01的镜像里
开始做题
1、网站搭建所使用的JDK的版本号。(答题格式:1.1.1)1.8.0
百度一下,jdk-8u281是1.8.0版本
2、请找出该网站与用户通信的令牌秘钥。(答题格式:QIANXIN_ADMIN_GOOD_ADMIN_1123!@#_ABCD)
这里考的其实是jar的配置文件,与后面的网站重构有一定联系
来到后端程序的服务器,发现一共有三个jar包,全部下载,并解压,看看里面有什么
manger的jar包
merchant的jar包
有两串,不知道是什么,先放一放,但是大概率是mangager的那个,一般admin、mangager这种字样的更加靠近正确答案
3、请找出网站的日志存放路径。(答题格式:/www/qianxin/logs)
这题感觉有点问题,不管
一般网站的日志会放在中间件的目录下
4、网站后台登录页面,发起获取验证码请求的js脚本文件的SHA256哈希值是多少。(答题格式:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92)
这里就开始需要网站重构了,说一下整体的思路
既然是一个前后端分离,又和数据库分离的网站,我们从最后端的数据库开始
数据库服务器的端口开放情况看到了熟悉的3306和67379,一个是mysql另一个是redis,猜测一下大概率后端的jar包是一个springboot的框架,好像一般都这么设置
数据库服务起了,接着是后端,jar包的启动大有讲究
先去看服务器的历史命令,发现有start.sh启动脚本,脚本也很容易找到,就在jar包的那个目录
一开始我模仿嫌疑人的操作,直接./start.sh启动,因为后面网站一直起不来,问了师兄,建议直接java -jar启动
看jar包启动的报错,一个jar包一个启动界面
启动,发现果然是一个springboot的后端程序,依次启动其他两个
ok,现在后端程序起来了,最后是前端的配置
前端是个nginx的服务器,我们直接去找nginx的配置nginx.conf发现主配置文件没什么特别的
但存在include语句,我们定位到conf目录
果然存在配置文件
打开,发现有root 并且定位到了服务器的资源,说明是一个有效的nginx配置文件
打开hosts文件,将server_name定位到自己设置的局域网ip,访问
成功找到后台
这里发现网站后台虽然找到了,但并不代表网站重构成功了
首先我们发现验证码没有,没有验证码,意味着即时知道账号密码也无法进入,卡了好久,水平不足,最后问了服务器的专家,得到解决
主要是碰到问题,我们要懂得怎么去解决
这里使用浏览器的控制台来追踪网站请求F12,还有别忘了启动nginx服务,不然怎么访问都访问不到
分析一下结果,200代表正常,也就是都能访问到,发现这里除了captchaIamge都是正常的,访问的域名都是front开头,也就是前端的资源,而back-admin就是后端,说明后端jar包程序有问题,或者代理不正确
验证码是需要后端程序的逻辑处理的,所以后端一定出了问题,但jar包启动没问题啊,想的应该就是nginx的配置出了问题,改配置
的确配置文件有问题
172开头是原来的ip,需要改成自己的ip,取证重构时必须要注意现在的网络环境并不是和嫌疑人使用时一模一样,需要更改,一般都是这些中间件的配置文件,还有一些数据库连接的配置文件
这里把反向代理改掉,改为后端的ip,最好看看端口对应,把三个nginx的配置全部更改后,重启nginx服务,这时候应该不会报502的错误了,我们来试试!
此时,我们发现之前502的错误成功被修复了!
但之后又出现新的问题,因为验证码图片仍旧未显示!
出现新的报错,说redis服务资源未能请求,发现是验证码请求时报的错
200说明浏览器可以请求到该资源,但仍未显示,那就一定是jar包,也就是后端程序的错误了
此时,我们想起来jar包没有做过任何的修改,连接不到也算正常,我们下一步就修改jar包的配置文件
虽然报错是redis服务,但是因为是有两个数据库,我们把mysql的配置一块更改了
好了,修改完成,启动新的jar包!
这样,验证码就应该能修复了,前端配置良好,后端与数据库的配置也设置过了,这次应该可以了吧
但是,问题又出现了
发现仍旧报这个错误!折腾了好一会儿,发现是宝塔的防火墙,我们赶紧把防火墙关闭
这里发现了一个冷知识
宝塔的防火墙的开关
service firewalld stop可以把宝塔面板的防火墙关闭
但是systemctl disable/stop firewalld并不可以关闭防火墙,需要手动在宝塔面板中关闭
网站重启成功,至于网站的密码,放在了mysql的数据库中,自行解密,不再多说
成功进入后台
5、网站后台一共发布了几篇文章。(答题格式:12)
5篇
6、网站后台显示的“提现审核”模块共多少条记录。(答题格式:1234)
这也是这套题不好的一个地方,这里看到没什么数据,说明数据库的数据并不完整,需要我们还原,这里又涉及到hbase和hadoop集群的启动和命令
关于后面的网站后台数据分析以及hbase的集群启动及相关问题可以看我的另一篇文章《hadoop集群》
这里不再过多叙述!
附上一张本题网站架构图!
对于本套题的收获
这套小小的服务器赛题前前后后做了有两三天,但收获不少
做得慢有做得慢的原因,对java网站不够熟悉,nginx配置文件不熟悉,jar包启动和修改,前后端分离的架构设置
防火墙、ip等的细节差错,和服务器取证的专家相比,差距还是很大的
在取证中难免会遇到报错、不会的情况,这时候如何去寻找错误就很重要
像我们使用F12调试的时候,如果出现500的错误,一般是后端程序,也就是本题中的jar包,而如果出现400的错误,那么一般是代理的问题
这些都是取证中不断总结下来的知识与经验!
补充知识点
jar包程序的修改--网站登录逆向的应用
参考文章:https://zhuanlan.zhihu.com/p/679562855