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

做这道题目的经历比较坎坷,题目中用于隐藏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. 第一次接触WebSocket遇到的坑以及感受

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

  2. [VB.NET Tips]字符串分隔

    在实际应用中,很多场景下都需要分隔字符串,如解析CSV文件等. 一般我们使用split方法来按照指定的分隔符来进行分隔字符串获得一个数组. Split方法的签名是: Split(ParamArray ...

  3. Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)

    在上一篇文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码 ,中我们看到 代码:XMLConfigBuilder parser = new XMLConfigBuilder(read ...

  4. Git使用教程-idea系列中git使用教程

    一.新建项目 新建项目后记得复制git仓库的地址.     二.上传项目到git仓库 在你的idea里新建git仓库,这是新建本地仓库,等会会同步到线上git仓库   新建后如果代码不是文件名不是绿色 ...

  5. 第六届蓝桥杯java b组第四题

    第四题 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153….. 其循环节为[846153] 共有6位. 下面的方法,可以求出循环 ...

  6. [系列] go-gin-api 路由中间件 - Jaeger 链路追踪(六)

    [DOC] 概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(理论篇),这篇文章咱们接着分享:路由中间件 - Jaeger 链路追踪(实战篇). 这篇文章,确实让大家 ...

  7. CDH6.3.0 - Cloudera Enterprise 6 Release Guide 安装准备篇

    一.安装之前 Cloudera管理器的存储空间规划 ClouderaManager跟踪许多后台流程中的服务.作业和应用程序的指标.所有这些指标都需要存储.根据组织的大小,此存储可以是本地的或远程的,基 ...

  8. 解决行内块元素(inline-block)之间的空格或空白问题

    一.问题产生 由于html代码格式化后,标签会缩进或者换行.由于浏览器默认处理导致元素在页面显示中出现单个空格问题,尤其在行内或者行内块元素布局时影响比较明显 例如: 代码 页面显示 二.解决方案 这 ...

  9. ViewModel 和 ViewModelProvider.Factory:ViewModel 的创建者

    本文翻译自:https://medium.com/koderlabs/viewmodel-with-viewmodelprovider-factory-the-creator-of-viewmodel ...

  10. php EOF(heredoc)使用

    PHP EOF(heredoc)是一种在命令行shell(如sh.csh.ksh.bash.PowerShell和zsh)和程序语言(像Perl.PHP.Python和Ruby)里定义一个字符串的方法 ...