2025高校网络安全管理运维赛(DIDCTF write up)
overlay2本质上就是 Docker 用来“存东西”的一个目录(文件夹),但它不只是简单的文件仓库,而是 OverlayFS 存储驱动的工作目录。(群晖的操作系统),它本身不是设备,而是运行在设备上的系统。那就在时间线看这个 2025-10-16 06:54:50 附近的修改时间的,在这个后面找。last,查看登陆历史 pts/0、pts/1等(伪终端),通常就代表是远程连接 ssh。但是在/
检材一
1. 镜像中用户“berserker”的密码哈希为
火眼会自动分析出 lmhash 和 nthash
- LMHash(LAN Manager Hash):Windows 早期使用的老旧哈希算法。它会将密码统一转为大写、补齐到14字符后拆分,再用 DES 加密。安全性极弱,不支持大小写敏感,且易被快速破解。在现代系统(Vista/2008 以后)中默认不再存储(显示为
aad3b435b51404eeaad3b435b51404ee空值),仅出于旧系统兼容保留。 - NTHash(即 NTLM Hash):目前 Windows 实际使用的密码哈希。它对原始密码直接进行 UTF-16 LE 编码后再做 MD4 哈希。大小写敏感,安全性远高于 LMHash,是目前抓取、传递哈希(Pass The Hash)和口令库破解的主要目标
直接在用户列表,设置列中勾选上就行,默认是不勾选的
13844b0cc3aa353c8df3fbf8c6aa68f8

2. 镜像中是否安装了Linux环境,若有,请给出Linux发行版名称(全小写)
仿真一下,点了一下 win 就直接看到了
opensuse

3. 用户桌面上存在一个从运动设备中导出的运动记录文件,该文件存在损坏,请尝试修复并给出修复后的SM3校验值 (全大写)
在照片里有这俩个,问一下 ai 这是什么:Garmin(佳明)Fenix 8 智能手表。

或者在回收站里可以看到

activity.fit 就是破损文件

然后 ai 给出的思路一直都是用第三方工具,答案也不对。
看了 xd 的 wp。要用官方的 sdk:https://developer.garmin.com/fit/download/

下载这个ActivityRepairTool.jar,FitCSVTool.jar

然后将activity.fit 与这个 jar 包放在同一目录下
java -jar ActivityRepairTool.jar Activity.fit
计算 sm3,不知道为什么我的不对

应该是d5d6c76f55913e9a3ff7939bca6757ea385963a379f2c1e6c3d166b130d6f8fd
4. 解析修复后的文件,请给出该运动记录中最高时速(单位KM/H,保留两位小数)
java -jar FitCSVTool.jar Activity_repaired.fit
得到 csv 格式文件
或者用https://www.fitfileviewer.com/得到修复的数据,导出 csv 让 ai 分析

5. 解析修复后的文件,文件中记录的该设备的制造商名称为(全小写)
strava

检材二
1. 从浏览器中提取dsm的设备名
catdiskrecorder

在群晖(Synology)的语境下,DSM 指的是 DiskStation Manager(群晖的操作系统),它本身不是设备,而是运行在设备上的系统。对应的设备默认名称通常会根据产品形态有所不同:
- 桌面式 NAS:默认设备名一般为 DiskStation
- 机架式 NAS:默认设备名一般为 RackStation
此外,群晖部分产品线还可能使用 DataStation、FlashStation、BeyondCloud 等作为默认主机名。
2. 从系统中提取群晖smb共享的密码
历史命令
6CzRWsUNYUpp

3. 从群晖系统中获取加密共享文件夹中最早创建的文件的创建时间(格式为 2000-01-20 17:42 ,半角标点,精确到分钟)
先搜一下 shared

在群晖(Synology NAS)的语境下,shared_info通常指的是一个被加密的共享文件夹的名称,而与之配套的文件则是 shared_info.key(加密密钥文件)。
具体含义如下:
shared_info(共享文件夹):这是用户在群晖 DSM 系统中创建的一个加密共享文件夹。当启用加密后,在没有正确加载密钥时,你在文件系统里看到的往往是一个带有锁型图标的文件夹,其内部真实数据是无法直接读取的。shared_info.key(密钥文件):这是创建或加密shared_info这个文件夹时,系统自动生成(或导出)的加密密钥文件。它相当于打开这个加密文件夹的“唯一钥匙”,只有持有该文件(或记住加密口令),才能在群晖或取证工具中“装载(Mount)”并解密查看里面的真实文件。你之前提到的那个导出 URL 正是为了获取这个关键文件。
发现有俩文件,第二个文件里面只有一个 uuid,那就是在第一个文件
看修改时间2025-10-12 22:16:48

4. 该加密文件系统使用的加密软件套件为(全小写,例,bitlocker)
当时搜的时候有这个shared_info.key:用于装载/卸载群晖加密共享文件夹(eCryptFS)
搜了一下eCryptfs:Linux 是文件系统级加密,那答案就是这个
5. 从群晖加密文件夹中的excel文件获取第一个受害人的手机号码
用 ufs 挂载一下,

点击那个 1.44.1-72906 右键 transform files system files
要输入密码

点击上面菜单栏的 tools,选择eCryptFS password unwrap

key file 就是那个 shared_info.key,然后 wrapping password 选择第一个选项,得到明文密码kchSnAQQmpVe

