2025高校网络安全管理运维赛 2025 个人赛

2025高校网络安全管理运维赛(write up)

围绕 2025高校网络安全管理运维赛 的公开复盘与解题记录。

作者:xxdecayxx 发布日期:2026-07-15 28 次阅读

检材一 ### 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 包放在同一目录下 :::danger java -jar ActivityRepairTool.jar Activity.fit ::: 计算 sm3,不知道为什么我的不对 应该是**d5d6c76f55913e9a3ff7939bca6757ea385963a379f2c1e6c3d166b130d6f8fd** ### 4. 解析修复后的文件,请给出该运动记录中最高时速(单位KM/H,保留两位小数) :::danger 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 命令也可以看出可能是诈骗聊天(应用容器) 所以在虚拟机里面进入容器 :::danger 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 思路是,查看容器的创建时间,然后用时间线功能看相关文件 **容器的创建时间** :::danger 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!}