电子数据取证每日一练—服务器取证6-K8S集群

admin 2025年3月10日00:11:08评论0 views字数 5872阅读19分34秒阅读模式

参考学习

K8S服务器集群取证实战—2024版安全村专刊

https://blog.csdn.net/SinnetCloud/article/details/105580566

什么是K8S

电子数据取证每日一练—服务器取证6-K8S集群

Go语言开发的容器集群管理平台,管理多个主机上的容器化应用。

K8S核心概念

命名空间(NameSpace)

用于资源隔离。默认生成四个ns:

  • default:默认命名空间,所有未指定NameSpace的对象都会被分配在default命名空间

  • kube-system:系统命名空间,所有由Kubernetes系统创建的资源都在这里

  • kube-public:公共命名空间,该空间下的资源可以被所有人访问(包括未认证用户)

    Network Policy是一种关于Pod间及外部与Pod间如何通信的规范。通过定义Network Policy,你可以限制不同命名空间下的Pod之间的访问。例如,你可以创建策略来限制某个命名空间中的Pod只能被另一个特定命名空间中的Pod访问,或者阻止任何跨命名空间的流量。

  • kube-node-lease:该命名空间含有与每个节点关联的Lease对象。节点租用允许kubelet发送heartbeat(心跳),以便控制平面能检测节点故障。

  • kubernetes-dashboard:是一个图形用户界面,简化了与 Kubernetes 控制台的交互过程。它提供了一个易于使用的视图来管理你的Kubernetes集群、应用和服务等资源。你可以使用它进行操作而无需直接输入复杂的命令行指令。

    在“kubernetes-dashboard”命名空间内通常会创建以下几种类型的K8s资源:

    • Service: 该服务定义了 Dashboard 能够通过何种方式被访问。

    • Deployment: 运行 Dashboard 的实际应用程序部分。

    • ConfigMap 和 Secret: 可能存储凭证、配置信息等敏感数据。

Pod

是K8S系统中工作最小单元,容器存放在Pod里,

Deployment

控制Pod,使得Pod拥有多副本、自愈、扩缩容等能力

Service

将一组Pod公开为网络服务的抽象方法,K8S内部署应用后,需要借助Service将对外访问的接口暴露,让用户通过节点IP访问应用,同时K8S的服务发现和负载均衡由Service实现

Ingress

实现域名方式访问K8S内部应用

PV

持久卷(Persistent Volume),是一个集群资源,代表的是集群中的一个具体存储单元。它可以由管理员预先创建,也可以通过StorageClass动态生成。PV独立于任何单个Pod的生命周期,并且可以被整个集群中的Pod使用,不受命名空间限制

PV定义了实际的存储资源,比如大小、访问模式(例如只读、读写等)、后端存储类型(如NFS、iSCSI、云存储等),以及回收策略(如保留或删除数据)等属性

PVC

是用户对PV资源的请求或声明它类似于Pod对于计算资源(CPU和内存)的需求。用户通过PVC来申请具体的存储需求,包括存储的大小、访问模式等

PVC有命名空间隔离性,这意味着它们只能被同一命名空间中的Pod使用。当创建PVC时,如果没有指定命名空间,默认会创建在default命名空间中

ConfigMap

抽取应用(例如:nginx、redis)的配置文件,实现配置文件的自动同步。通过ConfigMap,用户无需进入Pod内部进行配置文件修改,只需要修改相应的CondifMap

Secret

存储敏感数据,密码、token、密钥等

常用命令

K8S的命令是在master节点上执行,命令以kubectl开头

  • get命令,获取基本信息

kubectl --version #查看K8S版本
kubectl get nodes #查看节点和服务版本信息
kubectl get pods -A #查看所有命名空间下的所有pod,-A即--all-namespace,默认显示default下的pod
kubectl get pods -n namespace #查看指定命名空间下的pods
kubectl get pods -n namespace -o wide #查看指定命名空间下的pods,并包含附加信息,如IP、节点名等
kubectl get svc -n namespace #查看指定命名空间下的网络配置,包括类型、端口映射
Type分为NodePort和ClusterIP,前者表示可以通过任意节点IP地址访问到Pod,后者为集群内部使用,只能通过ClusterIP访问
kubectl get pods podname -n namespace -o yaml #查看指定命名空间下指定Pod,以yaml格式显示,用于查看Pod的详细配置
kubectl get deploy -A #查看所有命名空间下的deployment
  • apply命令,部署或更新应用

kubectl apply -f xxx.yaml #使用xxx.yaml中的配置,用于应用部署和更新服务
kubectl apply -f <dir> #目录下的.yaml/.yml/.json文件都会被使用
  • describe命令

kubectl describe pod pod-name -n namespace #查看pod详情,状态、卷挂载、MySql密码等
  • exec命令

kubectl exec -it pod-name -c container-name -n namespace /bin/bass #TTY方式进入指定Pod内的指定容器
  • expose命令

kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort
# 将Pod的80端口映射到容器的8080;service会代理Pod的80端口并开放一个随机端口供集群外部访问服务
  • cp命令

