---恢复内容开始---

做这道题目的经历比较坎坷,题目中用于隐藏flag的jpg文件出了问题,导致不能被交换数据流隐写所以出题人换了一次题目,最后做法也换了,不过出题人一开始的考察点还是基于NTFS交换数据流隐写。

0x1.什么是NTFS数据交换流(ADS)

NTFS交换数据流(Alternate Data Streams,简称ADS)是NTFS磁盘格式的一个特性。在NTFS文件系统下,每个文件都可以存在多个数据流,意思是除了主文件流之外还可以有许多非主文件流寄宿在主文件流中,这些利用NTFS数据流寄宿并隐藏在系统中的非主文件流我们称之为ADS流文件。虽然我们无法看到ADS流文件,但它们却是真实存在。下面通过一个实例来具体展现ADS流文件的创建、关联及隐藏过程。这一段是百科上面的内容。

1)创建名为“1.txt”的宿主文件

2) 创建数据流文件并关联宿主文件,在DOS窗口中输入“echo This is an ADS > 1.txt:ads.txt”后回车。该命令的含义为:创建一个名为ads.txt内容为“This is an ADS”的数据流文件与宿主文件1.txt进行关联。此时回到C盘根目录下查看,只有1.txt并无ads.txt,打开1.txt查看起内容仍为“This is a test file”也未做任何改变,那么数据流文件ads.txt到底到哪去了呢?“dir”命令也无法查看到。这时,在DOS窗口中输入“notepad 1.txt:ads.txt”,在弹出的记事本中就可以看到ads.txt中的内容。

type命令是将已经存在的一个文件,用交换数据流的方式寄生到另外一个文件夹上.

/*寄生到1.jpg上*/
E:\>type .txt >>.jpg:.txt /*寄生到113文件夹上*/
E:\>type .jpg >>:.jpg /*寄生到a.exe这个可执行文件上上*/
E:\>type .jpg >>a.exe:.jpg /*寄生到E盘根目录*/
E:\>type .jpg>>E:\:.jpg

0x2.利用NTFS交换数据流隐藏可执行文件

winXP中可以直接运行寄生的可执行程序,Win7之后的版本需要手动创建一个连接文件,通过这个链接文件才能运行这个寄生的可执行交换数据流文件

winXP实例

type a.exe>>1.txt:a.exe

XP中可以直接通过start命令使用绝对路径来调用这个寄生的可执行文件

start 绝对路径 1.txt:a.exe

0x3.检测和清楚NTFS交换数据流隐藏文件

1.之前使用cmd命令notepad可以查看隐藏的txt文件,也可已使用Ntfs Streams Editor这个软件查看 https://files.cnblogs.com/files/rainbow7/ntfsstreamseditor.zip

做CTF时使用这个软件很方便

   

2.使用lads,将lads放在需要检查的目录下工具地址:  https://files.cnblogs.com/files/rainbow7/lads.zip


lads.exe /S
/*检测根目录下的隐藏流文件*/
3.清除ADS 使用streams.exe这个软件清除  https://files.cnblogs.com/files/rainbow7/streams.zip
streams.exe -d <File>

可以添加-s参数来一次性递归清除E盘下所有寄生的交换数据流文件(慎用,尤其是对系统盘一定不要随便使用递归清除,系统本身的一些数据流也会被一起清除掉)*/
  stream.exe -s -d E:\

0x4.做题步骤:

题目给了三个十六进制内容的文件打开如下图,三个文件开头分别是03 04, 01 02, 05 06,这让我马上想起了zip压缩包的三个组成部分,压缩源文件数据区,压缩源文件目录区。压缩源文件目录结束标志,只不过每个文件都缺少一个50 4B的标记。手工给加上就行了。

使用010Editor把三个十进制文件拼起来,然后保存为.zip文件

将文件解压出来有一个2.txt和一个1.jpg文件2.txt内容为:1.txt behind 1.jpg  1.txt隐藏在在1.jpg后面,使用binwalk跑不出来提示就是一张单纯的图片,查看十六进制也是一个
jpg文件尾部结束没有问题,之后根据提示NTFS我才找到NTFS交换数据流隐写的方法。
特别注意:如果文件原本是在压缩包内的,这时使用除WinRAR以外的软件进行提取会造成数据流丢失。所以务必使用WinRar进行文件解压
当我重新将zip文件使用win解压,然后用Ntfs Streams Editor这个软件查看但是没有找到我要的结果,后来找到出题人问了一下才知道题目坏了,我去

但是最后题目没改成功,然后换了一个题,换了一种做法变得更简单。下面我自己将数据流添加进去 type 1.txt>>2.jpg:1.txt,然后当作一切都没发生。

两种不同做法:

这篇文章主要写我解题的学习过程,关于NTFS交换数据流的知识还请去百度搜索学习,如内容存在错误还请斧正。

---恢复内容结束---

