2026 盘古石预赛 — PVE 集群服务器取证完整解题报告
环境: 3 台 Proxmox VE 节点 + Ceph 存储 + VM 100 (CentOS 7, Laravel 理财平台)
工具: Hermes Agent + MCP SSH + MySQL 直接查询
完成时间: 2026-06-01
一、环境概览
服务器信息
| 节点 |
IP |
Hostname |
OS |
内核 |
| server01 |
192.168.100.119:22 |
pve-node1 |
Debian 13 (trixie) |
6.17.2-1-pve |
| server02 |
192.168.100.126:22 |
pve-node2 |
Debian 13 (trixie) |
6.17.2-1-pve |
| server03 |
192.168.100.138:22 |
pve-node3 |
Debian 13 (trixie) |
6.17.2-1-pve |
SSH: root/123456(需用 sshpass 传递密码)
集群名: pgscup2026
Ceph 资源池: Ceph_pgscup_pool (RBD 类型)
VM 100 "web"
| 项目 |
值 |
| VMID |
100 |
| 位置 |
pve-node1 |
| OS |
CentOS 7 |
| 内核 |
3.10.0-957.el7.x86_64 |
| 独立 IP |
192.168.100.106:22 (root/123456) |
| 内部 IP |
192.168.0.70 |
| MySQL |
root/pgscup@o26, 数据库 jinqin |
| 网站 |
http://192.168.100.106/dist/ (金鳞资本) |
| 后台 |
http://192.168.100.106/admin/login (admin/admin123) |
二、题目列表与答案汇总
PVE 集群分析(Q1-Q10)
| 题号 |
题目 |
答案 |
| Q1 |
PVE 主机版本号 |
9.1.1 |
| Q2 |
PVE 主机内核版本 |
6.17.2-1-pve |
| Q3 |
PVE 集群名 |
pgscup2026 |
| Q4 |
加入集群所用指纹的前6位 |
FD:11:CE |
| Q5 |
PVE 集群中主机所用的时间服务器地址 |
ntp.aliyun.com |
| Q6 |
Ceph 存储的资源池名 |
Ceph_pgscup_pool |
| Q7 |
Ceph 存储资源池的类别 |
RBD |
| Q8 |
Ceph 集群的 ID 的前8位 |
3f28d8bb |
| Q9 |
Ceph 存储设置的最小副本数 |
2 |
| Q10 |
PVE 集群中虚拟机的快照创建时间 |
2026-04-16-15:05:19 |
VM 服务器分析(Q11-Q20)
| 题号 |
题目 |
答案 |
| Q11 |
Linux 内核完整版本号 |
3.10.0-957.el7.x86_64 |
| Q12 |
SSH 服务监听的 TCP 端口号 |
22 |
| Q13 |
网卡的 IP 地址 |
192.168.0.70 |
| Q14 |
金麟资本理财网站对应的域名 |
jlzb.vip |
| Q15 |
加密工具的名字 |
encrypt_tool.py |
| Q16 |
加密工具加密数据库备份文件时使用的密码 |
JDSJ2026@Backup |
| Q17 |
加密工具第1层加密的 XOR 密钥 |
0x5A |
| Q18 |
MySQL 数据库 root 用户的密码 |
pgscup@o26 |
| Q19 |
存放聊天记录的数据表名字 |
user_chat |
| Q20 |
用户密码加密算法 type=0 时的初始盐值 |
ABCDEFG |
VM 应用取证(Q21-Q30)
| 题号 |
题目 |
答案 |
| Q21 |
Laravel 应用的 APP_KEY 值的后8位 |
otS+rWI= |
| Q22 |
后台有多少个机器人 |
3 |
| Q23 |
聊天记录总数 |
11494 |
| Q24 |
注册用户总记录数 |
21697 |
| Q25 |
用户季丽华的身份证号 |
370100196901274436 |
| Q26 |
钱包流水金额第二大的用户名字 |
林斌 |
| Q27 |
法币交易中交易笔数最多的卖家的交易笔数 |
1267 |
| Q28 |
已完成结算的杠杆交易中保证金总额最多的用户的保证金总额 |
37240.76 |
| Q29 |
商家中余额最小的商家的手机号 |
15860623709 |
| Q30 |
商家中余额最小的商家的余额 |
8461.4 |
三、详细解题过程
Q1: PVE 主机版本号
答案: 9.1.1
解题思路: 直接执行 pveversion 获取 PVE 管理器版本。
重点命令:
pveversion
# 输出: pve-manager/9.1.1/42db4a6cf33dac83 (running kernel: 6.17.2-1-pve)
# 提取版本号: 9.1.1
Q2: PVE 主机内核版本
答案: 6.17.2-1-pve
解题思路: 三台服务器均执行 uname -r,结果一致。
重点命令:
uname -r
# 输出: 6.17.2-1-pve (三台一致)
Q3: PVE 集群名
答案: pgscup2026
解题思路: 从 corosync 配置文件获取集群名。
重点命令:
cat /etc/pve/corosync.conf | grep name
# 输出: name: pgscup2026
Q4: 加入集群所用指纹的前6位
答案: FD:11:CE
解题思路: PVE pvecm add 时显示的指纹来自 /etc/pve/local/pve-ssl.pem 的 SHA256 指纹,而非 corosync authkey 或 pve-root-ca.pem。
避坑:
- ❌ 错误:
sha1sum /etc/corosync/authkey → corosync authkey hash
- ❌ 错误:
openssl x509 -in /etc/pve/pve-root-ca.pem -noout -fingerprint → SHA1 指纹 73:B7:0A
- ✅ 正确: pve-ssl.pem 的 SHA256 指纹
重点命令:
openssl x509 -in /etc/pve/local/pve-ssl.pem -noout -fingerprint -sha256
# 输出: SHA256 Fingerprint=FD:11:CE:E9:2D:1A:...
# 取前6位 (3对字节): FD:11:CE
Q5: PVE 集群中主机所用的时间服务器地址
答案: ntp.aliyun.com
解题思路: PVE 节点同时配置了 systemd-timesyncd 和 chrony,两者均指向同一 NTP 服务器。以主 NTP 地址为准(非 FallbackNTP)。
重点命令:
cat /etc/systemd/timesyncd.conf
# [Time]
# NTP=ntp.aliyun.com
# FallbackNTP=time1.cloud.tencent.com time.apple.com
cat /etc/chrony/chrony.conf
# server ntp.aliyun.com iburst
# 主时间服务器: ntp.aliyun.com
Q6: Ceph 存储的资源池名
答案: Ceph_pgscup_pool
解题思路: 从 VM 100 配置文件中 scsi0 字段获取 Ceph 资源池名。
重点命令:
cat /etc/pve/nodes/pve-node1/qemu-server/100.conf | grep scsi
# 输出: scsi0: Ceph_pgscup_pool:vm-100-disk-0
# 资源池名: Ceph_pgscup_pool
Q7: Ceph 存储资源池的类别
答案: RBD
解题思路: 通过 pvesm status 查看存储类型,即使 Ceph inactive 也能看到。交叉验证 storage.cfg。答案格式要求全大写 → RBD。
重点命令:
pvesm status
# 输出: Ceph_pgscup_pool rbd inactive → 类型为 rbd (RADOS Block Device)
cat /etc/pve/storage.cfg
# 输出: rbd: Ceph_pgscup_pool → 确认类型为 rbd
# 答案格式全大写: RBD
Q8: Ceph 集群的 ID 的前8位
答案: 3f28d8bb
解题思路: 从 ceph.conf 配置文件获取 fsid。注意路径为 /etc/ceph/ceph.conf(不是 /etc/pve/ceph.conf)。
重点命令:
cat /etc/ceph/ceph.conf | grep fsid
# 输出: fsid = 3f28d8bb-e754-475b-b471-b9c97161bbf7
# 前8位: 3f28d8bb
Q9: Ceph 存储设置的最小副本数
答案: 2
解题思路: Ceph 集群因网络变更处于 inactive 状态,从配置文件获取默认值。
重点命令:
cat /etc/ceph/ceph.conf | grep osd_pool_default_min_size
# 输出: osd_pool_default_min_size = 2
Q10: PVE 集群中虚拟机的快照创建时间
答案: 2026-04-16-15:05:19
解题思路: 从 VM 100 配置文件的 [first] section 获取 snaptime 时间戳,转换为日期格式。
重点命令:
cat /etc/pve/nodes/pve-node1/qemu-server/100.conf | grep snaptime
# 输出: snaptime: 1776323119
date -d @1776323119 +"%Y-%m-%d-%H:%M:%S"
# 输出: 2026-04-16-15:05:19
Q11: Linux 内核完整版本号
答案: 3.10.0-957.el7.x86_64
解题思路: VM 100 运行在 TCG 软件模拟模式下,网络不可达。通过 RBD export + qemu-nbd 挂载磁盘镜像,从 /boot 分区读取内核文件名。
重点命令:
# 1. 导出 RBD 镜像(后台执行,60G 约需 15-30 分钟)
rbd --id admin -k /etc/pve/priv/ceph/Ceph_pgscup_pool.keyring export Ceph_pgscup_pool/vm-100-disk-0 /tmp/vm100.img
# 2. 连接 nbd 设备
modprobe nbd max_part=8
qemu-nbd --connect=/dev/nbd0 -f raw /tmp/vm100.img
# 3. 挂载 /boot 分区
mount /dev/nbd0p1 /mnt/vm100boot
# 4. 读取内核版本
ls /mnt/vm100boot/
# 输出: vmlinuz-3.10.0-957.el7.x86_64, config-3.10.0-957.el7.x86_64
Q12: SSH 服务监听的 TCP 端口号
答案: 22
解题思路: 从已挂载的 VM 文件系统中读取 /etc/ssh/sshd_config。
重点命令: