陇剑杯 2021 wifi-Writeup
本篇将分享 [陇剑杯 2021] “wifi” 题目的解题思路。
题目提供了三个文件:客户端流量包、服务端流量包和一个内存镜像。
1. 分析服务器流量,锁定哥斯拉 Webshell
首先,我用 Wireshark 打开了服务端流量包,很快就注意到一个可疑的文件上传数据包。
为了看清里面到底是什么,我追踪了它的 HTTP 流。
在会话数据中,我发现了一段经过层层编码的 Payload。这种 eval(base64_decode(strrev(urldecode(...))))
的结构是典型的哥斯拉 Webshell(Godzilla)的通信特征。
通过解码,我确认了这是一个哥斯拉 php_eval_xor_base64
变种的 Webshell。
2. 内存取证,提取 WiFi 凭据
既然有 Webshell,那么客户端和服务器之间必定有通信。我打开客户端流量包,发现流量被 WPA2 加密了。要解密,就必须找到 WiFi 的 SSID 和密码。从流量包中,我可以轻松看到 SSID 是 “My_Wifi”。
密码去哪找呢?这时候,内存镜像文件就派上用场了。我使用 Volatility 3 来分析这个 Windows 7 的内存镜像。首先,获取系统基本信息。
1 |
|
接着,我用 filescan
插件在内存中搜索与 “My_Wifi” 相关的文件。
1 |
|
运气不错,找到了一个 My_Wifi.zip
文件。我立刻使用 dumpfiles
将它从内存中提取出来。
1 |
|
然而,解压时发现 ZIP 文件有密码,注释提示密码是 Network Adapter GUID
。
于是,我回到 Volatility,继续在内存中搜索网络接口信息,以找到这个 GUID。
1 |
|
成功找到了 GUID:{529B7D2A-05D1-4F21-A001-8F4FF817FC3A}
。用这个 GUID 作为密码,我成功解压了 ZIP 文件,得到了 无线网络连接-My_Wifi.xml
。
打开这个 XML 文件,WiFi 密码赫然在列。
WiFi 密码是:233@114514_qwe
3. 解密流量,最终夺旗
拿到了密码,解密客户端流量就轻而易举了。我在 Wireshark 中配置好 WPA2 解密密钥(SSID: My_Wifi, 密码: 233@114514_qwe)。
解密后,过滤 HTTP 流量,我看到了四个来自哥斯拉 Webshell 的响应包。
追踪其中一个 HTTP 流,提取出加密的响应数据。
最后,使用哥斯拉的解密脚本,对这段数据进行解密,就能得到最终的 Flag。
1 |
|
运行脚本,成功输出 Flag:flag{5db5b7b0bb74babb66e1522f3a6b1b12}
。
总结
这个题目综合考察了流量分析和内存取证技术,从发现 Webshell 到解密 WiFi 流量,再到最后从 C2 响应中解出 Flag,环环相扣,是一道质量很高的 CTF 赛题。