这个比赛的misc真是难,除了一道签到之外几乎全是区块链和ai,唯一一道的取证还是安卓取证,而且还模拟的真实取证过程。。

全部的wp可以在vnctf2025的群里有,或者官方公众号。

打的我道心破碎了要。。。

VN_Lang

简单的misc签到题

打开exe发现是flag但是是vn自创文字

使用IDA打开exe,直接爆搜VNCTF就能发现flag了

屏幕截图 2025-02-10 174246

flag:VNCTF{wXD4cznGnWqVVPRTF1Mzlf7zrPTfBRkKIq2Kgyq4Gohs2}

这个题好像每个人flag不一样

Echo Flowers

这个真是毁我道心了,看了一天。。

拿到echo flowers文件看到里面有一个echo_flowers.ovf文件,可以使用vmware挂载

虽然这道题挂载不甚有大用就是了

挂载后看到桌面上只有一个imToken:

屏幕截图 2025-02-10 175016

所有应用也只有一点点,在便签,imtoken,设置里面都没有发现什么东西,这就是这道题的神奇之处了

题目要求恢复密码,我们可以通过找到12个助记词来恢复密码,但是系统中又没有什么提示该怎么办呢?

屏幕截图 2025-02-10 175335

在输入法打单词的时候发现有上次遗留的输入。

[!NOTE]

手动执行 一遍导入助记词流程可以发现,手机安装的某数字钱包App在导入助记词时没有将助 记词输入框设为密码属性,使得输入法可以开启单词联想,而手机安装的某输入法 (包括厂商预装版本)的单词联想是默认开启的。(题目描述中也对此给出了提示: 114 英语不好) 多次导入助记词会发现输入助记词首字母即可联想助记词单词。

所以我们可以大致确定助记词的范围,再根据所有2048个助记词确定是那些助记词

所有2048个助记词: bips/bip-0039/english.txt at master · bitcoin/bips

大致确定的助记词:

1
ramp twenty only space define fashion high carpet muscle laundry couch ranch

接下来要做的就是恢复这12个助记词的顺序了,已知暴力破解这12个助记词顺序是不现实的(因为要好几天),所以我们需要在文件中寻找那个储存了顺序的“词典”文件。

大概有两种方法:
方法一:7z解压vmdk文件

直接7z解压,能直接把所有vmdk的文件解压出来

(之前怎么能忘了!)

方法二:DiskGenius挂载

网上下一个DiskGenius,可以直接挂载vmdk

主要DiskGenius可以恢复磁盘上删除的文件这是它的厉害之处

恢复后如图:
屏幕截图 2025-02-10 182557

总之就是把vmdk里所有文件全部都解压出来,然后在里面找可疑的文件。

最后找到了android-7.1-r5/data/data/com.sohu.inputmethod.sogouoem/files/dict 这个文件夹下,具体来说就是sgim_gd_usr.bin这个文件

然后这里有一个比较偏的知识点,就是

[!NOTE]

搜狗输入法用户词库文件不是utf-8编码而是utf-16

所以一般的记事本和010是很难看出来什么东西的

这里有两种方法来看到内容

方法一:使用string命令

kali自带string命令

strings命令:用于从二进制文件中提取可打印字符串。它可以提取和显示文件中的所有可打印字符串,常用于分析二进制文件、调试和逆向工程

先cd

1
cd android-7.1-r5/data/data/com.sohu.inputmethod.sogouoem/files/dict

然后string

1
strings --encoding=b * 

然后就能看到所有助记词了

屏幕截图 2025-02-10 184849

方法二:notepad++使用utf16查看文件

找到android-7.1-r5/data/data/com.sohu.inputmethod.sogouoem/files/dict/sgim_gd_usr.bin这个文件,用notepad++,utf16查看也能看到所有助记词,需要眼力(当然也可以使用别的能看utf16的工具)

屏幕截图 2025-02-10 185223

最后恢复顺序

1
ranch only space define laundry carpet muscle ramp high twenty couch fashion

所有助记词和顺序都得到了,直接用手机imToken设置一个密码然后利用高级设置查看私钥,导出私钥

Screenshot_2025-02-10-20-17-28-92_aef62f4795c0443

或者使用在线网站(我用不明白)网站: BIP39 - Mnemonic Code

注意默认路径 m/44’/60’/0’/0/0(是imToken默认路径),所以有些网站是不行的。

flag:VNCTF{6433c196bb66b0d8ce3aa072d794822fd87edfbc3a30e2f2335a3fb437eb3cda}

ezSignal

拿到一个压缩包,解压时报错了,可以看到实则有两个文件但只解压出一个文件

我们使用7z解压出两个文件,原来另一个文件名是空白的所以解压不出来,但是7z可以

一张图片和一个无后缀名的文件,问了一下ai才知道是grc文件。

改名1.grc,使用gnuradio打开,直接

1
gnuradio-companion 1.grc

看到:

屏幕截图 2025-02-11 120158

那张png图片里面藏了一些东西,使用binwalk解压出flag1.txt和flag2.txt

此时我们需要逆向这个grc文件,因为我们看到这个文件是把wav文件解析成两个txt文件,我们需要逆向得到这个wav文件。

利用旁边的core制作逆向exp,(制作的时候要注意打如48k的时候要打48000而不能是48k,不然会报错)如下:
屏幕截图 2025-02-11 170522

此时就生成了1111.wav,一听就知道是sstv文件

利用虚拟声卡+RX-SSTV(不知道为什么我虚拟声卡有问题没跑出来,最后扬声器跑出来的)

注意不能用github上那个sstv,否则会报错如下:

1
ValueError: SSTV mode is unsupported (VIS: 125)

最终跑出来的二维码:

屏幕截图 2025-02-11 181948

使用手机上BinaryEye扫一下就行

Screenshot_2025-02-11-18-31-24-22_a0aa29124cd502a

flag:VNCTF{W0w_Y0u_Ar3_G0od_4t_R4di0_S1gn4L}