UNCTF杂项题Hidden secret 之NTFS交换数据流隐写的更多相关文章

  1. NTFS交换数据流隐写的应用

    by Chesky ##目录 ####一.NTFS交换数据流(ADS)简介 ####二.ADS应用 写入隐藏文件(文本\图像\可执行文件) ADS在Windows平台下的利用--写入后门 ADS在We ...

  2. 利用NTFS交换数据流隐藏文件

    利用NTFS交换数据流隐藏文件 发表于 2012 年 12 月 15 日 由 晴刃 这篇文章介绍一下Windows的NTFS文件系统的ADS(alternate data streams,交换数据流) ...

  3. NTFS系统的ADS交换数据流

    VC++ 基于NTFS的数据流创建与检测 What are Alternate Streams?(交换数据流) NTFS alternate streams , 或者叫streams,或者叫ADS(w ...

  4. NTFS的交换数据流ADS应用

    NTFS的交换数据流ADS应用   NTFS是Windows常用的文件系统格式.该格式支持交换数据流(Alternate Data Streams,缩写ADS)特性.该特性可以让多个文件流使用同一个文 ...

  5. [GXYCTF2019] MISC杂项题

    buuoj复现 1,佛系青年 下载了之后是一个加密的txt文件和一张图片 分析图片无果,很讨厌这种脑洞题,MISC应该给一点正常的线索加部分脑洞而不是出干扰信息来故意让选手走错方向,当时比赛做这道题的 ...

  6. CTF杂项之音频隐写

    题目来自bugku 二话不说,直接上图 由题目可以看出,这题需要用到一个KEY,加上又是一段音频,很容易联想到一个著名的音频隐写解密软件Mp3stego 直接上工具 ok,成功Get Flag

  7. Bugku CTF练习题---杂项---隐写3

    Bugku CTF练习题---杂项---隐写3 flag:flag{He1l0_d4_ba1} 解题步骤: 1.观察题目,下载附件 2.打开图片,发现是一张大白,仔细观察一下总感觉少了点东西,这张图好 ...

  8. bzoj千题计划240:bzoj3900: 交换茸角

    http://www.lydsy.com/JudgeOnline/problem.php?id=3900 dp[i]表示让状态为i的鹿满足要求的最少交换次数 不能枚举两头鹿交换,因为一头鹿可能交换多次 ...

  9. Leetcode题库——24.两两交换链表中的节点

    @author: ZZQ @software: PyCharm @file: swapPairs.py @time: 2018/10/20 19:49 说明:给定一个链表,两两交换其中相邻的节点,并返 ...

随机推荐

  1. 记录工作中linux相关操作

    在项目部署之后,查看日志能查看部署结果是否正确部署. 最开始查看日志我会使用cat service.log tail -f service.log vim service.log 打开日志之后 /+查 ...

  2. 第一次接触WebSocket遇到的坑以及感受

    要求用.net写一个服务,然后通过webscoket实现客户端与服务端之间的通信. 第一次知道.net还可以用来写服务,然后问题来了,服务是什么- -..下面图里的就是服务,可以停止暂停和启动. 我要 ...

  3. 多事之秋-最近在阿里云上遇到的问题:负载均衡失灵、服务器 CPU 100%、被 DDoS 攻击

    昨天 22:00~22:30 左右与 23:30~00:30 左右,有1台服役多年的阿里云负载均衡突然失灵,造成通过这台负载均衡访问博客站点的用户遭遇 502, 503, 504 ,由此给您带来麻烦, ...

  4. JavaScript之对象基础

    现实世界是由无数的事物或对象组成,事物都有各独特的属性和一些动作行为,一般我们可以通过事物的某些特征或行为动作描述它.JavaScript中也是如此,JavaScript对象是多个键值对的集合,键我们 ...

  5. 前端初探 Gitlab CI/CD

    前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 C ...

  6. Java 基础篇之类与对象

    类与对象 类.对象和引用的关系 类和对象的关系 类是对象的模版,对象是类的一个实例,一个类可以有很多对象 一个Java程序中类名相同的类只能有一个,也就是类型不会重名 一个对象只能根据一个类来创建 引 ...

  7. 基于操作系统原理的Red Hat Linux的基本操作

    一.实验目的 1.了解Linux操作系统的启动与登录方法. 2.掌握Red Hat Linux图形用户界面下的基本操作. 3.学会Red Hat Linux基本设置. 二.实验内容 1. 登录 2. ...

  8. 制作你的第一个dockerfile文件

    From this lesson you will从这里你将学到1,Make a Dockerfile制作一个Dockerfile2,Build a Docker Image and run构建镜像并 ...

  9. Winows 2008远程桌面访问多用户设置

    一张图

  10. 分布式系统的延时和故障容错之Spring Cloud Hystrix

    本示例主要介绍 Spring Cloud 系列中的 Eureka,如何使用Hystrix熔断器容错保护我们的应用程序. 在微服务架构中,系统被拆分成很多个服务单元,各个服务单元的应用通过 HTTP 相 ...