文章总结: 这篇文章详细介绍了2025年’数证杯’电子数据取证分析大赛中服务器取证的参考方法,重点讲述了如何重构一个包含master节点和多个node节点的Kubernetes集群环境。作者解决了镜像拉取失败、NFS存储连接问题、数据库连接问题等部署问题,并回答了20个与该环境相关的取证问题,包括节点信息、密码修改时间、Docker配置、数据库信息等。文章提供了详细的命令和截图,对于学习Kubernetes集群管理和电子数据取证有很好的参考价值。
综合评分: 89
文章分类: 应急响应,其他
2025第二届“数证杯”电子数据取证分析大赛初赛服务器取证参考WP
赛查查
2025年11月21日 09:01
北京
以下文章来源于XiAnG学安全
,作者X
XiAnG学安全
.
“学不可以已”
服务器重构
一共四个检材,服务器检材01是master,02是node1,03是node2,04是NFS服务器
通过查看hosts文件得到ip段
在VMware里面更改一下网卡设置,将IP段设置到192.168.50,仿真的时候给虚拟机分配这个网卡
仿真之后看下nodes状态,全都是Ready
查看所有的namespace
查看所有的deployment,captcha-bot、redis、kubernetes-dashboard、nfs-client-provisioner有问题
查看所有pods,发现有3个报错的,还有1个面板的镜像拉取失败
先搞面板
kubectl logs kubernetes-dashboard-7d89fb7766-6lqgx -n kubernetes-dashboard
查看pod的日志,没有最新的
kubectl describe pod kubernetes-dashboard-7d89fb7766-6lqgx -n kubernetes-dashboard
查看这个pod的描述信息,网络的原因拉取不到镜像registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.6.1
这个镜像在node2中有
编辑这个deployment的配置,将imagePullPolicy(镜像拉取策略)从Always修改为IfNotPresent,这样 Kubelet 会先检查本地是否有镜像,如果有就使用,不再通过网络拉取
修改之后会自动重新起一个pod,此时状态就为running了
查看所有的服务,可以看到面板映射出来的端口在节点的30001上
浏览器访问,需要token
创建一个token
kubectl create token dashboard-admin --namespace kube-system
使用这个token登录面板,进来就是一片红
redis这个pod挂载nfs存储失败,NFS存储在192.168.50.83上,为第4个镜像
ping得通,但是NFS连不上
来到第4台机器,服务没问题
但是开了防火墙,只放行dhcpv6-client和ssh这两个服务
直接关掉防火墙,其他几台机器的防火墙也都关掉
但是captcha-bot还是红的
查看pod日志
发现数据库没连上
30627是给mysql的端口
全部的Deployment都没有找到有mysql
在/root目录下有很多部署文件
一键部署和更新
kubectl apply -f .
这样就有mysql80了
配置文件中可以看到root密码为LKKD23mjakl213dmmm
navicat连接
php-nginx是因为持久化存储目录没有/data/k8s_data/default/dujiaoka这个文件夹
在NFS服务器上看确实没有
但是有个tar包备份在root用户家目录
解压到/data/k8s_data/default/
重启php-nginx,最新的报错又是拉取不到镜像
镜像的拉取策略是IfNotPresent
在master节点上有这个镜像
但是pod被调度到了node1和node2上
这两个节点上没有镜像,需要从master分发过去
# 1. 导出镜像
docker save -o php-nginx-7.4.tar webdevops/php-nginx:7.4
# 2. 将镜像传输到 node1 和 node2
scp php-nginx-7.4.tar node1:/tmp/
scp php-nginx-7.4.tar node2:/tmp/
# 3. 在 node1 和 node2 上导入镜像
docker load -i /tmp/php-nginx-7.4.tar
# 4. 验证镜像已导入
docker images | grep php-nginx
此时就只有captcha-bot起不来了
查看pod的日志发现解析不了kk.xilika.cc这个域名
这是tg机器人api的国内中转站点
官方的api还是可以通过token获取到机器人信息
需要联网就不重构了,项目地址:https://github.com/assimon/captcha-bot
题目
1、node1节点的磁盘设备SHA256值前六位是?(字母全大写,答案格式:AAAAAA)
FC9A34
node1节点是服务器02
2、集群配置了多少个node节点?(答案格式:1)
2
查看hosts
3、嫌疑人于什么时间修改master节点的root密码?(使用双位数格式,答案格式:00:00:00)
09:35:59
4、Docker的安装日期是?(使用双位数格式,答案格式:01月01日)
04月08日
5、Docker通过配置守护进程以使用全局代理,该代理地址的端口是?(答案格式:1)
4780
docker info
6、发卡网站使用的Mysql数据库对外访问端口是?(答案格式:1)
30627
kubectl get svc -A查看
7、发卡网站部署使用的镜像名称是?(答案格式:root/root)
webdevops/php-nginx
php-nginx-service这个服务映射出来的31669端口就是发卡网站
使用的镜像为webdevops/php-nginx
8、当前Telegram群管机器人使用的容器ID的前六位是?(答案格式:123abc)
8fadf5
在node2上
火眼静态分析容器ID
9、发卡网站使用的缓存数据库是?(答案格式:mysql)
redis
10、集群中配置的发卡网站代码运行所在的物理目录是?(答案格式:/root/root)
/data/k8s_data/default/dujiaoka
11、Telegram群管机器人配置的API代理域名是?(答案格式:www.xxx.com)
kk.xilika.cc
12、嫌疑人在Telegram上创建的群名称是?(答案格式:比武群)
西门庆交流群
MySQL中有验证机器人的数据库,找到用户验证码记录表,可以看到群名称
13、统计嫌疑人在Telegram上创建的群中2025年6月之后成功入群的人数为?(答案格式:1)
2422
观察字段名可以发现,当captcha_status值为1时,会记录一个captcha_success_time,也就是说captcha_status值为1代表验证成功
SQL查询
14、据嫌疑人交代曾在发卡网上删除过一条订单数据,请找出该删除订单的订单号是?(答案格式:请按实际值填写)
4V8XNK8Q02MD5D2R
在数据库目录下找到两个binlog文件,可以用于恢复mysql中误删数据库和表的数据
将整个mysql80目录导出,使用数据库取证工具分析binlog.000001和binlog.000002
在最新一条记录中删除了一条订单数据
15、发卡网站上2025年6月之后订单交易成功的总金额是?忽略被删除的数据(答案格式:1)
295202
交易表orders
actual_price实付价格,created_at订单创建时间,status值等于4为已完成的订单
SQL查询
16、发卡网站的后台访问路径是?(答案格式:/root)
/admin
在.env中
17、计算出用户密码算法中Salt的值,并进行Base64编码,结果是?(答案格式:请按实际值填写)
lAID2ktDeRlGbcg=
源码中搜索Salt
在BryptHasher.php中找到一个make方法,用于设置密码,密码会拼接getSalt()的值再进行bcrypt加密
找到getSalt()的定义
复制代码出来,输出一下
<?php
function getSalt(){
$a = 'sdahjklhl212jkljass';
$b = hash('sha256', $a, true);
$c = substr($b, 0, 16);
$d = base64_decode('xPfGJQaE1zE5d+8=');
$e = '';
for($i=0;$i<strlen($d);$i++) {
$e .= chr(ord($d[$i]) ^ ord($c[$i]));
}
return $e;
}
echo(base64_encode(getSalt()));
?>
# lAID2ktDeRlGbcg=
18、发卡网站配置的邮件发送人地址是?(答案格式:[email protected])
[email protected]
在前面生成Salt的脚本的基础上,写一个脚本来生成指定密码
<?php
function getSalt(){
$a = 'sdahjklhl212jkljass';
$b = hash('sha256', $a, true);
$c = substr($b, 0, 16);
$d = base64_decode('xPfGJQaE1zE5d+8=');
$e = '';
for($i=0;$i<strlen($d);$i++) {
$e .= chr(ord($d[$i]) ^ ord($c[$i]));
}
return $e;
}
function generateHash($password) {
$salt = getSalt();
return password_hash($password . $salt, PASSWORD_BCRYPT);
}
$password = '123456';
$hash = generateHash($password);
echo($hash);
?>
# $2y$10$2c0ctkx7qQKevDBveRAeguHZUQk1pgpXeohwin2dXGPwsHxPlWAqm
替换到数据库中并保存
登录后台
在配置-系统设置-邮件服务中可以看到发件地址为[email protected]
19、当前发卡网站首页仪表盘中显示的发卡网站版本为?(答案格式:1.1.1)
2.0.5
20、当前发卡网站中绑定的订单推送Telegram用户id为(答案格式:请按实际值填写)
6213151597
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:赛查查 《2025第二届“数证杯”电子数据取证分析大赛初赛服务器取证参考WP》