2025高校网络安全管理运维赛取证决赛wp
报到的时候身份证落酒店了,不过打了一个不错的成绩,这也算运气守恒了(笑.
签到
下载下来是一个 gif,用 gifsplitter 分帧,把每一帧的图片组合起来就行了。这里用了一个很笨的方法,用 windows 自带的画图拼成了这样

最后把白边用黑笔涂上就扫出来了。

flag{siMPlE_QR_COdE_anIMaTiON}
猜猜旗
pyarmor 打包的文件,直接用 https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot 一把梭就行了。

flag{Whose_y0u_1s_Th3_b0ss?!#@}
谁真正远程执行了命令?
先过滤状态码 200 和 POST 请求,最后只剩 三十多 KB 的日志了,我这里直接肉眼翻。

转md5即可

flag{b1bdef37df1a7acec711e97568c8e3b8}
网络流量中的巨兽踪迹
flag1
neta 哥斯拉webshell一把梭

flag{Godzilla-is-a-mOnsTer}
flag2
注意下面这段命令:

密码是 $USER:$PWD
$PWD 是当前路径 /src
$USER 打哥斯拉马一般是 www-data
导出 zip 解压。

DFIR-rensom
1.恢复系统数据,给出主机用户的姓名全拼(全小写,例:zhangsan)。

flag{maaiyu}
2.给出主机最近一次插过的U盘的厂商,全小写(例:barracuda)。

flag{jetflash}
3.给出电脑的OEM厂商品牌名称,全小写(例:xiaomi)。
仿真后打开设置。

flag{h3c}
4.恢复账单文件,给出主机用户2023年全年的净支出金额,保留两位小数(例:233621.14)。
先导出账单

注意题目的 主机用户 和 2023年 ,筛选一下。
因为不熟悉怎么直接算 净支出 ,我先分别把支出和收入算总和相减即可。
支出是 5888818.47,收入是2519945.28,相减得 3368873.19。
flag{3368873.19}
5.挂载虚拟磁盘,恢复勒索病毒文件,勒索病毒伪造了某单位的证书签名,给出该单位名称全拼(全小写,例:北京心脏跳动有限公司->beijingxinzangtiaodongyouxiangongsi)。
解开 bitlocker 后在 \code\rensom 目录下有证书 yidegelami.pfx,打开即可。

flag{shanghaiyidegelamikejiyouxiangongsi}
6.找到并修复损坏的图片,得到勒索收款钱包的前三个助记词(全小写,用下划线拼接,例:play_nice_boat)。

有很多图片,很快能定位到明显违和的损坏图片。

线下也没有特别好的处理方法,那么只能考虑肉眼瞪。

不过还是很明显的也不用修了。
boss enrich enemy
7.该勒索病毒使用了静态密钥对文件进行加密,请找到其使用的密钥(例:QxRqyY!S4g^FvL)。
属于逆向部分了,先找到核心函数。
没有去符号,所以很方便找。


这里F5报错找报错的地方。

这个分支不影响函数逻辑,直接nop就行。
然后继续跟进:



需要有不错的逆向功底:
main_ksa(a4,a5,a6),即 off_14058CF80/qword_14058CF88/qword_14058CF90

这里的 result 就是密钥返回给 r5 然后进行 main_encrypt。
因此其实直接动调过来取就行(勒索程序,断点断不好可能gg)
这里采取静态还原算法(AI梭的)
def rc4_ksa(key: bytes):
S = list(range(256))
j = 0
klen = len(key)
for i in range(256):
j = (j + S[i] + key[i % klen]) & 0xff
S[i], S[j] = S[j], S[i]
return S
def rc4_prga(S, n):
i = j = 0
out = []
for _ in range(n):
i = (i + 1) & 0xff
j = (j + S[i]) & 0xff
S[i], S[j] = S[j], S[i]
out.append(S[(S[i] + S[j]) & 0xff])
return bytes(out)
# 1)RC4 密钥(来自 off_14058CF80 / qword_14058CF88 / qword_14058CF90)
rc4_key = b"I85@%E!"
encrypted_const = bytes([
0x??, 0x??, 0x??, 0x??, # <<< 把 IDA 里 off_14058CF60 开头的 n0x20 个字节抄过来
# ...
])
n = len(encrypted_const)
# 3)跑 main_ksa + PRGA,生成 keystream
S = rc4_ksa(rc4_key)
keystream = rc4_prga(S, n)
# 4)套 main_decrypt 的最后一步:keystream[i] ^ (const[i] - i)
file_key_bytes = bytes(
(keystream[i] ^ ((encrypted_const[i] - i) & 0xff)) & 0xff
for i in range(n)
)
print("file key (hex):", file_key_bytes.hex())
try:
print("file key (ascii):", file_key_bytes.decode('ascii'))
except UnicodeDecodeError:
print("file key contains non-ASCII bytes")

贴进去解密就出来了。
drKG3^6HFqfni4
MISC-PCAP
1.被攻击的服务名称为
我是通过追踪 TCP 流判断的。

flag{redis}
2.攻击者第二次攻击尝试时使用的密码。

flag{1234567qwerc}
3.攻击过程中写入文件的绝对路径。

答案应该是 /usr/share/caddy/testinfo.php
但是不知道比赛前期交的时候为什么一直是错的,后面又交了才交上的。
flag{/usr/share/caddy/testinfo.php}
DFIR-archer
1.加载镜像文件后,计算检材源盘数据的SM3校验值。(镜像格式E01,全大写)

flag{42DDE4A368FD17641E8B56017081A5B00CAB11B89FD88495E3FE2D684A9F3DC9}
2.给出用户账户“archer”的创建时间。(格式:2001-12-21 05:23:15 精确到秒)

flag{2022-02-05 00:25:26}
3.给出VeraCrypt加密卷解密的密码。
仿真起来桌面有一个 KeePass ,密码为题目给的 *#*#4636#*#* 。

解开后找到 mainpwd 得到密码 PqR$34%sTuVwX,挂载后发现确实是。

flag{PqR$34%sTuVwX}
4.VeraCrypt加密卷中的最新的Excel中有一张热成像图片,计算该图片的SM3校验值(全大写)
发现修改时间都一样。

让 ai 写个脚本批量提取xls的图片即可。(binwalk,foremost 都可以)
最后找到热成像图片。


ce4a2f20ebc2bcdce729885ae12fb3de0a7231e6c0a8dc1cc050605f9f8f1663
5.VeraCrypt加密卷中有一个路由器备份镜像,请给出其中的PPPoE账号
先解压出来

打开 mtd 。

注意到 mtd1 为 config ,直接在 mtd1 内找 pppoe 即可

flag{hereyouare}
DFIR-prx
1.请给出该计算机的最后一次异常关机的开机时间

flag{2025-10-15 19:24:37}
2.该系统中曾经插入过一个USB设备“SMI USB DISK”,请给出他的序列号

flag{AA00000000000489}
3.镜像中安装了代理工具 “Flclash”,请给出使用了“globaldns”作为域名服务器的代理配置文件中,使用vmess协议的代理节点对应的UUID (全大写)

flag{AB9E6E97-A28E-4262-8584-48D7F850D531}
4.用户在导入代理文件后,删除了复制进计算机的代理配置文件,请给出删除该文件的账户SID
其实就是询问 user 的 SID。

flag{S-1-5-21-2839104552-2639793746-125108461-1001}
5.用户在境外网站下载了一个PDF并进行了打印,请给出打印内容中的软件序列号

flag{A3F8-JK22-MSQT-R4T6}
DFIR-RAID
1.给出引导分区的UUID(如:84f012d9-1880-4306-9ce3-00695f81771c)。
R-studio 打开。

flag{09f8b70e-8787-4df8-9b61-f60c9d8764dd}
仿真方法:
blkid

boot 分区的 uuid 即是。
2.给出系统DLNA服务端的版本号(如:1.14.514)。
syslog 搜索 dlna 可以找到。

flag{1.3.3}
仿真方法:2.
查服务找到具体名,然后去查状态找版本号。
systemctl list-unit-files | grep 'dlna'

3.给出名为newnew的LVM卷组的UUID(大小写字母+数字,如:FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk)。
vgdisplay newnew

4.newnew-vol1 使用的文件系统uuid为(全小写)。
导出 syslog 搜索即可找到

flag{5ab9456c-cce7-4bcd-8e8c-f81823fd059d}
也可以仿真
blkid

5.恢复数据盘的磁盘阵列,恢复逻辑卷备份,给出卷内被删除文件的文件名(如:result.txt)。
分别挂载两个盘,diff 一下即可找到被删除的文件名。

第二个是被 vol1 删除的文件。
ZookeeperDynamicConfigurationTest.java

浙公网安备 33010602011771号