VNCTF2025misc复现
这个比赛的misc真是难,除了一道签到之外几乎全是区块链和ai,唯一一道的取证还是安卓取证,而且还模拟的真实取证过程。。
全部的wp可以在vnctf2025的群里有,或者官方公众号。
打的我道心破碎了要。。。
VN_Lang
简单的misc签到题
打开exe发现是flag但是是vn自创文字
使用IDA打开exe,直接爆搜VNCTF就能发现flag了
flag:VNCTF{wXD4cznGnWqVVPRTF1Mzlf7zrPTfBRkKIq2Kgyq4Gohs2}
这个题好像每个人flag不一样
Echo Flowers
这个真是毁我道心了,看了一天。。
拿到echo flowers文件看到里面有一个echo_flowers.ovf文件,可以使用vmware挂载
虽然这道题挂载不甚有大用就是了
挂载后看到桌面上只有一个imToken:
所有应用也只有一点点,在便签,imtoken,设置里面都没有发现什么东西,这就是这道题的神奇之处了
题目要求恢复密码,我们可以通过找到12个助记词来恢复密码,但是系统中又没有什么提示该怎么办呢?
在输入法打单词的时候发现有上次遗留的输入。
[!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可以恢复磁盘上删除的文件这是它的厉害之处
恢复后如图:
。
。
总之就是把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 * |
然后就能看到所有助记词了
方法二:notepad++使用utf16查看文件
找到android-7.1-r5/data/data/com.sohu.inputmethod.sogouoem/files/dict/sgim_gd_usr.bin
这个文件,用notepad++,utf16查看也能看到所有助记词,需要眼力(当然也可以使用别的能看utf16的工具)
。
最后恢复顺序
1 | ranch only space define laundry carpet muscle ramp high twenty couch fashion |
所有助记词和顺序都得到了,直接用手机imToken设置一个密码然后利用高级设置查看私钥,导出私钥
或者使用在线网站(我用不明白)网站: 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 |
看到:
那张png图片里面藏了一些东西,使用binwalk解压出flag1.txt和flag2.txt
此时我们需要逆向这个grc文件,因为我们看到这个文件是把wav文件解析成两个txt文件,我们需要逆向得到这个wav文件。
利用旁边的core制作逆向exp,(制作的时候要注意打如48k的时候要打48000而不能是48k,不然会报错)如下:
此时就生成了1111.wav,一听就知道是sstv文件
利用虚拟声卡+RX-SSTV
(不知道为什么我虚拟声卡有问题没跑出来,最后扬声器跑出来的)
注意不能用github上那个sstv,否则会报错如下:
1 | ValueError: SSTV mode is unsupported (VIS: 125) |
最终跑出来的二维码:
使用手机上BinaryEye扫一下就行
flag:VNCTF{W0w_Y0u_Ar3_G0od_4t_R4di0_S1gn4L}