原题如下:

网管小王最近喜欢上了ctf网络安全竞赛,他使用“哥斯拉”木引进玩玩upload-labs ,并且保存了内存镜像、 wifi和服务器流量,让您来分析后作答:(本题仅1小问)
小王往upload-labs上传木马后进行了cat /flag,flag内容为__。

检材

服务器.pcap

客户端.cap

Windows 7-dde00fa9.vmem

wp

image-20230806225418962

image-20230806225437666

根据客户端流量可知,这是一个哥斯拉的php_eval_xor_base64的马,可以把哥斯拉一把梭的脚本先准备好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import base64
import gzip


def encode(D, K):
D = list(D)
for i in range(len(D)):
c = K[i + 1 & 15]
D[i] = D[i] ^ c
return bytes(D)


key = b"3c6e0b8a9c15224a"
cipher_text = ""[16:-16]
# cipher_text = ""

out = encode(base64.b64decode(cipher_text), key)
print(gzip.decompress(out))

根据服务端流量可知,这是一个被加密过的wifi流量,wifi名为My_Wifi,解密的途径应该是通过分析内存镜像

image-20230806225824034

梳理完成,下面分析内存

我们使用的windows会保存我们使用的wifi的密码

HP 电脑 - Windows 10 如何查看无线 (WIFI) 密码 | HP®顧客支援

image-20230806230300678

或者使用cmd查看

1
2
netsh wlan show profiles
netsh wlan show profile name="yourWifiName" key=clear

image-20230806230430657

无线密码保存在电脑哪个文件_百度知道 (baidu.com)

因此我们有了大概搜文件的方向

image-20230806230624169

image-20230806230633863

1
vol3 -f Windows\ 7-dde00fa9.vmem dumpfiles --physaddr 0x3fdc38c8

将文件dump出来

image-20230806230723516

根据上面的内容我们也可以知道wifi的GUID{529B7D2A-05D1-4F21-A001-8F4FF817FC3A}

在xml中得到wifi密码

image-20230806230839243

根据wifi名,和wifi密码,我们可以对流量进行一个解密

image-20230806230919488

image-20230806230926949

经过过滤分析,发现了四个哥斯拉的返回包

image-20230806231025919

对其一一解密,在最后一个包中得到flag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import base64
import gzip


def encode(D, K):
D = list(D)
for i in range(len(D)):
c = K[i + 1 & 15]
D[i] = D[i] ^ c
return bytes(D)


key = b"3c6e0b8a9c15224a"
cipher_text = "72a9c691ccdaab98fL1tMGI4YTljMn75e3jOBS5/V31Qd1NxKQMCe3h4KwFQfVAEVworCi0FfgB+BlWZhjRlQuTIIB5jMTU=b4c4e1f6ddd2a488"[16:-16]
# cipher_text = ""

out = encode(base64.b64decode(cipher_text), key)
print(gzip.decompress(out))

#b'flag{5db5b7b0bb74babb66e1522f3a6b1b12}\n'