首页 未分类

点击下载exp

1. 提取隐藏信息

一个 vmdk 文件,看了一下里面是 NTFS 格式,可以用 RecuperaBit 来分析
分析命令如下:

python2 main.py ctf-flat.vmdk
[ENTER]
recoverable
tree 0

...

可以看到有 flag0.txt / flag1.txt / flag2.txt / flag3.txt 4个文件,里面都写着 flag is not here.

另外还能看到,这四个文件有 ads 流,所以隐藏数据应该在这里

用下面的命令逐个导出:

restore 0 33:ads

restore 0 34:ads
restore 0 35:ads
restore 0 36:ads

在默认输出 recuperabit_output 文件夹里可以看到,四个已经导出的 ads 流文件

2.合并文件

提取的文件保存在recuperabit_output/Partition0/Root相对目录下
里面有四个文件

cat flag0.txt:ads flag1.txt:ads flag2.txt:ads flag3.txt:ads|>1

得到一个01组成的16进制组成

4 个文件里都是 1 和 0 组成的二进制字符,将 4 个文件里的内容顺序拼接,然后二进制转换成字符串,就能得到 flag 了

3. 二进制转String

xxd -p 1

将这些二进制转为字符串,我使用python实现
Python代码:

binStr = b'0110011001101100011000010110011101111011001101000100010001010011010111110011000101101110010111110100010000110001011100110110101101111101'
def ToStr(binStr):
    i=0
    while i<len(binStr):
        b = chr(int(binStr[i:i+8],2))
        print(b,end='')
        i+=8
ToStr(binStr)

得到
Flag: flag{4DS_1n_D1sk}

参考资料

Misc - Disk - 200pt
writeup




文章评论