2025高校网络安全管理运维赛取证决赛wp

报到的时候身份证落酒店了,不过打了一个不错的成绩,这也算运气守恒了(笑.

签到

下载下来是一个 gif,用 gifsplitter 分帧,把每一帧的图片组合起来就行了。这里用了一个很笨的方法,用 windows 自带的画图拼成了这样

image-20251025165342918

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

image-20251025165431857

flag{siMPlE_QR_COdE_anIMaTiON}

猜猜旗

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

image-20251025165639642

flag{Whose_y0u_1s_Th3_b0ss?!#@}

谁真正远程执行了命令?

先过滤状态码 200POST 请求,最后只剩 三十多 KB 的日志了,我这里直接肉眼翻。

image-20251025165826106

转md5即可

image-20251025165949888

flag{b1bdef37df1a7acec711e97568c8e3b8}

网络流量中的巨兽踪迹

flag1

neta 哥斯拉webshell一把梭

image-20251025170115884

flag{Godzilla-is-a-mOnsTer}

flag2

注意下面这段命令:

image-20251104145634503

密码是 $USER:$PWD

$PWD 是当前路径 /src

$USER 打哥斯拉马一般是 www-data

导出 zip 解压。

image-20251104151055151

DFIR-rensom

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

image-20251025170554355

flag{maaiyu}

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

image-20251025170625680

flag{jetflash}

3.给出电脑的OEM厂商品牌名称,全小写(例:xiaomi)。

仿真后打开设置。

image-20251025173819337

flag{h3c}

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

先导出账单

image-20251025170747489

注意题目的 主机用户2023年 ,筛选一下。

因为不熟悉怎么直接算 净支出 ,我先分别把支出和收入算总和相减即可。

支出是 5888818.47,收入是2519945.28,相减得 3368873.19。

flag{3368873.19}

5.挂载虚拟磁盘,恢复勒索病毒文件,勒索病毒伪造了某单位的证书签名,给出该单位名称全拼(全小写,例:北京心脏跳动有限公司->beijingxinzangtiaodongyouxiangongsi)。

解开 bitlocker 后在 \code\rensom 目录下有证书 yidegelami.pfx,打开即可。

image-20251025172534066

flag{shanghaiyidegelamikejiyouxiangongsi}

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

image-20251104110749182

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

image-20251104110850794

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

image-20251104111247698

不过还是很明显的也不用修了。

boss enrich enemy

7.该勒索病毒使用了静态密钥对文件进行加密,请找到其使用的密钥(例:QxRqyY!S4g^FvL)。

属于逆向部分了,先找到核心函数。

没有去符号,所以很方便找。

image-20251104111455164

image-20251104111517372

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

image-20251104111617274

这个分支不影响函数逻辑,直接nop就行。

然后继续跟进:

image-20251104111816931

image-20251104115519238

image-20251104115529070

需要有不错的逆向功底:

main_ksa(a4,a5,a6),即 off_14058CF80/qword_14058CF88/qword_14058CF90

image-20251104115723900

这里的 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")

image-20251104120141760

贴进去解密就出来了。

drKG3^6HFqfni4

MISC-PCAP

1.被攻击的服务名称为

我是通过追踪 TCP 流判断的。

image-20251025170322906

flag{redis}

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

image-20251025170357045

flag{1234567qwerc}

3.攻击过程中写入文件的绝对路径。

image-20251025170434734

答案应该是 /usr/share/caddy/testinfo.php

但是不知道比赛前期交的时候为什么一直是错的,后面又交了才交上的。

flag{/usr/share/caddy/testinfo.php}

DFIR-archer

1.加载镜像文件后,计算检材源盘数据的SM3校验值。(镜像格式E01,全大写)

image-20251025171214719

flag{42DDE4A368FD17641E8B56017081A5B00CAB11B89FD88495E3FE2D684A9F3DC9}

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

image-20251025171258848

flag{2022-02-05 00:25:26}

3.给出VeraCrypt加密卷解密的密码。

仿真起来桌面有一个 KeePass ,密码为题目给的 *#*#4636#*#* 。

image-20251025171526960

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

image-20251025171640628

flag{PqR$34%sTuVwX}

4.VeraCrypt加密卷中的最新的Excel中有一张热成像图片,计算该图片的SM3校验值(全大写)

发现修改时间都一样。

image-20251104105009429

让 ai 写个脚本批量提取xls的图片即可。(binwalk,foremost 都可以)

最后找到热成像图片。

image-20251104105947202

image-20251104110055435

ce4a2f20ebc2bcdce729885ae12fb3de0a7231e6c0a8dc1cc050605f9f8f1663

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

先解压出来

image-20251025172714817

打开 mtd

image-20251025172740704

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

image-20251025172824357

flag{hereyouare}

DFIR-prx

1.请给出该计算机的最后一次异常关机的开机时间

image-20251025172906955

flag{2025-10-15 19:24:37}

2.该系统中曾经插入过一个USB设备“SMI USB DISK”,请给出他的序列号

image-20251025172955511

flag{AA00000000000489}

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

image-20251025173045640

flag{AB9E6E97-A28E-4262-8584-48D7F850D531}

4.用户在导入代理文件后,删除了复制进计算机的代理配置文件,请给出删除该文件的账户SID

其实就是询问 userSID

image-20251025173155113

flag{S-1-5-21-2839104552-2639793746-125108461-1001}

5.用户在境外网站下载了一个PDF并进行了打印,请给出打印内容中的软件序列号

image-20251025173230328

flag{A3F8-JK22-MSQT-R4T6}

DFIR-RAID

1.给出引导分区的UUID(如:84f012d9-1880-4306-9ce3-00695f81771c)。

R-studio 打开。

image-20251025174431625

flag{09f8b70e-8787-4df8-9b61-f60c9d8764dd}

仿真方法:

blkid

image-20251104143724492

boot 分区的 uuid 即是。

2.给出系统DLNA服务端的版本号(如:1.14.514)。

syslog 搜索 dlna 可以找到。

image-20251025174357529

flag{1.3.3}

仿真方法:2.

查服务找到具体名,然后去查状态找版本号。

systemctl list-unit-files | grep 'dlna'

image-20251104143958287

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

vgdisplay newnew

image-20251104144045856

4.newnew-vol1 使用的文件系统uuid为(全小写)。

导出 syslog 搜索即可找到

image-20251025174259182

flag{5ab9456c-cce7-4bcd-8e8c-f81823fd059d}

也可以仿真

blkid

image-20251104144149964

5.恢复数据盘的磁盘阵列,恢复逻辑卷备份,给出卷内被删除文件的文件名(如:result.txt)。

分别挂载两个盘,diff 一下即可找到被删除的文件名。

image-20251104145026257

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

ZookeeperDynamicConfigurationTest.java

posted @ 2025-10-25 17:50  Sevedy  阅读(293)  评论(0)    收藏  举报