kubectl cp filename namespace/podname:podpath
# 将主机上的文件拷贝到指定路径,反过来就是容器里的文件拷贝到主机上

K8S集群取证方法

节点联通

每个镜像单独仿真起来。需要提前获知各节点的IP,因为K8S在部署时候,需要给各个节点设置静态IP,并在/etc/hosts文件内添加各节点主机名和IP地址对应关系,所以可以通过ip addr命令或直接查看任意节点的hosts文件来提前获知。但通常来说,在使用厂商软件解析镜像的时候,一般都能解析出各个节点设置的静态IP。

集群基本信息获取

这一步目的是了解集群的基本情况,主要收集:主机基本信息、命名空间、Pod、deployment、容器等

获取网站源代码

  • 可以通过查看K8S的配置集ConfigMap内中间件配置文件来定位网站源码存放路径

  • 有些集群中可能没有ConfigMap,这种情况下查看pod详细信息

从中找出pod内的文件挂载路径,在该路径下找网站源码

kubectl describe pod nginx-drewsg -n default

具体的挂载方法是通过PVC实现的,通过下面的命令查看pvc详情,找到对应的PV

kubectl describe pvc claimName -n namespace-name

再通过下面的命令查看PV信息,找到持久化卷的路径和节点

kubectl describe pv Volume -n namespace-name

这样就可以获知源码所在哪个节点的哪个路径下

  • 直接进入pod内的nginx容器

kubectl exec -it xxxxx -c nginx -n xxxxxx /bin/bash

获取数据库

获取数据库首先要拿到数据库的账号密码以及对外映射端口,有两种方法:

  1. 通过网站源码的数据库连接配置文件

  2. 通过kubectl describe pod pod-name -n namespace-name或者kubectl get pod pod-name -n namespace -o yaml

获取数据库端口映射可以用kubectl get svc -n namespace

然后通过Navicat连接数据库,转储即可

网站重建

转储网站源码和数据库可以进行重建,但是这里讲在集群服务器上重启网站

  1. 首先kubectl get pod -n namespace-name检查Pod运行状态是否为running

  2. 检查网站数据库连接配置文件是否正确

  3. 检查网站中间件配置文件是否正确

  4. 找网站暴露到节点的端口号和type类型,这里需要将Type设置为NodePort

  5. 注意Pod内的中间件容器内中间件服务(例如Nginx服务)需要重启

  6. 如果需要域名访问,kubectl get pod -A检查集群是否安装ingress,kubectl get ingress -A检查是否配置ingress,没有问题即可在hosts文件做域名映射

题目

    选择2025年獬豸杯服务器部分(实质上只有前五个题目是K8S,后面都是宝塔面板,四个网站的操作重复性较高,可以熟练网站重建流程)

网络配置

将虚拟网络改为NAT模式,设置为192.168.2的网段

主节点为192.168.2.199,DHCP从.199开始

电子数据取证每日一练—服务器取证6-K8S集群

1.该集群主节点操作系统版本是?[标准格式:100.100.100]

7.9.2009

电子数据取证每日一练—服务器取证6-K8S集群

2.该集群创建时间是?[标准格式:0000-00-00T00:00:00Z]

2024-06-24T11:28:11Z

集群创建时,自动生成4个命名空间,查看它们的创建时间就可以了

电子数据取证每日一练—服务器取证6-K8S集群

3.该集群共有多少个命名空间?[标准格式:100]

7

电子数据取证每日一练—服务器取证6-K8S集群

4.该集群所有命名空间内总共有多少个pod?[标准格式:100]

19

电子数据取证每日一练—服务器取证6-K8S集群

5.请给出该集群所使用的cni网络插件及其版本?[标准格式:abc-V1.1.1]

flanner-V1.0.0

fannel是K8S常用的cni网络插件,kube-flannel-ds-xxxxx指三个节点的flannel

电子数据取证每日一练—服务器取证6-K8S集群

6.其中打金平台的后台登录地址跳转文件是?[标准格式:abc.php]

WIdbdgd1Us.php

火眼分析得知node1和node2上使用宝塔面板创建了总共四个网站

电子数据取证每日一练—服务器取证6-K8S集群

先看node1的宝塔,网站的nginx服务是暂停的,需要启动。然后在"C:WindowsSystem32driversetchosts"域名映射

电子数据取证每日一练—服务器取证6-K8S集群

第一个域名网页写JinRui Coin,是一个虚拟币网站

第二个域名网页写菲华国际

再看node2的宝塔,分别是交友盲盒和贷款,猜测菲华国际为打金网站

查看网站日志找到后台管理登录

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

在宝塔面板用文件内容搜索,确定为WIdbdgd1Us.php

电子数据取证每日一练—服务器取证6-K8S集群

7.其中打金平台密码加密算法是?[标准格式:abc]

sha1

定位systemlogin

电子数据取证每日一练—服务器取证6-K8S集群

再定位login,第一个PHP文件

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

8.其中打金平台中"13067137585"用户的累计产量有多少?[标准格式:100.00]

43813.52

Navicat连接数据库,修改admin密码为123456

电子数据取证每日一练—服务器取证6-K8S集群

