2019领航杯总结
程序员文章站
2022-05-16 09:10:42
...
恢复与解密
这道题做了很久都没做出来,下面是看别人的writeup写的,学到了很多知识。
题目描述:*人员在犯罪分子的电脑中发现一些磁盘文件,但是发现关键信息已经被删除,现需要你对磁盘进行恢复,并对恢复出来的一些秘密文件里面的加密信息进行解密。 注意:通过strings获取到的yc4pl0fvjs2k1t7T为假flag,请尝试使用其他正确的做题方式获取flag。
一,附件是xty.img,在kali下进行挂载:
mount -o loop xty.img /mnt
第一步挂载就不知道是什么意思。。。百度一下。
- 命令解释。
-o: mount命令的一个参数,Options的首字母,后面跟着mount选项。
loop:用来把一个文件当成硬盘分区mount到目录。
/mnt: 挂载点。
- 什么是挂载?
Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。
因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除次关联关系的过程称之为“卸载”。
通俗理解就是把一个根目录之外的文件的*目录连接到Linux的一个根目录下,然后Linux就能直接对它进行操作了。
参考:什么是挂载?
- ls -a 显示所有文件及目录。
- ls -A 同 -a ,但不列出 “.”(目前目录) 及 “..” (父目录)。
发现 .hide 目录,打开没有发现什么有用的。
二,然后要用到sstat 和 ext3grep这两个工具进行磁盘恢复。
用 cd --命令返回上一级目录。
首先用 fsstat 查看文件信息。
fsstat xty.img
这里的2是我们所需要的。
三,下载 ext3grep 工具。
apt -get install ext3grep
四,使用 ext3grep 工具,可以发现有secret文件。
ext3grep --inode 2 xty.img
五,用命令把它恢复出来。
ext3grep --restore-file secret xty.img
打开可以看到恢复文件的内容。
六,base64解码一下,得到:
igq4;741R;1ikR51ibOO0igq
七,然后是异或解密:
import string
c = "igq4;741R;1ikR51ibOO0igq"
for i in range(0,200):
p = ""
for j in range(len(c)):
p += chr(ord(c[j])^i)
print p
拿到flag。