GHCTF 2025 Misc 流量分析与取证
M4rt3n CTF 373浏览 · 2025-03-11 10:26

GHCTF 2025 Misc 流量分析与取证详解

mypcap

题目描述

简单溯源

有三小问

问题1:请问被害者主机开放了哪些端口?提交的答案从小到大排序并用逗号隔开

问题2:mrl64喜欢把数据库密码放到桌面上,这下被攻击者发现了,数据库的密码是什么呢?

问题3:攻击者在数据库中找到了一个重要的数据,这个重要数据是什么?

第一问

请问被害者主机开放了哪些端口?提交的答案从小到大排序并用逗号隔开

端口开放时

目标主机回复 SYN + ACK 数据包。

TCP 标志位SYN=1ACK=1

图片加载失败


得到22,3306,8080

第二问

mrl64喜欢把数据库密码放到桌面上,这下被攻击者发现了,数据库的密码是什么呢?

在HTTP对象列表可以看到有一个multipart/form-data类型的文件

multipart/form-data 是一种用于在 HTTP 请求中传输表单数据的编码类型,常用于文件上传或包含非文本数据(如二进制文件)的表单提交。

导出来发现是t3st.war

图片加载失败


7z打开得到index.jsp

很明显是冰蝎java,得到密钥:8a1e94c07e3fb7d5

AES ECB可以解出class文件,用jadx反编译

图片加载失败


可以看到详细信息(不过这题可以不用)

图片加载失败


红框处内容解密

解base得到答案:mysql password is n1cep4Ss

第三问

攻击者在数据库中找到了一个重要的数据,这个重要数据是什么?

在流2038可以看到很多sql查询命令,发现其中一条是SELECT * FROM data

图片加载失败


这时回到整个对话中搜索

图片加载失败


得到答案:Th1s_1s_Imp0Rt4Nt_D4Ta

结合三问答案贴入mypcap-flag.py,运行得到flag

NSSCTF{703663c4-1ff1-4c51-83b8-0f4303e82659}

mydisk-1

有三问

问题1:mrl64的登录密码是什么?

问题2: mrl64设置了一个定时任务,他每多少秒向什么地址发送一个请求?

问题3:有人发送了一封邮件给mrl64,你能获取到邮件中的flag吗?

使用FTK挂载即可

左上角:文件 -> Image Mounting ,添加Image File后点击Mount

图片加载失败


第一问

mrl64的登录密码是什么?

找密码,直接查看/etc/shadow

果然有,爆破一下,修改格式

采用john结合rockyou.txt

速度比较慢,因为密码比较靠后

第二问

mrl64设置了一个定时任务,他每多少秒向什么地址发送一个请求?

定时任务的位置是/etc/crontab

关注 */2 * * * * root /usr/bin/python3 /usr/local/share/xml/entities/a.py


*/2分钟字段,表示每 2 分钟执行一次。

*小时字段,表示每小时都执行。

*字段,表示每天。

*字段,表示每个月。

*字段,表示每周的每一天。

root用户字段,表示以 root 用户身份执行命令。

/usr/bin/python3 /usr/local/share/xml/entities/a.py命令字段,表示要执行的命令。


跟进a.py

得到答案:120_http://192.168.252.1:8000

第三问

有人发送了一封邮件给mrl64,你能获取到邮件中的flag吗?

\home\l0v3miku下找文件,先看桌面,得到remember.txt和Foxmail.desktop

remember.txt内容如下

Foxmail是一款邮件客户端软件,Foxmail.desktop内容如下

跟进/.wine

Wine 是一款允许用户在 Unix/Linux 操作系统上运行 Windows 应用程序的兼容层

本地安装Foxmail,在启动前把关键配置文件(Storage文件夹和FMStorage.list)拷贝过来

Storage文件夹包含邮件正文、附件等数据

图片加载失败


邮件内容提到每日字符串,想起刚才的remember.txt,日期是2025/1/25,那天是星期六,即为nmi3SDQ2

图片加载失败


掩码爆破得到密码:nmi3SDQ22580

得到flag:th3_TExt_n0w_YOU_kn0w!

结合三问答案贴入mydisk-flag1.py,运行得到flag

NSSCTF{88f96978-ec64-4255-8df7-43e5ec9c9b6e}

mydisk-2

有三问

问题1:mrl64的这台电脑的系统名是什么?

问题2: 你知道mrl64的ctfshow的账号密码吗?

问题3:mrl64的电脑上有一个docker容器,其环境里存储了一个重要信息,你知道是什么吗?

第一问

mrl64的这台电脑的系统名是什么?

根据提示:# name of OS, like "Ubuntu 18.04.5 LTS"

/etc/issue内可查看

得到答案:Linux Mint 22.1 Xia

第二问

你知道mrl64的ctfshow的账号密码吗?

要获取网站账号密码,直接去读配置文件,位置在 \home\l0v3miku\.mozilla\firefox\spk3lcsa.default-release

可利用文件是logins.json和key4.db

解密工具地址:https://github.com/lclevy/firepwd

得到ctfshow的账号密码:l0v3Miku/mrl64_love_miku

第三问