登录后台管理系统

电子数据取证每日一练—服务器取证6-K8S集群

9.其中打金平台会员组最高溢价比例是多少?[标准格式:10.00]

1.70

电子数据取证每日一练—服务器取证6-K8S集群

10.其中打金平台会员推广人数最多的会员其姓名是?[标准格式:名字]

李奕欣

电子数据取证每日一练—服务器取证6-K8S集群

11.其中打金平台最早一次备份数据库的时间(Asia/Shanghai)是?[标准格式:2024-01-01-01:01:01]

2019-05-06-22:27:57

后台只有一个,到数据库确认一下发现更早的

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

12.其中金瑞币(JINRUI COIN)平台图片上传平台是哪种类型?[标准格式:腾讯云ABC]

阿里云OSS

也是一样通过日志发现后台URL,解密密码的md5是付费记录,找到盐值,发现原本的密码就是123456

电子数据取证每日一练—服务器取证6-K8S集群

登入后台没找到相关信息,搜代码

电子数据取证每日一练—服务器取证6-K8S集群

13.其中金瑞币平台手机直充接口是什么?[标准格式:http://xxx.xxx.xxx/xxx]

http://op.juhe.cn/ofpay/mobile/onlineorder

后台也找不到,翻代码

电子数据取证每日一练—服务器取证6-K8S集群

14.其中金瑞币平台后台登录地址是?[标准格式:http://xxx/xxx/xxx.xxx]

http://www.gsjksu2kig.com/admin.php/login/index.html

15.其中金瑞币平台中密码加密盐值是?[标准格式:AbC1d]

GWwRbMOPJYZCvE5gembG

电子数据取证每日一练—服务器取证6-K8S集群

16.其中金瑞币平台中交易手续费是百分之多少?[标准格式:100]

36

电子数据取证每日一练—服务器取证6-K8S集群

17.其中金瑞币平台中目前有几种充值方式?[标准格式:100]

3

电子数据取证每日一练—服务器取证6-K8S集群

18.二号集群节点有源代码的网站目录有几个?(正在运行的除外)[标准格式:1]

5

find搜索index.html,正在运行的是宝塔中的两个站点,发现除了/www/wwroot中的两个,opt下还有很多

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

19.二号集群节点memcached端口是?[标准格式:100]

11211

电子数据取证每日一练—服务器取证6-K8S集群

20.盲盒平台中余额最多的用户是?[标准格式:AbC1d]

ZrAuyMT1tyo

尝试admin直接到后台登录,数据库数据量不大,直接从数据库找就行

电子数据取证每日一练—服务器取证6-K8S集群

21.盲盒平台可选二级域名有多少个?[标准格式:100]

13

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

22.盲盒平台的支付密钥是?[标准格式:AbC1d]

LDAWIucAQQGQp7rEE4nSlvzQMKZxTxopqNSwjL8PcAIBbVLJkh

电子数据取证每日一练—服务器取证6-K8S集群

23.盲盒平台中拥有分站的用户名是?[标准格式:123abc]

5432ef

这个题从数据库不太好看出来了,还是要进后台

电子数据取证每日一练—服务器取证6-K8S集群

报错输出密码Hash,然后在数据库中修改pwd即可

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

24.借贷平台(www.jiedai0rmr.com)中验证码发送接口域名是?[标准格式:http://xxx.xxx.xxx/]

http://api.smsbao.com/

还是从日志找后台URL

电子数据取证每日一练—服务器取证6-K8S集群

删除密码验证部分,任意密码登录,成功进入后台,但是没有发现验证码配置

电子数据取证每日一练—服务器取证6-K8S集群

还是搜索文件内容,发现发送接口类

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

25.借贷平台后台登录密码的加密算法中共使用了多少次hash函数加密?[标准格式:10]

4

登录逻辑里使用getpass()函数获取密码

电子数据取证每日一练—服务器取证6-K8S集群

三次md5,一次sha1,总共4次

电子数据取证每日一练—服务器取证6-K8S集群

26.接上题,借贷平台中后台登录的密码额外加密字符串?[标准格式:123ABc+]

26XBAmVMs+n_

电子数据取证每日一练—服务器取证6-K8S集群

27.借贷平台中一共有多少借款订单?[标准格式:100]

43

电子数据取证每日一练—服务器取证6-K8S集群

28.借贷平台中"包玉莲"的收款卡号是?[标准格式:1000]

15056258898

电子数据取证每日一练—服务器取证6-K8S集群

29.借贷平台中贷款最大限额是多少?[标准格式:100]

350000

电子数据取证每日一练—服务器取证6-K8S集群

30.请综合该集群一共有多少个网站数据库?[标准格式:100]

7

数据库都在.200这台主机上,所以宝塔面板拿到root密码Navicat直接连

电子数据取证每日一练—服务器取证6-K8S集群
电子数据取证每日一练—服务器取证6-K8S集群

原文始发于微信公众号(金星路406取证人):电子数据取证每日一练—服务器取证6-K8S集群

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月10日00:11:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   电子数据取证每日一练—服务器取证6-K8S集群https://cn-sec.com/archives/3819105.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息