案情介绍

检材解密/挂载

容器密码:GQ7aXryvOCM8qGeXa19K9g&jtHSGtrimps@QxaYt4oRwwKHeN0A$#EPv*u

veracrypt:

alt

alt

服务器取证

网站重构:

一个master + 两个node节点,仿真设置为 NAT 模式,网段设置为192.168.50.1/24

alt

虚拟网络编辑,VMnet8:

alt

配置网关:

alt

k8s namespace kubectl get namespaces

alt

k8s pod kubectl get pods -A

alt

k8s service kubectl get services -A

alt

关闭localhost的防火墙:

systemctl stop firewalld

重建数据库:

kubectl apply -f mysql-c.yaml
kubectl apply -f mysql-d.yaml
kubectl apply -f mysql80-pvc.yaml

mysql 和 redis 的服务都在正常运行:

alt

web服务的yaml php-nginx-deployment.yaml:

# php-nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: php-nginx
  template:
    metadata:
      labels:
        app: php-nginx
    spec:
      containers:
        - name: php-nginx
          image: webdevops/php-nginx:7.4
          ports:
            - containerPort: 80
          env:
            - name: APP_USER
              value: "nginx"
          volumeMounts:
            - name: dujiaoka-pv-storage
              mountPath: /app
            - name: nginx-config
              mountPath: /opt/docker/etc/nginx/vhost.conf
              subPath: vhost.conf
            - name: supervisor-config
              mountPath: /opt/docker/etc/supervisor.d/dujiaoka.conf
      volumes:
        - name: dujiaoka-pv-storage
          persistentVolumeClaim:
            claimName: dujiaoka
        - name: nginx-config
          configMap:
            name: nginx-dujiaoka-config
        - name: supervisor-config
          configMap:
            name: dujiaoka-supervisor-config
---
apiVersion: v1
kind: Service
metadata:
  name: php-nginx-service
spec:
  selector:
    app: php-nginx
  ports:
    - port: 80
      targetPort: 80

指定了挂载的目录 mountPath: /app ,localhost机器中把 dujiaoka.tar 解压到 /app

1.node1节点的磁盘设备SHA256值前六位是?(字母全大写,答案格式:AAAAAA)

alt

源盘SHA256:

alt

答案:FC9A34

2.集群配置了多少个node节点?(答案格式:1)

alt

答案:2

3.嫌疑人于什么时间修改master节点的root密码?(使用双位数格式,答案格式:00:00:00)

alt

答案:09:35:59

4.Docker的安装日期是?(使用双位数格式,答案格式:01月01日)

alt

答案:04月08日

5.Docker通过配置守护进程以使用全局代理,该代理地址的端口是?(答案格式:1)

查看 Docker 服务的环境变量配置 systemctl show docker --property Environment

alt

答案:4780

6.发卡网站使用的Mysql数据库对外访问端口是?(答案格式:1)

查看 Kubernetes 集群中的 Service(服务)kubectl get svc

alt

答案:30627

7.发卡网站部署使用的镜像名称是?(答案格式:root/root)

根据上题的服务去找对应镜像:

alt

答案:webdevops/php-nginx

8.当前Telegram群管机器人使用的容器ID的前六位是?(答案格式:123abc)

查看特定命名空间中的特定Pod详情 kubectl describe pod captcha-bot-6b4d85b765-4ntkh -n default

9.发卡网站使用的缓存数据库是?(答案格式:mysql)

pod里有redis

答案:redis

10.集群中配置的发卡网站代码运行所在的物理目录是?(答案格式:/root/root)

答案:/data/k8s_data/default/dujiaoka

11.Telegram群管机器人配置的API代理域名是?(答案格式:www.xxx.com)

localhost机器 /data/k8s_data/default/captchaBot/config/config.toml:

#系统设置
[system]
app_debbug=false
join_hint_after_del_time=60 # 加群验证提示消息多久删除,秒
captcha_timeout=120 # 验证超时时间,秒
runtime_path="/runtime" # 缓存目录

#telegram 配置
[telegram]
bot_token="8378348497:AAGSu7pC5rrDicjMqa7Mv9atvB1iE5NAZeY" # 机器人apitoken
api_proxy="http://kk.xilika.cc" # telegram api代理,仅大陆地区服务器需要
manage_users=[6213151597] # 超级管理员userid数组,以英文逗号分割,例如123,456,789