mrl64的电脑上有一个docker容器,其环境里存储了一个重要信息,你知道是什么吗?

在Linux系统中,Docker的容器信息主要存放在/var/lib/docker/containers/

读配置文件(config.v2.json),使用cyberchef的json beautify美化一下

图片加载失败


得到答案:Y0U_FouNd_mE!

结合三问答案贴入mydisk-flag2.py,运行得到flag

NSSCTF{085edba8-dd9d-4758-a90c-14c6816b5077}

mymem-1

有三问

问题1:mrl64发现有人在他的电脑上偷偷下载了些什么,你能拿到其中的pass1吗?

问题2: mrl64很喜欢用Windows自带的画图软件画画,这次他情不自禁地把pass2也给画上去了,但是他还没关掉画图软件就去吃饭了。那么你看到pass2了吗?

问题3:你知道mrl64电脑的产品ID是什么吗?

先确认系统版本

第一问

mrl64发现有人在他的电脑上偷偷下载了些什么,你能拿到其中的pass1吗?

提到了下载,可以查看浏览器记录

提到rWFA8Xcd.py,利用filescan获取偏移量

dump下来

这里vol2没成功,用RStudo成功恢复

图片加载失败


脚本中提到environ,使用envars

数据则在consoles中获取

解RSA

利用mimikatz获取password

解AES得到答案:OK_p4ss1_y0u_G3T_1t_n0w

图片加载失败


第二问

mrl64很喜欢用Windows自带的画图软件画画,这次他情不自禁地把pass2也给画上去了,但是他还没关掉画图软件就去吃饭了。那么你看到pass2了吗?

画图软件的进程名称是mspaint.exe

dump下来

后缀改为.data,用GIMP打开

图片加载失败


宽高是猜测常见屏幕分辨率为1280x720,在此基础上先调整偏移到能够出现明显可读内容后微调得到的

垂直翻转一下

图片加载失败


得到答案:OHHHH_y0u_c4n_s3e_MY_P@ss2

第三问

你知道mrl64电脑的产品ID是什么吗?

在 Windows 系统中,产品ID(Product ID)通常存储在注册表的以下路径中:

打印注册表配置单元列表

产品id在SOFTWARE中,dump下来

建议用注册表查看器打开注册表,防止误触破坏本地环境(这里用的WRR)

图片加载失败


其实vol也能直接读取

得到答案:00371-220-0367543-86165

结合三问答案贴入mymen-flag1.py,运行得到flag

NSSCTF{101e5799-55e8-42c9-b58a-5f1d30039126}

mymem-2

有三问

问题1:mrl64的电脑里似乎有一个奇怪的进程正在运行,这个进程的物理偏移值是多少?

问题2: 这个奇怪的进程总共运行了多少次?其窗口被作为焦点总共多长时间?

问题3:这个奇怪的进程的PoolTag是什么?

第一问

mrl64的电脑里似乎有一个奇怪的进程正在运行,这个进程的物理偏移值是多少?

获取进程

提取进程名

利用ai识别可疑进程

图片加载失败


那么显然是mal.exe

pslist看到的是虚拟偏移,这里问的是物理偏移,因此需要用psxview查看

得到答案:0x000000007fca3820

第二问

这个奇怪的进程总共运行了多少次?其窗口被作为焦点总共多长时间?

可以使用userassist查询


UserAssist 是 Windows 操作系统中的一个功能,用于跟踪用户运行的应用程序和程序的频率、时间戳等信息。

在取证和恶意软件分析中,UserAssist 是一个非常有用的信息来源,因为它可以揭示用户运行过的程序及其运行时间,即使这些程序已经被删除或隐藏。


得到答案:2_0:00:00.546000

第三问

这个奇怪的进程的PoolTag是什么?

相关知识参考:https://medium.com/@sky__/memory-udom-x-m455-ctf-2023-writeup-a97e573f583d

使用volshell

获取PoolTag

显示PoolTag为0,是因为我们需要返回内存地址以获得正确的Pooltag位置

图片加载失败


Page is structured of:

pool_header with size of 0x10 byte.

Optional_header size is different from one to another.

object_header with size 0x30 bytes.

object_body with size of the object type itself.



参照上图,需要通过从地址中减去0x30来获得optional_header的值

InfoMask值对应于Optional Header值,如果它是0x8,则使用的可选报头是_OBSENTH_HEADER_QUOTA_INFO

并且根据下面的表,其大小为32字节的_OBADER_HEADER_QUOTA_INFO转换为0x20

图片加载失败


但是它还没有找到一个实际的PoolTag,我们需要减去0x10来说明对齐或其他内核级元数据,以确保结构在内存中正确对齐,从而能够正确地定位到POOL_HEADER

现在可以知道pool_header的初始指针是通过减去-0x60得到的(- 0x30 - 0x20 - 0x10)

此处这里的pooltag还不是ascii形式,将其转化为hex,并且注意小端序存储。

得到答案:Pro\xe3

结合三问答案贴入mymem-flag2.py,运行得到flag

NSSCTF{fc3778a7-0eed-4735-8a31-450635f075f4}

0 条评论
某人
表情
可输入 255

没有评论