GHCTF 2025 流量分析与取证详解教学文档
1. mypcap 题目解析
1.1 题目概述
- 题目文件:mypcap
- 包含三小问:
- 被害者主机开放了哪些端口?
- 数据库密码是什么?
- 攻击者找到的重要数据是什么?
1.2 问题1:开放端口分析
分析方法:
- 在Wireshark中过滤TCP握手过程
- 查找目标主机回复的SYN+ACK数据包
- 识别TCP标志位:SYN=1, ACK=1
步骤详解:
- 使用Wireshark打开pcap文件
- 应用过滤器:
tcp.flags.syn == 1 and tcp.flags.ack == 1 - 统计所有目标端口号
- 去除重复端口并按从小到大排序
答案: 22,3306,8080
1.3 问题2:数据库密码获取
分析流程:
- 检查HTTP对象列表(Wireshark: 文件 → 导出对象 → HTTP)
- 发现multipart/form-data类型的文件
- 导出t3st.war文件
- 使用7z解压得到index.jsp
技术要点:
- multipart/form-data是HTTP中用于文件上传的编码类型
- 文件分析:
- 识别出冰蝎(Behinder)Java webshell
- 获取AES密钥:
8a1e94c07e3fb7d5 - 使用AES ECB模式解密class文件
- 使用jadx反编译解密后的class文件
- 解密base64编码内容
答案: mysql password is n1cep4Ss
1.4 问题3:重要数据查找
分析步骤:
- 追踪TCP流(流编号2038)
- 查找SQL查询命令
- 发现关键查询:
SELECT * FROM data - 在全流量中搜索相关数据
答案: Th1s_1s_Imp0Rt4Nt_D4Ta
1.5 最终flag生成
将三问答案输入提供的Python脚本mypcap-flag.py运行得到:
NSSCTF{703663c4-1ff1-4c51-83b8-0f4303e82659}
2. mydisk-1 题目解析
2.1 题目概述
- 磁盘镜像分析
- 三小问:
- mrl64的登录密码
- 定时任务详情
- 邮件中的flag
2.2 问题1:登录密码获取
分析方法:
- 使用FTK Imager挂载磁盘镜像
- 查看/etc/shadow文件
- 使用John the Ripper爆破密码
技术细节:
- 密码爆破:
- 使用rockyou.txt字典
- 修改shadow文件格式为John可识别
- 命令:
john --wordlist=rockyou.txt shadow.txt
答案: 密码在rockyou.txt中较靠后位置
2.3 问题2:定时任务分析
分析步骤:
- 查看/etc/crontab文件
- 分析定时任务格式:
*/2 * * * * root /usr/bin/python3 /usr/local/share/xml/entities/a.py - 检查a.py脚本内容
crontab字段解释:
*/2:每2分钟执行*:每小时、每天、每月、每周root:执行用户- 命令:执行Python脚本
答案: 120_http://192.168.252.1:8000 (120秒即2分钟)
2.4 问题3:邮件flag获取
分析流程:
- 检查用户目录:
/home/l0v3miku - 发现Foxmail相关文件:
- remember.txt
- Foxmail.desktop
- 分析Wine环境下的Foxmail配置:
- 路径:
/.wine - 关键文件:
- Storage文件夹(邮件数据)
- FMStorage.list(配置文件)
- 路径:
- 密码爆破:
- 掩码:
nmi3SDQ2**** - 爆破得到:
nmi3SDQ22580
- 掩码:
答案: th3_TExt_n0w_YOU_kn0w!
2.6 最终flag生成
输入mydisk-flag1.py得到:
NSSCTF{88f96978-ec64-4255-8df7-43e5ec9c9b6e}
3. mydisk-2 题目解析
3.1 题目概述
- 另一个磁盘镜像分析
- 三小问:
- 系统名称
- ctfshow账号密码
- Docker容器中的重要信息
3.2 问题1:系统名称
分析方法:
- 查看/etc/issue文件
- 该文件通常包含操作系统发行版信息
答案: Linux Mint 22.1 Xia
3.3 问题2:ctfshow账号密码
分析步骤:
- 定位Firefox配置文件:
/home/l0v3miku/.mozilla/firefox/spk3lcsa.default-release
- 关键文件:
- logins.json(存储加密的登录凭据)
- key4.db(存储解密密钥)
- 使用firepwd工具解密:
- GitHub项目:https://github.com/lclevy/firepwd
答案: l0v3Miku/mrl64_love_miku
3.4 问题3:Docker容器信息
分析方法:
- Docker容器存储路径:
/var/lib/docker/containers/
- 查看配置文件:
- config.v2.json
- 使用工具美化JSON:
- CyberChef的JSON Beautify功能
答案: Y0U_FouNd_mE!
3.5 最终flag生成
输入mydisk-flag2.py得到:
NSSCTF{085edba8-dd9d-4758-a90c-14c6816b5077}
4. mymem-1 题目解析
4.1 题目概述
- 内存取证分析
- 三小问:
- 下载文件中的pass1
- 画图软件中的pass2
- 系统产品ID
4.2 问题1:pass1获取
分析流程:
- 检查浏览器下载记录
- 发现可疑文件:
rWFA8Xcd.py - 使用Volatility工具:
filescan获取文件偏移- 使用
dump或R-Studio恢复文件
- 分析文件内容:
- 涉及RSA加密
- 使用mimikatz获取password
- 解密AES
答案: OK_p4ss1_y0u_G3T_1t_n0w
4.3 问题2:画图软件中的pass2
分析方法:
- 定位画图软件进程:
mspaint.exe
- 使用Volatility dump进程内存
- 分析内存文件:
- 修改后缀为.data
- 使用GIMP打开
- 调整参数:
- 分辨率:1280x720
- 垂直翻转图像
答案: OHHHH_y0u_c4n_s3e_MY_P@ss2
4.4 问题3:产品ID获取
分析步骤:
- Windows产品ID存储位置:
- 注册表路径:
SOFTWARE\Microsoft\Windows NT\CurrentVersion
- 注册表路径:
- 使用Volatility:
hivelist查看注册表配置单元printkey打印注册表键值
- 或使用注册表查看器(WinRegEdit)分析dump文件
答案: 00371-220-0367543-86165
4.5 最终flag生成
输入mymem-flag1.py得到:
NSSCTF{101e5799-55e8-42c9-b58a-5f1d30039126}
5. mymem-2 题目解析
5.1 题目概述
- 高级内存取证
- 三小问:
- 可疑进程的物理偏移
- 进程运行次数和焦点时间
- 进程的PoolTag
5.2 问题1:进程物理偏移
分析方法:
- 使用Volatility:
pslist查看进程列表(显示虚拟偏移)psxview查看物理偏移
- 识别可疑进程:
- 使用AI辅助识别(如
mal.exe)
- 使用AI辅助识别(如
答案: 0x000000007fca3820
5.3 问题2:进程运行统计
分析方法:
- 使用UserAssist功能:
- Windows跟踪用户运行程序频率和时间
- Volatility命令:
userassist查看程序运行记录
答案: 2_0:00:00.546000 (运行2次,总焦点时间546ms)
5.4 问题3:PoolTag识别
高级分析技术:
- 内存结构分析:
- pool_header: 0x10字节
- optional_header: 可变长度
- object_header: 0x30字节
- object_body: 对象本身大小
- 计算步骤:
- 从地址减去0x30获取optional_header
- 根据InfoMask值确定header类型
- 减去0x10考虑内存对齐
- 最终减去0x60获取pool_header
- 小端序转换
答案: Pro\xe3
5.5 最终flag生成
输入mymem-flag2.py得到:
NSSCTF{fc3778a7-0eed-4735-8a31-450635f075f4}
6. 关键工具总结
| 工具名称 | 用途 |
|---|---|
| Wireshark | 流量分析、HTTP对象导出 |
| FTK Imager | 磁盘镜像挂载与分析 |
| John the Ripper | 密码爆破 |
| Volatility | 内存取证分析 |
| firepwd | Firefox密码解密 |
| jadx | Java反编译 |
| GIMP | 图像分析 |
| CyberChef | 数据解码与转换 |
| R-Studio | 数据恢复 |
7. 关键知识点总结
- 端口扫描识别:通过SYN+ACK包识别开放端口
- Webshell分析:冰蝎(Behinder)的特征与解密
- Linux系统取证:
- /etc/shadow密码分析
- crontab定时任务分析
- Firefox密码存储位置
- Docker取证:/var/lib/docker/containers/结构
- Windows内存取证:
- 进程内存dump与分析
- UserAssist记录分析
- PoolTag内存结构
- 注册表分析:Windows产品ID存储位置
- 加密数据解密:AES、RSA等加密算法分析
8. 完整Flag汇总
- mypcap:
NSSCTF{703663c4-1ff1-4c51-83b8-0f4303e82659} - mydisk-1:
NSSCTF{88f96978-ec64-4255-8df7-43e5ec9c9b6e} - mydisk-2:
NSSCTF{085edba8-dd9d-4758-a90c-14c6816b5077} - mymem-1:
NSSCTF{101e5799-55e8-42c9-b58a-5f1d30039126} - mymem-2:
NSSCTF{fc3778a7-0eed-4735-8a31-450635f075f4}