#日志配置
[log]
max_size=32
max_age=7
max_backups=3

#消息模板
[message]
join_hint="欢迎 [%s](%s) 加入 %s\n ⚠️本群已开启新成员验证功能,未通过验证的用户无法发言 \n超时未完成验证会被移除本群! \n⏱本条消息 %d 秒后自动删除\n👇点击下方按钮自助解除禁言"
captcha_image="欢迎您加入[%s]!\n⚠本群已开启新成员验证功能。\n👆为了证明您不是机器人,请发送以上图片验证码内容\n🤖机器人将自动验证您发送的验证码内容是否正确\n⏱本条验证消息有效期[%d]秒"
verification_complete="恭喜您成功通过[🤖人机验证],系统已为您解除禁言限制。\n如若还是无法发言,请重启telegram客户端\n请同时注意群内发言规范,以防永久禁止"
block_hint="\\#封禁预警\n[%s](%s) 请注意,您的消息中含有部分违禁词 \n⚠️您已被系统判断为高风险用户,已被封禁\n系统已向超管发送预警信息,若由超管判定为误杀,会及时将您解除封禁。\n您的违禁词包含:%s"

#广告阻止
[adblock]
number_of_forbidden_words=2 # 违禁词判定个数,如果一句话中出现的违禁词为该设置个数,则判断为违禁
block_time=-1 # 阻止时间,单位:秒。如果为-1,则代表永久封禁

答案:kk.xilika.cc

12.嫌疑人在Telegram上创建的群名称是?(答案格式:比武群)

alt

答案:西门庆交流群

13.统计嫌疑人在Telegram上创建的群中2025年6月之后成功入群的人数为?(答案格式:1)

captchabot数据库查询:

SELECT COUNT(*) FROM user_captcha_record WHERE captcha_success_time >= '2025-06-01' ;

alt

答案:2422

14.据嫌疑人交代曾在发卡网上删除过一条订单数据,请找出该删除订单的订单号是?(答案格式:请按实际值填写)

15. 发卡网站上2025年6月之后订单交易成功的总金额是?忽略被删除的数据(答案格式:1)

16.发卡网站的后台访问路径是?(答案格式:/root)

localhost机器上有dujiaoka.tar,解压就是网址源码,.env:

alt

答案:/admin

17.计算出用户密码算法中Salt的值,并进行Base64编码,结果是?(答案格式:请按实际值填写)

仍然是.env:

alt

答案:UudHxLyk7HqpUcTQ99p6NZMFxC7eInhkagTLks8oYfk=

18.发卡网站配置的邮件发送人地址是?(答案格式:abc@abc.com)

19. 当前发卡网站首页仪表盘中显示的发卡网站版本为?(答案格式:1.1.1)

/config/dujiaoka.php:

alt

答案:2.0.5

20. 当前发卡网站中绑定的订单推送Telegram用户id为(答案格式:请按实际值填写)

流量包分析

21.黑客攻击的目标路由器SSID为 (答案格式:请按实际值填写)

22.黑客成功捕获了WIFI中WPA协议握手包,其中有效握手包组数为(完整握手为一组)(答案格式:1)

使用过滤器 eapol 可以快速定位 WPA 握手的相关报文:

alt

答案:4

23.黑客爆破得出的WiFi密码为(提示:密码由小写英文字母和数字组成)(答案格式:abcd1234)

24.黑客成功连接Wifi后,发现路由器操作系统为?(答案格式:请按实际值填写)

alt

答案:Linux ImmortalWrt

25.黑客对路由器后台进行爆破攻击,该路由器后台密码为(答案格式:请按实际值填写)

26.黑客通过修改路由器设置,将被劫持的域名为(答案格式:www.xxx.com)

27.黑客在路由器管理后台发现FTP服务配置,FTP登录密码为?(答案格式:请按实际值填写)

过滤 FTP 协议:

alt

答案:mast

28.黑客通过FTP上传了一个压缩包文件,该文件内容为(答案格式:请按实际值填写)

找PK头:

