hans7 发表于 2022-9-25 13:49

【misc】buu-面具下的flag——zip伪加密+用NTFS流隐藏文件

本帖最后由 hans7 于 2022-9-25 14:06 编辑

### 依赖

- Windows10
- 虚拟机Ubuntu20.04
- 开源工具foremost

### zip伪加密

**作者:(https://blog.csdn.net/hans774882968)以及(https://juejin.cn/user/1464964842528888)以及(https://www.52pojie.cn/home.php?mod=space&uid=1906177)**

本文52pojie:https://www.52pojie.cn/thread-1692457-1-1.html

本文juejin:https://juejin.cn/post/7147192971103272990/

本文csdn:https://blog.csdn.net/hans774882968/article/details/127037336

题目给了我们一个`mainju.jpg`,图片无特殊信息,因此我们首先尝试去找其中的隐藏文件。在power shell里使用foremost开源工具:

```
.\foremost -i <mainju.jpg的路径>
```

可以获得一个zip文件。但是解压要求密码。因为没有任何提示(比如密码范围可枚举、有其他隐藏的数据),所以可以考虑这个zip是否是伪加密。根据参考链接1,搜索`50 4b 01 02`(只有1处出现),找到**压缩源文件目录区**,把其第9个字节从`09`修改为`00`,即可去除伪加密。



zip解压获得`flag.vmdk`。

vmdk也是一种压缩包,可以用7z解压。**在Ubuntu下**,先安装7z,再解压`flag.vmdk`:

```bash
sudo apt install p7zip-full # 注意要安装full的,而不是仅仅p7zip
7z x flag.vmdk -o./flag # 注意这里-o和输出路径之间没有空格的。解压到flag文件夹(不存在会自动创建)
```

我们可以在Ubuntu下直接看到所有相关的文件,`tree`命令安装见附录2。



但如果你是在Windows下解压的,那么因为文件名带冒号的文件被视为`NTFS`流的非主文件流(~~简称非主流~~),所以你看不见这些文件。附录1提供了一个`NTFS`的入门实验,像我这么鶸的可以过一遍qwq。

### 获取flag

`key_part_one`和`key_part_two`涉及`Brainfuck`和`Ook!`。根据参考链接2,可以在[这个网站](https://www.splitbrain.org/services/ook)运行(https://en.wikipedia.org/wiki/Brainfuck)和(https://esolangs.org/wiki/Ook!)代码。

`key_part_one/NUL`:

```
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +[->- ----- <]>-- ----- --.<+ +++[- >----
<]>-- ----- .<+++ [->++ +<]>+ +++++ .<+++ +[->- ---<] >-.<+ +++++ [->++
++++< ]>+++ +++.< +++++ [->-- ---<] >---- -.+++ .<+++ [->-- -<]>- ----- .<
```

获得

```
flag{N7F5_AD5
```

`key_part_two/where_is_flag_part_two.txt:flag_part_two_is_here.txt`:

```
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook.
Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook.
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
```

获得

```
_i5_funny!}
```

`flag{N7F5_AD5_i5_funny!}`。

### 附录1:用NTFS流隐藏文件

> NTFS交换数据流(Alternate Data Streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中,而我们无法看到非主文件的数据流。它使用资源派生来维持与文件相关的信息。

根据参考链接3,做个小实验(与本题无关)。在**cmd**下执行

```bash
echo hans acmer> NTFS_demo.txt:1.txt # 注意大于号左侧没有空格,因为会被当成文本内容
```

可得到一个`NTFS_demo.txt`,里面没有内容,但是看不到`NTFS_demo.txt:1.txt`。若以上命令在power shell下执行,会报错`名为“NTFS_demo.txt”的驱动器不存在。`。

接下来可以用命令打开`NTFS_demo.txt:1.txt`(cmd或power shell下均可)

```
notepad NTFS_demo.txt:1.txt
```

此时可以看到`NTFS_demo.txt:1.txt`文件内容。

当然我们还可以更进阶地用IDE来查看文件。比如用`Notepad++`打开`NTFS_demo.txt:1.txt`(cmd或power shell下均可)

```
<notepad++.exe的路径> <NTFS_demo.txt:1.txt的路径>
```

### 附录2:Ubuntu安装tree命令

不需要像 https://zhuanlan.zhihu.com/p/260822274 这里这么麻烦,直接apt安装即可。

```
sudo apt install tree
```

### 参考资料

1. zip伪加密:https://blog.csdn.net/wo41ge/article/details/109671137、https://blog.csdn.net/qq_26187985/article/details/83654197
2. https://blog.csdn.net/weixin_45485719/article/details/107417878
3. NTFS:https://www.jianshu.com/p/a812a78f8646

hans7 发表于 2022-11-1 21:49

424197222 发表于 2022-11-1 15:03
老板,我想问一下。这种伪加密怎么破解密码

伪加密应该是什么密码都不对吧?所以遇到要密码的都首先怀疑是伪加密,修改无效再尝试找密码。

zhangzhequan 发表于 2022-9-26 15:07

dir /r 能显示隐藏的文件

hans7 发表于 2022-9-26 22:42

zhangzhequan 发表于 2022-9-26 15:07
能显示隐藏的文件

确实能看见NTFS流orz

sdieedu 发表于 2022-9-27 07:15

没看懂。。。。。。

kotlyne 发表于 2022-9-27 17:17

学习了!!

hans7 发表于 2022-9-28 01:48

sdieedu 发表于 2022-9-27 07:15
没看懂。。。。。。

当作大学的实验课,跟着配环境+做一遍,就懂了{:1_936:}

LHCAILGT 发表于 2022-9-28 12:29

感谢分享。有你更好。

黑色枪骑兵 发表于 2022-9-28 15:32

感谢分享,支持楼主。

emptynullnill 发表于 2022-9-29 09:12

nice,学到一种方法,zip伪加密

trojankyo 发表于 2022-10-2 09:30

谢谢,又学习了
页: [1] 2
查看完整版本: 【misc】buu-面具下的flag——zip伪加密+用NTFS流隐藏文件