然后把密码输入就行了

1391783251

检材三
1. 该磁盘阵列的文件系统名为
直接都扔到 ufs 上,自动分析出来文件系统类型、RAID 级别 和 存储池名称。zpool::raidZ2::tank

zpool—— 文件系统/卷管理器类型代表 ZFS 文件系统
2. 该磁盘阵列的raid模式为
见上一题 raidz2
3. 该存储池的guid(十进制形式)与存储池物理存储总大小为(单位字节,使用-连接,例,37981267462-96725636)
ftk 挂载,选择仅物理卷,可写

然后将这三个配置到 linux 虚拟机里面(先在虚拟机里下载 zfs),要用管理员打开VM
我这是 Ubuntu
更新软件包索引sudo apt update
安装 ZFS 工具包sudo apt install zfsutils-linux
验证安装是否成功zfs --version

配置硬盘
先关闭虚拟机,然后虚拟机设置,添加,物理硬盘


开机,如果失败,重启多试几次就行了
进去后输入 sudo zpool import
id:18330567339733651604

但是 action 写着挂载失败,强行挂载还是不行。
说我的 zfs 版本低
![]()
升级一下 ubuntu 系统

4. 存储池内根文件系统的guid(十进制形式)为
sudo zpool import -f tank
zfs get guid -p
5920691364380755974

5. 文件系统中 evdb64.txt 中包含的有效信息为(长度为30的hex字符串)
这个虽然 ufs 自动识别了,但重组没成功,手动重组一下
raid-->new raid ,再到每个检材右键 add to raid ,最后 build raid
倒数第二个图标
![]()

导出看一下

很明显 base64 转图片

ecff737c62052218b1988a5d1216ed
检材四
1. 服务器rootfs采用的文件系统格式(全小写,如:apfs)
lsblk -f
xfs

2. AI诈骗站点的域名。
ngnix
y8fmin.wf941021.org

3. 服务器运维人员的主机名(全小写,如:web01)。
last,查看登陆历史 pts/0、pts/1等(伪终端),通常就代表是远程连接 ssh

但是在/var/log/secure/的,messages 里面找不到
然后直接搜索 ssh,第一个看一下

好像是这个 akiyamachine
这个文件是什么?(证明密钥登录)
- 路径:
/home/oper/.ssh/authorized_keys - 含义:这是 Linux 系统中专门用来存放“免密登录公钥”的文件。

4. 用于诈骗聊天的AI模型名称(如:DeepSeek-V3.1-Terminus)。
Qwen3-30B-A3B-Instruct-2507
方法一
刚开始搜 module 没用找不到,搜了个 api,发现很多在 docker 目录下

就去 docker 文件里看看,而且从这 docker 命令也可以看出可能是诈骗聊天(应用容器)

所以在虚拟机里面进入容器
docker exec -it aff447086622cce1a4c9e9d713108de0622f33cd9de729d5389c548789683925 /bin/bash
ls 看一下有什么
![]()
cat app.py

方法二
用火眼的全局搜索功能,搜索 qwen,gpt 等
5. 操作系统日志外发的服务器IP地址(如:114.51.4.1)。
在文件系统里面搜索rsyslog.conf
绝大多数 Linux 系统使用 rsyslog作为日志转发服务,配置通常在 /etc/rsyslog.conf或 /etc/rsyslog.d/*.conf中
如果系统使用 systemd-journald远程转发功能,检查其配置:/etc/systemd/journald.conf查找 RemoteHost=后面的 IP 地址。

6. 开发人员调用AI模型服务所使用的密钥(如:sk-6yd0c2cybncn6w0zma8zyhabjxn9a)。
在 app.py 中可以看到 key 在.ak 文件中

an-m2h0xum6l59cgmx7hy3ctolligvkf

7. 开发人员的邮箱(全小写,如:admin@example.com)。
这题应该在容器下的文件里面,因为前面都是有关容器的题目
overlay2本质上就是 Docker 用来“存东西”的一个目录(文件夹),但它不只是简单的文件仓库,而是 OverlayFS 存储驱动的工作目录。
但是东西很多,不好找
问了下 ai 这种邮箱一般在哪里
README.md、AUTHORS、package.json、.git/config
然后一个个搜,看哪个有且是容器目录下的
找到了这个.git

在这里找到了feishunzhang@anshanxia.live

8. “机票退款”类型诈骗页的域名(全小写,如:example.com)。
不会,看一下其他师傅的 wp
思路是,查看容器的创建时间,然后用时间线功能看相关文件
容器的创建时间
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.CreatedAt}}\t{{.Status}}"
![]()
那就在时间线看这个 2025-10-16 06:54:50 附近的修改时间的,在这个后面找

找到 documents.milvus,预览数据

是 base64 编码,解码发现并没有想要的内容

找到一个压缩文件,可以看到里面也有 documents.milvus,并且大小和前面那个不一样

解压,需要密码,用 rockyou 字典爆破出来carol123

添加为新检材,选择文件集合

base64
manosaba13.cc

检材五
请分析【检材5】,并找出正确的flag进行提交。
难先不复现了
flag{r4nd_and_r4nd_s4me_but_n0t_s4me?__Why!_Why,_baby!_Why!}
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)