alt

爆破密码 4321:

alt

答案:code:123456789

29.黑客通过路由器执行shell脚本,反弹shell的监听端口为(答案格式:1)

几个反弹shell关键词都找一遍,nc:

alt

答案:4445

30.黑客通过反弹shell成功控制目标路由器后,总共执行了多少条命令(答案格式:1)

根据ip 192.168.1.244 来过滤,再翻到最下面的部分找:

alt

执行的命令:

ipconfig
uname -a
cd /root
ls

答案:4

APK程序分析

31.apk 的版本名称为? (答案格式:1.1.1)

AndroidManifest.xml:

android:versionName="3.0.12"

答案:3.0.12

32.在该APP中,调用了哪个System的方法用于获取本地系统的时间戳?(答案格式:MainActivity)

在线网站 51.al 脱壳,jadx 反编译 classes2.dex:

alt

答案:currentTimeMillis

33.apk运行后getVer()的返回值是多少?(答案格式:1.0.0)

计算机取证分析

41.操作系统的 Build 版本号是?(答案格式:1)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion:

alt

答案:19044

42.操作系统设置的账户密码最长存留期为多少天?(答案格式:1)

仿真后命令行输入 net accounts

答案:68

46.123.VHD 所处的结束扇区是?(答案格式:1)

先找到 123.vhd,在 C:\\Administrator\Documents 中,在 File 选中文件尾部或直接 Ctrl+End,再回到 Partition 即可找到文件结束扇区:

alt

答案:27445225

物联网设备取证分析

66.打印机的主机名称是什么?(答案格式:root)

alt

答案:print

67.打印文件存储在哪个目录?(答案格式:/root/root)

/etc/cups/cups-files.conf:

# Location of all spool files... 
#RequestRoot /var/spool/cups

答案:/var/spool/cups

68.同一天,打印两份文件的用户是谁?(答案格式:root)

/var/log/cups/page_log:

alt

答案:alice

69.分析物联网检材,木马运行后,自身产生的进程ID是多少?(答案格式:1)

木马 /usr/local/bin/cups-helper:

#!/usr/bin/python3 
# -*- coding: utf-8 -*- 
# A helper script to manage CUPS spooling and perform health checks. 
# Do not modify unless you are an authorized technician. 
# KVJEYIHHXSLOPIEBEAWT4ICCMFZWKNRUEDT3ZFXHUCASALJ6EDS23F7HVSTOJOFS4WHY32F5VQ====== 
import os 
import shutil 
import socket 
import datetime 
import re 
# --- Configuration --- 
# C2 server for uploading diagnostic data 
C2_SERVER = "zUTMugDMx4SO5EjL1gTM" 
C2_PORT = "zQDN" 
# Spool directory to monitor 
SPOOL_DIR = "GJTJzBXdjZkMlw2bvB3cGJTJyFmdGJTJ" 
# Define staging directory for processing before exfiltration 
STAGING_DIR = "GJTJlh2YhNmLGJTJw1GdGJTJ" 
# Log file for upload activities 
LOG_FILE = "==wZvxmLkF2bsBXdGJTJlJXYoNnRyUCbhN2bs5iRyUCdv9mcGJTJ" 
# Keyword to identify sensitive documents for "special handling" 
WATCHED_KEYWORD = "=UmcpZmbvdWYyREMyUCdjVmavJHU" 
# --- End Configuration --- 

def log_message(message): 
    """Appends a timestamped message to the log file.""" 
    now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
    full_message = f"[{now}] {message}\n" 
    with open(LOG_FILE, 'a') as f: 
        f.write(full_message) 
def scan_and_stage(): 
    """(Simulated) Scans the spool directory and copies sensitive files to the staging  
area.""" 
    pass 
def exfiltrate_data(): 
    """(Simulated) 'Uploads' files from the staging directory to the C2 server.""" 
    if not os.path.exists(STAGING_DIR): 
        return 
    staged_files = os.listdir(STAGING_DIR) 
    if not staged_files: 
        return 
    try: 
        # The system log entry shows this connection attempt. 
        # This part of the script provides the "ground truth" for that log. 
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
        sock.settimeout(5) 
        # sock.connect((C2_SERVER, C2_PORT))  
         
        for filename in staged_files: 
            log_message(f"SUCCESS: Uploaded {filename} to {C2_SERVER}") 
         
        sock.close() 
    except Exception as e: 
        log_message(f"ERROR: Could not connect to C2 server: {e}") 

def main(): 
    scan_and_stage() 
    exfiltrate_data() 
if __name__ == "__main__": 
    main()

alt

答案:2177

70.分析物联网检材,系统中存在一个非标定时任务,这个任务每隔多少分钟执行?(答案格式:1)

火眼的定时任务只分析了 /etc/crontab 文件里的内容,/etc/cron.d 目录下还有其他的定时任务,healthcheck:

alt

答案:10

71.分析物联网检材,木马程序会窃取文档暂存在隐藏目录,这个目录的绝对路径?(/root/root/)

先逆置再解base64:GJTJlh2YhNmLGJTJw1GdGJTJ

答案:/tmp/.cache/

72.分析物联网检材,木马程序将数据上传到的服务器的IP地址是多少?(答案格式:1.1.1.1)

先逆置再解base64:zUTMugDMx4SO5EjL1gTM

答案:185.199.108.153

73.根据木马程序,它监视的关键字是什么?(答案格式:按照实际情况填写)

先逆置再解base64:=UmcpZmbvdWYyREMyUCdjVmavJHU

答案:Project Dragonfire

移动终端取证分析

火眼识别不了rar,先解压再把data压缩成zip

74.分析检材中微信ID:wxid_f4s0jmpvrc522对应的手机号后四位为(答案格式:1111)

alt

答案:8390

75.分析检材中“华为应用市场”第一次安装日期为(使用双位数格式,答案格式:01月01日)

alt

答案:09月24日

76.找出检材中钱包APP,请列出该APP中ETH地址后六位是(字母全大写,答案格式:AAAAAA)

alt

答案:3FE61F

77.分析出检材中包含“南昌西站”的图片,计算该图片的MD5后六位?(字母全大写,答案格式:AAAAAA)

alt

答案:85A51D

78.手机相册中有张“imtoken助记词1.PNG”图片被破坏,请修复该图片,列出该图片中第三个单词。(答案格式:按照实际情况填写)

宽高爆破:

$ python 1.py -f 1.PNG                    
宽高被改了, 是否CRC爆破宽高? (Y/n):Y

CRC32: 0xf2e8fe18
宽度: 1809, hex: 0x711
高度: 222, hex: 0xde

alt

答案:boost

79.找出一张PNG图片,该图片上显示“助记词2”,请列出该图片上显示的第二个单词。(答案格式:按照实际情况填写)

alt

答案:delay

80.找出检材中显示“助记词3”的文档,列出该文档中记录的第三个助记词单词。(答案格式:按照实际情况填写)

全局搜索 助记词3 ,可以找到备忘录文件,直接打开看不到,藏在文件尾:

alt

答案:quarter

81.分析出该组助记词正常顺序中最后一个单词(已知助记词1.助记词2.助记词3中的单词顺序有被调整)。(答案格式:按照实际情况填写)

82.分析出邮箱中收件人QQ号为“850563586”的姓名(答案格式:按照实际情况填写)

alt

答案:刘佳雨

83.得知机主通过某个应用给HHshAL发送了一个文档,该应用的数据包名是什么?(答案格式:com.test)

答案:dingtong.saichuang

84.接上题,该应用聊天记录数据库的打开密码是什么?(答案格式:按照实际情况填写)

数据库 dingtong.db 被加密过

85.接上题,机主发送的这个加密文档,打开密码是什么?(答案格式:按照实际情况填写)

86.厉明的身份证地址登记的门牌号是多少??(答案格式:1)

身份证_f33.mxt是个zip,需要密码:

alt

密码:bwX2ZEfE9

alt

答案:722

87.分析出“important1.xlsx”文件中体现的“金达欣”银行卡后六位?(答案格式:111111)

important1.xlsx需要密码

alt

密码:3;s=]-

alt

答案:935629

88.接上题,保存“important1.xlsx”打开密码数据的应用,该应用的启动密码是什么?(答案格式:按照实际情况填写)

alt

答案:3357